github OffchainLabs/nitro v3.10.0-rc.2

latest release: consensus-v51.1
pre-release7 hours ago

This release is available as a Docker Image on Docker Hub at offchainlabs/nitro-node:v3.10.0-rc.2-746bda2
This Docker image specifies default flags in its entrypoint which should be replicated if you're overriding the entrypoint: /usr/local/bin/nitro --validation.wasm.allowed-wasm-module-roots /home/user/nitro-legacy/machines,/home/user/target/machines

Important for any chains still on ArbOS40:

  • If you're running a validator without a split validation server (this will be true of most validators), you should instead use the image offchainlabs/nitro-node:v3.10.0-rc.2-746bda2-validator which has the extra script /usr/local/bin/split-val-entry.sh as the default entrypoint (no need to override the default entrypoint). This will run both v3.10.0 and v3.7.6 validator workers for you.
  • If you are using a split validator, you do not want to use -validator image, you need to run a validator worker on v3.7.6 as well as a worker for v3.10.0

Configuration Changes

  • Changed --node.batch-poster.compression-level to --node.batch-poster.compression-levels
  • Remove --initial-l1-base-fee CLI flag from genesis-generator

Batch Poster Compression Levels Configuration

  • The new --node.batch-poster.compression-levels flag allows operators to specify different compression strategies based on the current backlog of batches to be posted. The configuration is provided as a JSON array of objects, each containing:
    • backlog: The minimum backlog size (in number of batches) at which this configuration applies. First entry must be zero.
    • level: The initial compression level applied to messages when they are added to a batch once the backlog reaches or exceeds the configured threshold.
    • recompression-level: The recompression level to use for already compressed batches when the backlog meets or exceeds the threshold.
    • Example configuration:
      [ { "backlog": 0, "level": 3, "recompression-level": 5 }, { "backlogThreshold": 10, "level": 5, "recompression-level": 7 }, { "backlogThreshold": 20, "level": 7, "recompression-level": 9 } ]
  • Validation rules:
    • The backlog values must be in strictly ascending order.
    • Both level and recompression-level must be weakly descending (non-increasing) across entries
    • recompression-level must be greater than or equal to level within each entry (recompression should be at least as good as initial compression)
    • All levels must be in valid range: 0-11

What's Changed

  • Implement capacity endpoint for Rust Validator: [PR]
  • ZK: Run the Rust validator with the real block input: [PR]
  • ZK: Reduce boilerplate in RPC client: [PR]
  • Ensure BoLD Uses Relative Message Counts When Capping the Assertion: [PR]
  • Increase Stylus smart contract size limit via merge-on-activate: [PR]
  • Make compression level adaptive and configurable #NIT-4153: [PR]
  • generate forward_stub at compile time: [PR]
  • Reduce parallelism in pebble nightly tests: [PR]
  • feat(compliance-chains): s3 polling + hash-store: [PR]
  • Improve forwarding transaction log in case of error: [PR]
  • stylus params: only use one byte for MaxFragmentCount: [PR]
  • ZK: Introduce continuous mode to JIT Validator: [PR]
  • ZK: Implement the sender side of the validation communication protocol in Rust: [PR]
  • ZK: Delegate EC recovery: [PR]
  • Improve inline comments in retryable precompile: [PR]
  • Hooking before the first IO instruction in replay.wasm: [PR]
  • Forbid init config from being empty when genesis-json-file is present: [PR]
  • Configurable event filterer: [PR]
  • Merge wasm-libraries workspace with the main one: [PR]
  • Do not defer in a loop: [PR]
  • Halt delayed sequencer on filtered messages and execute as no-ops: [PR]
  • License header update: [PR]
  • Add test for batch resizing via ErrMessageTooLarge: [PR]
  • Add init message data into genesis.config: [PR]
  • resolve small PR review comments for stylus merge on activate: [PR]
  • update ProgramPrepare to accept wasm instead of statedb and code: [PR]
  • Add S3 custom endpoint support for MinIO/localstack compatibility: [PR]
  • Horizontal Scaling of Validation Node: [PR]
  • Fix typed nil ExecutionSequencer in CreateConsensusNode: [PR]
  • Add test for addressfilter for self-destruct post eip-6780 specification #NIT-4262: [PR]
  • Add retry mechanism for anytrust DA connections: [PR]
  • Add multi-gas constraints to L2-pricing simulator: [PR]
  • Ensure dependabot changelog files are unique: [PR]
  • Add support for multiple module roots for Validator: [PR]
  • Refactor openInitializeChainDb for Execution/Consensus split: [PR]
  • [MEL] - Implement L2 messages accumulation and introduce MessageReader to extract messages from preimages: [PR]
  • Multi-fragment activation: charge gas per fragment: [PR]
  • Add hashed address filter: [PR]
  • Add sequencer queue and tx size metrics: [PR]
  • Add benchmarks to L2-Pricing model: [PR]
  • Stop using Genesis.Config: [PR]
  • Add filteredFundsRecipient ArbOS state field and precompile: [PR]
  • Support Address Aliasing for addressfiltering regarding L1 -> l2 msgs #NIT-4249: [PR]
  • arb_getL1Confirmations and arb_findBatchContainingBlock RPC APIs in Consensus side: [PR]
  • Sequencer calls cmd/transaction-filterer: [PR]
  • Introduce genesis-json-file-directory config option: [PR]
  • Add events for managing NativeTokenOwner and ChainOwner: [PR]
  • Fix expected surplus in sequencer: [PR]
  • transaction-filterer command: [PR]

Full Changelog: [PR]

Don't miss a new nitro release

NewReleases is sending notifications on new releases.