Preparing for Pectra breaking changes
This page outlines breaking changes related to the Ethereum Pectra (Prague-Electra) hard fork for chain operators and node operators on OP Stack chains. If you experience difficulty at any stage of this process, please reach out to developer support (opens in a new tab).
This page will be updated continuously with information on upgrade runbooks and timelines as they come. This based on the last Ethereum ACDC on Jan 23rd 2025. These dates are subject to change based on how devnet-6
goes. Ethereum L1 clients are expected to have a release out by Feb 3rd.
- The Pectra upgrade for Holesky L1 proposed activation is on Wed, Feb 12 at 09:32:48 UTC (
1739352768
). - The Pectra upgrade for Sepolia L1 proposed activation is on Wed, Feb 19 at 15:48:48 UTC (
1739980128
). - The Pectra upgrade for Ethereum L1 will be activated in March.
What's included in Pectra?
Pectra contains a variety of EIPs, some of which apply to the OP Stack; others do not. The following EIPs are included in Pectra as outlined in the Pectra Devnet 5 notes (opens in a new tab):
- EIP-2537: Precompile for BLS12-381 curve operations (opens in a new tab)
- EIP-2935: Save historical block hashes in state (opens in a new tab)
- EIP-6110: Supply validator deposits on chain (opens in a new tab)
- EIP-7002: Execution layer triggerable withdrawals (opens in a new tab)
- EIP-7251: Increase the MAX_EFFECTIVE_BALANCE (opens in a new tab)
- EIP-7549: Move committee index outside Attestation (opens in a new tab)
- EIP-7623: Increase calldata cost (opens in a new tab)
- EIP-7685: General purpose execution layer requests (opens in a new tab)
- EIP-7691: Blob throughput increase (opens in a new tab)
- EIP-7702: Set EOA account code (opens in a new tab)
- EIP-7840: Add blob schedule to EL config files (opens in a new tab)
For chain operators
The OP Stack is dividing the Pectra upgrade into two parts:
- Make the necessary upgrades to make sure OP Stack chains do not break when the L1 Pectra upgrade activates. We will release new versions of the OP Stack to ensure that OP Stack chains remain functional after the L1 Pectra upgrade. If you're are running a fault proof enabled chain, you will need to follow additional steps outlined below.
- Upgrade OP Stack chains to support Pectra's new features that apply to L2s. We will implement all the features of Pectra that apply to L2s and will release a new version of the OP Stack that includes these features. We will provide more information as engineering work wraps up. We are tracking the spec work in thisissue (opens in a new tab).
These following steps are necessary for every chain operator:
Update to the latest releases
The software is currently being tested and we expect the releases to be cut by the end of this week (Jan 27th to 31st).
op-node
atvTBD
op-geth
atvTBD
op-batcher
atvTBD
Verify Your Configuration
Make the following checks to verify that your node is properly configured.
op-node
andop-geth
will log their configurations at startup- Check that the Pectra time is set to
activation-timestamp
in the op-node startup logs - Check that the Pectra time is set to
activation-timestamp
in the op-geth startup logs
For fault proof enabled chains
Since the Pectra upgrade changes the derivation rules, you will need to upgrade the op-program
version used in the fault proof system to support these changes. The op-program
version used is specified via the faultGameAbsolutePrestate
setting, deployed as part of FaultDisputeGame
and PermissionedDisputeGame
contracts.
Make sure the Superchain Registry is up to date
The new op-program
release will pull the configurations from the superchain-registry (opens in a new tab). This is important because the op-challenger uses the op-program
and it needs to be aware of your chain's configuration. If your chain that not in the superchain-registry, please open a PR to add your chain to the superchain-registry (opens in a new tab).
Generate a new absolute prestate
Once we have a finalized release of the op-program
, we will provide a release tag for you to use to generate the absolute prestate. You will check out that release tag in the monorepo and run the make reproducible-prestate
command (opens in a new tab) to generate the absolute prestate.
Deploy new dispute game contracts
You will then take the absolute prestate and deploy new FaultDisputeGame
and PermissionedDisputeGame
contracts with that value.
Update the DisputeGameFactory
You will then need to update the DisputeGameFactory
to use the point to the new FaultDisputeGame
and PermissionedDisputeGame
contracts by calling DisputeGameFactory.setImplementation
. We will provide an upgrade task and script to facilitate this upgrade.
Update your op-challenger
Finally you will need to update your op-challenger
to the new release version that will be provided soon.
For OP Stack forks
We are working on a PR that will include the ability to sync L1 after the Pectra upgrade. The commits from the PR will need to be applied to your chain before Pectra goes live on L1. We will provide a link to the PR after it is complete.
For node operators
Node operators will need to upgrade to the respective releases before the activation dates.
These following steps are necessary for every node operator:
Update to the latest release
The software is currently being tested and we expect the releases to be cut by the end of this week (Jan 27th to 31st).
op-node
atvTBD
op-geth
atvTBD
Verify Your Configuration
Make the following checks to verify that your node is properly configured.
op-node
andop-geth
will log their configurations at startup- Check that the Pectra time is set to
activation-timestamp
in the op-node startup logs - Check that the Pectra time is set to
activation-timestamp
in the op-geth startup logs