Skip to content

Releases: OffchainLabs/nitro

Arbitrum Nitro v3.5.0-rc.2

04 Feb 05:27
fcb4018
Compare
Choose a tag to compare
Pre-release

This release is available as a Docker Image on Docker Hub at offchainlabs/nitro-node:v3.5.0-rc.2-fcb4018

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.5.0-rc.2-fcb4018-validator which has the extra script /usr/local/bin/split-val-entry.sh as the entrypoint.

What's Changed

Prevent leaking classic redirect URL in error message, and various timeboost miscellaneous updates.

User-facing Improvements

  • Avoids leaking execution.rpc.classic-redirect URL: #2908

Internal Highlights

  • Express lane timeboost auctioneer rpc forwarding and sequencer coordinator: #2903
  • chainInfo supports track-block-metadata-from: #2917
  • Timeboost: Don't store or publish to feed blockMetadata of blocks lower than TrackBlockMetadataFrom config: #2918
  • allow sequencer to collect metadata without timeboost: #2919
  • Add small sleep in BoLD when chain is behind: #2909
  • Add block-metadata to sepolia chain-info: #2920

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

Arbitrum Nitro v3.5.0-rc.1

30 Jan 17:28
1d9c68d
Compare
Choose a tag to compare
Pre-release

This release is available as a Docker Image on Docker Hub at offchainlabs/nitro-node:v3.5.0-rc.1-1d9c68d

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.5.0-rc.1-1d9c68d-validator which has the extra script /usr/local/bin/split-val-entry.sh as the entrypoint.

What's Changed

This Nitro release adds support for Timeboost, a novel transaction ordering policy for Arbitrum chains. This includes changes to both the sequencer to add an express lane for time-advantaged transaction inclusion and a new process for managing the second price, sealed bid auction for the rights to use said express lane.

To read more about how Timeboost works, the goals behind TImeboost, and how to use it, please visit our Gentle Introduction docs here

Also added a fix for flatCallTracer that was present in v3.3.2, but wasn't included in v3.4.0

User-facing Improvements

  • fix for flatcalltracer originally just on v3.3.x branch: #2902
  • Implement Express Lane Timeboost: #2561
  • Skip AutoDeposit if Staked, Use Latest Data for Auto-Operations: OffchainLabs/bold#722

Internal Highlights

  • fix some problematic method name and typos in comment: #2810
  • Add mock external signer binary: #2842
  • fix typos in validator/server_jit/spawner.go: #2634
  • Upgrade actions/upload-artifact in CI: #2884
  • Add the installation of the cbindgen binary: #2888
  • Add cbindgen to both workflows: #2890
  • Bump github.com/golang-jwt/jwt/v4 from 4.5.0 to 4.5.1: #2771
  • Bump golang.org/x/net from 0.26.0 to 0.33.0: #2891
  • add retryable expiry system tests: #2799
  • chore: fix some function names in comment: #2886
  • More benchmarks in stylus_benchmark: #2870
  • geth-pin update: performance and metrics improvements: #2895
  • Flush triedb during maintenance: #2892
  • Update BoLD Submodule to Include Contracts v3.0.0: #2901
  • Attempt to Reduce Flakiness of BoLD Virtual Block System Tests: #2905
  • database maintenance api: #2897
  • TransactionStreamer should only fetch block metadata when necessary: #2910

Full Changelog: v3.4.0...v3.5.0-rc.1

Arbitrum Nitro v3.4.0

23 Jan 21:30
d896e9c
Compare
Choose a tag to compare

This release is available as a Docker Image on Docker Hub at offchainlabs/nitro-node:v3.4.0-d896e9c

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.4.0-d896e9c-validator which has the extra script /usr/local/bin/split-val-entry.sh as the entrypoint.

What's Changed

Flatcalltracer issues have been fixed, various performance improvements have been implemented, and it is now possible to initialize chain with a genesis.json file.

Configuration Changes

  • --node.inbox-reader.hard-reorg has been removed

User-facing Improvements

  • Add redis sentinel support: #2738
  • Update go-ethereum fork to v1.14.3: #2806
  • Add support for standard genesis.json format: #2761
  • Start node only after the block containing rollup creation tx has been finalized (if supported): #2582
    • Set ensure-rollup-deployment to false in testnode: #2831
  • Pebble config: Enable no-sync mode and increase level sizes to improve performance: #2800
  • Add flag to disable DAS chunked stores: #2796
  • Remove HardReorg config from InboxReader: #2542
  • Add metrics for how many Stylus calls and gas used: #2852
  • Fix flatcalltracer: #2867
  • Create a metric for local block execution time: #2871
  • Fix --execution.rpc.gas-cap=0 to again mean infinite gas: #2873
  • Update google-cloud-storage parameters and object retention setting: #2794
  • Enable the geth trie prefetcher to improve sequencer performance: #2877

Internal Highlights

  • Fix StopOnly followed by StopAndWait: #2815
  • Refactor: using maps.Clone: #2729
  • Don’t print redis errors when sequencer coordinator enabled node is syncing: #2558
  • Fix das store related error logging: #2795
  • Modify the batch poster to support the delay buffer feature: #2758
  • Add missing precompiles comments based on interfaces: #2685
  • Deduplicate arbitrator RustBytes types: #2830
  • Remove probably leftover println: #2829
  • Add bold stake token to sepolia chain info: #2828
  • Fix the delayed sequencer missing messages in tests: #2651
  • Add prestateTracer system_tests: #2553
  • Bump default message pruner min batches left to 1k: #2843
  • Use pre-bold instead of develop as the exception branch used to check submodule pin for nitro-contracts: #2846
  • Test ArbOS11 to ArbOS32 upgrade: #2837
  • BlockValidator is added twice to LatestStakedNotifiers in pre-BOLD case: #2844
  • Include tx compression level in calldata units cache: #2849
  • Consolidate ArbOS version constants into a single file: #2848
  • Get rid of receiver methods on aliased cgo types: #2840
  • Stylus benchmark: #2827
  • Filter transaction: #2807
  • Fall back to the confirmed state if the agreed state is nil: #2854
  • Prevent calling arbtrace_* against nitro with latest as block number: #2845
  • Remove most occurences of log.Crit: #2864
  • Allow waiting for a minimum amount of time since parent assertion was created to post a new assertion: #2825
  • Store last message pruned in database: #2838
  • Update BoLD Submodule and Add Newly Supported Flags to BoLD Staker: #2835
  • On-demand module compile: #2739
  • Bump golang.org/x/crypto from 0.24.0 to 0.31.0: #2847
  • Fix arbitrator-ci: #2872
  • Create ADR-0001 Avoid primative constraint types: #2812

Full Changelog: v3.3.0...v3.4.0

Arbitrum Nitro v3.4.0-rc.2

14 Jan 23:10
d896e9c
Compare
Choose a tag to compare
Pre-release

This release is available as a Docker Image on Docker Hub at offchainlabs/nitro-node:v3.4.0-rc.2-d896e9c

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 offchain-labs/nitro-node:v3.4.0-rc.2-d896e9c-validator which has the extra script /usr/local/bin/split-val-entry.sh as the entrypoint.

User-facing Improvements

  • Update google-cloud-storage parameters and object retention setting: #2794
  • Enable the geth trie prefetcher to improve sequencer performance: #2877
  • Revert wasmer upgrade: #2878

Internal Highlights

  • Create ADR-0001 Avoid primative constraint types: #2812

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

Arbitrum Nitro v3.4.0-rc.1

13 Jan 22:16
dc53b51
Compare
Choose a tag to compare
Pre-release

This release is available as a Docker Image on Docker Hub at offchainlabs/nitro-node:v3.4.0-rc.1-dc53b51

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 offchain-labs/nitro-node:v3.4.0-rc.1-dc53b51-validator which has the extra script /usr/local/bin/split-val-entry.sh as the entrypoint.

Configuration Changes

  • --node.inbox-reader.hard-reorg has been removed

User-facing Improvements

  • Add redis sentinel support: #2738
  • Update go-ethereum fork to v1.14.3: #2806
  • Add support for standard genesis.json format: #2761
  • Start node only after the block containing rollup creation tx has been finalized (if supported): #2582
    • Set ensure-rollup-deployment to false in testnode: #2831
  • Pebble config: Enable no-sync mode and increase level sizes to improve performance: #2800
  • Add flag to disable DAS chunked stores: #2796
  • Remove HardReorg config from InboxReader: #2542
  • Add metrics for how many Stylus calls and gas used: #2852
  • Fix flatcalltracer: #2867
  • Merge wasmer 4.3.7: #2741
  • Create a metric for local block execution time: #2871
  • Fix --execution.rpc.gas-cap=0 to again mean infinite gas: #2873

Internal Highlights

  • Fix StopOnly followed by StopAndWait: #2815
  • Refactor: using maps.Clone: #2729
  • Don’t print redis errors when sequencer coordinator enabled node is syncing: #2558
  • Fix das store related error logging: #2795
  • Modify the batch poster to support the delay buffer feature: #2758
  • Add missing precompiles comments based on interfaces: #2685
  • Deduplicate arbitrator RustBytes types: #2830
  • Remove probably leftover println: #2829
  • Add bold stake token to sepolia chain info: #2828
  • Fix the delayed sequencer missing messages in tests: #2651
  • Add prestateTracer system_tests: #2553
  • Bump default message pruner min batches left to 1k: #2843
  • Use pre-bold instead of develop as the exception branch used to check submodule pin for nitro-contracts: #2846
  • Test ArbOS11 to ArbOS32 upgrade: #2837
  • BlockValidator is added twice to LatestStakedNotifiers in pre-BOLD case: #2844
  • Include tx compression level in calldata units cache: #2849
  • Consolidate ArbOS version constants into a single file: #2848
  • Get rid of receiver methods on aliased cgo types: #2840
  • Stylus benchmark: #2827
  • Filter transaction: #2807
  • Fall back to the confirmed state if the agreed state is nil: #2854
  • Prevent calling arbtrace_* against nitro with latest as block number: #2845
  • Remove most occurences of log.Crit: #2864
  • Allow waiting for a minimum amount of time since parent assertion was created to post a new assertion: #2825
  • Store last message pruned in database: #2838
  • Update BoLD Submodule and Add Newly Supported Flags to BoLD Staker: #2835
  • On-demand module compile: #2739
  • Bump golang.org/x/crypto from 0.24.0 to 0.31.0: #2847
  • Fix arbitrator-ci: #2872

Full Changelog: v3.3.0...v3.4.0-rc.1

Arbitrum Nitro v3.3.2

08 Jan 04:29
9d70997
Compare
Choose a tag to compare

This release is available as a Docker Image on Docker Hub at offchainlabs/nitro-node:v3.3.2-9d70997

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 offchain-labs/nitro-node:v3.3.2-9d70997-validator which has the extra script /usr/local/bin/split-val-entry.sh as the entrypoint.

What's Changed

This release fixes an issue with flatcalltracer

What's Changed

  • Pull in flatcalltracer fix in #2866

Full Changelog: v3.3.1...v3.3.2

Arbitrum Nitro v3.3.2-rc.1

06 Jan 22:33
9d70997
Compare
Choose a tag to compare
Pre-release

This release is available as a Docker Image on Docker Hub at offchainlabs/nitro-node:v3.3.2-rc.1-9d70997

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.3.2-rc.1-9d70997-validator which has the extra script /usr/local/bin/split-val-entry.sh as the entrypoint.

What's Changed

This release fixes an issue with flatcalltracer

What's Changed

  • Pull in flatcalltracer fix in #2866

Full Changelog: v3.3.1...v3.3.2-rc.1

Arbitrum Nitro v3.3.1

06 Jan 18:54
e326369
Compare
Choose a tag to compare

This release is available as a Docker Image on Docker Hub at offchainlabs/nitro-node:v3.3.1-e326369

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.3.1-e326369-validator which has the extra script /usr/local/bin/split-val-entry.sh as the entrypoint.

What's Changed

This release includes a fix for a tracing regression introduced in v3.2.1

Internal Highlights

  • update geth: cherry-pick tracing fix: #2865

Full Changelog: v3.3.0...v3.3.1

Arbitrum Nitro v3.3.1 Release Candidate 1

04 Jan 06:44
e326369
Compare
Choose a tag to compare

This release is available as a Docker Image on Docker Hub at offchainlabs/nitro-node:v3.3.1-rc.1-e326369

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.3.1-rc.1-e326369-validator which has the extra script /usr/local/bin/split-val-entry.sh as the entrypoint.

What's Changed

This release includes a fix for a tracing regression introduced in v3.2.1

Internal Highlights

*update geth: cherry-pick tracing fix: #2865

Full Changelog: v3.3.0-rc.4...v3.3.1-rc.1

Arbitrum Nitro v3.3.0

06 Jan 20:22
5b5e179
Compare
Choose a tag to compare

This release is available as a Docker Image on Docker Hub at offchainlabs/nitro-node:v3.3.0-5b5e179

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.3.0-5b5e179-validator which has the extra script /usr/local/bin/split-val-entry.sh as the entrypoint.

What's Changed

A new parameter --node.batch-poster.max-empty-batch-delay with a default of 3 days has been added. Nitro chains turn validation permissionless if there have been no assertions created within a 2 week period, so this was added to regularly create an empty batch so that validators can post an assertion even if no traffic has been sent to the chain.

This version includes initial support for BoLD: permissionless validation for Arbitrum chains. More information available here: https://docs.arbitrum.io/how-arbitrum-works/bold/gentle-introduction

Configuration Changes

  • --execution.caching.stylus-lru-cache has been replaced by --execution.caching.stylus-lru-cache-capacity which is now measured in megabytes.
  • --blocks-reexecutor.blocks-per-thread has been renamed to --blocks-reexecutor.min-blocks-per-thread
  • --chain.info-ipfs-url and --chain.info-ipfs-download-path have been removed, however, they were already nonfunctional in previous releases.
  • --node.block-validator.redis-validation-client-config.producer-config.* no longer has the enable-reproduce, check-pending-interval, keepalive-timeout and check-pending-items config options.
  • --validation.arbitrator.redis-validation-server-config.consumer-config.keepalive-timeout has been removed.

User-facing Improvements

  • Allow external-signer for batch-poster with DA: #2669
  • Make timeout configurable for block validator jit execution: #2698
  • Sort storage_flush_cache to make Stylus tracing deterministic: #2693
  • Support multiple producers in redis streams for stateless block validators: #2581
  • Support google cloud storage as das: #2643
    • Document the fact OCL does not support google cloud storage: #2727
  • Create a build diagnostic tool V1: #2733
  • Support seamless switchover redis for sequencer coordinator: #2526
    • This has not been tested in a real chain setup yet, and may be unstable to use.
  • New parameter --node.batch-poster.max-empty-batch-delay added: #2657
  • Support the Arbitrum BoLD Challenge Protocol in Nitro: #2362
  • Fix nitro-node validator docker image graceful shutdown: #2780

Internal Highlights

  • Merge in go-ethereum v1.14.0: #2517
  • RPC posting gas hook refactor: #2774
  • Init-reorg: fix logic: #2681
  • Improve stability of getNodeCreationBlock for L3s: #2682
  • Be more precise when selecting firstMsg in the batch poster: #2646
  • Fix CaptureHostIO when slices are bigger than 2^16: #2704
  • Stylus LRU cache with bytes capacity instead of number of entries capacity : #2595
  • Stylus cache improvements: #2712
  • Add dangerous batch poster options to cli: #2776
  • Do not use SetFinalizer to remove entries from preimageResolvers to free memory sooner from block validators: #2752
  • Use MessageCommitMode when executing future head block messages: #2705
  • Gives preference to IPv4 when connecting to Sequencer's feed: #2650
  • Jit prover should accept InputJSON format and execute a full block: #2730
  • Adjusts benchbin's args to have the same names as prover's args: #2724
  • Add Gas and Ink types in rust: #2736
  • Improve BlocksReExecutor implementation: #2714
  • Add flags and other info for nitro --dev: #2751
  • Redis streams: Attempt to clear from PEL again after successfull deletion of Lower: #2755
  • Fix inbox reading window after a reorg: #2673
  • Use Golang version 1.23: #2711
  • Update aws-sdk-go-v2: #2720
  • Log from batch poster for which das backends are using chunked vs legacy store: #2747
  • Log the DAS public key on startup: #2717
  • Remove brotli build dir in make clean: #2703
  • Fix spurious refund error log to just be debug: #2617
  • Fix spurious "failed to re-send transaction" error logs: #2627
  • Validation Inputs wiring: #2604
  • DAS RPC Client Metrics: #2549
  • Remove arbutil's L1Interface and use *ethclient.Client instead: #2641
  • Adjusts log levels for some logs: #2719
  • Remove IPFS support: #2636
  • Fix memory leak when getting stylus cache metrics: #2734
  • Add buildspec.yml for AWS CodeBuild: #2645
  • Allow builds without Docker inside of Docker for cbrotli-wasm: #2748
  • Merge in upstream go-ethereum v1.14.2: #2552
  • Explicitly create zombies for geth v1.14.2: #2732
  • Update config description for batch poster max batch size: #2790
  • Make golangci-lint 1.62.0 happy: #2785
  • Bump google.golang.org/grpc from 1.64.0 to 1.64.1: #2726
  • Blocks ReExecution should require --init.then-quit: #2792
  • Get rid of the hardcoded list of chains in config_arbitrum.go (geth) instead use arbitrum_chain_info.json (nitro): #2658
  • Remove gobwas/ws handshake extensions race condition workaround : #2793
  • Move ArbOS upgrade handling to a bit later in block production: #2791
  • Update AEP link: #2813
  • Revert accidental change to tipReceipient: OffchainLabs/go-ethereum#386
  • Include tx compression level in calldata units cache: #2849