Skip to content

Arbitrum Nitro v3.0.0

Latest
Compare
Choose a tag to compare
@PlasmaPower PlasmaPower released this 10 Jun 06:40
· 71 commits to master since this release
v3.0.0
e6f81cb

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