Skip to content

Releases: OffchainLabs/nitro

Arbitrum Nitro v2.2.0 Alpha 5

29 Nov 21:52
v2.2.0-alpha.5
09d45c1
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.0-alpha.5-09d45c1

What's Changed

This release adds backup transaction forwarding and feed URLs, improves batch poster reliability especially for L3 chains, and fixes a go-ethereum triedb issue compared to the last alpha release.

User-facing improvements

  • Add backup transaction forwarding URLs: #1975
    • Add backup transaction submission RPC URLs to arb1 chain information: #1985
  • Add backup feed URLs to chain information: #1958
  • Increase the default BatchPosterConfig MaxSize for DAS chains to ~1MB: #1982

Internal highlights

Full Changelog: v2.2.0-alpha.4...v2.2.0-alpha.5

Arbitrum Nitro v2.2.0 Alpha 4

21 Nov 17:40
7d5ee32
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.0-alpha.4-7d5ee32

What's Changed

This release fixes retryable transaction processing, which was broken in https://github.com/OffchainLabs/nitro/releases/tag/v2.2.0-alpha.2 and https://github.com/OffchainLabs/nitro/releases/tag/v2.2.0-alpha.3. If either of those versions were used, you should restore with a database backup taken before either alpha release was used.

User-facing improvements

  • Resolve configuration issue with datool: #1963
  • Fix processing retryable transactions and add regression test for the empty retryable escrow account: #1976

Internal highlights

  • Fix unit test race conditions: #1974
  • Sequence delayed initially when starting without coordinator: #1952
  • Fix the check for duplicate sequencerBatches in inbox_reader: #1970

Full Changelog: v2.2.0-alpha.3...v2.2.0-alpha.4

Arbitrum Nitro v2.2.0 Alpha 3

16 Nov 21:32
4b5133e
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.0-alpha.3-4b5133e

Warning

This release does not process retryable transactions correctly. Alpha 4 will fix this issue.

What's Changed

This release fixes an issue introduced in [v2.2.0-alpha.1]
(https://github.com/OffchainLabs/nitro/releases/tag/v2.2.0-alpha.1).

User-facing improvements

  • Fix issue introduced in v2.2.0-alpha.1 that caused sequencer feed to be ignored: #1972

Full Changelog: v2.2.0-alpha.2...v2.2.0-alpha.3

Arbitrum Nitro v2.2.0 Alpha 2

16 Nov 00:44
v2.2.0-alpha.2
0230f42
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.0-alpha.2-0230f42

Warning

This release does not process retryable transactions correctly. Alpha 4 will fix this issue.

What's Changed

This release finishes support for custom chains with custom smart contract size limits compared to the last alpha release.

User-facing Improvements

Internal Highlights

  • Merge in upstream go-ethereum v1.12.1: #1903
  • Make “error posting batch” error just a warning unless it happens continuously: #1965

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

Consensus V10.3

15 Nov 17:53
consensus-v10.3
fdd098e
Compare
Choose a tag to compare
Consensus V10.3 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: 0xf559b6d4fa869472dabce70fe1c15221bdda837533dfd891916836975b434dec

This contains the following consensus change from consensus v10.2:

Full Changelog: consensus-v10.2...consensus-v10.3

Arbitrum Nitro v2.2.0 Alpha 1

03 Nov 20:02
v2.2.0-alpha.1
fdd098e
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.0-alpha.1-fdd098e

What's Changed

This release continues work on the execution split, and has many improvements, such as allowing chains to increase the contract size limit and adding a --dev flag to the node to easily spin up a local dev 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.

User-facing Improvements

  • Add --dev flag to easily start up a local L2-only dev chain: #1914
  • Change default sequencer MaxBlockSpeed to 250ms: #1927
  • Implement external signer for dataposter: #1919
    • TLS support and client certificate support added in #1923 and #1924 respectively
  • Create access lists for batchposter transactions to reduce storage access cost: #1905
    • Add access list entries for dynamic storage slots for bridge contract: #1907
  • Add new metrics for inbox: #1909
  • Add --log-type option for daserver to allow for JSON logging: #1925
  • Add secondary feed support to go relay: #1908
    • Fix restarting of stopped secondary feeds: #1944
  • Support creating ERC20 rollup: #1879

Pending Consensus v10.3 Improvements

This will require a new consensus release and WASM module root to work, which should be part of the next beta nitro release.

Internal Highlights

  • Execution service 3: initial execution-node, interface+implementation: #1537
  • Retain new feed messages when cache is cleared: #1945
  • Cache ArbOS storage keys: #1767
  • Use new DataPoster storage encoding by default: #1954
  • Match against "execution reverted" case insensitive: #1955
  • Node builder pattern for running test nodes in tests: #1883
    • Refactor System Tests: #1936
  • Add a CI step to start up a dev test node: #1917
  • Fix retryable gas estimation when overriding gas price to zero: #1929
  • Don't ignore target/machines for Docker builds: #1918
  • Add metrics to time each part of WSBroadcastServer’s StartWithHeader: #1926
  • Prevent double v in reported version: #1942
  • Fix typo and let potuz have a nitro PR: #1910

Full Changelog: v2.1.1...v2.2.0-alpha.1

Arbitrum Nitro v2.1.3

02 Nov 16:43
v2.1.3
e815395
Compare
Choose a tag to compare

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

What's Changed

This release fixes enabling the delayed sequencer and feed broadcast output without also enabling the sequencer coordinator, which previously got stuck at startup due to a misordered startup. This release is only necessary if you're running the sequencer on an Arbitrum chain.

Internal Highlights

  • arbnode: Init broadcast server before sequencing: #1950

Full Changelog: v2.1.2...v2.1.3

Arbitrum Nitro v2.1.2

26 Oct 01:45
v2.1.2
4c55843
Compare
Choose a tag to compare

This release is available as a Docker image on Docker Hub at offchainlabs/nitro-node:v2.1.2-4c55843

What's Changed

This release fixes eth_createAccessList which was broken and always returned "method handler crashed" on the last release (2.1.1).

User-facing Improvements

Full Changelog: v2.1.1...v2.1.2

Arbitrum Nitro v2.1.1

30 Sep 06:31
v2.1.1
e9d8842
Compare
Choose a tag to compare

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

What's Changed

This release fixes archive nodes which were broken on the last release (2.1.0).

User-facing Improvements

  • Add support for pebble db (not enabled by default yet): #1859
  • Allow using different redis keys for dataposter: #1863

Pending ArbOS Version 12 Improvements (work in progress)

Internal Highlights

  • Disable skipping saving state in archive node by default: #1900
  • Use sequencer inbox isSequencer to verify feed signatures: #1630
  • Support new preimage types in proving: #1814
  • Upgrade log level to Error when losing connection to L1 for too long: #1783
  • Only warn if we hit an issue polling for batch reverts: #1892

Full Changelog: v2.1.0...v2.1.1

Arbitrum Nitro v2.1.0

27 Sep 22:58
v2.1.0
72ccc0c
Compare
Choose a tag to compare

This release is available as a Docker image on Docker Hub at offchainlabs/nitro-node:v2.1.0-72ccc0c

Warning

We're investigating reports of a crash on archive nodes on this version. If you run an archive node, we'd recommend skipping to v2.1.1.

What's Changed

This release adds support for L3 Arbitrum Orbit chains, improves batch poster reliability, and adds various new RPC features.

Configuration Changes

All changes are referred to by the CLI argument but the equivalent JSON options have also been changed accordingly.

  • --l2.chain-id has been renamed to --chain.id
    • You can now optionally specify --chain.name instead, with the possibilities "arb1", "nova", and "goerli-rollup"
  • --l1.url has been renamed to --parent-chain.connection.url
  • --l1.connection-attempts was removed (see the --parent-chain.connection.* family of options for replacements, but the defaults should result in a good number of attempts already)
  • --l1.chain-id has been renamed to --parent-chain.id
  • All other --l2.* options have been renamed to --chain.*
  • All other --l1.* options have been renamed to --parent-chain.*
  • --node.batch-poster.poll-delay has been renamed to --node.batch-poster.poll-interval

User-facing Improvements

  • Orbit chain (L3) support
    • Support the node loading chain information from a JSON file: #1577
    • Support L2.chain-name, ifps and base64 encoded l2Chain configs: #1645
    • Add option to dataposter to not store the state: #1794
    • More implementation details of this are listed under the "Internal Highlights" section
  • Add sepolia-rollup testnet support: #1829
    • Fix sepolia-rollup feed connection scheme: #1830
  • Fix the eth_estimateGas RPC gas cap: #1615
  • Add option to disable L1 charging to the eth_call RPC: #1790
  • Add new RPC GetL2BlockRangeForL1 to fetch L2 block range for L1 block number: #1860
  • Upgrade ConditionalOptions variables (for the eth_sendRawTransactionConditional RPC) to type math.HexOrDecimal64: #1848
  • Allow separate wallets for validator and batch poster: #1605
  • Execution service 2: separate block validation from the rest of the node: #1536
    • This is useful to separate block validator resource consumption (and potential out of memory kills) from the rest of the node
    • Separate block validation node command: #1578
  • Prune old messages and delayed messages: #1569
  • Don't save every state on archive node: #1542
  • Recreate missing state for RPCs on archive nodes: #1455
  • Reject RPC requests if optional memory limit is exceeded: #1738
    • Fixed memory limits rather than percentage based: #1878
    • Metrics for memory limit and usage: #1888
  • Implement leveldb storage for dataposter: #1736
    • Make the default data poster storage backend LevelDB: #1856
  • Wait for block bounds to be safe before posting batches: #1665
  • Add gas used since startup to prometheus metric: #1762
    • Rename "arb/sequencer/gasused" to "arb/gas_used": #1800
  • Run pprof (by default disabled) on a separate port than metrics: #1758
  • Introduce initial max tip cap for dataposter: #1797
  • Add ability to dump das keyset bytes to datool: #1698
  • Add a raw l1 private key option to the deploy script: #1748
  • Use the data poster for validators/stakers, improving transaction posting reliability
    • Use dataposter from EoaValidatorWallet: #1787
    • Enable dataposter for validator contract wallet: #1788
  • Default to using "safe" instead of "finalized" for delayed sequencing: #1804
  • Add sequencer coordinator management terminal UI tool: #1822

Consensus v10.2: L3 Orbit Chain Improvements

This consensus upgrade is only for Arbitrum Orbit L3 chains and need not be applied to L2s like Arbitrum One or Arbitrum Nova.

  • Parse the initial data cost out of the init message: #1704
  • Parse new BatchPostingReport field extraGas: #1701

Pending ArbOS Version 11 Improvements (work in progress)

  • Add EVM Shanghai support: #1583
    • Regenerate the state and header after the internal transaction in ProduceBlockAdvanced: #1664
    • Only update ArbOS version after recreating header after internal tx: #1712
  • Resolve chain owners list in ArbOS version 11 upgrade: #1768
  • Update L1 pricing params to more accurate values: #1549
  • Add GetL1RewardRate and GetL1RewardRecipient methods to ArbGasInfo: #1775
  • Fix retrayble fee refund: #1789

Internal Highlights

  • L3 support implementation details
    • replay: load chain config from init msg / arbos state: #1598
    • Update GetPendingCallBlockNumber to handle l3 chains: #1593
    • Use ParentChainBlockNumber instead of assuming that parent is l1: #1594
    • Store rollup node ArbSys block numbers if on an Arbitrum host chain: #1597
    • Add support for consensus v10.2 to Dockerfile: #1722
    • Use create2 to deploy the RollupProxy and predict address: #1629
    • Sequence txs with the L1 (not parent chain) block number: #1693
    • Make the staker NodeInfo BlockProposed an L1 block: #1695
    • Miscellaneous L3 timing fixes: #1717
    • Improve batch poster reliability for L3s: #1835
    • Fix batch bounds calculation on L3s: #1841
    • Disable wait-for-l1-finality on L3 data posters: #1846
    • Improve batch size and tx size limit defaults for L3s: #1855
  • Update arb1 and nova feed URLs to new domain: #1886
  • inbox_tracker: bugfix - remove values from batchMeta cache: #1699
  • Fix lost txQueueItems in sequencer: #1808
  • Fix changing the basefee in non-mutating calls: #1850
  • In the data poster, properly allocate fee spending across transactions: #1818
  • Make the data poster nonce query resilient: #1640
    • Fix data poster nonce query: #1682
  • Add a safety check that we aren't reposting a known batch: #1685
  • If the data poster fails to acquire the redis lock, retry quicker: #1684
  • Store haveUsefulMessage in buildingBatch: #1696
  • Handle nil parent chain BaseFee in data poster instead of crashing: #1707
  • Check that the nonce is correct in the data poster: #1834
  • Fix batch poster fixAccErr not resetting when the error stops: #1849
  • Add the missing ContractAddress field to the logs receipt RLP format: #1632
  • seq_coordinator: only take over if all blocks were built: #1623
  • When acquiring the lockout, populate the feed backlog: #1627
    • Populate the feed backlog on sequencer startup even if coordinator disabled: #1634
  • Merge in upstream go-ethereum v1.12.0: #1691
  • block_processor: fix header for block being built: #1650
  • Create rpcclient: #1603
  • Fix error handling in block validator: #1697
  • Add maintenance lock to sequencers: #1709
  • Track validation count in client: https://github.com/Offcha...
Read more