- Withdrawals are on the way! The Shapella network upgrade will go live on the Goerli network at epoch 162304, set for 10:25:36 PM UTC on Mar. 14, 2023
- Stakers & node operators should review this post in addition to the Withdrawals FAQ
- The Zhejiang testnet is available for testing Shapella features ahead of the Goerli upgrade
- A Shapella Community Call will take place at 15:00 UTC on Mar. 13, 2023
- You can subscribe to receive email notifications about these upgrades. Scroll to the page’s bottom to sign up
Following a successful Sepolia transition, the Shapella upgrade is now set for the Goerli testnet. This is anticipated to be the final testnet upgrade prior to scheduling Shapella for the Ethereum mainnet.
This upgrade builds upon The Merge and permits validators to withdraw their staked assets from the Beacon Chain back to the execution layer. It also introduces new features to both the execution and consensus layers, explained below.
Upgrade Specification
The Shapella upgrade integrates modifications to the execution layer (Shanghai) and consensus layer (Capella). The Engine API, used by both layers for communication, is also updated in Shapella.
Shanghai
Execution layer updates included in Shanghai are detailed here. For reference, they include:
Please note that EIP-6049 serves solely as a deprecation warning. Client teams anticipate changes to SELFDESTRUCT semantics in future network updates, though the opcode’s behavior remains intact in Shanghai.
Moreover, the complete set of Shanghai modifications is now accessible in the Ethereum Execution Layer Specification (EELS), which serves as a new Python reference implementation for the execution layer.
Capella
The consensus layer modifications for the Capella upgrade are outlined in the capella directory of the v1.3.0-rc.3 specifications. Broadly, the upgrade provides:
- Full and partial withdrawals for validators
- BLSToExecutionChange messages, facilitating validators using a BLS_WITHDRAWAL_PREFIX to modify it to an ETH1_ADDRESS_WITHDRAWAL_PREFIX, a requirement for withdrawals
- Separate state and block historical accumulators, replacing the previous singular historical roots
Stakers are advised to consult the Withdrawal FAQ for more details on how to prepare for Capella.
Engine API
Updates to the Engine API can be accessed in the shanghai.md file within the execution-apis repository. In summary, a WithdrawalV1 structure has been introduced and incorporated into various pertinent structures and methods.
Client Releases
The following client releases are compatible with Shanghai & Capella on the Goerli testnet. Note that these versions are only for Goerli. An announcement regarding mainnet releases will follow.
When selecting a client to operate, validators should carefully consider the risks of running a predominant client on both the EL and CL. An explanation of these risks and their implications can be found here. Current estimates of EL and CL client distribution and guides for changing from one client to another are available here.
Consensus Layer Goerli Releases
Note: the Lodestar version was previously v1.6.0-rc.0. To avoid any problems, especially if utilizing MEV-boost, users must revert to v1.5.1.
Execution Layer Goerli Releases
Note: the go-ethereum version was previously v1.11.3. To prevent potential transaction pool complications, users should upgrade to v1.11.4.
FAQ
As an Ethereum user or Ether holder, is there anything I need to do?
In brief, no.
If you are using an exchange, digital wallet, or hardware wallet, no action is necessary unless your exchange or wallet provider instructs you to undertake additional steps.
If you operate your own Ethereum node or validator, refer to the subsequent inquiries.
As a non-staking node operator, what do I need to do?
To align with the Goerli upgrade, update your node to the Ethereum client version specified in the table above.
As a staker, what do I need to do?
To align with the Goerli upgrade, update your node to the Ethereum client version specified in the table above.
We recommend reviewing the Withdrawal FAQ. Furthermore, you can test processes on the transient Zhejiang testnet before the upgrade goes live on Goerli.
Please note that Goerli will be the last testnet upgrade before mainnet. In other words, last opportunity to verify your setup! If you have inquiries, we recommend joining the Shapella Community Call.
What occurs if I am a staker or node operator and I do not engage in the upgrade?
If you are operating an Ethereum client that hasn’t been updated to the latest version (as listed above), your client will sync to the pre-fork blockchain once the upgrade takes place.
You will be stuck on an incompatible chain adhering to the prior rules and will be unable to send Ether or engage in 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 modifications to ensure any necessary fixes are applied or to familiarize themselves with the newly introduced features.
Why “Shapella”?
Upgrades to the execution layer employ city names from Devcon, while those to the consensus layer are titled after stars. “Shapella” combines Shanghai, where Devcon 2 took place, and Capella, the brightest star in the northern constellation Auriga.
Where Can I Watch The Upgrade?
EthStaker is hosting a livestream during the Goerli upgrade. You can watch it here.
Help – I Still Have Questions!
If you have further questions, feel free to join the Shapella Community Call on March 13 at 15:00 UTC. Client developers, researchers, and others will be present to address queries.
Cover image by Yiran Ding