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 ✨
@ethereum@parithosh_j explained that several BLS credential updates were sent during the fork and were processed without issues. The participation on the network dropped slightly because of unupgraded EL clients, but recovered after these were updated.
@ethereum@parithosh_j Because the validator set on Sepolia is quite small, only a single full withdrawal was tested (but partial ones are processed automatically).
@ethereum@parithosh_j@nethermindeth also reported they were looking into an issue where they produced a small number of bad blocks, but that it wasn't related to Shanghai code. They are still investigating the regression, but don't expect it will cause delays on their side.
@ethereum@parithosh_j@nethermindeth We also discussed a bug that appeared in MetaMask, where the balance wasn't being updated properly to account for withdrawals. It seems to work now, and may have been caused by a caching issue:
@ethereum@parithosh_j@nethermindeth Client teams will make sure that their JSON RPC responses work as expected, but if anything is found there it should be a minor fix.
Expect client releases & an announcement early next week 👀
@ethereum@parithosh_j@nethermindeth We didn't agree to a mainnet date explicitly, but assuming things go well on Goerli, we'd probably set a date on the next ACDE (Mar 16).
@ethereum@parithosh_j@nethermindeth Teams were suggesting roughly 4 weeks after that for a potential mainnet fork, giving them 1 week to put out + test a release, and then 2+ weeks of heads up for people to upgrade their nodes.
@ethereum@parithosh_j@nethermindeth Next up, we started discussing things related to the next upgrade: Cancun. The first of these was the various approaches to bring SSZ into the EL more comprehensively. Etan from Nimbus gave a recap of yesterday's breakout room on the topic: github.com/ethereum/pm/is…
@ethereum@parithosh_j@nethermindeth For background, the EL and CL currently use two different encoding formats: RLP (EL) and SSZ (CL). With EIP-4844, we'll be introducing some SSZ on the EL, it's worth thinking about how to approach this more broadly. Here's some more context:
@ethereum@parithosh_j@nethermindeth One neat thing we can get with a more wholesale move to SSZ is the ability to prove a single field of a transaction or receipt without having to download the entire transaction. This is particularly useful for low bandwidth/storage use cases, like light clients
@ethereum@parithosh_j@nethermindeth Most folks didn't have a ton of context on this, so will be reading up in the next few weeks. Expect it to come up again in the next few calls!
@ethereum@parithosh_j@nethermindeth@EthMagicians Two other EIPs had also been added to the agenda, although the champion didn't show up: EIP-5920 (PAY opcode) and EIP-6190 (Verkle-compatible SELFDESTRUCT)
@ethereum@parithosh_j@nethermindeth@EthMagicians@gballet@dankrad In short, we want to get rid of SELFDESTRUCT, as it is not compatible with Verkle Tries, which are required for stateless. SELFDESTRUCT is therefore being deprecated as of Shanghai. On-chain semantics won't change, but people should expect them to in near-future upgrades.
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).
@ethereum@vdWijden Other clients also had this issue (except @nethermindeth 🫡), but given it's fairly easy to test for, everyone felt confident they could patch it quickly. We'll also be adding an additional Hive test for this case.
@ethereum@BarnabasBusa There were some config issues in launching the network, but the devops and client teams are looking into it. The Shapella fork is planned for Tuesday 3pm UTC 👀
@ethereum On the Shanghai front, a first devnet was stood up with all client combinations right before Christmas. While they are all _running_ some pairs have more issues than others. You can see the EF devops dashboard here: …mon.withdrawalsdevnet1.ethpandaops.io
@ethereum And we wrapped up the call earlier today! The vast majority of the conversation was around Shanghai planning. Recommend watching the livestream to anyone interested in that side of things 📺 github.com/ethereum/pm/is…
@ethereum Before we got into that, though, there were a few important topics we wanted to be sure to cover. First, @trent_vanepps gave an update on the KZG Ceremony, which is a requirement for EIP-4844 to go live.