Arbitrum Nitro v3.8.0-rc.2
Pre-releaseNote
v3.8.0-rc.2 should not be used
Special Note 1
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.tx-indexer.enable=false can be used to completely disable log indexing.
Special Note 2
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.
User facing changes
- Important! If you have previously used the
ArbOwner.setMaxTxGasLimitto set the max transaction and block gas limits for your chain, you should add calls toArbOwner.setMaxTxGasLimitandArbOwner.SetMaxBlockGasLimitto your upgrade action to arbos 50. (When it's time.) - After the arbos 50 upgrade, there is a new
ArbOwner.setL1CalldataPricewhich can be used to set the parent chain's blob base fee per byte of caldata. This is for allowing the state transition function to adjust for the parent chain having enabled EIP-7623: Increase calldata cost
Highlights
- Nitro is ready for Fusaka
- Arbitrum One node operators need to upgrade to v3.8.0 before mainnet upgrades to Fusaka
- Arbitrum One and Arbitrum Nova will both upgrade to ArbOS 50 as described in the AIP
What's Changed
- Store single-gas in multi-gas collector in #3552
- fix: correct error aggregation for multi-target compile results in #3532
- fix: prevent HTTP response body leaks in restful DAS client in #3558
- Custom GH action for unified installing Rust in #3559
- Instrument multi-gas in StylusPrograms (just for getBytes32) in #3539
- fix: correct rightshift linter documentation in #3562
- Update gammazero dependency in #3565
- Update go version to 1.24.x across github workflows in #3567
- Merge v1.16.3 in #3568
- Multigas: support geth multigas api changes in #3569
- chore(ci): update GitHub Actions to latest versions in #3573
- Update EIP-7910 implementation in #3571
- Add suppoort for Consensus V50 (rc.3) to Docker in #3574
Full Changelog: v3.8.0-rc.1...v3.8.0-rc.2