Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(deps): bump github.com/ethereum-optimism/optimism from 1.2.0 to 1.9.5 #434

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

dependabot[bot]
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Nov 11, 2024

Bumps github.com/ethereum-optimism/optimism from 1.2.0 to 1.9.5.

Release notes

Sourced from github.com/ethereum-optimism/optimism's releases.

op-stack v1.9.5 - Batcher Sequencer Throttling

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

Highlights

Batcher Sequencer Throttling (ethereum-optimism/op-geth#421 ethereum-optimism/optimism#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.

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

... (truncated)

Commits
  • 5662448 op-conductor,op-node: allow system to select port, make op-node wait for cond...
  • 4c656b3 op-e2e: Minor test updates (#12877)
  • 85c9a9e fix test name checks (#12880)
  • 8df2b1d convert semver lock to go (#12775)
  • eb977a8 update check-foundry-install.sh to check-dep-install.sh (#12778)
  • 4ee0737 add semgrep rule sol-style-no-bare-imports and implement it (#12723)
  • f7cef71 [Batcher] Fix memory leak, reverse prepended blocks (#12874)
  • 6ea4e40 merge bridge initializer into common test (#12795)
  • 04d7972 apply exclude in test name checks and add it to ci and just check (#12805)
  • ed6a629 move slither related files to test/slither (#12788)
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [github.com/ethereum-optimism/optimism](https://github.com/ethereum-optimism/optimism) from 1.2.0 to 1.9.5.
- [Release notes](https://github.com/ethereum-optimism/optimism/releases)
- [Commits](ethereum-optimism/optimism@v1.2.0...v1.9.5)

---
updated-dependencies:
- dependency-name: github.com/ethereum-optimism/optimism
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
@dependabot dependabot bot added dependencies Pull requests that update a dependency file go Pull requests that update Go code labels Nov 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file go Pull requests that update Go code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants