Skip to content

Releases: OffchainLabs/nitro

Arbitrum Nitro v3.9.4

11 Dec 01:45
7f582c3

Choose a tag to compare

Nitro v3.9.4 is an optional release, only minor updates on top of v3.9.3.

This release is available as a Docker Image on Docker Hub at offchainlabs/nitro-node:v3.9.4-7f582c3
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.9.4-7f582c3-validator which has the extra script /usr/local/bin/split-val-entry.sh as the entrypoint (no need to override the default entrypoint).

Configuration Changes

  • --node.batch-poster.data-poster.enable-cell-proofs has been removed
  • --parent-chain.blob-client.use-legacy-endpoint has been removed

What's Changed

A handful of functionality fixes, and remove legacy blob functionality that is no longer needed now that Fusaka is live.

User-facing Changes

  • Fix searching for tx hash in block for ArbitrumLegacyTx: #4097
  • Modify validateGenesisAssertion to handle non-empty genesis: #4087
  • Remove legacy blob support, store blobs locally: #4113

Full Changelog: v3.9.3...v3.9.4

Arbitrum Nitro v3.9.4-rc.2

04 Dec 22:22
7f582c3

Choose a tag to compare

Pre-release

Nitro v3.9.4 is an optional release, only minor updates on top of v3.9.3.

This release is available as a Docker Image on Docker Hub at offchainlabs/nitro-node:v3.9.4-rc.2-7f582c3
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.9.4-rc.2-7f582c3-validator which has the extra script /usr/local/bin/split-val-entry.sh as the entrypoint (no need to override the default entrypoint).

Configuration Changes

  • --node.batch-poster.data-poster.enable-cell-proofs has been removed
  • --parent-chain.blob-client.use-legacy-endpoint has been removed

What's Changed

Fix to store blobs locally post fusaka, and add disk reader that can use locally stored blobs. Also, remove legacy blob functionality that is no longer needed now that Fusaka is live.

User-facing Changes

  • Remove legacy blob support, store blobs locally: #4113

Full Changelog: v3.9.4-rc.1...v3.9.4-rc.2

v3.9.4-rc.1

01 Dec 23:14
88edd3a

Choose a tag to compare

v3.9.4-rc.1 Pre-release
Pre-release

Nitro v3.9.4 is an optional release, only minor updates on top of v3.9.3.

This release is available as a Docker Image on Docker Hub at offchainlabs/nitro-node:v3.9.4-rc.1-88edd3a
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.9.4-rc.1-88edd3a-validator which has the extra script /usr/local/bin/split-val-entry.sh as the entrypoint (no need to override the default entrypoint).

What's Changed

  • Fix searching for tx hash in block for ArbitrumLegacyTx: #4097
  • Modify validateGenesisAssertion to handle non-empty genesis: #4087

Full Changelog: v3.9.3...v3.9.4-rc.1

Arbitrum Nitro v3.9.3

26 Nov 19:50
8bc5554

Choose a tag to compare

Nitro v3.9.3 is an optional release for mainnet, but all ArbSepolia node operators must upgrade to Nitro v3.9.3 before the ArbOS 51 network upgrade on ArbSepolia, scheduled for December 1st, 2025, at 17:00 UTC (12:00 PM ET).

This release is available as a Docker Image on Docker Hub at offchainlabs/nitro-node:v3.9.3-8bc5554
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.9.3-8bc5554-validator which has the extra script /usr/local/bin/split-val-entry.sh as the entrypoint (no need to override the default entrypoint).

What's Changed

Support for ArbOS51

User-facing Changes

  • Fix retryable gas calculation bug and add ArbOS51 version (#4047): #4068
  • Add support for ArbOS51: #4073

Internal Highlights

  • stop block metdata fetcher when node stops: #4021

Full Changelog: v3.9.2...v3.9.3

Arbitrum Nitro v3.9.3-rc.1

26 Nov 00:22
8bc5554

Choose a tag to compare

Pre-release

Arbitrum Sepolia node operators must upgrade to Nitro v3.9.3 before the ArbOS 51 (Fusaka) network upgrade on ArbSepolia, scheduled for November 20, 2025, at 17:00 UTC (12:00 PM ET).

This release is available as a Docker Image on Docker Hub at offchainlabs/nitro-node:v3.9.3-rc.1-8bc5554
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

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.9.3-rc.1-8bc5554-validator which has the extra script /usr/local/bin/split-val-entry.sh as the entrypoint (no need to override the default entrypoint).

What's Changed

Support for ArbOS51

User-facing Changes

  • Fix retryable gas calculation bug and add ArbOS51 version (#4047): #4068
  • Add support for ArbOS51: #4073

Internal Highlights

  • stop block metdata fetcher when node stops: #4021

Full Changelog: v3.9.2...v3.9.3-rc.1

Arbitrum Nitro Consensus v51

25 Nov 21:16
03949e7

Choose a tag to compare

This release signifies a WASM fraud proof consensus version, and is not a good version to run a node on

WAVM Module Root: 0x8a7513bf7bb3e3db04b0d982d0e973bcf57bf8b88aef7c6d03dba3a81a56a499

This is a consensus release for ArbOS 51, including support for Fusaka.

Full Changelog: consensus-v50...consensus-v51

Arbitrum Nitro v3.9.2

17 Nov 15:22
52e8959

Choose a tag to compare

Node operators should upgrade to Nitro v3.9.x before the ArbOS 50 (Fusaka) network upgrade on ArbSepolia, scheduled for November 20, 2025, at 17:00 UTC (12:00 PM ET).

This release adds validator support for ArbOS50. Compared to v3.9.0, the only change is in the -validator image, so it is only a required upgrade if you are running a validator.

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

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.9.2-52e8959-validator which has the extra script /usr/local/bin/split-val-entry.sh as the entrypoint (no need to override the default entrypoint).

What's Changed

  • Prune old wasm module roots: #4015
  • Port - Fix parent chain reader bug in creating smart contract wallet [PR-4019]: #4020
  • Add legacy validator back for split validator: #4017

Full Changelog: v3.9.1...v3.9.2

Arbitrum Nitro v3.9.2-rc.1

14 Nov 17:20
72bbb72

Choose a tag to compare

Pre-release

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

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.9.1-241cd93-validator which has the extra script /usr/local/bin/split-val-entry.sh as the entrypoint (no need to override the default entrypoint).

What's Changed

Remove old wasm module roots

Internal Highlights

  • Prune old wasm module roots: #4015

Full Changelog: v3.9.1...v3.9.2-rc.1

Arbitrum Nitro v3.9.1

13 Nov 17:11
241cd93

Choose a tag to compare

This release fixes an issue with -validator docker image, it is not a required upgrade if you are already running v3.9.0.

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

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.9.1-241cd93-validator which has the extra script /usr/local/bin/split-val-entry.sh as the entrypoint (no need to override the default entrypoint).

What's Changed

Fix permissions on split-val-entry.sh in -validator docker image.

Internal Highlights

  • Fix permissions for split-val-entry: #4005

Full Changelog: v3.9.0...v3.9.1

Arbitrum Nitro v3.9.0

13 Nov 08:34
cca645a

Choose a tag to compare

This release adds support for ArbOS50, all nodes are required to upgrade before ArbOS50 is enabled on each respective chain.

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

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.9.0-cca645a-validator which has the extra script /usr/local/bin/split-val-entry.sh as the entrypoint (no need to override the default entrypoint).

Configuration Changes

  • --execution.rpc.state-scheme has been removed

What's Changed

Added support for ArbOS50 and various bug fixes and improvements.

User-facing Changes

  • Add support for new beacon chain /blobs endpoint: #3830
  • Add OverwriteContractCode method to ArbDebug precompile: #3867
  • Optional graceful shutdown if block hash from feed mismatches with locally computed one: #3859
  • Allow archive mode for path scheme: #3932

Internal Highlights

  • Hide blob-related DataPoster config in some contexts: #3810
  • Correct the order TransactionStreamer and PopulateFeedBacklog: #3812
  • avoid unnecessary warnings from sequencer expectedSurplus mechanism: #3784
  • Add a BoLD system test that uses external signer: #3753
  • Enable EIP7883 and EIP7823 for Arbos50: #3807
  • make stylus usage of result more consistent: #3809
  • Reject Estimates for BoLD Txs that Exceed Fusaka's Max Tx Gas Cap: #3814
  • mel: rename DelayedMessagedSeen to DelayedMessagesSeen: #3789
  • stabilize database conversion test: #3783
  • For L3 on arbitrum return false for shouldEnableCellProofs instread of erroring out: #3825
  • don't open freezer for wasm and arbitrumdata databases: #3828
  • Toggle blobs rpc endpoint used on errors: #3834
  • Fix out of bounds config access in dataposter: #3838
  • update testnode pin: #3736
  • getNextBlockToRead does not depend on FillInBatchGasField: #3851
  • Add linter for imposible json omitempty: #3849
  • Prevent HTTP connection reuse in BlobClient error recovery: #3811
  • Use structured logging for startup error: #3840
  • Add test for "Regression in v3.8.x PopulateFeedBacklog depends on un-started InboxReader": #3847
  • Exclude BatchDataStats from feed for old ArbOS versions: #3853
  • Don't treat error as fatal when signature behavior fails: #3852
  • Add gas constraints to L2 Pricing storage: #3861
  • Identify already exists errors correctly while creating assertions: #3875
  • Fix broadcast client shutdown deadlock: #3882
  • Turn off feed-signed flag for sepolia: #3891
  • DA client: use streaming optionally: #3884
  • validator api: json unit test: #3894
  • Compute gas price based on multiple constraints: #3872
  • During the ArbOS 50 Upgrade also SetMaxWASMStackDepth 22k: #3888
  • Make 'chain is catching up to the execution state' logs info level: #3869
  • Add hardcoded transaction hash for ArbSepolia: #3876
  • Add option to pull Chain Configs in parent.go from a json file: #3856
  • Avoid races in system_tests changing config by making the changes atomic: #3829
  • Update gas in hardcoded transaction hash for arbSepolia: #3901
  • Fix fast confirm not working for EOA on pre - bold: #3902
  • Unify ExecutionClient interface: remove unnecessary context: #3883
  • Add proof enhancer system with customda enhancers: #3750
  • Pin cbindgen to version 0.24.3: #3905
  • Show more details in failed blob fetch logs: #3881
  • Rewrite SequencingHooks as an interface and don't stop sequencing on large transactions: #3821
  • Fix unknown multi-gas: #3906
  • Prevent nil deref in downloadFile when checking HTTPResponse on error: #3842
  • Script behavior for safer execution and error handling: #3823
  • Check multi-dimensional gas in block re-execution: #3791
  • Fix SCW initialization bug in staker: #3695
  • Fix Fusaka Cell Proof support for external signers: #3910
  • Arbos version getter: #3893
  • Replace period with inertia in multi constraints: #3913
  • remove lock when setting finality data: #3916
  • update sepolia contract address: #3917
  • Add precompiles for Multi-Constraint Pricer: #3860
  • Full ReferenceDA implementation: #3873
  • Make TestEthSyncing not flaky: #3920
  • Test enable and disable multi constraint pricer: #3919
  • Add support for consensus v50 (rc.6) to Docker: #3925
  • Test that batch poster actually posts blobs to L1: #3918
  • Change memory limit warning to error for block_validator: #3938
  • Add comment about extra Multi-Constraint pricer read cost: #3943
  • Update check-build.sh: #3937
  • Fix PopulateFeedBacklog implementation: #3953
  • Remove redundant DataStreamer retry mechanism: #3959
  • Address a bunch of new lint errors: #3944
  • Fix tests anytrust legacy fallback and signing: #3930
  • Bump github.com/consensys/gnark-crypto from 0.18.0 to 0.18.1: #3934
  • Check for failures during state initialization: #3898
  • Transient nonce too high should not log error right away: #3939
  • Add tx streamer message processing duration metric: #3698
  • Enhance Promise API: #3899
  • Fix datool rpc client opts: #3963
  • Added periodic log during FindLastAvailableState: #3951
  • Update geth pin to include pathdb rpc changes + enabling pathdb archival mode for tests + added tests: #3945
  • Add execution.caching.pathdb-max-diff-layers config option: #3966
  • Fix ValidationInput exhaustive initialization: #3924
  • Add cmd-line tool to simulate the l2pricing model: #3970
  • Investigate and fix flakey go-tests Build step: #3971
  • Add support for consensus-v50 to docker: #3984
  • Set max ArbOS version to v50: #3986
  • Remove internal daprovider server for AnyTrust: #3992
  • Add back split-val-entry: #3999

Full Changelog: v3.8.0...v3.9.0