Ethereum All Core Developers Call #144 Writeup
Ethereum core developers concluded their 144th All Core Developers (ACD) call on Thursday, August 4. Developers confirmed plans to tentatively pencil out dates for the mainnet Merge activation during next Thursday’s developer call on August 11th after the completion of the Merge upgrade on the third and final Ethereum testnet, Goerli. The Merge is expected to activate on Goerli some time between August 6th and 12th. Assuming the upgrade goes smoothly, developers agreed on this week’s call to move forward with setting dates for the Merge on Ethereum shortly thereafter. In addition, Flashbot’s Chris Hager gave an update on testing around MEV-Boost software for the Merge upgrade. He emphasized that the Flashbots team is planning on open-sourcing the code for a production-ready relay early next month. Finally, developers discussed potential changes to the Ethereum Improvement Proposal (EIP) process in light of continued work on Ethereum’s executable code specifications.
Starting with the discussion around mainnet Merge timing, chair of the ACD calls Tim Beiko raised this issue by first explaining that in roughly two weeks, the hardware requirements for mining Ethereum would surpass a key threshold. Specifically, mining machines on Ethereum will soon need more than 5GB of Random Access Memory (RAM) to continue securing the chain. This may cause certain mining machines to become obsolete and unusable for mining on Ethereum and thereby cause a dip in the total network hashrate. Estimations of Ethereum’s hashrate are crucial for calculating a total terminal difficulty (TTD) value on which to activate the Merge upgrade. For more background on why the Merge will activate at a TTD value, click here.
The required RAM for Ethereum mining hardware is expected to exceed 5GB around August 17th. It is unclear how many mining machines will incapable of operating on Ethereum and by how much the network hashrate will drop as a result. Even so, developers were adamant that a tentative TTD value should be picked shortly after the Goerli Merge activation. If the Merge on Goerli executes smoothly then developers are expected to discuss dates for activating the upgrade on mainnet during next Thursday’s developer call on August 11th and start preparing final software client releases for the Merge accordingly. If hashrate declines significantly because of the change in hardware requirements for Ethereum miners thereafter, developers agreed to adjust the TTD value accordingly on the fly and still aim to publish final client releases for the Merge by the week of August 22nd. Final client releases by August 22nd would mean that the Merge activation process on mainnet could start as early as the week of September 5th and conclude the week of September 19th. For a step-by-step breakdown of the Merge activation process, click here.
Preparations for the Merge activation on Goerli are progressing smoothly. Today, the first step of the Merge activation was completed with the Bellatrix hard fork successfully being activated on the Prater blockchain. As background, Prater is a testnet version of Ethereum’s proof-of-stake blockchain, also called the Beacon Chain. Before the Bellatrix upgrade, validators on Prater were achieving a roughly 90% attestation performance, according to Ethereum Foundation’s Parithosh Jayanthi. Post-Bellatrix, the attestation performance of validators dropped to roughly 81%. The missing attestations from validators are likely because of non-upgraded nodes, Jayanthi said.
One curious phenomenon that developers noticed following the Bellatrix upgrade on Prater was that validator nodes running Teku client software was not communicating with other nodes running Prysm client software. While the details around the issue were not disclosed in much detail during the call, both teams explained the issue had already since been fixed. Now that Prater has successfully upgraded, the next step in the Merge activation will be hitting the TTD threshold on Goerli. Once a TTD value of 10790000 is reached, the Goerli blockchain will merge with the Prater blockchain and begin relying exclusively on Prater’s proof-of-stake consensus protocol for network finality. Developers encouraged any and all node operators on Prater to upgrade their devices if they haven’t already and pointed to this blog post for further details around the latest Ethereum software client releases.
Aside from the Bellatrix hard fork on Prater, developers also activated their 6th shadow fork of the Goerli testnet. For background on shadow forks, click here. 30% of validators participating in the shadow fork was running MEV-Boost. MEV-Boost is an optional software that Ethereum validators can run to earn revenue from maximal extractable value. For more background on MEV-Boost, click here. The results of the shadow fork were positive. Only a handful of node operators failed to stay online after Merge activation due to insufficient disk space or not enough time to sync to the canonical chain. Developers did notice that certain validator nodes based out of India that was using MEV-Boost ran into trouble connecting to third-party relays based out of the U.S due to high network latency. As background, relays are the infrastructure that allows block builders to communicate and propose blocks containing MEV to validators.
On the topic of relays, Chris Hager from the Flashbots team gave a short update on Thursday’s call about the relay that would be operated by Flashbots post-Merge. In efforts to encourage multiple third-party relays for validators to connect to, Flashbots will be aiming to open source their relay software early next month. Hager had mentioned the Flashbots team was considering publishing the code under an Affero General Public License which would mean that all copies or redistributions of the code will require users to publish any changes they may or may not have made to the original software. However, other developers believed the software should be published under other licenses such as the unlicense. Ultimately, it was agreed that further discussion around the licensing of Flashbots relay could be worked out in public forums on GitHub. Hager stressed that even before the code for the official Flashbots relay is released, there is a more experimental version of the Flashbots relay that is already open source and available for interested parties to rely on as a guide.
Finally on the topic of Merge preparations, developer Mikhail Kalinin raised an important question for execution layer (EL) client teams around block propagation near the time of the Merge. As background, it is important for EL clients during the Merge transition to continuing processing and propagating blocks generated by proof-of-work (PoW) until the Beacon Chain, also called the consensus layer (CL) of Ethereum, becomes finalized. Post-Merge, finalization is reached after 2 epochs, which last 12.8 minutes. Kalinin asked on Thursday’s call what the behavior of EL clients were when handling and propagating unprocessed proof-of-work blocks before network finalization is reached. Representatives of most EL client teams including Nethermind, Erigon, and Besu explained they weren’t entirely sure and would double check following the meeting.
Ethereum Improvement Proposal (EIP) Process
Nearer to the end of Thursday’s call, developers discussed potential changes to the EIP process in light of ongoing progress on Ethereum’s executable specifications. Executable specifications refer to human-readable code that can be used by developers to track changes in the core protocol of Ethereum. Also, at a very basic level, the specifications can be relied on to affirm whether an Ethereum block is valid and follows all the rules of network consensus. CL developers have always maintained a Python implementation of the executable specs for the Beacon Chain. However, it is only over the last year or so that EL developers have started to build out a dedicated Python implementation of all the EIPs and original yellow paper of Ethereum. Developers are close to wrapping up the executable specs of Ethereum’s EL which tracks all the code changes to the network that have been made over the last seven years.
As such, developers are considering making the executable specs of Ethereum a core part of the EIP process. The EIP process is a loosely defined off-chain governance process for getting new code changes to the Ethereum protocol approved and implemented through a network-wide upgrade. At present, the EIP process is heavily backlogged due to the amount of focus being placed on the Merge upgrade and not on other code changes. However, looking ahead developers agreed that some proposals for code changes on Ethereum could benefit from relying on the executable specs by specifying and clearly outlining exactly how those specs should be changed. Ultimately, developers did not make a firm decision around whether proposing a change to the executable specs of Ethereum would be requirement for all EIPs. They agreed to continue discussing the matter over future calls and asynchronously on public forums.
The Sepolia testnet, which was the second major Ethereum testnet to undergo Merge activation in July, will be undergoing a minor hard fork upgrade on August 17th. This upgrade is primarily to improve node discovery on the network and ensure that any non-upgraded nodes are forcefully removed from the network. Further background on this upgrade here.
Developer Mikhail Kalinin proposed two low-priority changes to the Engine API for implementation some time after the Merge. The Engine API is the software the helps the EL and CL clients communicate. The first proposed change is meant to reduce redundancy when it comes to the labels associated with invalid blocks. The second proposed change is meant to make the status of pending blocks from the EL to the CL clearer and more nuanced. Further discussion on these proposals will be had during next Thursday’s developer call.
The Ethereum Foundation will be hosting the 6th community call about the upcoming Merge. All network stakeholders are encouraged to join and ask their questions around this upgrade. The call will be hosted on August 12 at 14:00 UTC. Zoom link to join the call here.