Ethereum All Core Developers Consensus Call #102 Writeup
On February 9, 2023, Ethereum developers gathered for their 102nd All Core Developers Consensus (ACDC) call. Chaired by the Ethereum Foundation’s Danny Ryan, the ACDC calls are one of two bi-weekly meeting series where Ethereum developers discuss and coordinate changes to the protocol of Ethereum. ACDC calls focus primarily on development for the consensus layer of Ethereum, while the other meeting series, All Core Developers Execution (ACDE) calls, focuses on coordinating code changes to the execution layer of Ethereum. To read a summary of last week’s ACDE call, read this Galaxy Research report.
This week, consensus layer (CL) client teams discussed progress on testing for the Shanghai and Capella upgrade. The most recent testnet launch of Shanghai on the Zhejiang testnet went smoothly and developers agreed on the call to launch the upgrade on the next public testnet Sepolia on Tuesday, February 28th. Sepolia is the second to last testnet that developers will upgrade before releasing Shanghai on mainnet Ethereum. Based on the date for Shanghai activation of Sepolia, as well as discussion about additional testing for MEV-Boost, a mainnet activation date for the Shanghai upgrade in early April appears more likely.
Goodbye Zhejiang, Hello Sepolia
The Shanghai upgrade was activated for the first time on a public Ethereum testnet called Zhejiang on Tuesday, February 7th. Barnabas Busa, a DevOps Engineer at the Ethereum Foundation, said the activation was “a great success” and highlighted that the network did not encounter any issues through the upgrade. Marius van der Wijden, a developer for the Geth Execution Layer (EL) client, stressed that all EL client teams should be creating dedicated tests to ensure the process for encoding and decoding staked ETH withdrawals is done correctly on the network.
Danny Ryan, chair of the ACDC calls, asked the group whether they thought more dedicated testing for withdrawal credential changes was also needed. Based on the group’s silence, it seemed CL client teams were comfortable with the amount of testing they had already done for withdrawal credential change testing and Ryan moved on to discussing dedicated testing for MEV relays and builders. Barnabas Busa said that he had reached out to the Flashbots team to get their help with testing MEV related infrastructure and software but had yet to receive a response from Flashbots. Terence Tsao from the Prysm (CL) client team said that developers were missing the existence of “a capable relayer and builder” on the testnets which was the main blocker.
Based on inadequate testing around MEV-Boost software, the fall back mechanisms if MEV-Boost software should fail, and updated specifications for builders and relay operators, certain developers on the call said they were not comfortable moving forward with testing Shanghai on more public testnets until these specific areas of testing were addressed. “I think we shouldn’t even be talking about forking Sepolia without testing first a builder,” said a developer for the Prysm (CL) client who goes by the pseudonym of “Potuz.” To this, chair of the ACDE calls Tim Beiko pushed back saying that Ethereum core developers have historically not allowed the readiness of infrastructure providers to influence the timing and testing for protocol-level upgrades. “There’s sort of a risk if we started moving our timelines based on everyone in the ecosystem being ready that we’ll be blocked,” said Beiko on the call.
After more discussion between developers, Danny Ryan suggested that CL client teams focus on testing the parts of MEV software that do directly impact the protocol-layer of Ethereum, namely the fall back mechanisms that ensure if MEV-Boost software, relay and builder implementations, as well as any other extraneous piece of MEV-related infrastructures fails for whatever reason, the validators on Ethereum automatically revert back to a process of local block building. Alex Stokes, a researcher for the Ethereum Foundation, highlighted that dedicated tests for checking the robustness of these fall back mechanisms had been created for the Merge upgrade. Stokes volunteered to start updating them for testing the Shanghai upgrade. Ryan also agreed to work with other members of the Ethereum Foundation testing team to get the ball rolling on dedicated testnets for assessing validators’ response to a failure of MEV infrastructure and/or software during the Shanghai upgrade.
“My gut is to not currently halt [testing efforts for] Sepolia but to parallelize a lot of these testing efforts and continue to assess over the next couple of week,” said Ryan. Based on this sentiment, developers moved on with picking an activation date for the Shanghai upgrade on the Sepolia testnet. Sepolia is the second to last public testnet where Shanghai will be activated before developers release the upgrade on mainnet Ethereum. Based on the readiness of client teams, developers agreed to schedule Sepolia Shanghai activation for Tuesday, February 28. Working backwards from this date, Tim Beiko highlighted that this means a blog post announcing the upgrade on Sepolia would be released on the official Ethereum website around February 20th, and all client teams should have working releases for Shanghai ready by next Friday, February 17th, at the latest.
Assuming the activation of Shanghai on Sepolia goes smoothly, developers will then schedule a date for the activation of the upgrade on the Goerli testnet. Given that Sepolia will upgrade on February 28th, a launch of the upgrade on Goerli will likely be sometime in mid or late March and a launch on mainnet Ethereum sometime in early April. Developers discussed potentially setting a date for Shanghai activation on the Goerli testnet, along with Sepolia, but eventually decided it would be better to wait on the results of the Sepolia testnet and the parallel testing efforts of MEV-Boost related software. Ryan mentioned that Ethereum core developers could decide on an activation date for the Goerli testnet and Ethereum mainnet at the same time after the activation of Shanghai on Sepolia.
Goodbye EIP 4844, Hello Deneb
Concurrently to the testing efforts for the Shanghai upgrade, developers are preparing for the activation of Ethereum Improvement Proposal (EIP) 4844 in the next upgrade after Shanghai. As mentioned during prior call notes, Shanghai is the name of the upgrade for enabling staked ETH withdrawals on the EL of Ethereum and Capella is the name of the upgrade on the CL of Ethereum. During the last ACDC call, developers agreed to name the upgrade for EIP 4844 Deneb, which is the name of a first-magnitude star in the constellation of Cygnus. Hsiao-Wei Wang from the Consensus R&D team at the Ethereum Foundation reminded CL client teams that the naming for EIP 4844 on relevant GitHub releases would be updated to Deneb starting from this week so developers with open pull requests under the EIP 4844 name should update those as soon as possible.
Anton Nashatyrev, a lead developer for an Ethereum block explorer known as ether.camp, presented his findings around decoupling block from blob production on this week’s call. Anton Nashatyrev’s findings are summarized here and a background on this discussion around decoupling blocks from blocks can be found in last week’s developer call writeup here. One of the main benefits for using separate sub networks for propagating blob vs block data is so that these messages can be communicated more efficiently across the network. Anton confirmed that when decoupling these messages there was a 40% to 50% reduction in message receipt time. Developers discussed ways to improve these simulations and initial investigations around verification strategies for blobs. A developer from the Lighthouse (CL) client team who goes by the pseudonym “realbigsean” also highlighted an open issue on Beacon Chain APIs and endpoints for signing blob transactions. Developers on the call agreed to read his issue and give feedback on it.
Other miscellaneous topics that were raised on this week’s call included:
Call for volunteers to be an EIP editor: Tim Beiko encouraged CL client developers to consider whether they would want to step up and become an EIP editor to help review CL-related EIPs.
Call for deprecating an outdated Engine API call: Mikhail Kalinin, Lead Researcher at ConsenSys R&D, presented a few different ways to deprecate an outdated Engine API call known as “exchangetransitionconfiguration.” Given that this code change was not urgent, developers agreed to revisit this discussion after Shanghai activation.
Call for participants in the SSZ call: The discussion around SSZ formatting changes over the past few developer calls is becoming increasingly relevant to preparation for Deneb. Therefore, developers will be organizing a dedicated call to discuss matters related to SSZ formatting changes next Wednesday, February 15th. All interested parties are encouraged to participate in the call.