Arbitrum Nitro v2.2.0
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:
- 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