- Withdrawals are on the horizon! The Shapella network upgrade will commence on the Goerli network at epoch 162304, projected for 10:25:36 PM UTC on Mar. 14, 2023
- Stakers & node operators ought to review this post as well as the Withdrawals FAQ
- The Zhejiang testnet can be utilized to evaluate Shapella features before the Goerli upgrade
- A Shapella Community Call is slated for 15:00 UTC on Mar. 13, 2023
- You can now register to obtain emails regarding these upgrade updates. Scroll to the bottom of the page to proceed 📩
Following a seamless Sepolia transition, the Shapella upgrade is now anticipated for the Goerli testnet. This is expected to be the final testnet upgrade prior to scheduling Shapella for the Ethereum mainnet.
This upgrade follows The Merge and allows validators to withdraw their stake from the Beacon Chain back to the execution layer. It also brings new capabilities to both the execution and consensus layers, detailed below.
Upgrade Specification
The Shapella upgrade integrates modifications to the execution layer (Shanghai) and consensus layer (Capella). The Engine API, which facilitates communication between the execution and consensus layers, is also altered in Shapella.
Shanghai
Execution layer modifications included in Shanghai can be found here. For reference, they include:
Please note that EIP-6049 is merely a deprecation warning. Client development teams anticipate that SELFDESTRUCT mechanics may evolve in subsequent network upgrades, but the opcode’s function remains unchanged in Shanghai.
Furthermore, the complete set of Shanghai modifications can now be accessed in the Ethereum Execution Layer Specification (EELS), which serves as a new Python reference implementation for the execution layer.
Capella
Modifications to the consensus layer for the Capella upgrade are outlined in the capella directory of the v1.3.0-rc.3 specifications. In broad terms, the upgrade presents:
- Complete and partial withdrawals for validators
- BLSToExecutionChange messages, which allow validators using a BLS_WITHDRAWAL_PREFIX to modify it to an ETH1_ADDRESS_WITHDRAWAL_PREFIX, a requisite for withdrawals
- Separate state and block historical accumulators, replacing the original singular historical roots
Stakers are prompted to consult the Withdrawal FAQ for further details on preparing for Capella.
Engine API
Amendments to the Engine API are documented in the shanghai.md file within the execution-apis repository. In summary, a WithdrawalV1 structure is introduced and integrated into various pertinent structures and methods.
Client Releases
The following client releases support Shanghai & Capella on the Goerli testnet. Note that these releases are exclusively for Goerli. A future announcement will follow regarding the mainnet releases.
When deciding which client to operate, validators should be particularly cautious of the dangers associated with running a majority client on both the EL and CL. An explanation of these dangers and their repercussions can be found here. An approximation of current EL and CL client distribution and guides for transitioning from one client to another can be found here.
Consensus Layer Goerli Releases
Note: the Lodestar version was previously v1.6.0-rc.0. To sidestep any complications, especially when using MEV-boost, users must roll back to v1.5.1.
Execution Layer Goerli Releases
Note: the go-ethereum version was previously v1.11.3. To prevent potentialtransaction pool concerns, individuals need to upgrade to v1.11.4.
FAQ
As an Ethereum user or Ether holder, is there any action required on my part?
In brief, no.
If you utilize an exchange, digital wallet, or hardware wallet, there is no need to take any action unless instructed otherwise by your exchange or wallet provider.
If you operate your own Ethereum node or validator, please refer to the following inquiries.
As a non-staking node operator, what should I do?
To align with the Goerli upgrade, ensure your node is updated to the version of your Ethereum client provided in the table above.
As a staker, what actions should I take?
To be compatible with the Goerli upgrade, make sure your node is updated to the version of your Ethereum client stated in the table above.
We suggest reviewing the Withdrawal FAQ. Furthermore, you can experiment on the ephemeral Zhejiang testnet before the upgrade is implemented on Goerli.
Keep in mind that Goerli will be the final testnet upgrade preceding mainnet. In other words, last opportunity to test your configuration! If you have inquiries, we encourage you to join the Shapella Community Call.
What occurs if I am a staker or node operator and I do not take part in the upgrade?
If you are utilizing an Ethereum client that has not been updated to the latest version (as indicated above), your client will synchronize with the pre-fork blockchain once the upgrade is executed.
You will find yourself on an incompatible chain adhering to the older rules and will be unable to send Ether or function on the post-Shapella Ethereum network.
As an application or tooling developer, what should I do?
Shapella does not introduce any breaking alterations for smart contracts. Developers of applications and tools should examine the upgrade modifications to verify that any necessary adjustments are made, or to comprehend how to utilize newly available functionalities.
Why is it named “Shapella”?
Upgrades to the execution layer are named after Devcon city names, while those for the consensus layer are named after stars. “Shapella” merges Shanghai, the site of Devcon 2, and Capella, the brightest star in the northern constellation of Auriga.
Where Can I Observe The Upgrade?
EthStaker will be hosting a livestream during the Goerli upgrade. You can watch it here.
Help – I Still Have Queries!
If you have additional queries, you can join the Shapella Community Call on March 13 at 15:00 UTC. Client developers, researchers, and others will be present to address your questions.
Cover image courtesy of Yiran Ding