Ethereum Consensus Layer Call #100 Writeup
On December 15, 2022, Ethereum developers gathered for their 100th Consensus Layer (CL) call. Chaired by the Ethereum Foundation’s Danny Ryan, the CL calls are one of two bi-weekly meeting series where Ethereum developers discuss and coordinate changes to the protocol of Ethereum. This week’s call was the last CL call of the year. CL calls will resume on January 12, 2023, and All Core Developer calls will resume one week earlier on January 5, 2023. For the last call of 2022, CL client teams discussed preparations for the next major upgrade to the Ethereum Beacon Chain, dubbed Capella. Capella will be activated in parallel with the next major upgrade to the Ethereum Execution Layer (EL), Shanghai. On Wednesday, December 14, CL developers put out an alpha pre-release of Capella containing specifications for staked ETH withdrawals and other improvements related to Ethereum Improvement Proposal (EIP) 4844, light client functionality, and testing. On this week’s call, developers discussed the new release, called Goat Star, and several items related to launching a dedicated test network for the Shanghai/Capella upgrade. Developers also discussed two minor code changes that may be considered for inclusion in Capella, as well as early considerations for the next upgrade after Capella, which will include the full specifications for EIP 4844.
Danny Ryan kicked off the call by asking developers about the Goat Star release. Given that the latest specifications for Ethereum’s CL was released a day prior to the call, developers did not raise any immediate issues related to Goat Star client configurations or test vectors. Ryan agreed to circle back up with developers after they have had more time to review the newest specifications.
Then, Ryan handed over the agenda to Parithosh Jayanthi, who is part of the Developer Operations team at Ethereum Foundation, to discuss the launch of a multi-client test network for Shanghai/Capella. There is already a developer-focused testnet that is dedicated to testing staked ETH withdrawals. However, the one raised by Jayanthi on this week’s call is intended to bring together all aspects of the Shanghai/Capella upgrade on one network. For more information on what code changes will be included in Shanghai, read last week’s call notes. Jayanthi confirmed what changes to the Ethereum Engine API and CL specifications should be included for the Shanghai/Capella testnet and roughly how many validators will be spun up for the testnet.
Developers agreed to aim for roughly 100,000 validators on the Shanghai/Capella testnet spread across 50 to 60 nodes. Ryan mentioned that one of the stress tests developers should conduct on the Shanghai/Capella testnet is shutting down half of all active validators and thereby forcing the network to conduct a sweep of the maximum number of validators for withdrawals. This would effectively test the bounded sweep functionality for withdrawals, which was discussed in greater detail by developers on a prior call. In terms of timing, Jayanthi mentioned that his team is planning on launching the Shanghai/Capella testnet sometime next week before Christmas Day with the help of client teams.
Potential additions to Capella
Next, Ryan raised two discussion items related to the Capella upgrade. The first was a proposal to improve block syncing and verification times through the addition of a historical block roots accumulator. This is a proposal that was first suggested over a year ago by Jacek Sieka, also known as “Arnetheduck,” Head of Research Development at Status who is building the Nimbus (CL) client. More information about the accumulator function can be found here. Sieka said on the call that the additional code complexity of this accumulator is minimal but would present a significant improvement to block verification times for archive nodes that are processing large batches of blocks. Because of this code change, the state growth of CL nodes would double from 10KB/year to 20KB/year, Sieka said. Developers agreed to try and add this change into the Capella upgrade. On the testing side, one of the developers said the proposal would add 2 days of overhead for test generation.
The second proposal discussed on this week’s call was presented by Etan Kissling, a developer of the Ethereum Nimbus (CL) client team. Kissling explained there are two fields that are encoded differently between the EL block header and the CL execution payload header. Because these two fields are encoded differently, it creates additional overhead and complexity for building wallets and Ethereum light clients. To introduce consistency to these two fields, Kissling offered two solutions. The first was a code change to the Engine API such that the quantities recorded in the two fields from the EL client could be stored in the CL client. The other solution was to change the EL specifications such that the values recorded in the two fields are formatted correctly for the CL side. Ryan was slightly in favor of changing the Engine API rather than the EL specifications itself for simplicity. However, Ryan also said that a broader discussion should be had with the EL client teams on the next ACD call in January.
After Capella, There’s Dubhe
After discussions around Shanghai and Capella, developers discussed the next upgrade, which will be centered around activating EIP 4844. For background on EIP 4844, read prior call notes. Developers discussed what the name of the next upgrade after Capella should be. Since the Beacon Chain’s first upgrade back in October 2021 called Altair, CL client teams have named their upgrades after stars and in alphabetical order. The second upgrade to the Beacon Chain which activated the Merge was called Bellatrix. After Capella, Diederik Loerakker, more popularly known as “Protolambda”, who is a developer for OP Labs, suggested the name of “Dubhe”. Dubhe, also known as Alpha Ursae Maajoris, is the second brightest star in the constellation of Ursa Major and as noted by Protolambda would be “an ideal name to close the bear market with.”
Some developers on the call were in favor of dropping the dual name structure for Ethereum upgrades as the use of two names for an upgrade has caused confusion in the Ethereum community and general media before. For example, for the Merge activation, the upgrade to the Beacon Chain was called Bellatrix while the upgrade to the Ethereum EL was called Paris. These two upgrades occurred at different times which is why two different names for the upgrades were appropriate. However, both Shanghai and Capella are expected to activate at the same time, which is why there is an ongoing discussion around naming for future upgrades on Ethereum. Ryan suggested that developers chime in with their thoughts and opinions around Ethereum upgrade naming in the coming weeks on this EthMagicians thread.
On the topic of EIP 4844, developers discussed merging two different pull requests (PR) into the specifications for the proto-danksharding. Both were originally proposed by a developer for the Lodestar (CL) client who goes by the pseudonym “Dapplion”. The first PR has to do with how nodes handle data availability beyond a certain point after data pruning. “Nodes will not need to store older blobs in the case of long period of non-finality,” writes Ben Edgington in his version of this week’s call notes. Blobs refers to a new transaction type on Ethereum which will be introduced through EIP 4844 that specifically confirms batches of transaction data from Layer-2 rollups to mainnet Ethereum. Ryan agreed that Dapplion’s proposal should be merged as soon as possible if there are no outstanding issues to it. Ryan said the same about Dapplion’s second PR which introduces a new error code to alert nodes when there is a lack of information about a blob at a certain block.
Ryan closed this week’s call by reminding developers that both ACD and CL calls will be on break until the new year. He also stressed that developers should be on the lookout for more information by Jayanthi about the Shanghai/Capella testnet next week.