Skip to content

Arbitrum Nitro v3.8.0-rc.2

Pre-release
Pre-release

Choose a tag to compare

@eljobe eljobe released this 04 Sep 09:59
· 401 commits to master since this release
109eb71

Note

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.setMaxTxGasLimit to set the max transaction and block gas limits for your chain, you should add calls to ArbOwner.setMaxTxGasLimit and ArbOwner.SetMaxBlockGasLimit to your upgrade action to arbos 50. (When it's time.)
  • After the arbos 50 upgrade, there is a new ArbOwner.setL1CalldataPrice which 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