Releases: ethereum-optimism/optimism
Release op-node v1.7.1
⬆️ This is a recommended release for node operators using Snap Sync on Optimism Mainnet & Sepolia. For other users, this is a minor release. Node operators should be on at least v1.7.0.
Changes
- This release contains a fix to snap sync to ensure that all blocks are inserted to the execution engine when snap sync completes. Previously once snap sync would complete, if blocks where received out of order, the op-node could have internally inconsistent state & the unsafe head could stall for a period of time.
- This release also contains a safeDB feature which tracks the L1 block L2 blocks are derived from.
Partial Changelog
- op-node: Add option to enable safe head history database by @ajsutton in #9575
- op-node: Add flag category and improve testing by @ajsutton in #9636
- op-node: fix finalize log by @will-2012 in #9643
- op-node: p2p pinging background service by @protolambda in #9620
- op-node: Cleanup unsafe payload handling by @trianglesphere in #9661
New Contributors
- @will-2012 made their first contribution in #9643
Full Changelog: op-node/v1.7.0...op-node/v1.7.1
🚢 Docker Images
op-node, op-batcher, op-proposer v1.7.0 - Optimistic Ecotone Mainnet Release
✨🔴 Optimistic Ecotone Mainnet Release
❗ Mainnet operators are required to update to this release to follow the chain post-Ecotone. This release contains an optimistic Ecotone Mainnet activation time of Mar 14, 00:00:01 UTC
.
v1.6.1
contained a different Ecotone Mainnet activation date, so it is particularly important for Mainnet operators to upgrade from this release.
Optimism Governance Voting Cycle 19
The Ecotone activation contained in this release is still subject to approval during the currently ongoing Optimism Governance voting cycle 19, see the Governance Proposal of the Ecotone Protocol Upgrade. The voting period ends on Mar 6 while the veto period ends on Mar 13, 19:00 UTC.
We will soon publish a Veto Release in advance with the Ecotone OP Mainnet activation removed so node operators can prepare for the unlikely event of a negative vote or a veto. We will also soon provide documentation on how to override the Ecotone activation included in this or future releases via command line flags or env vars. This leaves an emergency window of 5h to change the node configuration, or update to the Veto Release, in the unlikely event that the veto period ends in a veto.
New Beacon Endpoint
Node operators need to configure a Beacon endpoint for op-node
, because soon after the Ecotone activation, batch transactions will be sent as 4844 blobs, and blobs can only be retrieved from Beacon nodes. If you're using Lighthouse, make sure to use at least version v5.0.0
, which contains the Dencun upgrade for Mainnet.
The op-node
provides a new command line flag & env var for configuring the Beacon endpoint: --l1.beacon
and $OP_NODE_L1_BEACON
. If you need to configure an HTTP header for authentication with the Beacon endpoint, you can use the flag --l1.beacon-header
or $OP_NODE_L1_BEACON_HEADER
.
❗ We encourage all node operators to already configure their Beacon endpoint to avoid interruptions after the Ecotone activation.
Experimental Snap Sync (execution-layer sync)
op-node 1.7.0 and op-geth v1.101308.2 now support Snap Sync. To enable snap sync set the --syncmode=execution-layer
flag on op-node
. op-geth
should also be set to --syncmode=snap
and must have discovery and be peered to the network for snap sync to work.
This feature is ready to be tested, but still may contain some bugs as it is rolled out.
Partial Changelog (affecting op-node)
- op-node: Expose method to load rollup config without a CLI context by @ajsutton in #9554
- op-service/client: Add http header option to BasicHTTPClient by @sebastianst in #9601
- op-node: Add optional Beacon header flag by @sebastianst in #9604
- op-node: Unhide syncmode flag by @trianglesphere in #9611
- op-node: Fix bootnodes port by @trianglesphere in #9621
- Import
SystemConfigProxy
address from new location insuperchain
(registry). by @geoknee in #9585 - Update Ecotone mainnet activation to Mar 14 00:00:01 UTC by @sebastianst in #9625
- op-node: Add flag categories by @trianglesphere in #9629
Full Changelog (monorepo): v1.6.1...v1.7.0
🚢 Docker Images
https://us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.7.0
https://us-docker.pkg.dev/oplabs-tools-artifacts/images/op-batcher:v1.7.0
https://us-docker.pkg.dev/oplabs-tools-artifacts/images/op-proposer:v1.7.0
op-node, op-batcher, op-proposer v1.6.1 - OUTDATED Ecotone Mainnet Release
❗ OUTDATED Ecotone Mainnet Release
❌ The Optimistic Ecotone Mainnet activation has been moved forward to Mar 14, 00:00:01 UTC
! You MUST NOT use this release on Mainnet. Use v1.7.0
instead.
✅ You can safely use this release on all other testnets and devnets.
Old Optimistic Release Background Info
This release contained an optimistic Ecotone Mainnet activation time of Mar 18, 17:00:01 UTC
. The purpose of this release was to have a reference for the Governance Proposal of the Ecotone Protocol Upgrade. The Ecotone Mainnet activation still needs to be approved during the currently ongoing Optimism Governance voting cycle 19 whose review and voting periods runs from Feb 15 to Mar 6. The veto period ends on Mar 13.
We will soon publish a Veto Release in advance with the Ecotone OP Mainnet activation removed so node operators can prepare for the unlikely event of a negative vote or a veto. We will also provide documentation on how to override the Ecotone activation included in this or the v1.7.0
release.
New Beacon Endpoint
Node operators who already wish to upgrade to this release need to configure a Beacon endpoint for op-node
, because soon after the Ecotone activation, batch transactions will be sent as 4844 blobs, and blobs can only be retrieved from Beacon nodes. If you're using Lighthouse, make sure to use at least the finalized version v4.6.0
because the latest rc contains a bug in its blob_sidecars
http endpoint.
The op-node
provides a new configuration flag & env var for configuring the Beacon endpoint: --l1.beacon
and $OP_NODE_L1_BEACON
.
We encourage all node operators to already configure their Beacon endpoint to avoid interruptions after the Ecotone activation.
Ecotone Sepolia
This release is ready to be used by Sepolia node operators. Ecotone activated on Sepolia at Wed Feb 21 17:00:00 UTC 2024
. The activation has been part of v1.5.1
as well.
🐞 Bug Fixes
- op-node contained a bug that affected block gossiping for sequencers. This release fixes that bug (#9560). Because of this bug, we advice against usage of op-node
v1.6.0
and this version has therefore not been published. - log: DynamicLogHandler to also capture derived handlers by @sebastianst in #9479
Partial Changelog - op-node
- refactor(op-service, op-node): add missing stop ticker by @hoanguyenkh in #9474
- op-node,op-service: Add Fallback Beacon Client by @trianglesphere in #9458
- go,rollup: Prepare optimistic Ecotone Mainnet release by @sebastianst in #9528
- op-node: Still EL sync if the transition block is finalized by @trianglesphere in #9501
- add additional check by @axelKingsley in #9560
- add additional check before emitting log warning by @axelKingsley in #9564
Partial Changelog - op-batcher & op-proposer
- change gas re-estimation difference logging to debug by @roberto-bayardo in #9420
- log blob fee cap in txmgr by @roberto-bayardo in #9435
- txmgr: Set default min tip cap and basefee to 1 GWei by @sebastianst in #9502
New Contributors
- @tchardin made their first contribution in #9269
- @d-roak made their first contribution in #9462
- @hoanguyenkh made their first contribution in #9474
- @Frierened made their first contribution in #9540
Full Changelog (monorepo): v1.5.1...v1.6.1
🚢 Docker Images
https://us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.6.1
https://us-docker.pkg.dev/oplabs-tools-artifacts/images/op-batcher:v1.6.1
https://us-docker.pkg.dev/oplabs-tools-artifacts/images/op-proposer:v1.6.1
op-node, op-batcher, op-proposer v1.5.1 - Sepolia Ecotone Release
❗ Ecotone Sepolia Upgrade
This is a mandatory release for node operators on the Sepolia Superchain.
The Ecotone protocol upgrade will activate on Wed Feb 21 17:00:00 UTC 2024
on Sepolia OP Chains.
New Beacon Endpoint
It is required for Sepolia operators to configure a Beacon endpoint for op-node
, because soon after the Ecotone activation, batch transactions will be sent as 4844 blobs, and blobs can only be retrieved from Beacon nodes. If you're using Lighthouse, make sure to use at least the finalized version v4.6.0
because the latest rc contains a bug in its blob_sidecars
http endpoint.
The op-node
provides a new configuration flag & env var for configuring the Beacon endpoint: --l1.beacon
and $OP_NODE_L1_BEACON
Mainnet node operators are strongly encouraged to already get their Beacon node infra set up so that they will be ready to enable their Beacon endpoints once Ecotone activates on Mainnet. The Activation date for Mainnet will be communicated at a later date.
✨ Features
The upstream op-geth dependency is updated to v1.101308.0
, which is based on upstream geth v1.13.8
. This implies a change of the underlying logging framework to slog
(#8917).
🐞 Bug Fixes
This release now adheres to the spec and lets op-node call the correctly-versioned methods on the EL client (#9253).
Receipts are now validated before entering the cache, fixing a bug that required restarts of op-node that got stuck during synching (#9417).
Partial Changelog
- check prior fork consistently by @zhiqiangxu in #9255
- op-node: genesis deduplicate json write by @tynes in #9323
- fix(bootnode): disable req/response sync on bootnode p2p by @danyalprout in #9298
- Use engine API that matches hardfork version by @ImTei in #9253
- Update op-geth dependency to upstream geth v1.13.8 and migrate to slog by @sebastianst in #8917
- go,rollup: Prepare OP Sepolia Ecotone release by @sebastianst in #9418
- Fix: Refactor Receipt Validation to ReceiptsProvider by @axelKingsley in #9417
- op-node: Log finalized block when EL sync is complete by @trianglesphere in #9428
Full Changelog (monorepo): v1.5.0...v1.5.1
🚢 Docker Images
https://us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.5.1
https://us-docker.pkg.dev/oplabs-tools-artifacts/images/op-batcher:v1.5.1
https://us-docker.pkg.dev/oplabs-tools-artifacts/images/op-proposer:v1.5.1
op-node v1.5.1-rc.1 - Engine API version fix
⚗️ This is a release candidate of the upcoming v1.5.1
release to unblock node operators using EL clients different from op-geth
. It uses the correct Engine API call versions depending on the active fork.
We will conduct more internal testing before we promote this to the official latest release.
Please read the release notes of v1.5.0
for more background on Ecotone and required configuration changes for node operators.
What's Changed - op-node
- check prior fork consistently by @zhiqiangxu in #9255
- op-node: genesis deduplicate json write by @tynes in #9323
- fix(bootnode): disable req/response sync on bootnode p2p by @danyalprout in #9298
- Use engine API that matches hardfork version by @ImTei in #9253
Full Changelog (monorepo): op-node/v1.5.0...op-node/v1.5.1-rc.1
op-node, op-batcher, op-proposer v1.5.0 - mainnet Delta & goerli Ecotone
❗Delta & Ecotone Upgrades
This is a mandatory release for node operators on Mainnet and Goerli. It includes two protocol upgrade activations
- Delta activates on Mainnet at
Thu Feb 22 00:00:00 UTC 2024
- Ecotone activates on Goerli at
Tue Feb 6 17:00:00 UTC 2024
❗ Known issue with alternative execution layer clients (like op-reth)
This release always uses the V3 methods of the Engine API when calling out to the EL client. This breaks with the upstream EL spec, which requires to use the correctly-versioned methods depending on the active fork.
The fix (#9253) is already available in the release candidate op-node/v1.5.1-rc.1
. In the meantime, this release is guaranteed to work with op-geth/v1.101305.3. Note that only release from v1.5.0
contain the mainnet Delta and Goerli Ecotone activation times, so if you're running a node on these networks, you must upgrade to at least op-node/v1.5.0
. On other networks, you can still use op-node/v1.4.3
.
New Beacon Endpoint
It is required for Goerli operators to configure a Beacon endpoint for op-node
, because soon after the Ecotone activation, batch transactions will be sent as 4844 blobs, and blobs can only be retrieved from Beacon nodes. If you're using Lighthouse, make sure to use at least the finalized version v4.6.0
because the latest rc contains a bug in its blob_sidecars
http endpoint.
The op-node
provides a new configuration flag & env var for configuring the Beacon endpoint: --l1.beacon
and $OP_NODE_L1_BEACON
Mainnet and Sepolia node operators are strongly encouraged to already get their Beacon node infra set up so that they will be ready to enable their Beacon endpoints once Ecotone activates on Sepolia and Mainnet. Activation dates for these networks will be communicated at a later date.
✨ Features
- Full Ecotone/4844/Cancun support.
- ⚡ Experimental Snap Sync support in trusted environments.
- Improved shutdown behavior of op-batcher
Partial Changelog
- op-service/pprof: Support profiling to file (#6739) by @ArtyomArtamonov in #8709
Affecting op-node
- op-node: Gossip Before Import by @axelKingsley in #8905
- op-node: Execution Layer Sync by @trianglesphere in #8968
Affecting op-batcher & op-proposer
- txmgr: Add
closed
flag and behavior to SimpleTXManager by @axelKingsley in #8694 - txMgr: checkLimits on Fee and Tip Separately by @axelKingsley in #9154
- TxMgr: Rearrange TxMgr closure in Batcher by @axelKingsley in #9205
Ecotone/4844 specific
- update txmgr to support sending blob txs by @roberto-bayardo in #8760
- 4844: blob encoding version 2 by @angel-ding-cb in #8827
- add blob-capable data source by @roberto-bayardo in #8778
- Add batch submission policy that uses Blob transactions by @roberto-bayardo in #8769
- Ecotone: Extend P2P Request/Response format by @danyalprout in #8927
- support Ecotone l1 block info by @roberto-bayardo in #8786
- update op-geth to latest version with fixed BaseFee naming by @roberto-bayardo in #8962
- 4844: Add missing consolidation properties by @danyalprout in #8976
- Ecotone/Dencun implementation changes by @EvanJRichard in #8707
- Ecotone: change handling of non-zero padding for version 0 scalar - cap to max uint32 by @protolambda in #9068
- op-node: fix parent-beacon-block-root comparison check [Ecotone] by @protolambda in #9071
- Beacon node setup improvements by @danyalprout in #9120
- reject blobs with extraneous data by @roberto-bayardo in #9133
- op-node,sources: Add Beacon source option to fetch all sidecars by @sebastianst in #9151
- Ecotone goerli-dev-0 release candidate by @sebastianst in #9152
- op-e2e: 4844 DA support action-tests by @protolambda in #9104
- op-node: fix Ecotone beacon-block-root contract deployment by @protolambda in #9216
- op-node/rollup: Add delta time override for oplabs sepolia devnet 0 by @sebastianst in #9242
- Mainnet Delta Activation by @trianglesphere in #9279
- op-node: Add ecotone override by @trianglesphere in #9284
New Contributors (to monorepo)
- @angel-ding-cb made their first contribution in #8827
- @ArtyomArtamonov made their first contribution in #8709
- @sqltrigger made their first contribution in #8916
- @infosecual made their first contribution in #9004
- @geoknee made their first contribution in #9018
- @zhiqiangxu made their first contribution in #9014
- @luchenqun made their first contribution in #9070
- @david-roth-cb made their first contribution in #9048
- @henridevieux made their first contribution in #9106
- @LucasLvy made their first contribution in #9200
- @IssouChancla made their first contribution in #8970
- @mario-eth made their first contribution in #9224
Full Monorepo Changelog: v1.4.3...v1.5.0
🚢 Docker Images
https://us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.5.0
https://us-docker.pkg.dev/oplabs-tools-artifacts/images/op-batcher:v1.5.0
https://us-docker.pkg.dev/oplabs-tools-artifacts/images/op-proposer:v1.5.0
op-contracts v1.2.0 - Adding SuperchainConfig with extended pause functionality
This release provides an updated version of all L1 contracts.
L2 contracts are not modified, and the op-contracts/v1.0.0 release remains the correct version for L2 contracts.
The full set of L1 contracts included in this release is:
- AddressManager: Latest (this has no version)
- L1CrossDomainMessenger: 2.2.0
- L1ERC721Bridge: 2.0.0
- L1StandardBridge: 2.0.0
- L2OutputOracle: 1.7.0
- OptimismMintableERC20Factory: 1.8.0
- OptimismPortal: 2.4.0
- SystemConfig: 1.11.0
- SuperchainConfig: 1.1.0
- ProtocolVersions: 1.0.0
✨ Features
This release introducing a Superchain-wide pause mechanism that can enhance protection across multiple fronts, by including it on the L1CrossDomainMessenger
and withdrawals for ERC-20 and ERC-721 tokens, which are additional security critical code paths that protect user assets.
A new SuperchainConfig
contract has been introduced, see the specification here.
TheOptimismMintableERC20TokenFactory
is being updated with two improvements:
- Support for deploying a token with a custom number of decimals (PRs here and here ).
- Using CREATE2 to ensure that tokens with different properties do not have the same addresses on different OP Chains. (PRs here and here).
🐞 Bug Fixes
The OptimismPortal
and L1CrossDomainMessenger
are updated to fix an issue (which would only occur during an upgrade), resulting in some values being unnecessarily reset to their defaults after an upgrade.
op-contracts v1.3.0 - Multi-Chain Prep (MCP) L1
This release enables atomic, cross-chain upgrades and mitigates potential exploitation risks during emergency, multi-chain upgrades by transitioning chain-specific deployment configuration variables from immutables into storage. It also extends SystemConfig
to contain the addresses of the network’s contracts.
Governance post: https://gov.optimism.io/t/upgrade-proposal-6-multi-chain-prep-mcp-l1/7677
The full set of L1 contracts included in this release is:
- AddressManager: Latest (this has no version) (No change from prior version)
- L1CrossDomainMessenger: 2.3.0
- L1ERC721Bridge: 2.1.0
- L1StandardBridge: 2.1.0
- L2OutputOracle: 1.8.0
- OptimismMintableERC20Factory: 1.9.0
- OptimismPortal: 2.5.0
- SystemConfig: 1.12.0
- SuperchainConfig: 1.1.0 (No change from prior version)
- ProtocolVersions: 1.0.0 (No change from prior version)
Contracts Changed
The following contracts would be changed as part of this upgrade. Each contract links to the pull request where the changes were made, and the bullet points corresponds to the immutable variables moved into state (in format {type} {varName}
):
- OptimismPortal (#8629)
L2OutputOracle l2Oracle
SystemConfig systemConfig
- L1CrossDomainMessenger (#8631)
OptimismPortal portal
CrossDomainMessenger otherMessenger
- L1StandardBridge (#8632)
CrossDomainMessenger messenger
StandardBridge otherBridge
- L1ERC721Bridge (#8633)
CrossDomainMessenger messenger
StandardBridge otherBridge
- OptimismMintableERC20Factory (#8700)
address bridge
- L2OutputOracle (#8720)
uint256 submissionInterval
uint256 l2BlockTime
address challenger
address proposer
uint256 finalizationPeriodSeconds
- SystemConfig (#8772)
Partial Changelog
- contracts-bedrock: Move broadcast modifier to inner deploy func by @maurelian in #9130
- contracts-bedrock: delete unused
sync()
method by @tynes in #9100 - feat: MCP L1 by @tynes in #9058
Full Changelog: op-contracts/v1.2.0...op-contracts/v1.3.0
Release op-contracts v1.3.0-rc.1 - Multi-Chain Prep (MCP) L1
This release enables atomic, cross-chain upgrades and mitigates potential exploitation risks during emergency, multi-chain upgrades by transitioning chain-specific deployment configuration variables from immutables into storage. It also extends SystemConfig
to contain the addresses of the network’s contracts.
Governance post: https://gov.optimism.io/t/upgrade-proposal-6-multi-chain-prep-mcp-l1/7677
Contracts Changed
The following contracts would be changed as part of this upgrade. Each contract links to the pull request where the changes were made, and the bullet points corresponds to the immutable variables moved into state (in format {type} {varName}
):
- OptimismPortal (#8629)
L2OutputOracle l2Oracle
SystemConfig systemConfig
- L1CrossDomainMessenger (#8631)
OptimismPortal portal
CrossDomainMessenger otherMessenger
- L1StandardBridge (#8632)
CrossDomainMessenger messenger
StandardBridge otherBridge
- L1ERC721Bridge (#8633)
CrossDomainMessenger messenger
StandardBridge otherBridge
- OptimismMintableERC20Factory (#8700)
address bridge
- L2OutputOracle (#8720)
uint256 submissionInterval
uint256 l2BlockTime
address challenger
address proposer
uint256 finalizationPeriodSeconds
- SystemConfig (#8772)
Partial Changelog
- contracts-bedrock: Move broadcast modifier to inner deploy func by @maurelian in #9130
- contracts-bedrock: delete unused
sync()
method by @tynes in #9100 - feat: MCP L1 by @tynes in #9058
Full Changelog: op-contracts/v1.2.0-rc.1...op-contracts/v1.3.0-rc.1
op-node, op-batcher, op-proposer v1.4.3
❗ This is a strongly recommended update of op-node
. It brings back an important receipts validation check to the op-node, which was disabled since December '23 when the trustrpc
option was set to true
. There have been numerous reports of L1 rpc endpoints returning incomplete receipt lists, which could lead to localized chain splits without receipts validation. With this release, trustrpc
can again safely be set to true
.
Also improves some logging in the transaction manager (used by op-batcher & op-proposer).
Partial Changelog
Affecting op-batcher & op-proposer
- feat(op-proposer):
DisputeGameFactory
support by @clabby in #8689 - txmgr,op-batcher: Improve logging & metrics by @sebastianst in #8766
- txmgr: Add min basefee and tip cap parameters to enforce fee minima by @sebastianst in #8799
- fix(op-proposer): Handle context closing on error by @clabby in #8822
- op-service/txmgr: Fix tx logging by @sebastianst in #8875
Affecting op-node
- op-service/sources: Always validate receipts when fetching them by @sebastianst in #8861
- add new UpdateType & fields to L1 system config required for the Ecotone upgrade by @roberto-bayardo in #8723
- handle the new Ecotone system config update event log type by @roberto-bayardo in #8785
Full Monorepo Changelog: v1.4.2...op-batcher/v1.4.3
🚢 Docker Images
https://us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.4.3
https://us-docker.pkg.dev/oplabs-tools-artifacts/images/op-batcher:v1.4.3
https://us-docker.pkg.dev/oplabs-tools-artifacts/images/op-proposer:v1.4.3