Skip to content

Releases: OffchainLabs/nitro

Arbitrum Nitro v2.2.3

04 Feb 05:07
v2.2.3
17468a8
Compare
Choose a tag to compare

This release is available as a Docker image on Docker Hub at offchainlabs/nitro-node:v2.2.3-17468a8

What's Changed

This release improves L3 support and fixes other miscellaneous issues.

Incompatibility with older parent chain RPCs

If you get an error similar to the following on startup:

ERROR[...] failed to get on-chain WASM module root  err="execution reverted: NO_FUNC_SIG"

That likely indicates that your parent chain execution client does not support the input field for calldata for eth_call and eth_estimateGas and needs updated. Previously, this JSON field was called data.

User-facing Improvements

  • Add option to recreate missing states in archive node: #2114
  • Fix getL1Confirmations on L3s: #2068
  • Pause nitro node block validator validation when memory is running low: #2017
  • Add support for consensus v11.1 to Dockerfile: #2091

Pending ArbOS Version 20 Improvements (work in progress)

  • 4844 inbox reader: #2092 and #2115
  • 4844 batch posting support: #2095
    • Disable EIP-4844 batch posting by default for now: #2110
  • Support and test ArbOS 20 for development: #2108
  • Add missing L1 pricing getters to ArbGasInfo in ArbOS 20: #2109
  • Add ArbOS precompile method to get scheduled upgrade: #2112 and #2125

Internal Highlights

  • Update go-ethereum to include upstream 1.13.3: #2083 and #2104
  • Fix LookupNodeChildren for L3s: #2106
  • Fix delayed sequencer finality not recognizing Arbitrum: #2085
  • In delayed sequencer, check accumulator against safe block hash: #2105
  • Handle long sequencer URLs and fix fetching the list of live sequencers in the sequencer coordinator manager: #2067
  • Stop execution node after everything else: #2049
  • Prefetch state needed for future block executions by executing them in parallel against old state: #2089
  • Add a check that the database chain id matches the config: #2078
  • Pass From field from dataposter to external signer: #2037
  • Add metrics for relay backlog size and backlog size in bytes: #2048
  • Add a metric for memory used by the replay binary WASM in JIT: #2043
  • Add option to disable batch poster access lists: #2077
  • Log error data when available: #2120
  • Add loglevel for ephemeral errors, make data poster nonce ahead of on-chain error an ephemeral error: #2020
  • Add context to fatal error messages while connecting to feed: #2082
  • Hide error when getting latest confirmed block: #2063
  • Add WAVM KZG preimage proof: #2064

Full Changelog: v2.2.2...v2.2.3

Arbitrum Nitro v2.2.3 Beta 1

26 Jan 20:02
v2.2.3-beta.1
3f67f04
Compare
Choose a tag to compare
Pre-release

This release is available as a Docker image on Docker Hub at offchainlabs/nitro-node:v2.2.3-beta.1-3f67f04

What's Changed

This release improves L3 support and fixes other miscellaneous issues.

Incompatibility with older parent chain RPCs

If you get an error similar to the following on startup:

ERROR[...] failed to get on-chain WASM module root  err="execution reverted: NO_FUNC_SIG"

That likely indicates that your parent chain execution client does not support the input field for calldata for eth_call and eth_estimateGas and needs updated. Previously, this field was data.

User-facing Improvements

  • Fix getL1Confirmations on L3s: #2068
  • Pause nitro node block validator validation when memory is running low: #2017
  • Add support for consensus v11.1 to Dockerfile: #2091

Internal Highlights

  • Update go-ethereum to include upstream 1.13: #2083
  • Fix LookupNodeChildren for L3s: #2106
  • Fix delayed sequencer finality not recognizing Arbitrum: #2085
  • Handle long sequencer URLs and fix fetching the list of live sequencers in the sequencer coordinator manager: #2067
  • Stop execution node after everything else: #2049
  • Add a check that the database chain id matches the config: #2078
  • Pass From field from dataposter to external signer: #2037
  • Add metrics for relay backlog size and backlog size in bytes: #2048
  • Add a metric for memory used by the replay binary WASM in JIT: #2043
  • Add option to disable batch poster access lists: #2077
  • Add loglevel for ephemeral errors, make data poster nonce ahead of on-chain error an ephemeral error: #2020
  • Add context to fatal error messages while connecting to feed: #2082
  • Hide error when getting latest confirmed block: #2063
  • Add WAVM KZG preimage proof: #2064

Full Changelog: v2.2.2...v2.2.3-beta.1

Consensus V11.1

23 Jan 01:42
consensus-v11.1
01e30e7
Compare
Choose a tag to compare
Consensus V11.1 Pre-release
Pre-release

This release signifies a consensus version, and is not necessarily a good version to run a node on

This release is backwards compatible and not required except for use in custom chains that set a custom maximum smart contract code size limit.

WAVM Module Root: 0x68e4fe5023f792d4ef584796c84d710303a5e12ea02d6e37e2b5e9c4332507c4

This backports the following change from consensus v10.3 to consensus v11:

Full Changelog: consensus-v11...consensus-v11.1

Arbitrum Nitro v2.2.2

27 Dec 20:20
v2.2.2
8f33fea
Compare
Choose a tag to compare

This release is available as a Docker image on Docker Hub at offchainlabs/nitro-node:v2.2.2-8f33fea

What's Changed

This release fixes broken NodeInterface precompile methods, and a sequencer panic on shutdown if the sequencer coordinator is enabled but a backup sequencer isn't available.

User-facing Improvements

  • Fix broken NodeInterface methods: #2059

Internal Highlights

Full Changelog: v2.2.1...v2.2.2

Arbitrum Nitro v2.2.1

24 Dec 19:44
v2.2.1
6932d66
Compare
Choose a tag to compare

This release is available as a Docker image on Docker Hub at offchainlabs/nitro-node:v2.2.1-6932d66

What's Changed

This release fixes a database compaction issue affecting archive nodes, and fixes a memory leak in the relay.

User-facing Improvements

  • Always broadcast feed, even when the node isn't the sequencer: #2045
    • Fix Broadcaster BroadcastMessages sequence numbers: #2054

Internal Highlights

  • Fix memory leak in relay: #2052
  • Downgrade goleveldb fixing database compaction: #2055
  • Increase TxStreamer feed queue size: #2040
  • Fix race conditions in feed backlog.reset(): #2053
  • Only lock redis in the batch poster when posting the batch: #2044
  • Update failed to create machine locator error to a warning: #2042
  • Fix enabling pprof on the relay: #2051
  • Add a metric for steps taken in arbitrator validation: #2033

Full Changelog: v2.2.0...v2.2.1

v2.2.1-beta.3

24 Dec 18:54
v2.2.1-beta.3
8f55e38
Compare
Choose a tag to compare
v2.2.1-beta.3 Pre-release
Pre-release

This release is available as a Docker image on Docker Hub at offchainlabs/nitro-node:v2.2.1-beta.3-8f55e38

What's Changed

This release fixes an issue serving the feed compared to the last beta release.

Internal highlights

  • Fix Broadcaster BroadcastMessages sequence numbers: #2054
  • Fix race conditions in backlog.reset(): #2053

Full Changelog: v2.2.1-beta.2...v2.2.1-beta.3

v2.2.1-beta.2

23 Dec 22:54
v2.2.1-beta.2
63bcedc
Compare
Choose a tag to compare
v2.2.1-beta.2 Pre-release
Pre-release

This release is available as a Docker image on Docker Hub at offchainlabs/nitro-node:v2.2.1-beta.2-63bcedc

What's Changed

This release fixes a memory leak in the relay compared to the last beta release.

Internal highlights

  • Fix memory leak in relay: #2052
  • Fix enabling pprof on the relay: #2051

Full Changelog: v2.2.1-beta.1...v2.2.1-beta.2

Arbitrum Nitro v2.2.1 Beta 1

23 Dec 04:48
v2.2.1-beta.1
f546581
Compare
Choose a tag to compare
Pre-release

This release is available as a Docker image on Docker Hub at offchainlabs/nitro-node:v2.2.1-beta.1-f546581

What's Changed

This release improves feed reliability and batch poster reliability when using redundant batch posters.

Internal highlights

  • Only lock redis in the batch poster when posting the batch: #2044
  • Always broadcast feed, even when the node isn't the sequencer: #2045
  • Increase TxStreamer feed queue size: #2040
  • Add a metric for steps taken in arbitrator validation: #2033
  • Update failed to create machine locator error to a warning: #2042

Full Changelog: v2.2.0...v2.2.1-beta.1

Arbitrum Nitro v2.2.0

19 Dec 00:47
v2.2.0
f7dc9de
Compare
Choose a tag to compare

This release is available as a Docker image on Docker Hub at offchainlabs/nitro-node:v2.2.0-f7dc9de

This release will be required for the Arbitrum Sepolia testnet, and should the ArbOS 11 Arbitrum DAO vote pass, this release will be required for the Arbitrum One and Arbitrum Nova mainnets mid-January. Exact details on the timelines will be released soon.

Archive Nodes

This release has issues with database compaction on archive nodes. It's highly recommended to upgrade to v2.2.1.

ArbOS 11

This release adds support for ArbOS 11, which includes EVM Shanghai support and the PUSH0 opcode. The Arbitrum DAO forum proposal documents the full extent of the upgrade. This release will be a required upgrade for any Arbitrum networks that chose to adopt ArbOS 11.

What's Changed

This release adds support for ArbOS 11, significantly improves batch poster performance, and continues splitting the execution and consensus parts of the node.

Configuration Changes

  • The --node.caching.*, --node.forwarder.*, --node.forwarding-target, --node.parent-chain-reader.*, --node.rpc.*, --node.tx-lookup-limit, --node.sequencer.*, --node.tx-pre-checker.*, and --node.recording-database flags have all been moved from --node.* to --execution.*. E.g. --node.caching.archive is now --execution.caching.archive.
  • If you were running a sequencer with --node.sequencer.enable, you must now specify both --execution.sequencer.enable and --node.sequencer.
  • The --node.archive flag was deprecated for a while as it was being moved, and it has now been removed in favor of --execution.caching.archive.
  • If you're running your node outside of docker and haven't downloaded the WASM machine files necessary for validation, you may need to add --validation.wasm.enable-wasmroots-check=false to your config.

User-facing Improvements

  • Finalize ArbOS 11 in the node software: #2008
  • Add --dev flag to easily start up a local L2-only dev chain: #1914
  • Configuration changes for Orbit chains:
    • Change default sequencer MaxBlockSpeed to 250ms: #1927
    • Increase the default BatchPosterConfig MaxSize for DAS chains to ~1MB: #1982
  • Add support for consensus v10.3 to Dockerfile: #1971
  • Implement external signer for dataposter: #1919, #1923, and #1924
  • Create access lists for batchposter transactions to reduce storage access cost: #1905 and #1907
  • Add secondary feed support to go relay: #1908, #1944, and #1958
  • Add backup transaction forwarding URLs: #1975 and #1985

Internal Highlights

  • Refactor the sequencer feed relay backlog system: #1930
    • Add back in metric for latest confirmed sequence number: #2022
  • Merge in upstream go-ethereum v1.12.2: #1973
  • Execution service 3: initial execution-node, interface+implementation: #1537
  • Retry common RPC connection errors by default: #2013
  • Disable feed output compression by default: #2024
  • Ensure sequencer backlog is populated before any clients connect: #2025
  • Recognize batch poster backlog from the data poster: #2026
  • Increase default data poster MaxMempoolTransactions: #2023
  • Fix data poster time RLP encoding: #2014 and #2030
  • Modify fee allocation for data poster mempool txs: #2031
  • Use a moving average to determine messages per batch: #2032
  • Use normal gas estimation when possible in the batch poster: #1986
  • Check that on-chain WASM module root is compatible with node: #2006
  • Change default PrerecordedBlocks to number of CPUs * 2: #2010
    • This should significantly reduce the memory usage of the validator
  • Resolve configuration issue with datool: #1963
  • Retain new feed messages when cache is cleared: #1945
  • Cache ArbOS storage keys: #1767
  • Sequence delayed initially when starting without coordinator: #1952
  • Use new DataPoster storage encoding by default: #1954
  • Improve "execution reverted" error matching: #1955 and #2012
  • Fix retryable gas estimation when overriding gas price to zero: #1929
  • Add --log-type option for daserver to allow for JSON logging: #1925
  • Prevent double v in reported version: #1942
  • Fix typo and let potuz have a nitro PR: #1910
  • Make “error posting batch” error just a warning unless it happens continuously: #1965
  • Fix the check for duplicate sequencerBatches in inbox_reader: #1970
  • Don't re-request parent block if same block as previous block: #1977
  • Rpcclient: retry delay: #1957
  • Bump fastcache pin to latest master: #1984 (pulls in OffchainLabs/fastcache#1)
  • Fix FloatToBig overflowing on values greater than an int64: #2011
  • Add argv[0]="js" to Go in jit runtime: #2007
  • Fix missing ArgLogLimit in L1 RPC client: #2034

Full Changelog: https://github.com/OffchainLabs/nitro/compare/v2.1.3..v2.2.0

Arbitrum Nitro v2.2.0 Release Candidate 2

18 Dec 17:46
v2.2.0-rc.2
06269e0
Compare
Choose a tag to compare

This release is available as a Docker image on Docker Hub at offchainlabs/nitro-node:v2.2.0-rc.2-06269e0

What's Changed

This release reduces error logs in the batch poster and better picks fees to post at compared to the previous release candidate.

Internal highlights

  • Modify fee allocation for data poster mempool txs: #2031
  • Use a moving average to determine messages per batch: #2032

Full Changelog: v2.2.0-rc.1...v2.2.0-rc.2