Arbitrum Nitro v3.6.0-rc.1
Pre-releaseThis release is available as a Docker Image on Docker Hub at offchainlabs/nitro-node:v3.6.0-rc.1-914d81d
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.6.0-rc.1-914d81d-validator which has the extra script /usr/local/bin/split-val-entry.sh as the entrypoint.
What's Changed
This is the first version of Nitro with support for the features in Pectra https://eips.ethereum.org/EIPS/eip-7600
This release includes updates to the nitro fork of go-ethereum equivalent to v1.15.5.
Purposefully NOT included in this release are these 4 EIPs related to supporting consensus-layer client operations like deposits, withdrawals, and consolidation since Arbitrum uses a very different consensus mechanism which does not rely on proof of stake:
- EIP-6110: Supply validator deposits on chain
- EIP-7002: Execution layer triggerable exits
- EIP-7251: Increase the MAX_EFFECTIVE_BALANCE
- EIP-7685: General purpose execution layer requests
Support for EIP-7623 (increased calldata cost) has been added, but hidden behind a new ArbOwner precompile method setCalldataPriceIncrese(bool)
which is disabled by default. Contract Code
Configuration Changes
--node.bold.enable
has been removed, will be enabled if BoLD is enabled on-chain
User Facing Changes
- Add support for ArbOS 40
- Add Orbit chain support for BoLD: #3088
- Flag changes:
- New Precompiles
- Logging improvements:
- When a batch is full, log why it is full: #2968
- Validate sequencer's my-url on startup by logging an error if its unreachable or not on the redis' priorities list: #3000
- Only log nonce too high error for batch poster if persistent: #2977
- Lower log level of "Pushed finality data" message: #3049
- Error when discard-after-timeout is set for DAS S3 storage service: #3052
- Tracing improvements:
Internal Highlights
- Geth: Integrate upstream changes through v1.15.5
- Update gethpin v1.14.4: #2820
- Update gethpin v1.14.6: #2822
- Update gethpin v1.14.7: #2823
- Update gethpin v1.14.8: #2978
- Update gethpin v1.14.10: #2982
- Update gethpin v1.14.11: #3007
- Update gethpin v1.14.12: #3011
- Update gethpin v1.14.13: #3012
- Update gethpin v1.15.0 & v1.15.1 & v1.15.2 & v1.15.3 & v1.15.4 & v1.15.5: #3014
- Improve developer experience:
- Message index/count refactor - Part 1: #2535
- Use flag instead of env var for system_test: #2802
- Export IMAGE_TAG in buildspec: #2970
- Create manifest buildspec: #2973
- Fix manifest buildspec filename typo: #2989
- Contracts legacy separation: #3048
- Add CONTRIBUTING.md: #3055
- Skip Flakey Challenge Test to Unclog CI While It is Investigated: #3057
- Split PathDB Tests Into Separate Workflow and Skip Challenge Test: #3058
- Fix data race in timeboost_test.go: #3059
- Move Legacy Challenge, Race, and Stylus Long Tests to Nightly CI: #3060
- Correctly start and stop validation node: #3064
- Fix Yaml Syntax Error in Nightly CI: #3070
- Run Docker Build on Design Approval and Send CI Slack Notification on Failure: #3071
- Speedup timeboost systemTests: #3083
- Add rerun-fails back to ci: #3092
- Fix Slack Notify on Nightly CI Failure With Correct Yaml Args: #3094
- Split the execution and consensus layers (Prepare for alternate execution clients):
- Consensus pushes finality data to Execution. Execution sets finalized block in blockchain: #2936
- ExecutionClient returns PromiseInterface: #2856
- Logs ValidatedMsgCount as a value instead of address in ConsensusExecutionSyncer: #2993
- Uses Info instead of Warn in logs from ConsensusExecutionSyncer when finality is not supported: #2994
- Make Consensus interface async: #3001
- Increase test coverage:
- Improve stability and performance:
- Allow pubsub interface to return an error: #2753
- Parallelize pruning inside accounts: #2898
- Creates new http client in BlobClient in case of request errors: #2913
- Only post delay buffer proof when its updatable: #2915
- Check if the JSON-RPC error code is 3 for confirming execution reverted: #2924
- Fix race condition in testBatchPosterDelayBuffer: #2925
- BatchPoster takes into consideration that the parent chain can be using EIP-7623: #2984
- Do not cache in last_code if no code exists: #2998
- Stylus: record all writes on setTrieSlots: #3019
- Locks insertionMutex with timeout in WriteMessageFromSequencer: #3038
- Fix eth_syncing crash, move SyncMonitor.Initialize after SeqCoordinator is started: #3053
- Make sure to not start redis key with stream name: #3054
- Use cloudflare bn256 also for wasm build: #3075
Full Changelog: v3.5.0...v3.6.0-rc.1