op-node implements the rollup-node spec, functioning as the consensus layer (CL) client of an OP Stack chain. It builds, relays, and verifies the canonical L2 chain, working alongside an execution layer client such as op-reth.Documentation Index
Fetch the complete documentation index at: https://docs.optimism.io/llms.txt
Use this file to discover all available pages before exploring further.
[!NOTE] Optional upgrade. This upgrade bumps op-geth and contains a few QOL improvements to op-node.View full release on GitHub →
This is an optional release containing only metrics changes.View full release on GitHub →
[!NOTE] This release removes flags and environment variables related to protocol versions:🤝 The corresponding op-geth release is v1.101702.2.View full release on GitHub →--rollup.haltand--rollup.load-protocol-versions.
This release includes new NUT bundle updates for Karst, improvements to signer rotation, removes/relaxes deprecated ProtocolVersions code and fixes bugs in engine-controller management.This version includes Superchain Registry updates for Worldchain and is a required update for that networkView full release on GitHub →
[!NOTE] This is an optional release that only contains changes for in-development features.View full release on GitHub →
This release is optional, however we recommend updating as it includes stability fixes.⚠️ Req/Res CL P2P Sync — By Default Is DisabledAs previously communicated, we are deprecating the Req/Res CL P2P sync protocol in op-node.
--syncmode.req-resp flag now defaults to false, meaning Req/Res CL P2P sync is disabled by default.Operators that rely on Req/Resp sync should explicitly set the flag to true and also update their infrastructure with a healthy EL p2p network.🤝 The corresponding op-geth version is v1.101702.1.What’s Changed in op-node/v1.16.12
- op-node: disable Req/Resp p2p sync by default (
--syncmode.req-resp=false). Operators that rely on Req/Resp sync should explicitly set the flag totrue(#18088) - all: upgrade the bundled op-geth dependency for this release candidate (#19844)
- supernode: use denylist output when computing
OptimisticOutputRoot, improving optimistic output behavior around invalidated blocks (#19880) - op-service / flashblocks: refactor flashblocks coverage and fix a shutdown race in the flashblock client (#19942, #19950)
- feat(nuts): add
update-nutsandverify-nutscommands for bundle snapshotting and provenance verification (#19463) - fault proof test infra: migrate end-to-end fault proof coverage from
CANNONtoCANNON_KONA(#19791) - contracts / dev tooling: remove legacy OPCMv1 Solidity paths and align related deployer/devstack code with OPCMv2-only flows (#19795)
This release is optional, however we recommend updating as it includes stability fixes.The corresponding op-geth version is v1.101701.0.View full release on GitHub →
This release is optional; however, we recommend updating as it includes a Go version upgrade addressing security fixes, along with enhanced container image hardening.🤝 The corresponding op-geth version is v1.101701.0.View full release on GitHub →
[!WARNING] This is an essential release due to security fixes in op-geth.🤝 The corresponding op-geth version is v1.101701.0.View full release on GitHub →
[!WARNING] This is an essential release due to security fixes in op-geth.🤝 The corresponding op-geth version is v1.101609.2.View full release on GitHub →
This is an optional release containing minor optimizations and refactors.View full release on GitHub →
This is a maintenance release.🤝 The corresponding op-geth release is v1.101608.0.
What’s Changed in op-node/v1.16.6
- all: upgrade op-geth (upstream v1.16.8) by @joshklop in #18338
- op-supernode: multiplex metrics by chain_id label and serve at a single endpoint by @geoknee in #18750
[!WARNING] The corresponding release for op-geth includes security fixes and thus this an essential release for all chains.🤝 The corresponding op-geth release is v1.101605.0.View full release on GitHub →
[!WARNING] This is an essential release for chains impacted by recent superchain registry updates: Cyber, Funki🤝 The corresponding op-geth release is v1.101604.0 (required for the chains impacted by superchain registry changes).View full release on GitHub →
[!IMPORTANT] This is an essential release for all OP stack chainsThis release contains an important fix of the blob fetching logic to handle the case where multiple blobs with the same content (but different indices in the block) are requested. Without this fix, a safe head stall is possible, due to an error triggered if the batcher submits multiple blobs with the same content (#18492).Another edge case in the derivation pipeline is fixed where an overlapping span batch has a first singular batch after the current safe head with an outdated origin. This can happen if a large span batch is posted which overlaps with an auto-derived chain (due to sequencing window elapse). Such a span batch should be dropped, but the derivation pipeline stalled instead. This was recently triggered on an OP Stack testnet and hasn’t been observed before (#18283).The sequencer’s L1 origin selection got fixed to properly handle L1 reorgs (#18233).View full release on GitHub →
[!WARNING] This is an essential release for the following chains due to Jovian timestamp changes: Bob, Lyra, Mint, Orderly, and Polynomial
[!NOTE] This release also contains World Chain Mainnet’s Isthmus activation timestampThis release updates Jovian timestamps for the chains listed above. It is optional for all other chains.🤝 The corresponding op-geth release is v1.101603.5.View full release on GitHub →
[!WARNING] Chains impacted by recent superchain registry changes should use the more recent release: Bob, Lyra, Mint, Orderly, and Polynomial
[!WARNING] This is an essential release to prepare for the L1 Fusaka fork on Ethereum Mainnet
[!WARNING] This is an essential release for chains activating the Jovian hardfork.Node operators should upgrade to this release before Jovian activates on the Sepolia superchain on November 19th (
1763568001). Doing so will also prepare nodes for Jovian activating on the mainnet superchain on December 2nd (1764691201) and for Fusaka activation on Ethereum mainnet on December 3rd (1764798551).The following are the chains that have opted into the Superchain hard fork inheritance behavior and will activate Jovian at the timestamps specified above: Arena Z Mainnet, Arena Z Sepolia, Base Mainnet, Base Sepolia, BOB Mainnet, Ethernity Mainnet, Ethernity Sepolia, Ink Mainnet, Ink Sepolia, Lisk Mainnet, Lisk Sepolia, Derive (formerly Lyra) Mainnet, Metal Mainnet, Metal Sepolia, Mint Mainnet, Mode Mainnet, Mode Sepolia, OP Mainnet, OP Sepolia, Orderly Mainnet, Polynomial Mainnet, Snax Mainnet, Soneium Mainnet, Minato (Soneium) Sepolia, Swell Mainnet, Binary Mainnet, Unichain Mainnet, Unichain Sepolia, Zora Mainnet, and Zora Sepolia.Additionally, Swell Mainnet will activate Isthmus 12 hours prior to Jovian, December 2nd (1764648001).🤝 The corresponding op-geth release is v1.101603.4.🤝 op-batcher should also be upgraded to op-batcher/v1.16.2.View full release on GitHub →[!WARNING] DO NOT USE THIS RELEASE. The Jovian activation timestamps are being updated in a new release.View full release on GitHub →
This release adds the worldchain-sepolia Isthmus activation time and improves robustness in the L1 beacon client.It also allows L2 chain configs to be passed to NewL1ChainConfig, which was previously preventing L3s from upgrading to a Fusaka compatible release.The corresponding op-geth release is v1.101603.2View full release on GitHub →
[!WARNING] This is an essential release to prepare for the L1 Fusaka fork on Sepolia. It supersedes op-node/v1.14.0 which had a bug. The corresponding op-geth release is v1.101603.1. Node operators must also upgrade their batcher to op-batcher/v1.16.0 before Fusaka activates. See its release notes for further instructions.With this release of
op-node, the L1 Chain Configuration (namely, the fork activation times and blob parameters for each fork) form part of L2 consensus.This release therefore introduces the --rollup.l1-chain-config flag and accompanying OP_NODE_ROLLUP_L1_CHAIN_CONFIG environment variable. This is not necessary for chains deriving from Ethereum Mainnet, Sepolia, Holesky or Hoodi — for those chains, the chain config is already baked into op-node and will be used automatically.[!NOTE] Chains already running on Holesky are not supported since Holesky has already activated Fusaka. New chains deployed to Holesky are supported.
[!WARNING]
For chains deriving from an L1 other than Mainnet, Sepolia, Holesky or Hoodi: an up-to-date genesis.json or chain configuration file for the L1 must be provided. New L1 forks, including BPO forks, must be added to this file before they activate on L1.
For the “known” L1 chains, we will publish op-node releases with updated L1 configurations baked in due course.This release also modifies the way op-node fetches and verifies blobs from beacon endpoints.
[!IMPORTANT]
It is required that the beacon node passed with --l1.beacon is configured to store all blobs.
View full release on GitHub →op-node Fjord override flag rc
This is a release candidate on top of op-node/v1.7.6 that adds the missing fjord override flag --override.fjord (or env var OP_NODE_OVERRIDE_FJORD) to op-node. https://github.com/ethereum-optimism/optimism/pull/10648🚢 Docker Image https://us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.7.7-rc.1View full release on GitHub →