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-pricenow defaults totrue. [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-entryto the address filter. [commit] - Add the
plaintexthashing scheme for address filter hash lists. [commit] - Add
--count-stepsto the arbitrator prover CLI. [commit] - Add
--node.block-recordings-pruner.enable. [commit] --node.batch-poster.data-poster.dangerous.clear-dbstoragenow also clears Redis storage. [commit]
Added
- Add verifiable (SP1) compiler for Stylus programs (from wasm to rv64). [commit]
- Add
ValidationInput::from_request_allowing_missing_binariesandSP1_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/fifometric. [commit] - Add
arb/sequencer/ordering/pgametric. [commit] - Add
arb/sequencer/pga/*metrics. [commit] - Add
arb/sequencer/livemetric. [commit] - Add
arb/sequencer/prioritymetric. [commit] - Add
arb/sequencer/transactions/dropped/*metrics. [commit] - Add
arb/sequencer/block/timelimitedmetric. [commit] - Add per-file
arb/addressfilter/file/<bucket>/<object_key>/sizemetrics. [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
ErrArbTxFilterandErrFilteredTx. [commit] - Block production is now driven by consensus instead of execution. [commit]
TxForwarderlogs whether a forwarding error will be retried against another target. [commit]eth_calland gas estimation reject filteredfrom/toaddresses 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.fillvalue 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_totaltofilter_set_ids_post_failure_total. [commit] - Rename
arb/filter_report/api/filter_set_id_post_success_totaltofilter_set_ids_post_success_total. [commit] - Rename
arb/filter_report/client/filter_set_id_failure_totaltofilter_set_ids_failure_total. [commit] - Rename
arb/filter_report/client/filter_set_id_success_totaltofilter_set_ids_success_total. [commit]
Removed
- Remove
arb/addressfilter/file/sizemetric. [commit]
Fixed
- Fix re-entrant mutable aliasing UB in
user-host. [commit] - Fix initialization of the BOLD redis execution client. [commit]
LocalFileStorageServicefsyncs 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
GenesisBlockNumin 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]
timeboostrejects 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
WasmerSerializeVersionto 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.Reorgprefetches the next message, not the current one. [commit]- Bump nitro-testnode so
--l2-anytrustworks 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.latestwith 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_getLogsrequests 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, matchingeth_estimateGas. [commit] - The execution engine sequences transactions through the
BlockSequencingHooksinterface. [commit] - Pin SP1 version to 6.2.1. [commit]
- Reject tx submissions with
ErrNoSequenceronce the sequencer is stopped. [commit] makeinstalls safe-smart-account's dependencies withnpm ci. [commit]- Restore the unfiltered baseline in
TestEthCallFilterPreservesResultWithScheduledTxes. [commit] - Breaking:
gethexec.CreateExecutionNodetakes functional options. [commit] - Use
ComputeBudgetandBalanceLedgerfrom arbos in the block executor. [commit] - Decompose the nitro-reth block producer. [commit]
- Seed the
arb-replaycrate in nitro-reth. [commit] arb-stylusreusesarbutilgas types and constants instead of duplicating them. [commit]arb-stylusimplementsarbutil'sEvmApitrait. [commit]arb-styluscompiles for wasm32. [commit]- nitro-reth links the prebuilt brotli static libs. [commit]