Skip to content

Releases: ethereum-optimism/optimism

op-batcher v1.7.2-rc.3 - Multi-Blob Batcher

13 Mar 10:08
25985c1
Compare
Choose a tag to compare

🔴✨ Multi-Blob Batcher Pre-Release

The op-batcher in this release candidate has the capabilities to send multiple blobs per single blob transaction. This is accomplished by the use of multi-frame channels, see the specs for more technical details on channels and frames.

A minimal batcher configuration (with env vars) to enable 6-blob batcher transactions is:

      - OP_BATCHER_BATCH_TYPE=1 # span batches, optional
      - OP_BATCHER_DATA_AVAILABILITY_TYPE=blobs
      - OP_BATCHER_TARGET_NUM_FRAMES=6 # 6 blobs per tx
      - OP_BATCHER_TXMGR_MIN_BASEFEE=2.0 # 2 gwei, might need to tweak, depending on gas market
      - OP_BATCHER_TXMGR_MIN_TIP_CAP=2.0 # 2 gwei, might need to tweak, depending on gas market
      - OP_BATCHER_RESUBMISSION_TIMEOUT=240s # wait 4 min before bumping fees

This enables blob transactions and sets the target number of frames to 6, which translates to 6 blobs per transaction. The min. tip cap and base fee are also lifted to 2 gwei because it is uncertain how easy it will be to get 6-blob transactions included and slightly higher priority fees should help. The resubmission timeout is increased to a few minutes to give more time for inclusion before bumping the fees, because current txpool implementations require a doubling of fees for blob transaction replacements.

Multi-blob transactions are particularly interesting for medium to high-throughput chains, where enough transaction volume exists to fill up 6 blobs in a reasonable amount of time. You can use this calculator for your chain to determine what number of blobs are right for you, and what gas scalar configuration to use. Please also refer to our documentation on Blobs for chain operators.

🚢 Docker image: https://us-docker.pkg.dev/oplabs-tools-artifacts/images/op-batcher:v1.7.2-rc.3

A full v1.7.2 release of the op-stack follows soon.

Release op-node v1.7.1

06 Mar 17:57
c87a469
Compare
Choose a tag to compare

⬆️ 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

New Contributors

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

26 Feb 13:39
f707883
Compare
Choose a tag to compare

✨🔴 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.

⚠️ The old release 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)

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

16 Feb 21:41
08921d5
Compare
Choose a tag to compare

❗ 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

Partial Changelog - op-batcher & op-proposer

New Contributors

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

09 Feb 21:28
c934019
Compare
Choose a tag to compare

❗ 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

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

05 Feb 19:47
c0d0db9
Compare
Choose a tag to compare

⚗️ 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

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

01 Feb 12:05
6de6b5f
Compare
Choose a tag to compare

❗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

Affecting op-node

Affecting op-batcher & op-proposer

Ecotone/4844 specific

New Contributors (to monorepo)

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

23 Feb 11:21
856c08b
Compare
Choose a tag to compare

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:

  1. Support for deploying a token with a custom number of decimals (PRs here and here ).
  2. 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

13 Mar 22:17
e6ef3a9
Compare
Choose a tag to compare

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}):

  1. OptimismPortal (#8629)
    • L2OutputOracle l2Oracle
    • SystemConfig systemConfig
  2. L1CrossDomainMessenger (#8631)
    • OptimismPortal portal
    • CrossDomainMessenger otherMessenger
  3. L1StandardBridge (#8632)
    • CrossDomainMessenger messenger
    • StandardBridge otherBridge
  4. L1ERC721Bridge (#8633)
    • CrossDomainMessenger messenger
    • StandardBridge otherBridge
  5. OptimismMintableERC20Factory (#8700)
    • address bridge
  6. L2OutputOracle (#8720)
    • uint256 submissionInterval
    • uint256 l2BlockTime
    • address challenger
    • address proposer
    • uint256 finalizationPeriodSeconds
  7. 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

15 Feb 12:08
e6ef3a9
Compare
Choose a tag to compare

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}):

  1. OptimismPortal (#8629)
    • L2OutputOracle l2Oracle
    • SystemConfig systemConfig
  2. L1CrossDomainMessenger (#8631)
    • OptimismPortal portal
    • CrossDomainMessenger otherMessenger
  3. L1StandardBridge (#8632)
    • CrossDomainMessenger messenger
    • StandardBridge otherBridge
  4. L1ERC721Bridge (#8633)
    • CrossDomainMessenger messenger
    • StandardBridge otherBridge
  5. OptimismMintableERC20Factory (#8700)
    • address bridge
  6. L2OutputOracle (#8720)
    • uint256 submissionInterval
    • uint256 l2BlockTime
    • address challenger
    • address proposer
    • uint256 finalizationPeriodSeconds
  7. 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