Skip to content

Releases: OffchainLabs/nitro

Arbitrum Nitro v3.9.0-rc.3

13 Nov 03:17
cca645a

Choose a tag to compare

Pre-release

This release is available as a Docker Image on Docker Hub at offchainlabs/nitro-node:v3.9.0-rc.3-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-rc.3-cca645a-validator which has the extra script /usr/local/bin/split-val-entry.sh as the entrypoint.

Internal Highlights

  • Add back split-val-entry: #3999

Full Changelog: v3.9.0-rc.2...v3.9.0-rc.3

Arbitrum Nitro v3.9.0-rc.2

11 Nov 18:40
f5f55f8

Choose a tag to compare

Pre-release

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

Internal Highlights

  • Remove internal daprovider server for AnyTrust: #3992

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

Arbitrum Nitro v3.9.0-rc.1

10 Nov 21:44
ea4cf11

Choose a tag to compare

Pre-release

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

Configuration Changes

  • --execution.rpc.state-scheme has been removed, only --execution.caching.state-scheme is needed

User-facing Changes

  • Enable EIP7883 and EIP7823 for Arbos50: #3807
  • 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
  • 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

Full Changelog: v3.8.0...v3.9.0-rc.1

Arbitrum Nitro Consensus v50

10 Nov 15:28
consensus-v50
475b033

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: 0x2c54f6e9e378ba320ed9c713a1d9f067a572b1437e4f1c40b1a915d3066c04f2

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

Full Changelog: consensus-v40...consensus-v50

Arbitrum Nitro v3.8.0

06 Nov 22:29
62c0aa7

Choose a tag to compare

This release has many bug fixes and improvements. This is not a mandatory upgrade, but any nodes running v3.8.0-rc.* versions are highly encouraged to upgrade.

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

Special Note about ArbOS 50 Support

Release v3.8.0 is unrelated to ArbOS50. A future version of Nitro that supports ArbOS50 will eventually be mandatory if the DAO votes to adopt ArbOS50, but this will be addressed later.

Special Note For Database Schema

  • Nitro 3.8.0 changes the database schema, so once a database has been run with 3.8.0, the database can no longer be opened with Nitro 3.7.x.

Schema Change

  • ArbOS database schema version is updated to version 2. This is a one-way upgrade and nodes may not be downgraded to a pre-v3.8.0 release without restoring their database from a backup.

Configuration Changes

nitro

  • --node.batch-poster.data-poster.post-4844-blobs has been removed, now detected automatically
  • --node.bold.strategy has been removed, should use --node.staker.strategy instead
  • --node.data-availability.rpc-aggregator.enable-chunked-store has been removed
  • --node.data-availability.rpc-aggregator.max-store-chunk-body-size has been removed
  • --node.staker.data-poster.blob-tx-replacement-times has been removed
  • --node.staker.data-poster.max-blob-tx-tip-cap-gwei has been removed
  • --node.staker.data-poster.min-blob-tx-tip-cap-gwei has been removed
  • --node.staker.data-poster.post-4844-blobs has been removed, now detected automatically

datool

  • --url changed to --server-url

User-Facing Changs

  • Allow same prevTimestamp in eth_simulateV1: #3535
  • Add GetNativeTokenManagementFrom precompile to ArbOwnerPublic: #3534
  • Fix EIP 2537 in nitro enable it as part of arbos 50 dia: #3492
  • Implement EIP-7825: #3545
  • Update EIP-7910 implementation: #3571
  • Handle --node.staker.strategy and --node.bold.strategy appropriately: #3582
  • Remove deprecated AnyTrust db storage service: #3701

Internal Highlights

  • fix(backend): fix error handling and add comprehensive tests: #3510
  • Optimize sender address derivation: #3518
  • Don't log error if unable to return expired nonce cache failure: #3486
  • Add multi-dimensional gas collector: #3453
  • Refactor move multigascollector to arbos: #3524
  • Add debug flag to enable deep copy of backlog msgs: #3519
  • Merge geth v1.16.0: #3523
  • Use the parent chain for BlobFeePerByte instead of an RPC call: #3531
  • fix acquiring redis lock in batch poster: #3511
  • Merge geth v1.16.1: #3528
  • Account multi-gas in StartTxHook: #3533
  • Return False When Checking if Deposit Tx Type Has Poster Costs: #3536
  • Merge geth v1.16.2: #3537
  • Improve CPU performance when processing blocks: #3541
  • fix that arbos didnt get updated for l1 calldata price: #3470
  • Support passing multi gas by value: #3543
  • Skip block size cap for arbitrum chains: #3544
  • Record only specific targets needed for stylus: #3416
  • Remove rust nightly dependency: #3546
  • Enable arbos 50: #3547
  • Treat precompile code as empty during delegation after arbos 50: #3549
  • Enable ArbOS 50 in system tests: #3550
  • Add consensus v41 to Dockerfile: #3555
  • prover: remove unnecessary wasm exports: #3554
  • Move the MaxTxGas limit enforcement: #3557
  • Add support for consensus v50 to Docker: #3551
  • Store single-gas in multi-gas collector: #3552
  • fix: correct error aggregation for multi-target compile results: #3532
  • fix: prevent HTTP response body leaks in restful DAS client: #3558
  • Instrument multi-gas in StylusPrograms (just for getBytes32): #3539
  • fix: correct rightshift linter documentation: #3562
  • Update gammazero dependency: #3565
  • Update go version to 1.24.x across github workflows: #3567
  • Merge geth v1.16.3: #3568
  • Multigas: support geth multigas api changes: #3569
  • Add suppoort for Consensus V50 (rc.3) to Docker: #3574
  • fix: Correctly count struct fields in the structinit linter: #3579
  • Fix PublishedMachine tests to handle cases when latest release is behind latest ArbOS: #3581
  • Multigas: Instrument GasChargingHook with multi-gas: #3576
  • Run execution-spec-tests in nightly CI: #3577
  • Fix: Return proper error on non-200 in RestfulDasClient.ExpirationPolicy: #3585
  • Move output dir setup to constructor; make Start launch-only: #3578
  • Small fixes related to DA: #3591
  • fix: Make structinit linter work cross packages: #3586
  • Test Genesis assertion on nitro init: #3570
  • Update Rust to 1.88.0: #3553
  • CustomDA core Arbitrator & WASM infra: #3548
  • Remove redundant Background context initialization in poster_test: #3595
  • Include msg.SetCodeAuthorizations field when constructing arbitrum.TransactionArgs: #3598
  • Fail instead of panic when building second node if first node was not built with L1: #3601
  • Turn bold into a sub-package of nitro: #3599
  • Unify DAS interfaces: #3593
  • Add to chain_info: feed-signed: #3583
  • Update the implementation of EIP-7825: #3589
  • Fix l1 pricing state field order: #3602
  • Multigas: Add multi gas to transaction receipt and remove collector: #3594
  • bugfix: genesis validation without l1 reader: #3607
  • Extract streaming protocol (sender): #3603
  • Hide multi-gas behind feature flag: #3613
  • Fix race in DAS chunk assembly by adding per-batch locking: #3588
  • Arbos50 block gaslimit: #3606
  • bold/e2e: fix Anvil startup race causing RPC hangs in end-to-end tests: #3612
  • Fix ProduceBlockAdvanced handling of txs that don't need sequencing hooks: #3627
  • Extract streaming protocol (receiver): #3625
  • Gas floor: #3618
  • Multigas: Fix api.go to use new evm.Create signature: #3630
  • Add suppoort for Consensus V50 (rc.4) to Docker: #3638
  • Make sure to retry fast confirmation on failure: #3640
  • fix: recreate-missing-state-from panic: #3464
  • Add FloorGasAdditionalTokens to floor-gas computation: #3642
  • Fix redefining of staker related metrics: #3592
  • Multigas: Fix api.go to use new callcode/delegatecall/staticcall signatures: #3635
  • Instrument multi-gas in account HostIOs: #3645
  • fix: use RLock instead of Lock in CollectMachineHashes for concurrent…: #3632
  • fix: extract SerializedChainConfig from json directly: #3636
  • Remove...
Read more

Arbitrum Nitro v3.8.0-rc.18

05 Nov 12:46
62c0aa7

Choose a tag to compare

Pre-release

This release is available as a Docker Image on Docker Hub at offchainlabs/nitro-node:v3.8.0-rc.18-62c0aa7
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.8.0-rc.18-62c0aa7-validator which has the extra script /usr/local/bin/split-val-entry.sh as the entrypoint.

Note

This is a Release Candidate, and should only be used to upgrade nodes that are already running a previous release candidate.

Special Note about ArbOS 50 Support

Release v3.8.0-rc.18 is unrelated to ArbOS50. A future version of Nitro that supports ArbOS50 will eventually be mandatory if the DAO votes to adopt ArbOS50, but this will be addressed later.

Special Note For Database Schema

  • Nitro 3.8.0 changes the database schema, so once a database has been run with 3.8.0, the database can no longer be opened with Nitro 3.7.x.

Schema Change

  • ArbOS database schema version is updated to version 2. This is a one-way upgrade and nodes may not be downgraded to a pre-v3.8.0 release without restoring their database from a backup.

What's Changed

Full Changelog: v3.8.0-rc.17...v3.8.0-rc.18

Arbitrum Nitro v3.8.0-rc.17

04 Nov 23:52
1ee5ab5

Choose a tag to compare

Pre-release

This release is available as a Docker Image on Docker Hub at offchainlabs/nitro-node:v3.8.0-rc.17-1ee5ab5
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.8.0-rc.17-1ee5ab5-validator which has the extra script /usr/local/bin/split-val-entry.sh as the entrypoint.

Note

This is a Release Candidate, and should only be used to upgrade nodes that are already running a previous release candidate.

Note

v3.8.0 does not support chunked AltDA/Anytrust, so should not be used by Orbit chains that post large batches.

Special Note about ArbOS 50 Support

Release v3.8.0-rc.16 is unrelated to ArbOS50. A future version of Nitro that supports ArbOS50 will eventually be mandatory if the DAO votes to adopt ArbOS50, but this will be addressed later.

Special Note For Database Schema

  • Nitro 3.8.0 changes the database schema, so once a database has been run with 3.8.0, the database can no longer be opened with Nitro 3.7.x.

Schema Change

  • ArbOS database schema version is updated to version 2. This is a one-way upgrade and nodes may not be downgraded to a pre-v3.8.0 release without restoring their database from a backup.

What's Changed

Fix sequencer startup issue, fix sequencer shutdown issue

User-facing Changes

  • Remove lock when setting finality data: #3921
  • Fix PopulateFeedBacklog implementation: #3955

Internal Highlights

  • Update sepolia contract address: #3922

Full Changelog: v3.8.0-rc.16...v3.8.0-rc.17

Arbitrum Nitro Consensus v50 Release Candidate 6

26 Oct 00:38
475b033

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: 0x2c54f6e9e378ba320ed9c713a1d9f067a572b1437e4f1c40b1a915d3066c04f2

This is a release candidate of a consensus release for ArbOS 50, including support for Fusaka.

Full Changelog: consensus-v40...consensus-v50-rc.6

Arbitrum Nitro v3.8.0-rc.16

22 Oct 14:09
8419934

Choose a tag to compare

Pre-release

This release is available as a Docker Image on Docker Hub at offchainlabs/nitro-node:TBD
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:TBD-validator which has the extra script /usr/local/bin/split-val-entry.sh as the entrypoint.

Note

This is a Release Candidate, and should only be used to upgrade nodes that are already running a previous release candidate.

Special Note about ArbOS 50 Support

Release v3.8.0-rc.16 is unrelated to ArbOS50. A future version of Nitro that supports ArbOS50 will eventually be mandatory if the DAO votes to adopt ArbOS50, but this will be addressed later.

Special Note For Database Schema

  • Nitro 3.8.0 changes the database schema, so once a database has been run with 3.8.0, the database can no longer be opened with Nitro 3.7.x.

Schema Change

  • ArbOS database schema version is updated to version 2. This is a one-way upgrade and nodes may not be downgraded to a pre-v3.8.0 release without restoring their database from a backup.

What's Changed

Fix external signer support

User-facing Changes

  • Port - Fix Fusaka Cell Proof support for external signers (#3910): #3911

Full Changelog: v3.8.0-rc.15...v3.8.0-rc.16

Arbitrum Nitro v3.8.0-rc.15

22 Oct 02:05
f3dc927

Choose a tag to compare

Pre-release

This release is available as a Docker Image on Docker Hub at offchainlabs/nitro-node:v3.8.0-rc.15-f3dc927
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.8.0-rc.15-f3dc927-validator which has the extra script /usr/local/bin/split-val-entry.sh as the entrypoint.

Note

This is a Release Candidate, and should only be used to upgrade nodes that are already running a previous release candidate.

Special Note about ArbOS 50 Support

Release v3.8.0-rc.14 is unrelated to ArbOS50. A future version of Nitro that supports ArbOS50 will eventually be mandatory if the DAO votes to adopt ArbOS50, but this will be addressed later.

Special Note For Database Schema

  • Nitro 3.8.0 changes the database schema, so once a database has been run with 3.8.0, the database can no longer be opened with Nitro 3.7.x.

Schema Change

  • ArbOS database schema version is updated to version 2. This is a one-way upgrade and nodes may not be downgraded to a pre-v3.8.0 release without restoring their database from a backup.

What's Changed

Reduce warning logs

Internal Highlights

Full Changelog: v3.8.0-rc.14...v3.8.0-rc.15