- Withdrawals are coming! The Shapella network upgrade will activate on the Goerli network at epoch 162304, scheduled for 10:25:36 PM UTC on Mar. 14, 2023
- Stakers & node operators should read this post as well as the Withdrawals FAQ
- The Zhejiang testnet can be used to test Shapella functionality prior to the Goerli upgrade
- A Shapella Community Call is scheduled for 15:00 UTC on Mar. 13, 2023
- You can now sign up to receive emails for these upgrade announcements. Scroll to the bottom of the page to do so ๐ฉ
After a smooth Sepolia transition, the Shapella upgrade is now scheduled for the Goerli testnet. This is expected to be the last testnet upgrade before scheduling Shapella for the Ethereum mainnet.
This upgrade follows The Merge and enables validators to withdraw their stake from the Beacon Chain back to the execution layer. It also introduces new functionality to both the execution and consensus layer, described below.
Upgrade Specification
The Shapella upgrade combines changes to the execution layer (Shanghai) and consensus layer (Capella). The Engine API, which is used by the execution and consensus layers to communicate, is also modified in Shapella.
Shanghai
Execution layer changes included in Shanghai are available here. For reference, they are:
Note that EIP-6049 is only a deprecation warning. Client teams expect SELFDESTRUCT semantics to change in future network upgrades, but the opcode’s behavior remains unchanged in Shanghai.
Additionally, the full set of Shanghai changes can now be viewed in the Ethereum Execution Layer Specification (EELS), which is a new Python reference implementation for the execution layer.
Capella
Changes to the consensus layer for the Capella upgrade are specified in the capella directory of the v1.3.0-rc.3 specifications. At a high level, the upgrade introduces:
- Full and partial withdrawals for validators
- BLSToExecutionChange messages, which allow validators using a BLS_WITHDRAWAL_PREFIX to update it to an ETH1_ADDRESS_WITHDRAWAL_PREFIX, a prerequisite for withdrawals
- Independent state and block historical accumulators, replacing the original singular historical roots
Stakers are encouraged to read the Withdrawal FAQ for more information on how they should prepare for Capella.
Engine API
Changes to the Engine API can be found in the shanghai.md file of the execution-apis repository. In short, a WithdrawalV1 structure is introduced and added to various relevant strucutures and methods.
Client Releases
The following client releases support Shanghai & Capella on the Goerli testnet. Note that these releases are only for Goerli. A subsequent announcement will be made for the mainnet releases.
When choosing which client to run, validators should be especially mindful of the risks of running a majority client on both the EL and CL. An explainer of these risks and their consequences can be found here. An estimate of current EL and CL client distribution and guides for switching 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 avoid any issues, especially if using MEV-boost, users must downgrade to v1.5.1.
Execution Layer Goerli Releases
Note: the go-ethereum version was previously v1.11.3. To avoid potential transaction pool issues, users should update to v1.11.4.
FAQ
As an Ethereum user or Ether holder, is there anything I need to do?
In short, no.
If you use an exchange, digital wallet or hardware wallet you do not need to do anything unless you are informed to take additional steps by your exchange or wallet provider.
If you run your own Ethereum node or validator, see the next questions.
As a non-staking node operator, what do I need to do?
To be compatible with the Goerli upgrade, update your node to the version of your Ethereum client listed in the table above.
As a staker, what do I need to do?
To be compatible with the Goerli upgrade, update your node to the version of your Ethereum client listed in the table above.
We recommend reading the Withdrawal FAQ. Additionally, you can test things on the ephemeral Zhejiang testnet prior to the upgrade activating on Goerli.
Note that Goerli will be the last testnet upgrade before mainnet. In other words, last call to test your setup! If you have questions, we recommend you join the Shapella Community Call.
What happens if I am a staker or node operator and I do not participate in the upgrade?
If you are using an Ethereum client that is not updated to the latest version (listed above), your client will sync to the pre-fork blockchain once the upgrade occurs.
You will be stuck on an incompatible chain following the old rules and will be unable to send Ether or operate on the post-Shapella Ethereum network.
As an application or tooling developer, what should I do?
Shapella does not introduce breaking changes for smart contracts. Application and tooling developers should review the upgrade changes to ensure any fixes are done, or to understand how to use newly introduced functionality.
Why “Shapella”?
Upgrades to the execution layer follow Devcon city names and those to the consensus layer follow star names. “Shapella” is the combination of Shanghai, the location of Devcon 2, and Capella, the brightest star in the northern constellation of Auriga.
Where Can I Monitor The Upgrade?
EthStaker are hosting a livestream during the Goerli upgrade. You can view it here.
Help – I Still Have Questions!
If you have more questions, you can join the Shapella Community Call on March 13 at 15:00 UTC. Client developers, researchers, and others will be there to answer questions.
Cover image by Yiran Ding