Releases: OffchainLabs/nitro
Arbitrum Nitro v3.0.0
This release is available as a Docker image on Docker Hub at offchainlabs/nitro-node:v3.0.0-e6f81cb
This release will be required for some networks. See the "What's Changed" section for more details.
This Docker image specifies new 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.0.0-e6f81cb-validator
which has the extra script /usr/local/bin/split-val-entry.sh
as the entrypoint.
What's Changed
This release finalizes ArbOS 30, which means this release (or a future release) will be required by June 17th 17:00 UTC for Arbitrum Sepolia, and should the on-chain vote pass, will be required in approximately a month for Arbitrum One and Arbitrum Nova. A more exact date for Arbitrum One and Arbitrum Nova will be available should the on-chain vote pass.
Configuration Changes
- For Docker,
--validation.wasm.allowed-wasm-module-roots
should now be set tohome/user/nitro-legacy/machines,/home/user/target/machines
. The default entrypoint does this, but you may need to set this manually if you specify an entrypoint for the image or if you already set this config. --log-level
now accepts "crit", "error", "warn", "debug", "info", and "trace" as arguments instead of numbers
User-facing Improvements
- Finalize ArbOS 30: #2272
- Add pebble config options: #2245
- feat(das): add support to configure http body limit: #2321
- Halve EIP-4844 batch size to only fill 3 batches: #2344
- Download DB snapshot that is split between multiple files: #2345
- Optionally skip tls verification when making requests to secure signer from Dataposter: #2307
- Change log-level cli opt to take a string: #2279
- Add option for websocket message size limit: #2266
- Improve blocks re-execution and make it compatible with --init.then-quit: #2222
Internal Highlights
- Arbitrum Stylus: #2242
- Backward compat validation docker: #2275
- Support pre-stylus wasm module roots for validation: #2319
- block_validator: fail but dont segfault if no validator: #2330
- Fix off-by-one in data poster nonce check: #2326
- Arbitrum APIBackend's GetTransaction should return false when tx is not found (fixes
eth_getTransactionByHash
when the transaction is not found): #2336 - Unified writer interface for Data Availability providers: #2157
- Adds blocks' hashes to the sequencer's feed: #2240
- Compare computed block hash with hash provided through input feed: #2289
- More descriptive jit machine accept() errors: #2290
- Merge in upstream go-ethereum v1.13.12: #2291
- Fix signed saturating math functions: #2306
- Fix zero bid in data poster: #2297
- Assume stake is elevated if currentRequiredStake reverts: #2293
- Improve error messages for syncing nitro nodes with a beacon chain client lacking old enough blobs for sync: #2286
- fix: CleanCacheSize from hashdb.Config expects a value defined in bytes: #2312
- Adds apt-get update to wasm-libs-builder: #2325
- Gracefully shutdown consumer on interrupts: #2309
- Allow 0x prefix for allowed-wasm-module-roots flag: #2338
- Implement tracing and CPU profiling of long running block creations: #2305
- Disable profiling sequencer by default: #2365
- Create streams in redis client, poll on it in redis-server: #2303
- Check block size in precheckNonces: #2360
- MessageFromTxes: check l2message length: #2356
- Use pebble extra options when opening wasm db: #2352
- Replay run mode: #2331
- Update 'unable to fetch suggestedTipCap...' log line from an error to a warning: #2350
- Update rust version and crates: #2347
- V0 Snap Sync: #2265
- Use latest version of go1.21 in docker: #2363
- sequencerconfig: validate MaxTxDataSize: #2357
- Write validation inputs to json file in working directory: #2349
- Profile only SequenceTransactions: #2366
Full Changelog: v2.4.0...v3.0.0
Arbitrum Nitro v2.4.0 Release Candidate 4
This release is available as a Docker image on Docker Hub at offchainlabs/nitro-node:v2.4.0-rc.4-f0b1013
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, you should instead use the image offchainlabs/nitro-node:v2.4.0-rc.4-f0b1013-validator
What's Changed
This release disables sequencer profiling by default due to Go tracing issues on ARM compared to the last release candidate.
Internal Highlights
- Disable profiling sequencer by default: #2365
- V0 Snap Sync: #2265
- Use latest version of go1.21 in docker: #2363
- sequencerconfig: validate MaxTxDataSize: #2357
- Write validation inputs to json file in working directory: #2349
Full Changelog: v2.4.0-rc.3...v2.4.0-rc.4
Arbitrum Nitro v2.4.0 Release Candidate 3
This release is available as a Docker image on Docker Hub at offchainlabs/nitro-node:v2.4.0-rc.3-06235f4
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, you should instead use the image offchainlabs/nitro-node:v2.4.0-rc.3-06235f4-validator
What's Changed
This release fixes pebble nodes and adds support for downloading snapshots split across multiple files compared to the last release candidate.
User-facing Improvements
- Download DB snapshot that is split between multiple files: #2345
Internal Highlights
- Fix pebble.wal-dir option validation: #2351
- Check block size in precheckNonces: #2360
- MessageFromTxes: check l2message length: #2356
- Use pebble extra options when opening wasm db: #2352
- Replay run mode: #2331
- Update 'unable to fetch suggestedTipCap...' log line from an error to a warning: #2350
- Update rust version and crates: #2347
Full Changelog: v2.4.0-rc.2...v2.4.0-rc.3
Arbitrum Nitro v2.4.0 Release Candidate 2
This release is available as a Docker image on Docker Hub at offchainlabs/nitro-node:v2.4.0-rc.2-879c14a
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, you should instead use the image offchainlabs/nitro-node:v2.4.0-rc.2-879c14a-validator
What's Changed
This release improves EIP-4844 batch posting reliability compared to the last release candidate.
Internal Highlights
- Halve EIP-4844 batch size to only fill 3 batches: #2344
Full Changelog: v2.4.0-rc.1...v2.4.0-rc.2
Arbitrum Nitro v2.4.0 Release Candidate 1
This release is available as a Docker image on Docker Hub at offchainlabs/nitro-node:v2.4.0-rc.1-3deb9ca
This Docker image specifies new 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, you should instead use the image offchainlabs/nitro-node:v2.4.0-rc.1-3deb9ca-validator
What's Changed
This release fixes some miscellaneous issues compared to the last beta release.
User-facing Improvements
- feat(das): add support to configure http body limit: #2321
Internal Highlights
- Allow 0x prefix for allowed-wasm-module-roots flag: #2338
- Implement tracing and CPU profiling of long running block creations: #2305
- Create streams in redis client, poll on it in redis-server: #2303
Full Changelog: v2.4.0-beta.1...v2.4.0-rc.1
Arbitrum Nitro v2.4.0 Beta 1
This release is available as a Docker image on Docker Hub at offchainlabs/nitro-node:v2.4.0-beta.1-620dde1
This beta release does not include support for validators without separately running a split validation server. The full release will contain a -validator
docker image variant with support for this, or you can build the nitro-node-validator
docker image target locally from the release's commit.
What's Changed
This release merges in Arbitrum Stylus to prepare for ArbOS 30.
User-facing Improvements
- Change log-level cli opt to take a string: #2279
- Add option for websocket message size limit: #2266
- Add pebble config options: #2245
- Optionally skip tls verification when making requests to secure signer from Dataposter: #2307
- Improve blocks re-execution and make it compatible with --init.then-quit: #2222
Configuration Changes
--log-level
now accepts "crit", "error", "warn", "debug", "info", and "trace" as arguments instead of numbers
Internal Highlights
- Arbitrum Stylus: #2242
- Backward compat validation docker: #2275
- Support pre-stylus wasm module roots for validation: #2319
- block_validator: fail but dont segfault if no validator: #2330
- Fix off-by-one in data poster nonce check: #2326
- Arbitrum APIBackend's GetTransaction should return false when tx is not found (fixes
eth_getTransactionByHash
when the transaction is not found): #2336 - Unified writer interface for Data Availability providers: #2157
- Adds blocks' hashes to the sequencer's feed: #2240
- Compare computed block hash with hash provided through input feed: #2289
- More descriptive jit machine accept() errors: #2290
- Merge in upstream go-ethereum v1.13.12: #2291
- Fix signed saturating math functions: #2306
- Fix zero bid in data poster: #2297
- Assume stake is elevated if currentRequiredStake reverts: #2293
- Improve error messages for syncing nitro nodes with a beacon chain client lacking old enough blobs for sync: #2286
- fix: CleanCacheSize from hashdb.Config expects a value defined in bytes: #2312
- Adds apt-get update to wasm-libs-builder: #2325
- Gracefully shutdown consumer on interrupts: #2309
Full Changelog: v2.3.4...v2.4.0-beta.1
Consensus V30 Release Candidate 2
This release signifies a WASM fraud proof consensus version, and is not a good version to run a node on
WAVM Module Root: 0xb0de9cb89e4d944ae6023a3b62276e54804c242fd8c4c2d8e6cc4450f5fa8b1b
This is a release candidate of a consensus release for ArbOS 30, which makes some internal preventative fixes.
Full Changelog: consensus-v30-rc.1...consensus-v30-rc.2
Arbitrum Nitro v2.3.4
This release is available as a Docker image on Docker Hub at offchainlabs/nitro-node:v2.3.4-b4cc111
What's Changed
This release lays the groundwork for ArbOS 30. It merges in new upstream go-ethereum versions, improves block validation, and improves EIP-4844 batch posting support (though known issues remain in this version fixed in master).
User-facing Improvements
- Set default --execution.sequencer.max-revert-gas-reject=0 to improve sequencer reliability: #2213
- eth_syncing: improve fields and naming: #2224
- Pull in geth fix for stopping the flat call tracer: #2258
- Add support for Redis streams to Nitro's block validation: #2241
Configuration Changes
--log-level
has new temporary values. In the next release, these will be reverted and you'll be able to use strings to set these:-8
is trace-4
is debug0
is info4
is warn8
is error12
is crit
- For alerting, note that error logs will now have a level field of "error" instead of "eror".
Internal Highlights
- Execution service 4: execution->consensus interface: #1535
- syncProgressMap: bug fix: #2209
- Validate preimages in both JIT and Arbitrator: #2208
- Don't wait on the prefetcher to complete before producing the next block: #2216
- Add metrics to track L1 price in batch poster: #2173
- Track pricing data in sequencer and batch poster. Add option to decline incoming transactions during extreme l1 pricing conditions: #2180
- Don't increment the gas used metric in the prefetcher: #2214
- Do not log 'error applying transaction' errors when the block is being created for the prefetcher: #2215
- Reduce maximum EIP-4844 batch size slightly: #2220
- Fix data poster noop storage check in batch poster: #2225
- Avoid deadlocking sender account w/ diff type txs: #2234
- Merge upstream go-ethereum v1.13.5: #2251 #2259 and #2230
- Improve preimage validation in JIT and Arbitrator: #2217
- Use metrics namespaces when opening databases: #2229
- Add a check to make sure we don't allow accidentally downgrading ArbOS: #2236
- Merge v1.13.6: #2237
- Fix data poster creating nonce gap: #2261
- Multi exec server: #2267
- Fix eth_feeHistory gasUsedRatio: OffchainLabs/go-ethereum#313
- Implement reading all wasm module roots in machine locator: #2254
- Fix requested block ahead of current block check: OffchainLabs/go-ethereum#312
- Fix pebble metrics registration: OffchainLabs/go-ethereum#314
Full Changelog: v2.3.3...v2.3.4
Consensus V30 Release Candidate 1
This release signifies a WASM fraud proof consensus version, and is not a good version to run a node on
WAVM Module Root: 0x8805d035d5fdb8bb4450f306d9ab82633e2b6316260529cdcaf1b3702afbd5d5
This is a release candidate of a consensus release for ArbOS 30, including Arbitrum Stylus support and the secp256r1 precompile.
Full Changelog: consensus-v20...consensus-v30-rc.1
Arbitrum Nitro v2.3.4 Release Candidate 5
This release is available as a Docker image on Docker Hub at offchainlabs/nitro-node:v2.3.4-rc.5-b4cc111
What's Changed
This release prepares support for Arbitrum Stylus block validation compared to the previous release candidate.
Configuration Changes
This PR undoes the configuration changes in release candidate 3 and removes the --node.block-validator.execution-server-config.*
config block.
Pending ArbOS 30 Improvements (work in progress)
- Add Precompile for secp256r1 conditionally based on ArbOS version: OffchainLabs/go-ethereum#303
- Clean up retryable escrow accounts: #2257
Internal Highlights
- Multi exec server: #2267
- Merge upstream go-ethereum v1.13.11: #2251 and #2259
- Fix eth_feeHistory gasUsedRatio: OffchainLabs/go-ethereum#313
- Implement reading all wasm module roots in machine locator: #2254
- Fix requested block ahead of current block check: OffchainLabs/go-ethereum#312
- Fix pebble metrics registration: OffchainLabs/go-ethereum#314
Full Changelog: v2.3.4-rc.4...v2.3.4-rc.5