Releases: OffchainLabs/nitro
Arbitrum Nitro v3.6.2
This release is available as a Docker Image on Docker Hub at offchainlabs/nitro-node:v3.6.2-5b41a2d
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.2-5b41a2d-validator which has the extra script /usr/local/bin/split-val-entry.sh as the entrypoint.
What's changed
Fixed eth_call overflow and reduce error log noise.
User facing changes
- Avoid overflow when adding additional gas: #3192
- replace runtime.NumCPU with a GOMAXPROCS: #3216
- Download database snapshot to chain directory: #3173
- Add experimental live tracing: #3138, #3066
Internal Highlights
- Set non zero GasMargin for auction resolution tx and enabling retrying with a new tx upon failure: #3188
- Recover bids for unresolved auction on restart: #3109
- add config for head rewind blocks limit: #3187
- fix error message in pruning: #3184
- block validator: allow large distance between outgoing validations: #2797
- geth has removed
personal
command namespace: #3195 - Correctly identify "already known" transaction error in DataPoster: #3196
- Allow to build brotli locally with recent versions of cmake: #3204
- pin foundry to 1.0.0 for contracts builder: #3205
- Use latest arbos in state_fuzz_test.go: #3208
- Add rate limiting to arb_getRawBlockMetadata reqs: #3211
- Reduce execution reverted logs due to IsDelayBufferable: #3209
- Add an option to start re validation from a specified block and end at a specified block: #2893
- fix: handle empty bids table in timeboost auctioneer: #3210
- Reduce excessive errors in block validator: #3213
- Mark live tracing as experimental: #3214
Full Changelog: v3.6.0...v3.6.2
Arbitrum Nitro v3.6.1-rc.2
This release is available as a Docker Image on Docker Hub at offchainlabs/nitro-node:v3.6.1-rc.2-7de7494
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.1-rc.2-7de7494-validator which has the extra script /usr/local/bin/split-val-entry.sh as the entrypoint.
What's Changed
- Fix build issues
Internal Highlights
- Allow to build brotli locally with recent versions of cmake: #3204
- pin foundry to 1.0.0 for contracts builder: #3205
Full Changelog: v3.6.1-rc.1...v3.6.1-rc.2
Arbitrum Nitro v3.6.1-rc.1
This version had build problems for ARM, use v3.6.1-rc.2 instead
What's changed
Fixed eth_call overflow and reduce error log noise.
User facing changes
- Avoid overflow when adding additional gas: #3192
Internal Highlights
- ci: Update GitHub Actions cache from v3 to v4: #3181
- Set non zero GasMargin for auction resolution tx and enabling retrying with a new tx upon failure: #3188
- Recover bids for unresolved auction on restart: #3109
- add config for head rewind blocks limit: #3187
- fix error message in pruning: #3184
- Better storage destination for temporary file downloads while downloading init file: #3173
- block validator: allow large distance between outgoing validations: #2797
- geth has removed
personal
command namespace: #3195 - Correctly identify "already known" transaction error in DataPoster: #3196
Full Changelog: v3.6.0...v3.6.1-rc.1
Arbitrum Nitro v3.6.0
This release is available as a Docker Image on Docker Hub at offchainlabs/nitro-node:v3.6.0-fc07dd2
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-fc07dd2-validator which has the extra script /usr/local/bin/split-val-entry.sh as the entrypoint.
Important Note
This version includes go-ethereum changes to database schema, once you upgrade to v3.6.0 you will not be able to use the database for earlier versions of Nitro
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
- Configuration changes:
- Remove need for
--node.bold.enable
: #3016
- Remove need for
- New Configuration:
- Add a nitro option to stop syncing at a given block number: #2749
- Feat: add sequencer dangerous flag to disable tx size checks: #2885
- Add a node.batch-poster.dangerous.fixed-gas-limit flag: #3099
- Extend blocks re-executor to support multiple block ranges: #3140
- Make max bids per sender configurable: #3137
- Add minimal pruning mode: #3143
- 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:
- Add HistoryStorageAddress as part of arbos 40 upgrade: #3132
- Enable blockmetadata syncing by default for arb1/nova: #3131
Internal Highlights
- 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
- 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
- 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
- Add TestFastConfirmationWithdrawal: #2935
- Test flatCallTracer on Arbitrum blocks inside existing tests: #2676
- Test redeeming many retryables in the same block: #3034
- Self destruct test: #3062
- Add TestOutOfGasInStorageCacheFlush: #3025
- 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
- Minor fix in the batch poster's logic for seeing if EIP-7623 is enabled on the parent chain.
- Use the new nolint directive: #3103
- Fix Broken Challenge Test CI: #3104
- Minor fix for timeboost system_tests: #3106
- Consistent bash imports in scripts (new PR for collaboration): #3102
- Fix panic in sync-till-block option: #3113
- Properly enable metrics based on latest geth: #3112
- Fix race in TestTimeboostExpressLaneTransactionHandlingComplex...
Arbitrum Nitro v3.6.0-rc.6
This release is available as a Docker Image on Docker Hub at offchainlabs/nitro-node:v3.6.0-rc.6-fc07dd2
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.6-fc07dd2-validator which has the extra script /usr/local/bin/split-val-entry.sh as the entrypoint.
What's Changed
- delay buffer always updateable: #3182
- Refractor PostAssertionBasedOnParent to avoid calling ReadAssertionCreationInfo: #3183
Full Changelog: v3.6.0-rc.5...v3.6.0-rc.6
Arbitrum Nitro v3.6.0-rc.5
This release is available as a Docker Image on Docker Hub at offchainlabs/nitro-node:v3.6.0-rc.5-98aefba
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.5-98aefba-validator which has the extra script /usr/local/bin/split-val-entry.sh as the entrypoint.
What's Changed
Timeboost fixes and improvements along with some error logging improvements.
Internal Highlights
- Fix timeboost signature checking: #3177
- Enable blockmetadata syncing by default for arb1/nova: #3131
- Re-execute execution reverted for eth_estimateGas as eth_call for better logs in batch poster: #3178
Full Changelog: v3.6.0-rc.4...v3.6.0-rc.5
v3.6.0-rc.4
This release is available as a Docker Image on Docker Hub at offchainlabs/nitro-node:v3.6.0-rc.4-aea6120
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.4-aea6120-validator which has the extra script /usr/local/bin/split-val-entry.sh as the entrypoint.
User facing changes
- Minor fix in the batch poster's logic for seeing if EIP-7623 is enabled on the parent chain.
What's changed
- Cleanup github actions: #3160
- Support logging at different level for ephemeral BoLD errors: #3171
- Comparing two gas estimations must be on same block: #3172
Full Changelog: v3.6.0-rc.3...v3.6.0-rc.4
Arbitrum Nitro v3.6.0-rc.3
This release is available as a Docker Image on Docker Hub at offchainlabs/nitro-node:v3.6.0-rc.3-bc658e8
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.3-bc658e8-validator which has the extra script /usr/local/bin/split-val-entry.sh as the entrypoint.
User facing changes
What's Changed
- Move Challenge Tests to Nightly Ensuring They Still Build in Each PR: #3142
- Bump golang.org/x/net from 0.36.0 to 0.38.0: #3144
- Check chainid before starting BlockMetadataFetcher: #3149
- Use Error Log Levels in Tests, Introduce L3 Challenge Workflow: #3152
- Enable TestL3ChallengeProtocolBOLD: #3155
- Log an error when unable to forward transaction to any of the targets: #3150
- Get Bold L3 Test Passing: #3166
- Additional documentation for usage of StateDB object in preTxFilters: #3164
- Auction resolution tx should not be considered as timeboosted: #3161
- Feed disconnect error should be logged at level error if it happens more than once per minute: #3151
- Add a separate interface for BOLD ExecutionSpawner: #3165
- Updated HistoryStorageCodeArbitrum: #3162
- ExpressLane txs erroring due to context timing out at the end of a round shouldn't be logged as an error: #3168
- Sets finality to nil in case node is out of sync: #3147
- Reduce the Noise of Sequencer Coordinator Logging: #3154
- Enable TestSequencerInboxReader system test: #3145
- Add support for consensus v40 to Docker: #3169
Full Changelog: v3.6.0-rc.2...v3.6.0-rc.3
Arbitrum Nitro Consensus v40
This release signifies a WASM fraud proof consensus version, and is not a good version to run a node on
WAVM Module Root: 0xdb698a2576298f25448bc092e52cf13b1e24141c997135d70f217d674bbeb69a
This consensus release supports ArbOS 40.
Full Changelog: consensus-v32...consensus-v40
Arbitrum Nitro v3.6.0-rc.2
This release is available as a Docker Image on Docker Hub at offchainlabs/nitro-node:v3.6.0-rc.2-608725a
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.2-608725a-validator which has the extra script /usr/local/bin/split-val-entry.sh as the entrypoint.
User facing changes
- Add a node.batch-poster.dangerous.fixed-gas-limit flag: #3099
- Add HistoryStorageAddress as part of arbos 40 upgrade: #3132
- Extend blocks re-executor to support multiple block ranges: #3140
What's Changed
- Use the new nolint directive: #3103
- Fix Broken Challenge Test CI: #3104
- Minor fix for timeboost system_tests: #3106
- Consistent bash imports in scripts (new PR for collaboration): #3102
- Fix panic in sync-till-block option: #3113
- Properly enable metrics based on latest geth: #3112
- Fix race in TestTimeboostExpressLaneTransactionHandlingComplex: #3114
- batch_poster: override delayed inbox pointer when sending future txs: #3117
- Fail on gas estimation when trying to redeem a duplicate retryable: #3110
- Fix path concatenation and GCS data write logic: #3115
- Add config option for trie-time-limit random offset: #3105
- Add bold support for pruning in validator mode: #3118
- Simple block-recording test: #3122
- Test batch poster with delay proofs and backlog: #3116
- Fix a challenge test due to changed signature: #3124
- Fix paths to licensing information: #3125
- Implement detailed retryable comparison in initialization tests: #3119
- Call ProcessParentBlockHash during InternalTxStartBlock: #3129
- Remove recommendation to force push in CONTRIBUTING.md: #3134
- Fix Broken Challenge Tests on Master: #3135
- Cleanup github actions: #3126
- Fix Challenge Test Failures due to Improper Resource Cleanup: #3136
- Lint cleanup: #3139
- Handle reorg issues when setting finality data in Execution: #3051
- Avoid CI cache key collision: #3141
Full Changelog: v3.6.0-rc.1...v3.6.0-rc.2