Welcome to another AllCoreDevs update 👋🏻
The Gray Glacier upgrade recently went live, pushing back the difficulty bomb hopefully for the last time.
Why was this necessary? When previously delaying the bomb in the Arrow Glacier upgrade, the prediction script used to assess its impact on block times was off, and block times started rising faster than expected. Client teams therefore agreed to this pushback so they could focus on shipping The Merge in normal network conditions and avoid a degraded experience for users over the next few months.
The Nethermind team authored the EIP suggesting a new delay. They also wrote an excellent post explaining how they verified it would happen as expected, and why previous scripts were wrong. It's a shame we probably won't get to re-use the insights from it 🙃.
As per Etherscan, block times are back down to normal:
With this out of the way, back to The Merge!
We're getting closer and closer to moving away from proof-of-work on Ethereum. With Sepolia now merged, only a single testnet merge remains: Goerli/Prater.
While the validator set on Sepolia is permissioned, anyone can run a validator on Prater, and run through The Merge with Goerli. If you run a validator on mainnet, this will be your last chance to run through the entire process on a testnet.
In short, there are three things to remember for stakers:
many validators <> single EL <> single CLsetup works.
Fee Recipientaddress must be set. The good news is that these fees are paid on the EL, and therefore are immediately transferable by the address where they are received.
Again, if you haven't tested all of this, now is the time to stand up a node on a testnet and make sure things work as expected.
⚡️ If you'd like to go even further, and have your validators accept MEV-extracting blocks post-merge, you can run
mev-boost. The Flashbots team published a piece about its design and how it fits within the broader Ethereum roadmap here ⚡️
The vast majority of merge-related changes have to do with how to run a node on the network. For end-users, no action is required. Smart contract and infrastructure providers can refer to this post for a deep dive into changes which may affect them. At a high level, they are:
DIFFICULTYopcode being renamed to
PREVRANDAOand serving as an indicator of whether The Merge happened on the network (see EIP-4399)
finalizedtag in the JSON RPC API, which returns the last finalized block on the network
All these changes can currently be tested on Ropsten, Sepolia & Kiln, and will be live on Goerli once it transitions to proof-of-stake. A Merge Community Call has been scheduled for July 15th to provide an opportunity for users and developers to ask questions about all things merge-related 😁!
While there was a full announcement about this, it's worth repeating that, post-merge, the two testnets maintained by client teams will be Goerli (using Prater for its Beacon Chain) and Sepolia. Kiln, Rinkeby and Ropsten will be deprecated. Kovan has already been.
Goerli, which post-merge will refer to today's Goerli/Prater network combo, will continue having an open validator set where stakers can test things before they go live on mainnet.
Sepolia, on the other hand, has a permissioned validator set. This provides application developers with a more stable network. The chain, being relatively new, also makes it easy for users to quickly sync its state and history.
The deprecated testnets will be shut down gradually over the next year. First, Kiln will be shut down shortly after The Merge happens on mainnet. Then, Ropsten is expected to be sunset before 2023. Finally, users of Rinkeby will have ~1 year to migrate before the network stops being supported.
It is worth noting that while Ropsten and Rinkeby will not be shut down right away, they may not have the same protocol rules as the Ethereum mainnet. Rinkeby will not run through The Merge so will be one upgrade behind as soon as mainnet transitions to proof-of-stake. Similarly, while Ropsten is already post-merge, no further network upgrades will be deployed on the network. If one were to happen before 2023, Ropsten would also fall behind mainnet.
If you haven't done so, now is the time to plan your testnet migration!
In the past two months, we've had several community calls, here's an overview!
In June, a Merge Community Call provided an overview of the latest Merge progress, as well as a forum for people to ask questions about the upgrade. If you plan on attending the next one, I highly recommend watching the recording for this, as several great questions were asked. Again, the next call is scheduled for July 15, 14:00 UTC.
Also known as "proto-danksharding", EIP-4844 proposes an intermediate sharding specification for Ethereum which sets the foundation for full sharding, while also immediately enabling lower transaction fees on L2s. A full website details the proposal and its benefits. There are currently two parallel 4844 development "tracks": the preparation of a KZG Ceremony and prototype implementations of the changes in clients.
The KZG Ceremony is necessary to provide a random input for the proving scheme used to verify shard data. If that last sentence didn't make sense to you, I recommend reading pintail's excellent tweetstorm explaining the purpose of the ceremony in more detail.
At a high level, the ceremony requires specifications to be written, clients who run the specification to be implemented, a coordinating server which aggregates participants' inputs to the ceremony and extensive audits of all these things. Researchers and implementers are having regular calls to coordinate and share progress updates.
A summary of the current status of the ceremony specifications was given on a recent 4844 Breakout Call. Beyond the specs themselves, a ceremony client and coordinator were prototyped during the EthPrague hackathon! Work on the production client and coordinator implementations has also begun. A rough timeline of the implementation work, audits and public ceremony is available here.
On the 4844 Breakout, the Optimism and Coinbase teams demoed a Geth/Prysm prototype which implemented the core EIP-4844 functionality. As seen in the recording, a node pair is stood up and a file is submitted as a blob on the network. The file is then retrieved from the network, and its contents are verified to match the original. The code for the prototype is available here. This was the first time 4844 was seen working in the wild!
The rest of the call focused on various design & implementation issues related to the EIP. The notes contain an overview, and an Open Issues List will be used as a central place to track the various concerns, potential solutions and next steps in addressing them. Since the call, fixes related to blob verification times have been merged into the specs 💪.
The Ethereum Cat Herders' PEEPanEIP series usually has EIP authors go over their proposed changes and answer hosts' questions. For The Merge, the Cat Herders have recently produced both a general overview of the changes with Mikhail Kalinin, who wrote most of the merge specs, as well as a series of deep dives with client teams.
The series is still in progress, but so far we've had appearances by Erigon, Geth, Nimbus and Besu. Prysm, Nethermind and others are scheduled in the coming weeks. If you want to contribute to client diversity but aren't sure what client to use, this series provides a great overview of the various EL and CL implementations. Stay tuned for the full set of deep dives!
With Gray Glacier out of the way, client teams are now squarely focused on The Merge. Goerli being both the last testnet and the one with the largest community, we'd like its merge to resemble what we expect to happen on mainnet as much as possible. This way, stakers, node operators and developers can have one proper dress rehearsal before The Real Thing.
Keep an eye out on blog.ethereum.org and other community news sources for information about this final testnet transition! Once Goerli has successfully transitioned, there's only one more network left: mainnet 🚢