Releases: ethereum-optimism/optimism
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
Release op-batcher & op-proposer v1.4.2
⬆️ This is a recommended release for the op-batcher & the op-proposer.
It switches the compressor type to shadow by default on the batcher, adds an optional active sequencer follow mode on the batcher & proposer, & includes several bugfixes to the transaction manger.
Partial Changelog
- Batch validation test refactoring by @ImTei in #7953
- Fix batcher panic on invalid configuration by @mdehoog in #7975
- Span Batch Hard Fork Activation Rule Update by @pcw109550 in #7813
- op-service: cliapp lifecycle test fix, prevent race nil-ptr on app state-access by @protolambda in #8077
- op-proposer: Fix err check location in test by @trianglesphere in #8322
- op-batcher: Move config test from op-e2e to unit tests by @trianglesphere in #8463
- make shadow compressor the default compressor type by @roberto-bayardo in #8545
- txmgr: Fix gas estimation call by @sebastianst in #8578
- fix swapped fee/tip parameters to estimateGas by @roberto-bayardo in #8572
- op-batcher: adjust error handling on pending-channels after close by @protolambda in #7683
- feat(proxyd): impl proxyd_healthz method by @felipe-op in #8658
- op-node,batcher,proposer,challenger: Add env var flag tests by @trianglesphere in #8596
- op-service, op-batcher, op-proposer: Active sequencer follow mode by @EvanJRichard in #8585
- op-service/txmgr: Add threshold to gas price increase limiter by @sebastianst in #8699
- op-service/txmgr: Bump fees by at least 1 wei by @sebastianst in #8713
- [txmgr] Ensure that fee is increased by at least 10% by @mdehoog in #8747
Full Changelog: op-batcher/v1.3.0...op-batcher/v1.4.2
Docker Images
https://us-docker.pkg.dev/oplabs-tools-artifacts/images/op-batcher:v1.4.2
https://us-docker.pkg.dev/oplabs-tools-artifacts/images/op-proposer:v1.4.2
Release op-node v1.4.2
✨ This is a minor release and upgrading is optional for the op-node.
This release contains two breaking changes:
- If trustrpc is set to true, the op-node will not validate receipts. This will be changed back to the old behavior in v1.4.3
- The
RPC Alt Sync
method is removed. There is a P2P based mechanism which is enabled by default.
What's Changed
- Revert "Add
PrefetchingEthClient
, which builds a cache of ethclient data for callers." by @sebastianst in #8557 - op-node: Activate Canyon on Mainent & Delta on testnets by @trianglesphere in #8569
- op-node: Fix race condition closing gossip handler. by @ajsutton in #8576
- op-node: Disable CL P2P Sync when EL Sync is enabled by @trianglesphere in #8592
- op-node: Remove alt RPC sync by @trianglesphere in #8593
- op-node,batcher,proposer,challenger: Add env var flag tests by @trianglesphere in #8596
- Update TestUniqueFlags to check for uniqueness in aliases by @trianglesphere in #8661
- op-node: Disable xor requirement on Network and rollup.config flags by @trianglesphere in #8727
Full Changelog: op-node/v1.4.0...op-node/v1.4.2
Docker Images
https://us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.4.2
Release op-node & op-batcher v1.4.0
❗ This is a mandatory release for Optimism Sepolia & Goerli and upgrading is required before 2023-12-20. This includes all features required for the Delta Network Upgade which will be activating at 1703116800 Thu Dec 21 00:00:00 UTC 2023 for Goerli & at 1703203200 Fri Dec 22 00:00:00 UTC 2023 for Sepolia.
This version also includes mainnet Canyon as in https://github.com/ethereum-optimism/optimism/releases/tag/op-node%2Fv1.3.2. This release is ready to run on mainnet.
Important Changes
- Span Batches is added to this version of op-node & op-batcher. It will automatically activate on the op-node with the Delta network upgrade timestamp. It can be activated on the batcher by setting the
--batch-type
flag to1
. - The
--engine-sync
flag is being deprecated. - The op-node now supports dencun headers
Partial Changelog
- Fix batcher panic on invalid configuration by @mdehoog in #7975
- op-node: static-peers list local-peer check and flag description update by @protolambda in #8014
- Span Batch Hard Fork Activation Rule Update by @pcw109550 in #7813
- Span batch atomicity by @ImTei in #7867
- op-node: Fixup PGN Sepolia Rollup Config by @trianglesphere in #8065
- op-node: Check withdrawals hash in P2P validation by @trianglesphere in #8035
- Optimize span batch e2e test by @ImTei in #8047
- Update Span batch specs to allow overlapping batches by @ImTei in #7259
- specs: 1559 configuration by @trianglesphere in #8090
- specs: Clarify withdrawals specs better by @trianglesphere in #8088
- op-challenger: Introduce TraceAccessor by @ajsutton in #8043
- Dencun header changes by @EvanJRichard in #7993
- op-service: Add unit tests for verifying receipts by @ajsutton in #8066
- op-service: Ensure block body validation tests fail for the expected reason by @ajsutton in #8064
- op-node: flexible L2 genesis generation by @tynes in #8102
- op-service: Remove attributes from warn-log in EngineClient by @sebastianst in #8073
- op-node: Add command to dump rollup configs by @mslipper in #8063
- op-service: Fix fetcher for proxyd by @trianglesphere in #8182
- op-proposer: service lifecycle cleanup by @joohhnnn in #8040
- op-node/p2p: Fix deleteRecord to return nil if store.Delete succeeds by @sebastianst in #8211
- Rename span batch hard fork to delta hard fork by @pcw109550 in #8314
- op-proposer: Fix err check location in test by @trianglesphere in #8322
- op-node: specify Delta upgrade version, update superchain-registry, bump protocol-support to Delta pre-release by @protolambda in #8354
- op-node: Add syncmode flag and remove old snap sync flag by @trianglesphere in #8333
- op-node: Remove Panic while Span Batch Derivation by @pcw109550 in #8385
- Add span batch logging & metrics by @ImTei in #8412
- op-service: Refactor
EthClient
withReceiptsProvider
abstraction by @sebastianst in #8130 - Add config flag to set max number of concurrent L1 RPC requests. by @EvanJRichard in #8431
- op-node: Log and set metrics after batch is derived without error by @ImTei in #8440
- Several typos are fixed by @sukey2008 in #8445
- op-batcher: Move config test from op-e2e to unit tests by @trianglesphere in #8463
- Add Delta override flag by @ImTei in #8406
- op-node: Span batch Unprotected Tx Handling + Logic Error Fix by @pcw109550 in #8458
New Contributors
- @kafeikui made their first contribution in #8011
- @Aryan9592 made their first contribution in #8024
- @EvanJRichard made their first contribution in #7993
- @kaliubuntu0206 made their first contribution in #8039
- @joseandro made their first contribution in #8136
- @xenoliss made their first contribution in #8288
- @oxbau made their first contribution in #8398
- @kylemasterd1 made their first contribution in #8405
- @Pan-chao made their first contribution in #8475
Full Changelog: op-node/v1.3.2...op-node/v1.4.0