github OffchainLabs/nitro v3.3.0
Arbitrum Nitro v3.3.0

latest releases: v3.3.2, v3.3.2-rc.1
2 days ago

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.

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.
  • PeriodToAllowPostingBatchWithOnlyBatchPostingReport config: #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

Don't miss a new nitro release

NewReleases is sending notifications on new releases.