On June 1, 2023, Ethereum core developers convened for their 110th All Core Developers Consensus (ACDC) call. These bi-weekly meetings, chaired by Ethereum Foundation researcher Danny Ryan, focus on coordinating changes to Ethereum's consensus layer (CL). A major highlight of this meeting was a presentation by Dankrad Feist, another Ethereum Foundation researcher, who shared experimental data on the Ethereum mainnet's capacity to handle large data volumes. His findings led to a significant recommendation: increasing the maximum number of blobs per block in EIP 4844 from four to six.
Pending Changes for the Deneb Upgrade
Danny Ryan noted that, following a coordination call on May 29, several minor adjustments were proposed for the Deneb upgrade—Ethereum's next consensus layer update, which pairs with the execution layer's Cancun upgrade. Developers are preparing to launch the sixth official testnet for EIP 4844, incorporating these updates. Two key changes discussed were:
- Consensus Specifications PR #3391: This change addresses discrepancies in gas price calculations for blob transactions by adding a new "data_gas_used" field to the execution layer block.
- Consensus Specifications PR #3392: To maintain consistency, the size of the new "data_gas_used" field will be reduced to a 64-bit unsigned integer.
A developer known as "Lightclient" volunteered to circulate these changes for final feedback. Ryan emphasized the urgency of merging these updates and releasing new specifications promptly.
EIPs Under Consideration for Deneb
Beyond EIP 4844, developers are evaluating several other Ethereum Improvement Proposals (EIPs) for inclusion in Deneb:
- EIP 4788: Proposed by Ethereum Foundation researcher Alex Stokes, this EIP offers a trust-minimized method for smart contracts and dapps to access consensus layer data, such as validator balances and rewards. Stokes has simplified the implementation and will present updates in the following week's call.
- EIP 6988: This proposal aims to prevent slashed validators from being selected as block proposers. While conceptually straightforward, it raises technical complexities around validator shuffling logic. Developers agreed to review it further in two weeks.
- EIP 7045: Expanding the attestation inclusion slot range from one epoch to the current and next epoch, this change enhances chain security by allowing more opportunities for attestation inclusion.
- Fixed Voluntary Exit Domains: This improvement ensures that signed exit messages from validators remain valid indefinitely, improving the staking user experience.
Ryan will create a GitHub issue to track all candidate EIPs for Deneb, urging client teams to prioritize EIPs 4788, 7045, and the voluntary exit fix alongside EIP 4844.
Insights from Large-Scale Data Experiments
Dankrad Feist shared compelling results from experiments testing Ethereum's capacity to process large blocks. Blocks with additional data ranging from 128 kB to 1 MB were propagated for sustained periods, and the network remained stable throughout. Metrics like bandwidth consumption, block propagation speed, and attestation performance showed no abnormalities, though one instance of block reorganization occurred with a 1 MB data block.
Based on these findings, Feist recommended:
- Increasing the maximum blob count per block from four to six in EIP 4844.
- Reevaluating the four-second deadline for block reception to accommodate larger data volumes, suggesting adjustments to slot phase timings.
A Nimbus developer, "Arnetheduck," noted that any deadline changes should also consider bandwidth spikes during attestation periods. Smoothing these spikes could improve overall network efficiency. Despite some caution among developers, Feist stressed the high demand for blob capacity, noting that many projects are eagerly awaiting these upgrades.
Ryan encouraged ongoing asynchronous discussion on the Ethereum R&D Discord to refine next steps.
Proposed Engine API Versioning Changes
Developers also discussed simplifying Engine API versioning to reduce future complexity. The Engine API standardizes communication between the consensus and execution layers. Mikhail Kalinin proposed a 1:1 mapping between API method versions and data type versions, rather than supporting multiple data types per method. This would enhance clarity and reduce testing overhead.
A Lighthouse developer, "EthDreamer," expressed concerns about losing the ability to deprecate old methods independently. Kalinin suggested that version v3 could encapsulate previous complexities, with new mapping logic applied from there. He will draft a formal pull request for further community feedback.
Frequently Asked Questions
What is the purpose of Ethereum's ACDC calls?
ACDC calls are bi-weekly meetings where Ethereum core developers coordinate changes to the consensus layer. They discuss upgrades, test network progress, and research findings to ensure the network evolves efficiently and securely.
What is EIP 4844, and why is the blob count important?
EIP 4844 introduces "blobs" to Ethereum, a new data structure designed to reduce rollup costs and increase scalability. The blob count per block directly impacts data availability and network capacity, making it a critical parameter for performance.
How do the Deneb and Cancun upgrades relate?
Deneb is the consensus layer component of Ethereum's next upgrade, while Cancun is the execution layer part. Together, they implement changes like EIP 4844 to enhance scalability, security, and user experience across the network.
What are the benefits of EIP 4788 for developers?
EIP 4788 allows smart contracts and dapps to access consensus layer data trust-minimizedly. This enables new use cases, such as more accurate staking rewards analytics and improved validator monitoring tools.
How might larger blocks affect node operators?
While experiments show stability with larger blocks, node operators should ensure adequate bandwidth and processing resources. 👉 Explore more strategies for node optimization to prepare for upcoming changes.
What is the Engine API, and why is versioning important?
The Engine API facilitates communication between Ethereum's consensus and execution clients. Simplified versioning improves maintainability, reduces complexity, and ensures smoother upgrades for developers.