Skip to content

Releases: OffchainLabs/nitro

Arbitrum Nitro v3.0.0

10 Jun 06:40
v3.0.0
e6f81cb
Compare
Choose a tag to compare

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 to home/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
    • Disable LLVM support in JIT build in docker: #2280
    • Error early when missing asm: #2288
    • Seperate wasm asm database: #2292
    • Stylus cache tag: #2315
    • Fix lastUpdateTimeOffset -> ArbitrumStartTime: #2308
    • Use saturating math for hoursSinceArbitrum: #2310
  • 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

04 Jun 16:43
v2.4.0-rc.4
f0b1013
Compare
Choose a tag to compare

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

31 May 19:47
v2.4.0-rc.3
06235f4
Compare
Choose a tag to compare

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

28 May 18:13
v2.4.0-rc.2
879c14a
Compare
Choose a tag to compare

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

28 May 03:48
v2.4.0-rc.1
3deb9ca
Compare
Choose a tag to compare

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

24 May 04:26
v2.4.0-beta.1
620dde1
Compare
Choose a tag to compare
Pre-release

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
    • Disable LLVM support in JIT build in docker: #2280
    • Error early when missing asm: #2288
    • Seperate wasm asm database: #2292
    • Stylus cache tag: #2315
    • Fix lastUpdateTimeOffset -> ArbitrumStartTime: #2308
    • Use saturating math for hoursSinceArbitrum: #2310
  • 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

21 May 00:48
consensus-v30-rc.2
f461346
Compare
Choose a tag to compare
Pre-release

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

20 May 17:47
v2.3.4
b4cc111
Compare
Choose a tag to compare

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 debug
    • 0 is info
    • 4 is warn
    • 8 is error
    • 12 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

06 May 19:40
consensus-v30-rc.1
c8d8df7
Compare
Choose a tag to compare
Pre-release

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

02 May 18:43
v2.3.4-rc.5
b4cc111
Compare
Choose a tag to compare

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)

Internal Highlights

Full Changelog: v2.3.4-rc.4...v2.3.4-rc.5