op-node v1.12.0 - L1 Pectra Readiness & Sepolia Pectra Blob Schedule Fix
Overview
Caution
If you're upgrading a Sepolia or Holesky node, you must take additional steps before upgrading to this (or a later) release!
Unless the chain of the node you're upgrading is in the following list of chains that have the Sepolia Pectra Blob Schedule fix already scheduled via their superchain-registry configuration, you must schedule the fix via rollup.json
or overrides before upgrading!
List of chains that have the fix already scheduled:
soneium-minato, zora, op, unichain, base, mode, metal, creator-chain-testnet, ink, ethernity
If your chain is in this list, you must upgrade by 3/20 and no additional steps need to be taken before the upgrade.
If your chain is not in this list, you need to schedule the Pectra Blob Schedule fix to a timestamp that the chain's operator must decide on and publish to all its node operators.
See the section "Sepolia Pectra Blob Schedule Fix" below for additional details.
Caution
This release also supersedes any op-node/v1.11.x release for L1 Pectra Readiness. So mainnet node operators must also upgrade to this release by the time Ethereum mainnet activates Pectra. No additional steps must be taken for mainnet chains.
Important
All node operators must also upgrade op-geth to v1.101503.0.
This upgrade is mandatory for all node operators!
Sepolia Pectra Blob Schedule Fix
This release contains a critical fix for all chains in the Sepolia Superchain that activates on Thu Mar 20 16:00:00 UTC 2025
(unix timestamp 1742486400
). All OP-Stack Sepolia chains, including OP Sepolia, are currently sequencing an unintended chain. The L1 Info Block's blob base fee is calculated with pre-Prague=Cancun blob schedule parameters.
This is not a critical security issue on any OP Sepolia chain. When L1 blob base fees rise to 100 Mwei or higher on Sepolia, there is a temporary liveness risk, because L1 fees may be massively overcharged if the blob base fee scalar is set to a non-zero value. The overcharge is exponential in the Prague blob base fee, BBF_Cancun = BBF_Prague^1.5
(BBF=blob base fee).
There’s no impact on any mainnet chain, and this bug won’t trigger with the Mainnet Pectra activation because this releases already includes the correct blob base fee calculation for when Ethereum Mainnet activates Pectra.
How to activate the fix
If a Sepolia chain is in the superchain-registry at this commit and had their superchain_time
set, then activation of this fix on 3/20 is included in this release. This is the case for: soneium-minato, zora, op, unichain, base, mode, metal, creator-chain-testnet, ink, ethernity
Otherwise, this fix must be scheduled to activate at some point in the near future using either a new entry in the rollup.json
or using the op-node flag --override.pectrablobschedule
or env var $OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE
- before upgrading to this or a later release! Nothing needs to be set for op-geth. So for example, if you want to activate this fix on the same timestamp as the Sepolia Superpchain, you'd set "pectra_blob_schedule_time": 1742486400
in the rollup.json
or --override.pectrablobschedule=1742486400
via the flag.
In particular, the following chains also need to manually schedule this fix before upgrading: arena-z-testnet, cyber, funki, lisk, pivotal, race, shape, tbn, worldchain. These chains are in the superchain-registry, but did not opt in to superchain upgrades because they don't have the superchain_time
set in their config.
Who's affected
All chains where the sequencer was running op-node/v1.11.2
or earlier, or a custom op-node built from a monorepo commit prior to #14500 (commit aabf3fe) are affected, if the chain's L1 activated Pectra (Holesky, Sepolia, any custom L1 with Pectra).
This also means that if a sequencer was running a newer custom built during the Holesky or Sepolia Pectra activation, this fix must not be scheduled.
op-geth update
This release updates the op-geth
dependency to v1.101503.0
, which contains all upstream geth changes up to release v1.15.3.
What's Changed
- op-signer, op-node: fix block signer utils by @protolambda in #14478
- events: Increase Maximum Queue Size 10x by @axelKingsley in #14483
- all: update op-geth to v1.101500.1 by @sebastianst in #14500
- op-node: Remove OverrideMessageExpiryTimeInterop from rollup.Config by @Inphi in #14554
- op-service: check if TLS is enabled and move middleware by @protolambda in #14571
- op-node: drop stale todo in finality code by @protolambda in #14620
- isthmus: operator fee by @yuwen01 in #12166
- all: update op-geth to v1.101503.0 by @geoknee in #14560
- op-node: continue sequencing when
L1TemporaryErrorEvent
happens by @zhiqiangxu in #14062 - all: Implement optional PectraBlobSchedule fork/feature by @sebastianst in #14680
- Don't split log.msg by @trianglesphere in #14735
- go: update SR to cb1b645b35813b8dd3a900b9f99c46614e466a2c via op-geth by @sebastianst in #14755
New Contributors
- @Hugoo made their first contribution in #14340
- @ec2 made their first contribution in #14354
- @NaijaCoderGirl made their first contribution in #14525
- @rebustron made their first contribution in #14519
- @yuwen01 made their first contribution in #12166
- @dpulitano made their first contribution in #14655
Full Changelog: op-node/v1.11.2...op-node/v1.12.0
🚢 Docker Image https://us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.0