Releases: OffchainLabs/nitro
Arbitrum Nitro v3.9.0-rc.3
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
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
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-schemehas been removed, only--execution.caching.state-schemeis needed
User-facing Changes
- Enable EIP7883 and EIP7823 for Arbos50: #3807
- Add support for new beacon chain /blobs endpoint: #3830
- Add
OverwriteContractCodemethod 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
BatchDataStatsfrom 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
ExecutionClientinterface: 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-layersconfig option: #3966 - Fix ValidationInput exhaustive initialization: #3924
- Add cmd-line tool to simulate the l2pricing model: #3970
- Investigate and fix flakey go-tests
Buildstep: #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
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
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-blobshas been removed, now detected automatically--node.bold.strategyhas been removed, should use--node.staker.strategyinstead--node.data-availability.rpc-aggregator.enable-chunked-storehas been removed--node.data-availability.rpc-aggregator.max-store-chunk-body-sizehas been removed--node.staker.data-poster.blob-tx-replacement-timeshas been removed--node.staker.data-poster.max-blob-tx-tip-cap-gweihas been removed--node.staker.data-poster.min-blob-tx-tip-cap-gweihas been removed--node.staker.data-poster.post-4844-blobshas been removed, now detected automatically
datool
--urlchanged 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.Createsignature: #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...
Arbitrum Nitro v3.8.0-rc.18
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
- Remove internal daprovider server for AnyTrust by @Tristan-Wilson in #3956
- Remove redundant DataStreamer retry mechanism by @Tristan-Wilson in #3957
Full Changelog: v3.8.0-rc.17...v3.8.0-rc.18
Arbitrum Nitro v3.8.0-rc.17
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
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
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
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
Full Changelog: v3.8.0-rc.15...v3.8.0-rc.16
Arbitrum Nitro v3.8.0-rc.15
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
- Port Bug-fix: identify already exists errors correctly while creating assertions (#3875) by @joshuacolvin0 in #3878
Full Changelog: v3.8.0-rc.14...v3.8.0-rc.15