This release is available as a Docker Image on Docker Hub at offchainlabs/nitro-node:v3.8.0-rc.6-949e616
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.6-949e616-validator which has the extra script /usr/local/bin/split-val-entry.sh as the entrypoint.
Special Note about ArbOS 50 Support
Release v3.8.0-rc.6
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.
Special Notes about log index system changes to filtermaps
from upstream go-ethereum
- Nitro 3.7.0 pulled in go-ethereum 1.15.6 which changed log index from bloombits to filtermap. This means that database previously running pre-Nitro 3.7.0 on startup there will be elevated CPU usage for 50+ hours while new FilterMaps are generated for log indexing. If log queries are not used, the parameter
--execution.rpc.log-no-history
can be used to completely disable log indexing. - Nitro 3.7.0 pulled in go-ethereum 1.15.11 which includes a brand new log indexing system called
filtermaps
that has resulted in an increase in log indexing latency due to Nitro’s current reliance on HashDB (instead of PathDB). In some cases, this can delay log queries from being served anywhere between 5 seconds to 2 minutes on Arbitrum One during long tail unindexing. We’ve observed that this happens roughly once per day based on Arbitrum One mainnet traffic levels. Teams who need to serve log queries with consistent latency (e.g.eth_getLogs
,eth_getFilterLogs
,eth_getFilterChanges
) can use the configuration parameter--execution.rpc.log-history=0
to keep all log history, which will only slightly increase database growth. Teams running their own log indexer may be unaffected. At some point, a future release of Nitro is expected to fix the issue of log index pruning being able to block log queries.
Configuration Changes
- The parameter
--node.data-availability.rpc-aggregator.max-store-chunk-body-size
has been removed
What's Changed
Updated batch poster to support cell proofs which is required after Fusaka hard fork, change database schema, and other assorted updates.
User-facing Improvements
- Enable blob cell proofs for fusaka: #3788
- Remove Double Account Creation in BoLD Challenge Tests: #3746
- Remove pre sylus validation: #3785
- Update arbdb schema version to 2: #3759
Internal Highlights
- Add DA proof support to daprovider interface: #3600
- Refactor consensus-execution sync to push sync data: #3538
- Respect context cancellation during reconnect wait: #3751
- Support multi-dimensional resource constraints: #3755
- Close response body on non-200 Beacon REST responses to prevent connection leaks: #3756
- DataPoster: Verify external-signer transaction is signed by the expected address: #3731
- Hardening: fix CloseExec race, secure chunk-size tests, enforce gci: #3747
- IP address string conversion in connection limiter: #3762
- DAS: Fix last-chunk size validation when totalSize is a multiple of chunkSize: #3732
- DAS: make trie iterators robust to stray files: #3739
- DAS: Import data streaming changes: #3770
- Fix gas calculation precision: #3777
- Change MaxArbosVersionSupported to 40: #3800
Full Changelog: v3.8.0-rc.5...v3.8.0-rc.6