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!
@ethereum First on the call, we went over @parithosh_j's report of the bugs found on Kintsugi: notes.ethereum.org/@ExXcnR0-SJGth…

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 Next up on the call, we covered the newest merge testnet spec: Kiln πŸ”₯🧱 hackmd.io/@n0ble/kiln-sp…
@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 Clients have started implementing the changes, and @vdWijden & @lightclients are already working on new test vectors for the 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:

github.com/ethereum/execu…
github.com/ethereum/execu…
@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.
@ethereum @parithosh_j @vdWijden @lightclients 🚨 Applications, Tools, Infra Providers, consider Kiln a dress rehearsal before testnets! 🚨

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 On that note, the next topic was how to handle tesnets post-merge. We didn't dwell on this too long, but @peter_szilagyi's recent take seems broadly right:
@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 Sensing that the Shanghai gates were open, hoards of EIP champions came in with their proposals on today's call πŸ˜…
@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 @parithosh_j @vdWijden @lightclients @peter_szilagyi @alexberegszaszi "How do we upgrade the EVM without breaking everything that's already deployed on it?" has been an applied research question on Ethereum for *years* and @alexberegszaszi & his team have finally come up with a design which everyone is very happy with!
@ethereum @parithosh_j @vdWijden @lightclients @peter_szilagyi @alexberegszaszi Here's an @EthMagicians thread with some history on the topic, if you want to go down a rabbithole πŸ•³ ethereum-magicians.org/t/ethereum-acc…
@ethereum @parithosh_j @vdWijden @lightclients @peter_szilagyi @alexberegszaszi @EthMagicians The companion EIP that @alexberegszaszi presented was EIP-3670, which introduces code validation for EOF contracts. This makes it easier to reason about bytecode and can lead to more efficient EVM implementations.
@ethereum @parithosh_j @vdWijden @lightclients @peter_szilagyi @alexberegszaszi @EthMagicians Alex had two more EIPs, both of which leverage 3540: EIP 4200, which introduces static relative jumps in the EVM, and EIP 4750, which introduces function selection in 3540-compatible contracts' bytecode.
@ethereum @parithosh_j @vdWijden @lightclients @peter_szilagyi @alexberegszaszi @EthMagicians Finally in the EVM bucket, @greg_colvin had two EIPs he discussed: 2315, which introduces subroutines and was previously slated for inclusion before being removed late in the upgrade process, and 3779, which adds safer control flow in the EVM.
@ethereum @parithosh_j @vdWijden @lightclients @peter_szilagyi @alexberegszaszi @EthMagicians @greg_colvin Next on the list was @lightclients with EIP-3074. He shared that some minor changes have been considered to the EIP, but broadly the proposal stays the same.
@ethereum @parithosh_j @vdWijden @lightclients @peter_szilagyi @alexberegszaszi @EthMagicians @greg_colvin There were questions about how this differed from the recent account abstraction via the mempool EIP (4337). TL;DR: 3074 helps with existing EOAs, while 4337 is mostly useful for new accounts. @nethermindeth has a longer post on this: medium.com/nethermind-eth…
@ethereum @parithosh_j @vdWijden @lightclients @peter_szilagyi @alexberegszaszi @EthMagicians @greg_colvin @nethermindeth One thing to note about 4337 is that it does not require consensus changes, and hence can be adopted independently of the network upgrade process.
@ethereum @parithosh_j @vdWijden @lightclients @peter_szilagyi @alexberegszaszi @EthMagicians @greg_colvin @nethermindeth After @lightclients, @VitalikButerin had two proposals he shared about how we could reduce transaction costs on rollups. Both introduce a new transaction type which contains a blob of data, a bit like a "mini chunk of shard data".
@ethereum @parithosh_j @vdWijden @lightclients @peter_szilagyi @alexberegszaszi @EthMagicians @greg_colvin @nethermindeth @VitalikButerin The first approach makes only the minimum amount of changes for this to be supported by EL clients: notes.ethereum.org/@vbuterin/blob…
@ethereum @parithosh_j @vdWijden @lightclients @peter_szilagyi @alexberegszaszi @EthMagicians @greg_colvin @nethermindeth @VitalikButerin The second approach builds on the first, and adds more "plumbing" work to get us closer to something that will be compatible with full sharding: notes.ethereum.org/@vbuterin/blob…
@ethereum @parithosh_j @vdWijden @lightclients @peter_szilagyi @alexberegszaszi @EthMagicians @greg_colvin @nethermindeth @VitalikButerin If neither of these can make it in, he said he would really want to see a CALLDATA cost reduction, such as EIP-4488, so we can at least provide short term relief for L2 fees.
@ethereum @parithosh_j @vdWijden @lightclients @peter_szilagyi @alexberegszaszi @EthMagicians @greg_colvin @nethermindeth @VitalikButerin @protolambda, @adietrichs and a few others said they might try and prototype the blob-data transactions proposals during @EthereumDenver to get a feel for the complexity!
@ethereum @parithosh_j @vdWijden @lightclients @peter_szilagyi @alexberegszaszi @EthMagicians @greg_colvin @nethermindeth @VitalikButerin @protolambda @adietrichs @EthereumDenver After Vitalik, @dankrad had a few proposals which could help lay the groundwork for statelessness. Two of them involve neutering SELFDESTRUCT, which is incompatible with the state tree format we want to move to for stateless.
@ethereum @parithosh_j @vdWijden @lightclients @peter_szilagyi @alexberegszaszi @EthMagicians @greg_colvin @nethermindeth @VitalikButerin @protolambda @adietrichs @EthereumDenver @dankrad The second, based on the premise that "no one pays attention to the roadmap until it's on mainnet", would introduce a sort of difficulty bomb for the opcode's gas cost: github.com/ethereum/EIPs/…
@ethereum @parithosh_j @vdWijden @lightclients @peter_szilagyi @alexberegszaszi @EthMagicians @greg_colvin @nethermindeth @VitalikButerin @protolambda @adietrichs @EthereumDenver @dankrad This would exponentially increase the cost of the operation, so people would notice that their contracts are becoming more expensive to use, and have more time to migrate once the EIP is live on mainnet.
@ethereum @parithosh_j @vdWijden @lightclients @peter_szilagyi @alexberegszaszi @EthMagicians @greg_colvin @nethermindeth @VitalikButerin @protolambda @adietrichs @EthereumDenver @dankrad His last proposal is to update some gas costs to already follow a post-Verkle Trie pricing scheme, so application developers can understand how things change in a stateless world. Highly recommend looking at this now to start getting an idea: github.com/ethereum/EIPs/…
@ethereum @parithosh_j @vdWijden @lightclients @peter_szilagyi @alexberegszaszi @EthMagicians @greg_colvin @nethermindeth @VitalikButerin @protolambda @adietrichs @EthereumDenver @dankrad And that was it for EIP proposals! We did cover a few more. First, @dannyryan mentioned that an EIP for Beacon Chain withdrawals is coming πŸ”œ and gave an overview of how the mechanism is expected to work on the call.
@ethereum @parithosh_j @vdWijden @lightclients @peter_szilagyi @alexberegszaszi @EthMagicians @greg_colvin @nethermindeth @VitalikButerin @protolambda @adietrichs @EthereumDenver @dankrad @dannyryan Then, I highlighted a few other EIPs which didn't have champions on the call to advocate for them:

- EIP-2537: adds a BLS precompile;
- EIP-1153: adds a transient storage opcode, useful for many applications to reduce gas costs;
...
@ethereum @parithosh_j @vdWijden @lightclients @peter_szilagyi @alexberegszaszi @EthMagicians @greg_colvin @nethermindeth @VitalikButerin @protolambda @adietrichs @EthereumDenver @dankrad @dannyryan - EIP-2935: highlighted by @tkstanczak, which could reduce STARK application costs.

And there are a few more proposed beyond that too! See the current list here: github.com/ethereum/pm/is…
@ethereum @parithosh_j @vdWijden @lightclients @peter_szilagyi @alexberegszaszi @EthMagicians @greg_colvin @nethermindeth @VitalikButerin @protolambda @adietrichs @EthereumDenver @dankrad @dannyryan @tkstanczak So... that was quite the list! Again, recommend watching the call for the full overview. Great descriptions of all the potential things coming to Ethereum!
@ethereum @parithosh_j @vdWijden @lightclients @peter_szilagyi @alexberegszaszi @EthMagicians @greg_colvin @nethermindeth @VitalikButerin @protolambda @adietrichs @EthereumDenver @dankrad @dannyryan @tkstanczak Then, I asked client teams what they felt were the highest priorities across everything we discussed. Two things clearly emerged: the first subset of EVM EIPs and the transaction data cost reductions.
@ethereum @parithosh_j @vdWijden @lightclients @peter_szilagyi @alexberegszaszi @EthMagicians @greg_colvin @nethermindeth @VitalikButerin @protolambda @adietrichs @EthereumDenver @dankrad @dannyryan @tkstanczak So, we decided to move the first set of EVM EIPs to CFI for Shanghai. Specifically, the core EOF EIPs, 3540 and 3670, along with the two small improvements, 3855 and 3860. A spec for Shanghai is now available here: github.com/ethereum/execu…
@ethereum @parithosh_j @vdWijden @lightclients @peter_szilagyi @alexberegszaszi @EthMagicians @greg_colvin @nethermindeth @VitalikButerin @protolambda @adietrichs @EthereumDenver @dankrad @dannyryan @tkstanczak For the blob-transaction proposals, we will prototype them in the next few weeks/months to get a better feel about their implementation complexity, and will discuss on further calls.
@ethereum @parithosh_j @vdWijden @lightclients @peter_szilagyi @alexberegszaszi @EthMagicians @greg_colvin @nethermindeth @VitalikButerin @protolambda @adietrichs @EthereumDenver @dankrad @dannyryan @tkstanczak That was a *ton* of EIP to get through (which, back in the day, could have taken us a few months...!) and tbh it was pretty impressive we got to such clear agreement on priorities so quickly. Definitely the highlight of my week!
@ethereum @parithosh_j @vdWijden @lightclients @peter_szilagyi @alexberegszaszi @EthMagicians @greg_colvin @nethermindeth @VitalikButerin @protolambda @adietrichs @EthereumDenver @dankrad @dannyryan @tkstanczak It might not look like it, but we even had 10 minutes to spare after all this at the end of the call! @_SamWilsn_ presented some work that he and his team have been doing to create an executable spec for Ethereum's consensus layer.
@ethereum @parithosh_j @vdWijden @lightclients @peter_szilagyi @alexberegszaszi @EthMagicians @greg_colvin @nethermindeth @VitalikButerin @protolambda @adietrichs @EthereumDenver @dankrad @dannyryan @tkstanczak @_SamWilsn_ To give some background, currently, the Ethereum EL spec is an awkward combination of "YellowPaper and a bunch of EIPs applied to it".
@ethereum @parithosh_j @vdWijden @lightclients @peter_szilagyi @alexberegszaszi @EthMagicians @greg_colvin @nethermindeth @VitalikButerin @protolambda @adietrichs @EthereumDenver @dankrad @dannyryan @tkstanczak @_SamWilsn_ Not only is the YP very hard to parse, it also means that complex EIPs are awkward to specify because you sometimes need to "implement" large parts of Ethereum in it to specify what changes.
@ethereum @parithosh_j @vdWijden @lightclients @peter_szilagyi @alexberegszaszi @EthMagicians @greg_colvin @nethermindeth @VitalikButerin @protolambda @adietrichs @EthereumDenver @dankrad @dannyryan @tkstanczak @_SamWilsn_ In contrast to this, the beacon chain was built from the start with an executable spec: a code-based specification, which actually runs (albeit very slowly) but is still optimized for readability.
@ethereum @parithosh_j @vdWijden @lightclients @peter_szilagyi @alexberegszaszi @EthMagicians @greg_colvin @nethermindeth @VitalikButerin @protolambda @adietrichs @EthereumDenver @dankrad @dannyryan @tkstanczak @_SamWilsn_ This means that changes can be specified with a PR to the spec, and that tests can be automatically generated from it. So, months ago, @_SamWilsn_ and other took on the ambitious task of creating such a spec for the EL, and they've made great progress!
@ethereum @parithosh_j @vdWijden @lightclients @peter_szilagyi @alexberegszaszi @EthMagicians @greg_colvin @nethermindeth @VitalikButerin @protolambda @adietrichs @EthereumDenver @dankrad @dannyryan @tkstanczak @_SamWilsn_ Sam presented the highlights on the call, but you can check it out here: ethereum.github.io/execution-spec…

While it's not up to mainnet yet, a few hard forks have already been implemented in it.
@ethereum @parithosh_j @vdWijden @lightclients @peter_szilagyi @alexberegszaszi @EthMagicians @greg_colvin @nethermindeth @VitalikButerin @protolambda @adietrichs @EthereumDenver @dankrad @dannyryan @tkstanczak @_SamWilsn_ This also lays the path to harmonize the upgrade process across the EL + CL! Currently, EL is EIPs only and CL is spec only.
@ethereum @parithosh_j @vdWijden @lightclients @peter_szilagyi @alexberegszaszi @EthMagicians @greg_colvin @nethermindeth @VitalikButerin @protolambda @adietrichs @EthereumDenver @dankrad @dannyryan @tkstanczak @_SamWilsn_ With an executable spec on the EL we could get the best of both worlds: english design, rationale, security consideration in EIPs, with memorable numbers, and implementations directly in executable specs 🀯
@ethereum @parithosh_j @vdWijden @lightclients @peter_szilagyi @alexberegszaszi @EthMagicians @greg_colvin @nethermindeth @VitalikButerin @protolambda @adietrichs @EthereumDenver @dankrad @dannyryan @tkstanczak @_SamWilsn_ In case you couldn't tell, I'm very excited about this! It's the type of behind-the-scenes foundational work which has ripple effects across both the technical and social/governance layer, and it's awesome to see it taking shape 😁
@ethereum @parithosh_j @vdWijden @lightclients @peter_szilagyi @alexberegszaszi @EthMagicians @greg_colvin @nethermindeth @VitalikButerin @protolambda @adietrichs @EthereumDenver @dankrad @dannyryan @tkstanczak @_SamWilsn_ Last on the agenda, we shared the Merge community call scheduled for next week, Friday 14:00 UTC: github.com/ethereum/pm/is…

If you are an application, tooling or infra dev who has questions about The Merge, this is the place to come ask them! See you there πŸ‘‹πŸ»
@ethereum @parithosh_j @vdWijden @lightclients @peter_szilagyi @alexberegszaszi @EthMagicians @greg_colvin @nethermindeth @VitalikButerin @protolambda @adietrichs @EthereumDenver @dankrad @dannyryan @tkstanczak @_SamWilsn_ PS: if you've made it here, thanks for bearing with me on this mega-thread! Longest one in a while...! Next ACD is Feb 18th, 14:00 UTC πŸ‘€
Oops, I meant "execution layer" in this tweet!

h/t @terencechain @_SamWilsn_

β€’ β€’ β€’

Missing some Tweet in this thread? You can try to force a refresh
γ€€

Keep Current with Tim Beiko | timbeiko.eth πŸ”₯🧱

Tim Beiko | timbeiko.eth πŸ”₯🧱 Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @TimBeiko

Jan 21
We just wrapped up @ethereum #allcoredevs no. 130! Covered a lot of Merge β›“ & Shanghai updates πŸ‡¨πŸ‡³

Agenda: github.com/ethereum/pm/is…
Stream:

Recap below πŸ‘‡πŸ»
@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).
Read 29 tweets
Jan 7
The first @ethereum #AllCoreDevs of the year just wrapped up 🎊 Updates on The Merge, as well as what Shanghai could look like πŸ‘€
@ethereum First, updates on the Kintsugi 🍡 devnet! There was a lot of testing over the holidays, and @vdWijden managed to break the network again πŸ’₯
@ethereum @vdWijden He tweeted about it earlier:

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.
Read 35 tweets
Dec 10, 2021
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 πŸŽ₯

Agenda: github.com/ethereum/pm/is…
Stream:
@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:

Huobi: etherscan.io/block/13777482
OKEx: etherscan.io/block/13776941
@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!
Read 37 tweets
Nov 26, 2021
We just wrapped up #AllCoreDevs 127 πŸ¦ƒ

Agenda: github.com/ethereum/pm/is…
Stream:

Recap below πŸ‘‡πŸ»
First things first, Arrow Glacier is happening πŸ”œ

If you still haven't, please upgrade your node 🚨

Client versions available here: blog.ethereum.org/2021/11/10/arr…
Next up we had Kintsugi 🍡 upgrades. A lot of progress on the milestones board: notes.ethereum.org/@djrtwo/kintsu…
Read 44 tweets
Nov 21, 2021
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...)
Read 13 tweets
Oct 15, 2021
We wrapped up @ethereum #AllCoreDevs 124 this morning, and, as promised, we've had several merge updates since the last call!

Agenda: github.com/ethereum/pm/is…
Stream:

Recap below πŸ‘‡πŸ»
@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

Build instructions: github.com/parithosh/cons…
Read 28 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

:(