github OffchainLabs/nitro v3.9.0-rc.1
Arbitrum Nitro v3.9.0-rc.1

pre-release5 hours ago

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

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

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

Don't miss a new nitro release

NewReleases is sending notifications on new releases.