Had a big #ACDE today: set the Shapella mainnet date (!!), covered every potential Cancun EIP so far, discussed local block building, and a node operator survey by @EthCatHerders 😸
@EthCatHerders First, apologies, there were some issues in the recording, where only my audio was coming out when we recap'ed the Goerli fork + started discussing mainnet dates. Starting at 9:00 on the recording should work, and I briefly summarized the first few minutes of the call 😅
@EthCatHerders That said, @parithosh_j shared his observations of the Goerli fork. While we did see a drop in participation rates, it was due to clients not having updated rather than any issue with Shapella. Once this was fixed, the network was running smoothly!
@EthCatHerders@parithosh_j As a note, validators have three pieces of software they must update: the EL node, the Beacon Node, and the Validator Client. Some validators had only updated the EL + BN, but not VC. We'll make this clearer in the mainnet announcement 👀
@EthCatHerders@parithosh_j Even though the network wasn't finalizing for some time, withdrawals and credential change messages got processed without any issues 🎉!
@EthCatHerders@parithosh_j Teams were ready to move to mainnet, and so we've agreed to fork on slot 6209536, scheduled for April 12, 10:27PM UTC. Expect client releases in about a week, and a full announcement ~10 days from now 😄
@EthCatHerders@parithosh_j This PR provides an API for the EL to suggest local blocks over external ones. ELs could implement various heuristics for when to use this. Some examples are given in the PR:
@EthCatHerders@parithosh_j This could improve censorship resistance as it would be a way for validators to default towards local execution in cases where the censorship information can be seen in the transaction pool or on-chain.
@EthCatHerders@parithosh_j Teams generally seemed on board with the idea, and agreed to consider it for after Shapella. This wouldn't require a hard fork to activate, but doing it before Shapella would require versioning changes to the Engine API that teams didn't want to do so close to the upgrade.
@EthCatHerders@parithosh_j@EthMagicians On SSZ, there are a few proposals to consider: agreeing to a signature scheme for SSZ transactions, moving the withdrawals roots to SSZ, and moving all of the transaction + receipts to SSZ. Here is Etan's doc linking to all the proposals: hackmd.io/y1MCA5Q-R4eMVy…
@EthCatHerders@parithosh_j@EthMagicians On the first point, @vdWijden and Etan were discussing it over the past week, and one tradeoff is whether to optimize for the size of transactions (and node storage) or proof verification (and light client support).
@EthCatHerders@parithosh_j@EthMagicians@vdWijden Additionally, if we do move the transactions/receipts to SSZ encoding, this might affect some on-chain contracts which verify existing transactions using RLP.
Figuring out the extent of those implications is important, but not easy by just looking at deployed contracts.
@EthCatHerders@parithosh_j@EthMagicians@vdWijden After listening to us go over these concerns, @peter_szilagyi mentioned that this alone was probably grounds to not consider a full transition to SSZ in Cancun, as it would probably cause major delays, esp. combined with EIP-4844.
@EthCatHerders@parithosh_j@EthMagicians@vdWijden@peter_szilagyi That said, EIP-4844 does introduce SSZ in a new transaction type. So, ideally, we do need to make a decision about the broader path forward, to ensure 4844 transactions are forward compatible.
@EthCatHerders@parithosh_j@EthMagicians@vdWijden@peter_szilagyi Next up, we discussed SELFDESTRUCT removal. We've officially deprecated it as part of Shanghai, and if we want to consider the transition to Verkle Tries in the fork after Cancun, then SELFDESTRUCT needs to be modified in Cancun.
Deposits are being processed (goerli.beaconcha.in/validators/wit…), but it seems like several validators haven't upgraded. Looking into it 👀
One challenge with testnet validators is that given the ETH is worthless, there's less incentive to run a validator/monitor it.
Another possible cause is the large # of withdrawal credential changes processed right at the fork. Given this is the first time people can submit those changes, there are many more that need to be processed, which can lead to missed blocks/attestations on low-resource nodes
After sitting on this for months, I'm thrilled we're finally announcing summerofprotocols.com ☀️- an 18 week program, led by the one and only @vgr, with the goal of improving "protocol literacy", or how to even think about protocols & their thorny questions!
@vgr We'll be funding a cohort of folks to spend the summer diving into protocols, with an explicit focus on bridging the conversation beyond the usual tech/crypto circles.
@vgr Over the past few years, as conversations about the long-term stewarding/evolution of Ethereum became more frequent, it became clear we don't yet have good frameworks/models to think through this. We're not very "protocol literate" 😅
Wrapped up another @ethereum#ACDE today: covered Shapella on Sepolia, set a date for Goerli, and also touched on the scope of the next upgrade, as well as deprecating some non-consensus functionality in clients 😄
@ethereum Now, let's dive in! First on the call, we covered the Sepolia Shapella (🎶) upgrade that happened Tuesday. In short, everything went smoothly ✨
Shapella PSA for wallet devs: beacon chain withdrawals *don't* create a transaction on the EL. This means that if you're scanning incoming txns to an address to update its balance, you won't process withdrawal balance updates 👀
We saw this bug on MetaMask during the Sepolia fork, but others probably have the same issue. Here's a bug report for them: github.com/MetaMask/metam…
Withdrawals are processed similarly to PoW emission: they are added to the addresses' balance "behind the scenes", at the *end* of block execution. See the State Transition section here: eips.ethereum.org/EIPS/eip-4895#…
The topic of Ethereum testnets came up again this week, which is something people either feel like there's 0 information about, or that "everyone already knows". Short thread to give context on the current situation & future plans!
Testnets help three distinct groups of users: client developers, application developers and node operators/stakers/miners, but, the needs of each of these are quite different!
Client developers want a "staging environment" to deploy changes to before mainnet network upgrades, ideally with some usage (to trigger the code paths of the new changes).