Skip to content

Releases: ethereum-optimism/optimism

op-stack v1.9.5 - Batcher Sequencer Throttling

11 Nov 12:19
5662448
Compare
Choose a tag to compare

❗ It is strongly recommended for all chain operators to upgrade to this release.

Highlights

Batcher Sequencer Throttling (ethereum-optimism/op-geth#421 #12735)

This release contains a new batcher-driven sequencer-throttling control loop. This is to avoid sudden spikes in L1 DA-usage consuming too much available gas and causing a backlog in batcher transactions. The batcher can throttle the sequencer’s data throughput instantly when it sees too much batcher data built up.

🎛️ There are two throttling knobs:

  • transaction L1 data throttling, which skips individual transactions whose estimated compressed L1 DA usage goes over a certain threshold, and
  • block L1 data throttling, which caps a block’s estimated total L1 DA usage and leads to not including transactions during block building that would move the block’s L1 DA usage past a certain threshold.

Upgrade path

This new feature is enabled by default and requires running op-geth version v1.101411.1 or later. It can be disabled by setting --throttle-interval to 0. The sequencer's op-geth node has to be updated first, before updating the batcher, so that the new required RPC is available at the time of the batcher restart.

op-conductor

It is required to upgrade to op-conductor/v0.2.0 if you are using conductor’s leader-aware rpc proxy feature. This conductor release includes support for the miner_setMaxDASize op-geth rpc proxy.

Configuration

Batcher

⚠️ Note that this feature requires the batcher to correctly follow the sequencer at all times, or it would set throttling parameters on a non-sequencer EL client. That means, active sequencer follow mode has to be enabled correctly by listing all the possible sequencers in the L2 rollup and EL endpoint flags.

The batcher can be configures with the following new flags and default parameters:

  • interval at which throttling operations happen (besides when loading an L2 block in the batcher) via --throttle-interval: 2s (env var OP_BATCHER_THROTTLE_INTERVAL)
    • This can be set to zero to completely disable this feature. Since it’s set to 2s by default, the feature is enabled by default.
  • backlog of pending block bytes beyond which the batcher will enable throttling on the sequencer via --throttle-threshold: 1_000_000 (batcher backlog of 1MB of data to batch)
    • env var OP_BATCHER_THROTTLE_THRESHOLD
  • individual tx size throttling via --throttle-tx-size: 300 (estimated compressed bytes)
    • env var OP_BATCHER_THROTTLE_TX_SIZE
  • block size throttling via --throttle-block-size: 21_000 (estimated total compressed bytes, at least 70 transactions per block of up to 300 compressed bytes each)
    • env var OP_BATCHER_THROTTLE_BLOCK_SIZE
  • block size throttling that’s always active via --throttle-always-block-size: 130_000
    • env var OP_BATCHER_THROTTLE_ALWAYS_BLOCK_SIZE
    • This block size limit is enforced on the sequencer at all times, even if there isn’t any backlog in the batcher. Normal network usage shouldn’t be impacted by this. This is to prevent a too fast build up of data to batch.

If the batcher at startup has throttling enabled and the sequencer’s op-geth node to which it’s talking hasn’t the miner_setMaxDASize RPC enabled, it will fail with an error message like

lvl=warn msg="Served miner_setMaxDASize" reqid=1 duration=11.22µs err="the method miner_setMaxDASize does not exist/is not available"

In this case, make sure the miner API namespace is enabled for the correct transport protocol (HTTP or WS), see next paragraph.

Sequencer

The new RPC miner_setMaxDASize is available in op-geth since v1.101411.1. It has to be enabled by adding the miner namespace to the correct API flags, like

  • GETH_HTTP_API: web3,debug,eth,txpool,net,miner
  • GETH_WS_API: debug,eth,txpool,net,miner

It is recommended to add it to both, HTTP and WS.

Other

  • A bug in the sequencer is fixed that may cause derivation to stall on flaky L1 connections (#12258).
  • This release also contains many incremental changes regarding Holocene and Interop feature development.

What's Changed

New Contributors (full monorepo)

Full Changelog: v1.9.4...v1.9.5

🚢 Docker Images:

https://us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.9.5
https://us-docker.pkg.dev/oplabs-tools-artifacts/images/op-batcher:v1.9.5
https://us-docker.pkg.dev/oplabs-tools-artifacts/images/op-proposer:v1.9.5

OP Contracts v1.8.0-rc.1

07 Nov 05:51
1f6bac3
Compare
Choose a tag to compare

Overview

This release is suitable for the L1 contracts as part of the Holocene network upgrade.

Full Contract Set

A chain using this contracts release must be using the following contracts at the specified semvers.

The following contracts are included in this release:

  • MIPS: 1.2.1
  • SystemConfig: 2.3.0

Additional Information

There is no finalized v1.7.0 release. The release candidate for v1.7.0 was for generating L2 genesis.

op-dispute-mon/v1.2.0

05 Nov 22:55
op-dispute-mon/v1.2.0
84ba885
Compare
Choose a tag to compare

Overview

This is a minor release of op-dispute-mon that includes minor new features and bug fixes. It is an optional upgrade for all users.

What's Changed

  • Use game data from previous update cycle if fetching fails. This ensures aggregate metrics remain accurate when there are intermittent errors from source nodes. (#12481)
  • Add op_dispute_mon_oldest_game_update_time metric to report the timestamp of the least recently updated game.

Full Changelog: op-dispute-mon/v1.1.0...op-dispute-mon/v1.2.0

🚢 Docker Image:

op-challenger/v1.2.0

05 Nov 22:55
op-challenger/v1.2.0
4b1c12a
Compare
Choose a tag to compare

Overview

This is a minor release of op-challenger that includes minor new features and bug fixes. It is an optional upgrade for all users.

What's Changed

  • Allow op-challenger to startup when an enabled trace type does not have a game implementation set on chain (#12539)
  • Use binary snapshots with Asterisc (#12586)
  • Introduce --prestates-url option to specify a URL to download prestates for all trace types from. Can be overridden for specific VM types with --cannon-prestates-url, --asterisc-prestates-url and --asterisc-kona-prestates-url (#12440)
  • All prestates URL options now accept file URLs in addition to http and https (#12441)
  • op-program log level is now automatically set to match op-challenger log level (#12379)

Full Changelog: op-challenger/v1.1.2...op-challenger/v1.2.0

🚢 Docker Image:

op-deployer/v0.0.3

28 Oct 05:27
06a7ce2
Compare
Choose a tag to compare

Changelog

  • 96468b7 op-deployer: Add Docker builds (#12660)
  • d73a4bc op-service, op-deployer: Support marshaling systemconfig in pre-Holocene format (#12619)

op-deployer/v0.0.2

22 Oct 22:06
e372a2d
Compare
Choose a tag to compare

Changelog

op-deployer/v0.0.1-rc.0

19 Oct 03:29
21dae7f
Compare
Choose a tag to compare

Changelog

  • f58f1f5 op-deployer: Marshal tag-based ArtifactsLocator with correct scheme (#12494)
  • da6625f op-deployer: Most implementation addresses not set in state.json when standard release tag used (#12434)
  • 1f106f7 op-deployer: Package for production (#12491)
  • 5f7f44c op-deployer: Remove irrelevant flags (#12525)
  • 05961cc op-deployer: error handling bugs (#12507)
  • 5a37546 op-deployer: update default gas limit values. (#12524)
  • ceafacf op-deployer: updating opcm proxies for mainnet and sepolia (#12527)
  • 1bf64d9 op-e2e: Increase timeout on output submitter test (#12531)
  • c05aca3 opcm: exposing preimage oracle and mips singletons via DeployOPChain.s.sol (#12521)

op-stack v1.9.4

21 Oct 15:23
2c24e65
Compare
Choose a tag to compare

Overview

⬆️ This release updates the op-geth dependency to v1.101411.0, which includes the upstream go-ethereum changes until v1.14.11.

Other changes are related to ongoing development of Interop and Holocene, and other minor fixes.

What's Changed

New Contributors

Full Changelog: v1.9.3...v1.9.4

🚢 Docker Images:

https://us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.9.4
https://us-docker.pkg.dev/oplabs-tools-artifacts/images/op-batcher:v1.9.4
https://us-docker.pkg.dev/oplabs-tools-artifacts/images/op-proposer:v1.9.4

op-challenger v1.1.2

27 Sep 04:03
op-challenger/v1.1.2
4680790
Compare
Choose a tag to compare

Overview

This is a minor release of op-challenger with minor new features. It is an optional upgrade for all users.

What's Changed

  • Skip prestate verifications for the permissioned game. (#12140)

Full Changelog: op-challenger/v1.1.0...op-challenger/v1.1.2

🚢 Docker Image:

op-stack v1.9.3

01 Oct 09:55
e81c50d
Compare
Choose a tag to compare

Overview

This release improves the automatic data-availability switching behavior of op-batcher. It will now assess the optimal configuration (i.e. to use calldata or blobs) based on market conditions immediately before it is due to send an L1 transaction (instead of when it starts to build a channel) (#12002 #12115). This release also includes minor bug fixes for and improvements to op-node and op-batcher.

Partial Changelog

Full Changelog: v1.9.2...v1.9.3

🚢 Docker Images: