Another @ethereum#AllCoreDevs wrapped up this morning. Deep dives into The Merge & Shanghai, one of my favorite calls in a while π Def recommend the full recording as the signal/noise ratio was very high. If you don't have 90 mins, here's a recap!
We've covered these issues on previous calls, and fixed them in the latest spec, Kiln, but the report gives a great overview of what happened and the impacts it had π
@ethereum@parithosh_j There's even an FAQ section that covers impacts on validators, merge timelines, and best practices for dealing with non-finalization.
@ethereum@parithosh_j The main changes in Kiln address the issues we found on Kintsugi: fixes for Optimistic Sync on the CL side, changing the semantics (and name) of `executePayload` to better handle re-orgs, and other smaller changes.
@ethereum@parithosh_j@vdWijden@lightclients Two more changes will be added to the Kiln spec next week to make it feature-complete: an authorization mechanism between the EL/CL nodes and a check between EL/CL to ensure both clients are merge-compatible. The PRs:
@ethereum@parithosh_j@vdWijden@lightclients Late next week, we're hoping to stand up the first round of Kiln devnets with clients who are ready. In the weeks after, we'll run through it a few more times before having a final release, which we expect to be long-lived.
If nothing major goes wrong, Kiln is the latest testnet we will deploy before forking the existing ones (Goerli, Ropsten, etc.). Now's the time to make sure things work as expected!
@ethereum@parithosh_j@vdWijden@lightclients@peter_szilagyi TL;DR: Goerli seems most "future-proof" right now, if you are deploying applications, and Ropsten/Rinkeby the likeliest to be shut down close to the merge. Again, this is the time to start migrating if you are using Ropsten/Rinkeby.
@ethereum@parithosh_j@vdWijden@lightclients@peter_szilagyi We then discussed Shanghai π¨π³ On the last ACD there was a soft consensus to want to mark a few EVM-related EIPs as "considered for inclusion" for it. This roughly means "we'll deploy them on devnets and if nothing changes or goes wrong, they'll likely be in the next fork"
@ethereum@parithosh_j@vdWijden@lightclients@peter_szilagyi Because we are still very early in the process (the merge isn't done yet!), I wanted to be sure we didn't preemptively commit to things before even having started the work, precluding us from doing other, potentially more important, things we just didn't discuss yet.
@ethereum@parithosh_j@vdWijden@lightclients@peter_szilagyi So we went over each of the proposals, and I made sure to highlight the stuff that no one had put on the agenda explicitly, and then discussed what the highest priorities were. Recommend the livestream for all the nuance, but I'll summarize below.
@ethereum@parithosh_j@vdWijden@lightclients@peter_szilagyi First, @alexberegszaszi explained the various EVM EIPs he and his team proposed, along with their impact/rationale. First, EIP-3860 simply limits the size of INITCODE. It's a small change which adds gas metering to execution which otherwise wasn't charged.
@ethereum@parithosh_j@vdWijden@lightclients@peter_szilagyi@alexberegszaszi Another small change is EIP-3855. It adds a PUSH0 opcode which, as you can imagine, pushes 0 onto the execution stack. This is a simple feature which is useful to many use cases where you need to provide 0-padded inputs to the EVM.
@ethereum@parithosh_j@vdWijden@lightclients@peter_szilagyi@alexberegszaszi Then, we covered two proposals central to EVM improvements: EIPs 3540 & 3670. 3540 introduces EVM Object Formats, which we set the groundwork for in the London upgrade. This enables the addition of multiple EVM "versions", introducing new features without breaking contracts.
@ethereum First on the call, @mkalinin2 presented an upgrade to the Engine API spec to address some issues we've seen on Kintsugi w.r.t. re-orgs. Full link here: github.com/ethereum/execuβ¦
@ethereum@mkalinin2 In short, the PR makes it optional for EL clients to actually execute a payload when receiving an executePayload call (and hence renames that call to newPayload for clarity).
@ethereum First, updates on the Kintsugi π΅ devnet! There was a lot of testing over the holidays, and @vdWijden managed to break the network again π₯
TL;DR: his fuzzer created a block which replaced certain fields by others, and because of caching+validation issues, some clients accepted an invalid block as valid.
We had our last @ethereum#AllCoreDevs of 2021 today π! This was IMO one of the most interesting calls of the year, and recommend people interested in the tradeoffs of Ethereum governance watch the entire thing π₯
@ethereum First on the call, we discussed the Arrow Glacier upgrade from yesterday. Things went smoothly! Two miners, @HuobiGlobal and @OKEx hadn't upgraded. Now, it seems they have, as they've mined blocks on the main chain:
@ethereum@HuobiGlobal@OKEx Then, we discussed progress on the Kintsugi π΅ merge devnets. The 4th devnet, devnet-3, was launched this week. While there was chaos at first, it's now stable and even @vdWijden's fuzzer didn't take it down!
Lots of thoughts on the conversations this weekend, and while I think there is a charitable interpretation to some of the criticisms, let me start by saying it's pretty rich to criticize people for "jerking off and watching the burn" when well....
Obviously, narratives get distilled on Twitter, but, to say the least, i makes it harder to educate folks about the subtleties (e.g. willeip1559lowergasprices.org) when this is what's pushed.
Similarly, no one ever dropped the "1.x roadmap": it was literally the last Ethereum event that happened pre-COVID and work on its various aspects is progressing (not to mention 1559 was part of it...)
@ethereum First on the call, we recap'ed the #amphoraπΊ interop from last week. Rather than rehashing the recap, here's the blog post covering the event π:
@ethereum A couple updates from the call that aren't in the blog post: Pithos, the new devnet which was launched yesterday, is now running with 3 consensus clients + geth. Besu + Nethermind will be added soon. Explorer: pithos-explorer.ethdevops.io