github OffchainLabs/nitro v3.10.0-rc.4
Arbitrum Nitro v3.10.0-rc.4

pre-release15 hours ago

This release is available as a Docker Image on Docker Hub at offchainlabs/nitro-node:v3.10.0-rc.4-3a9bb93
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.4-3a9bb93-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

  • Adds --execution.sequencer.transaction-filtering.disable-delayed-sequencing-filter to enable/disable filtering when sequencing delayed messages. [PR]
  • Added --node.block-validator.validation-spawning-allowed-timeouts (default 3): maximum number of timeout errors allowed per validation before treating it as fatal. Timeout errors have their own counter, separate from --node.block-validator.validation-spawning-allowed-attempts. [PR]

Added

  • Peform DNS lookups with IPv4 before IPv6. [PR]
  • messageSequencingMode messageRunModes. To be used when filtering transactions in the geth layer. [PR]
  • Fix Message Extraction function to handle cases when number of batch posting reports are not equal to the number of batches. [PR]

Changed

  • Make PruneExecutionDB only depend on executionDB by removing consensusDB dependency. [PR]

Removed

  • Remove aborted snap sync code. [PR]

Fixed

  • Part 1 of improving the MEL runner with latest, tested implementation. [PR]
  • Use defer to release createBlocksMutex in sequencerWrapper to prevent deadlock on panic. [PR]
  • Fix opening classic-msg database. [PR]
  • Fix system test triggered panic in updateFilterMapsHeads. [PR]
  • Fix address filter S3 syncer failing to parse hash list JSON when salt or hash values use 0x/0X hex prefix. Go's encoding/hex.DecodeString does not handle the prefix, so it is now stripped before decoding. [PR]
  • Fix debug_executionWitness endpoint. [PR]
  • Improve block validator error message to suggest enabling staker in watchtower mode when wasmModuleRoot is not set from chain. [PR]
  • If batchFetcher returns error use existing LegacyBatchGasCost value. [PR]
  • Fix rlp: expected List error when fetching transaction receipts for blocks with Arbitrum legacy receipt encoding. [PR]
  • Block validator no longer crashes on timeout errors during validation. Timeout errors are retried separately from other validation failures, up to a configurable limit. [PR]

Internal

  • Make Validator request match clients request format. [PR]
  • Cache precompiled wasm modules for repeated JIT validation. [PR]
  • S3Syncer's context moved out from new to Initialize. [PR]
  • Bytes32's Debug and Display is prefixed with 0x. [PR]
  • Allow validator's JitMachine to find jit path. [PR]
  • Migrate Rust validation server to JSON RPC to match Go client communication. [PR]
  • Move wavmio logic from JIT crate to caller-env (to be reused soon by SP1 validator). [PR]
  • Make ValidationInput.max_user_wasm_size field non-mandatory. [PR]

Full Changelog: v3.10.0-rc.3...v3.10.0-rc.4

Don't miss a new nitro release

NewReleases is sending notifications on new releases.