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-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