github OffchainLabs/nitro v3.12.0
Arbitrum Nitro v3.12.0

latest release: v3.12.1
3 hours ago

This release is available as a Docker Image on Docker Hub at offchainlabs/nitro-node:v3.12.0-ebe9e83-stripped
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

v3.12.0 - 2026-09-22

Configuration

  • Add --execution.sequencer.poll-interval. [commit]
  • Breaking: Remove --execution.sequencer.read-from-tx-queue-timeout. [commit]
  • Add --execution.transaction-feed.enable. [commit]
  • Add --execution.transaction-feed.addr. [commit]
  • Add --execution.transaction-feed.port. [commit]
  • Add --execution.transaction-feed.client-buf. [commit]
  • Add --execution.transaction-feed.broadcast-buf. [commit]
  • Add --execution.transaction-feed.write-timeout. [commit]
  • Add --execution.transaction-feed.ping-interval. [commit]
  • Add --execution.transaction-feed.handshake-timeout. [commit]
  • Change the default of --node.batch-poster.data-poster.min-blob-tx-tip-cap-gwei. [commit]
  • Change the default of --node.batch-poster.data-poster.blob-tx-replacement-times. [commit]
  • Breaking: Rename --execution.sequencer.experimental-pga.* to --execution.sequencer.pga.*. [commit]
  • --node.batch-poster.ignore-blob-price now defaults to true. [commit]
  • Add --execution.sequencer.max-block-tx-candidates. [commit]
  • Add --execution.caching.node-full-value-checkpoint. [commit]
  • Add init.genesis-json.
  • Add init.genesis-mode.
  • Breaking: Remove --execution.transaction-filtering.address-filter.s3.*. [commit]
  • Breaking: Remove --execution.transaction-filtering.address-filter.poll-interval. [commit]
  • Add execution.transaction-filtering.address-filter.files. [commit]
  • Add --execution.transaction-filtering.address-filter.static-list. [commit]
  • Add per-file min-bytes-per-hash-entry to the address filter. [commit]
  • Add the plaintext hashing scheme for address filter hash lists. [commit]
  • Add --count-steps to the arbitrator prover CLI. [commit]
  • Add --node.block-recordings-pruner.enable. [commit]
  • --node.batch-poster.data-poster.dangerous.clear-dbstorage now also clears Redis storage. [commit]

Added

  • Add verifiable (SP1) compiler for Stylus programs (from wasm to rv64). [commit]
  • Add ValidationInput::from_request_allowing_missing_binaries and SP1_BOOTLOAD_SENTINEL. [commit]
  • Record chain-tip validation inputs for pathdb. [commit]
  • Store chain-tip block recordings in a dedicated append-only freezer. [commit]
  • Update go-ethereum to upstream v1.17.2. [commit]
  • Report the current address-filter set ID to the filtering-report service. [commit]
  • Add rust-analyzer to the rust toolchain components. [commit]
  • Add priority gas auction (PGA) transaction ordering. [commit]
  • Update go-ethereum to upstream v1.17.3. [commit]
  • Log the transaction ordering strategy (FIFO or PGA) when it is set or changes. [commit]
  • Add a limit to the Stylus storage cache size. [commit]
  • Add an RPC client for running native MEL in a separate process. [commit]
  • Add arb/sequencer/timeboost/* metrics. [commit]
  • Add arb/txprechecker/expresslane/* metrics. [commit]
  • Add arb/transactionfeed/* metrics. [commit]
  • Add arb/dataposter/* metrics. [commit]
  • Add arb/sequencer/ordering/fifo metric. [commit]
  • Add arb/sequencer/ordering/pga metric. [commit]
  • Add arb/sequencer/pga/* metrics. [commit]
  • Add arb/sequencer/live metric. [commit]
  • Add arb/sequencer/priority metric. [commit]
  • Add arb/sequencer/transactions/dropped/* metrics. [commit]
  • Add arb/sequencer/block/timelimited metric. [commit]
  • Add per-file arb/addressfilter/file/<bucket>/<object_key>/size metrics. [commit]

Changed

  • The BOLD staker gets the module root from the latest staked assertion. [commit]
  • Replace the bincode Stylus module cache with a stable WAVM wire format. [commit]
  • Breaking: Rename filtering errors ErrArbTxFilter and ErrFilteredTx. [commit]
  • Block production is now driven by consensus instead of execution. [commit]
  • TxForwarder logs whether a forwarding error will be retried against another target. [commit]
  • eth_call and gas estimation reject filtered from/to addresses before execution. [commit]
  • Improve address hash caching. [commit]
  • Use Reth's execution cache when executing blocks. [commit]
  • Nitro binaries report explicit build provenance, including the commit timestamp. [commit]
  • After a block, the sequencer throttles to the next PGA round boundary. [commit]
  • Transaction feed messages report the PGA round in pga_round. [commit]
  • Pin go-ethereum to an Amsterdam L1 compatible version. [commit]
  • The sequencer ends a block once remaining gas is below the intrinsic tx cost. [commit]
  • The memory.fill value overflow transaction filter applies only below ArbOS 59. [commit]
  • The sequencer rejects configurations yielding a PGA round length below 5ms. [commit]
  • Update go-ethereum to upstream v1.17.4. [commit]
  • Rename arb/filter_report/api/filter_set_id_post_failure_total to filter_set_ids_post_failure_total. [commit]
  • Rename arb/filter_report/api/filter_set_id_post_success_total to filter_set_ids_post_success_total. [commit]
  • Rename arb/filter_report/client/filter_set_id_failure_total to filter_set_ids_failure_total. [commit]
  • Rename arb/filter_report/client/filter_set_id_success_total to filter_set_ids_success_total. [commit]

Removed

  • Remove arb/addressfilter/file/size metric. [commit]

Fixed

  • Fix re-entrant mutable aliasing UB in user-host. [commit]
  • Fix initialization of the BOLD redis execution client. [commit]
  • LocalFileStorageService fsyncs data and directories before signing. [commit]
  • The delayed sequencer no longer stays halted on a filtered, already-finalized delayed message. [commit]
  • Fix a panic when syncing Arbitrum Sepolia at block 204060502. [commit]
  • Correct the Arbitrum One GenesisBlockNum in the chain info config. [commit]
  • The address filter checks the de-aliased L1 sender of retryable submissions and deposits. [commit]
  • Allow arbitrary size payloads in the rust validator service. [commit]
  • timeboost rejects express lane submissions with a nil chain id instead of panicking. [commit]
  • Txs drained but not attempted stay queued when a block fails to commit. [commit]
  • Fix a "send on closed channel" panic in the BOLD event Producer. [commit]
  • Bump WasmerSerializeVersion to 17 to match wasmer. [commit]
  • Delete stale keys during a sequence number jump. [commit]
  • Fix the brotli build script watching a nonexistent path. [commit]
  • Rate-limit the "error checking onchain filter" log while the delayed sequencer is halted. [commit]
  • An unusable revalidation start batch no longer aborts node startup. [commit]
  • Stylus activation database failures are reported instead of crashing the node. [commit]
  • Fix a race where a concurrent head update could move the chain head during block building. [commit]
  • The sequencer reads the sender's nonce from post-execution state. [commit]
  • ExecutionEngine.Reorg prefetches the next message, not the current one. [commit]
  • Bump nitro-testnode so --l2-anytrust works again. [commit]
  • A force-included retryable with a very large gas limit no longer drops its auto-redeem. [commit]
  • Select state scheme compatible snapshots when using --init.latest with PathDB. [commit]
  • Return native Stylus initialization failures to Go instead of panicking in Rust. [commit]
  • Prevent shutdown deadlocks when waiting for the processed message count over execution RPC. [commit]
  • Fix opening a database with an unexpected freezer state. [commit]
  • Cancelled eth_getLogs requests no longer leak goroutines or stall log index rendering. [commit]

Internal

  • Add the PGA round schedule state machine. [commit]
  • Add the priority mempool for PGA ordering. [commit]
  • Add the anti-starvation priority boost to the priority mempool. [commit]
  • Add transaction address filtering support to eth_call, matching eth_estimateGas. [commit]
  • The execution engine sequences transactions through the BlockSequencingHooks interface. [commit]
  • Pin SP1 version to 6.2.1. [commit]
  • Reject tx submissions with ErrNoSequencer once the sequencer is stopped. [commit]
  • make installs safe-smart-account's dependencies with npm ci. [commit]
  • Restore the unfiltered baseline in TestEthCallFilterPreservesResultWithScheduledTxes. [commit]
  • Breaking: gethexec.CreateExecutionNode takes functional options. [commit]
  • Use ComputeBudget and BalanceLedger from arbos in the block executor. [commit]
  • Decompose the nitro-reth block producer. [commit]
  • Seed the arb-replay crate in nitro-reth. [commit]
  • arb-stylus reuses arbutil gas types and constants instead of duplicating them. [commit]
  • arb-stylus implements arbutil's EvmApi trait. [commit]
  • arb-stylus compiles for wasm32. [commit]
  • nitro-reth links the prebuilt brotli static libs. [commit]

Don't miss a new nitro release

NewReleases is sending notifications on new releases.