Skip to content

Commit 87f376b

Browse files
authored
Merge pull request #1490 from ethereum-optimism/sb/pectra-u12a-update
Sb/pectra u12a update
2 parents ebcd24a + d96916a commit 87f376b

File tree

2 files changed

+42
-27
lines changed

2 files changed

+42
-27
lines changed

pages/notices/pectra-changes.mdx

Lines changed: 36 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,14 @@ import { Steps, Callout } from 'nextra/components'
1919

2020
# Preparing for Pectra breaking changes
2121

22+
<Callout type="warning">
23+
Please note that this notice page was updated March 11th, 2025. There was a bug found in previous op-node releases where the L1 Block's blob base fee (for the sake of computing the L1 fees) is calculated with pre-Prague=Cancun blob schedule parameters, instead of using the Prague parameters. This bug has been fixed in the latest release of op-node.
24+
25+
This is not a critical issue on any OP Sepolia chain. However, when L1 blob base fees rise to 100 Mwei or higher on Sepolia, there is a temporary liveness risk, because we'd be overcharge L1 fees. Essentially, our L1 cost computation now overcharges by an exponential of 1.5, BBF\_Cancun = `BBF_Prague^1.5` (where BBF=blob base fee).
26+
27+
You must update your Sepolia nodes to the latest release of op-node to avoid this issue. There are new instuctions in the node operator section to help you mitigate this issue.
28+
</Callout>
29+
2230
This page outlines breaking changes related to the Ethereum Pectra (Prague-Electra) hard fork for chain operators and node operators on OP Stack chains. The OP Stack is dividing the Pectra upgrade into two parts:
2331

2432
1. **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 running a fault proof enabled chain, you will need to follow additional steps outlined below.
@@ -30,9 +38,10 @@ If you experience difficulty at any stage of this process, please reach out to [
3038
This page will be updated continuously with information on upgrade runbooks and timelines as they come. Here's the tentative L1 Pectra hard fork times per the ACDC that happened on Feb 6th:
3139

3240
L1 Client testnet releases out by Feb 13 (ACDE):
33-
* Holesky slot: `1740434112` (Mon, Feb 24 at 21:55:12 UTC)
34-
* Sepolia slot: `1741159776` (Wed, Mar 5 at 07:29:36 UTC)
35-
* +30 day mainnet slot: `1744154711` (Tue, Apr 8 at 23:25:11 UTC)
41+
42+
* Holesky slot: `1740434112` (Mon, Feb 24 at 21:55:12 UTC)
43+
* Sepolia slot: `1741159776` (Wed, Mar 5 at 07:29:36 UTC)
44+
* +30 day mainnet slot: `1744154711` (Tue, Apr 8 at 23:25:11 UTC)
3645
</Callout>
3746

3847
## What's included in Pectra?
@@ -61,52 +70,55 @@ Node operators will need to upgrade to the respective releases before the activa
6170
Full node operators, meaning those who are running op-geth with `gc-mode=full`, will need to reference the [`op-geth v1.101411.8`release notes](https://github.com/ethereum-optimism/op-geth/releases/tag/v1.101411.8) to handle an intermediate upgrade step before upgrading to the latest release. Archive node operators, `gc-mode=archive`, can skip this step and upgrade directly to the latest release.
6271
</Callout>
6372

64-
* `op-node` at [`v1.11.1`](https://github.com/ethereum-optimism/optimism/releases/tag/op-node%2Fv1.11.1)
65-
* `op-geth` at [`v1.101500.0`](https://github.com/ethereum-optimism/op-geth/releases/tag/v1.101500.0)
73+
* `op-node` at [`v1.12.0`](https://github.com/ethereum-optimism/optimism/releases/tag/op-node%2Fv1.12.0)
74+
* `op-geth` at [`v1.101503.0`](https://github.com/ethereum-optimism/op-geth/releases/tag/v1.101503.0)
6675
* `op-reth` at [`v1.2.0`](https://github.com/paradigmxyz/reth/releases/tag/v1.2.0) also includes L1 Pectra support.
6776

77+
For node operators of not included in the [hardfork activation inheritance behavior](https://github.com/ethereum-optimism/superchain-registry/blob/main/docs/hardfork-activation-inheritance.md), you will need to manually configure the activation. This can be done one of two ways:
78+
79+
* **Option 1:** Set the `pectrablobschedule` activation time in the `rollup.json` for `op-node`.
80+
* **Option 2:** Set the activation time via overrides (CLI) in `op-node`. These will need to be set on `op-node` for the sequencer and all other nodes.
81+
82+
You do not need to specify an override for `op-geth`, but you will need to update it to the latest release.
83+
6884
## For chain operators
6985

7086
The following sections are how chain operators can prepare the first part of the OP Stack's Pectra L1 support. This ensures OP Stack chains do not break when the L1 Pectra upgrade activates. Every chain operator will need to:
7187

7288
<Steps>
73-
7489
### Update your node binaries
7590

76-
Follow the guidance outlined in the [Node Operator section](#update-to-the-latest-release) to update your nodes to the latest releases.
91+
Follow the guidance outlined in the [Node Operator section](#update-to-the-latest-release) to update your nodes to the latest releases.
7792

7893
### Update your batcher and proposer
7994

8095
Update your binaries to:
8196

82-
* [`op-batcher/v1.11.4`](https://github.com/ethereum-optimism/optimism/releases/tag/op-batcher%2Fv1.11.4).
97+
* [`op-batcher/v1.11.5`](https://github.com/ethereum-optimism/optimism/releases/tag/op-batcher%2Fv1.11.5).
8398
* [`op-proposer/v1.10.0`](https://github.com/ethereum-optimism/optimism/releases/tag/op-proposer%2Fv1.10.0).
84-
8599
</Steps>
86100

87-
88101
## For fault proof enabled chains
89102

90103
<Callout type="info">
91104
The following instructions assume your chain is on the latest contract release `op-contracts/v1.8.0` and has Holocene activated.
92105
</Callout>
93106

94-
All fault proof enabled chains (both permisionless and permissioned fault proof systems) need to update their `op-challenger` binary to [`op-challenger/v1.3.1`](https://github.com/ethereum-optimism/optimism/releases/tag/op-challenger%2Fv1.3.1).
107+
All fault proof enabled chains (both permisionless and permissioned fault proof systems) need to update their `op-challenger` binary to [`op-challenger/v1.3.1`](https://github.com/ethereum-optimism/optimism/releases/tag/op-challenger%2Fv1.3.1).
95108

96-
The following steps are to update your absolute prestate with new dispute game contracts. **This is absolutely necessary for chains running permissionless fault proofs.** For chains running the Fault Proof System with permissioned games you can skip this section because games will not be played out and the absolute prestate is not used.
109+
The following steps are to update your absolute prestate with new dispute game contracts. **This is absolutely necessary for chains running permissionless fault proofs.** For chains running the Fault Proof System with permissioned games you can skip this section because games will not be played out and the absolute prestate is not used.
97110

98111
The Pectra upgrade changes the derivation rules, permissionless fault proof chains 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.
99112

100113
<Steps>
101-
102114
### Verify the new absolute prestate
103115

104-
The absolute prestate is generated with the [op-program/v1.5.0-rc.2](https://github.com/ethereum-optimism/optimism/tree/op-program/v1.5.0-rc.2). You can use this new absolute prestate (`0x035ac388b5cb22acf52a2063cfde108d09b1888655d21f02f595f9c3ea6cbdcd`) for the following chains:
116+
The absolute prestate is generated with the [op-program/v1.5.0-rc.4](https://github.com/ethereum-optimism/optimism/tree/op-program/v1.5.0-rc.4). You can use this new absolute prestate (`0x0354eee87a1775d96afee8977ef6d5d6bd3612b256170952a01bf1051610ee01`) for the following chains:
105117

106118
* Sepolia: Base, OP, Metal, Mode, Zora, Ethernity, Unichain, Ink, Minato (Soneium)
107119
* Mainnet: Base, OP, Orderly, Lyra, Metal, Mode, Zora, Lisk, Ethernity, Binary, Ink, Unichain, Soneium
108120

109-
You can verify this absolute prestate by running the following [command](https://github.com/ethereum-optimism/optimism/blob/3f18df1c8a502136bbe33f10ed1e29a26cd4678a/Makefile#L129-L131) in the root of the monorepo on the `op-program/v1.5.0-rc.2` tag:
121+
You can verify this absolute prestate by running the following [command](https://github.com/ethereum-optimism/optimism/blob/0026006e6a7a482332a7833876f915acb9dff4c6/Makefile#L129-L131) in the root of the monorepo on the `op-program/v1.5.0-rc.4` tag:
110122

111123
```shell
112124
make reproducible-prestate
@@ -115,18 +127,18 @@ The Pectra upgrade changes the derivation rules, permissionless fault proof chai
115127
You should expect the following output at the end of the command:
116128

117129
```shell
118-
Cannon Absolute prestate hash:
119-
0x035ac388b5cb22acf52a2063cfde108d09b1888655d21f02f595f9c3ea6cbdcd
120-
Cannon64 Absolute prestate hash:
121-
0x03a7d967025dc434a9ca65154acdb88a7b658147b9b049f0b2f5ecfb9179b0fe
122-
CannonInterop Absolute prestate hash:
123-
0x0379d61de1833af6766f07b4ed931d85b3f6282508bbcbf9f4637398d97b61c1
130+
Cannon Absolute prestate hash:
131+
0x0354eee87a1775d96afee8977ef6d5d6bd3612b256170952a01bf1051610ee01
132+
Cannon64 Absolute prestate hash:
133+
0x03ee2917da962ec266b091f4b62121dc9682bb0db534633707325339f99ee405
134+
CannonInterop Absolute prestate hash:
135+
0x03673e05a48799e6613325a3f194114c0427d5889cefc8f423eed02dfb881f23
124136
```
125137

126138
### Upload your new preimage file
127139

128-
During the previous step, you also generated the preimage of the absolute prestate, which is basically the op-program serialized into a binary file. You'll find that new file at `optimism/op-program/bin/prestate.bin.gz`. Rename that file to have the absolute prestate hash as the filename so it looks like `0x035ac388b5cb22acf52a2063cfde108d09b1888655d21f02f595f9c3ea6cbdcd.bin.gz`.
129-
140+
During the previous step, you also generated the preimage of the absolute prestate, which is basically the op-program serialized into a binary file. You'll find that new file at `optimism/op-program/bin/prestate.bin.gz`. Rename that file to have the absolute prestate hash as the filename so it looks like `0x0354eee87a1775d96afee8977ef6d5d6bd3612b256170952a01bf1051610ee01.bin.gz`.
141+
130142
Upload that file to where you're storing your other absolute preimage files. This should be the location where you're pointing your `--cannon-prestates-url` at. The `op-challenger` will grab this file and use it when it needs to challenge games.
131143

132144
### Deploy new dispute game contracts
@@ -137,7 +149,7 @@ The Pectra upgrade changes the derivation rules, permissionless fault proof chai
137149

138150
You will then need to update the `DisputeGameFactory` to point to the new `FaultDisputeGame` and `PermissionedDisputeGame` contracts by calling `DisputeGameFactory.setImplementation`. You can utilize this [template](https://github.com/ethereum-optimism/superchain-ops/tree/main/tasks/sep/fp-recovery/005-set-game-implementation) to generate the transaction and validation script for this step. Before executing, you will need to update your op-challenger.
139151

140-
### Execute the upgrade
152+
### Execute the upgrade
141153

142154
Once your `op-challenger` is ready with the new preimage, you can execute the "Set Dispute Game Implementation" transaction. Please simulate and validate that the expected output prior to executing the transaction.
143155
</Steps>

words.txt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@ inator
173173
INFLUXDBV
174174
influxdbv
175175
initcode
176+
instuctions
176177
IPCDISABLE
177178
ipcdisable
178179
ipcfile
@@ -238,9 +239,9 @@ NETRESTRICT
238239
netrestrict
239240
NETWORKID
240241
networkid
241-
nextra
242242
NEWPAYLOAD
243243
newpayload
244+
nextra
244245
NOCOMPACTION
245246
nocompaction
246247
NODEKEY
@@ -315,11 +316,12 @@ PRICELIMIT
315316
pricelimit
316317
productionize
317318
productionized
318-
Proxied
319319
Protip
320+
Proxied
320321
Proxyd
321322
proxyd
322323
Pyth
324+
Pyth's
323325
QRNG
324326
Quicknode
325327
quicknode
@@ -339,20 +341,21 @@ replayor
339341
reposts
340342
REQUIREDBLOCKS
341343
requiredblocks
342-
rpcs
343344
rollouts
344345
Rollups
345346
rollups
346347
Routescan
347348
rpckind
348349
RPCPREFIX
349350
rpcprefix
351+
rpcs
350352
RPGF
351353
Runbooks
352354
runbooks
353355
RWAs
354356
safedb
355357
Schnorr
358+
SEPOLIA
356359
Sepolia
357360
sepolia
358361
seqnr

0 commit comments

Comments
 (0)