Skip to content

Releases: OffchainLabs/nitro

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

Arbitrum Nitro v2.1.0 Beta 16

13 Sep 19:48
v2.1.0-beta.16
ad8cfe5
Compare
Choose a tag to compare
Pre-release

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

What's Changed

This release fixes spurious batch poster error logs compared to the previous beta release.

Internal Highlights

  • Don't confirmDataPosterIsReady if watchtower: #1858
  • Handle block "not found" case in batch revert polling: #1857
  • Reorder prechecker balance and conditional options checks: #1862

Full Changelog: v2.1.0-beta.15...v2.1.0-beta.16

Arbitrum Nitro v2.1.0 Beta 15

08 Sep 23:19
v2.1.0-beta.15
38ad1f1
Compare
Choose a tag to compare
Pre-release

This release is available as a Docker image on Docker Hub at offchainlabs/nitro-node:v2.1.0-beta.15-38ad1f1

What's Changed

This release fixes the default batch poster configuration and enables LevelDB storage for the data poster by default compared to the previous beta release.

User-facing Improvements

  • Improve batch size and tx size limit defaults for L3s: #1855
    • This PR expects a new field for chain information: parentChainIsArbitrum. This should be set to true if the parent chain is an Arbitrum chain (i.e. this chain information is for an Orbit chain). For now, this field is automatically filled in if not present, but we will expect this field to be present in chain information JSONs going forward.
  • Make the default data poster storage backend LevelDB: #1856
  • Default to using "safe" instead of "finalized" for delayed sequencing: #1804

Internal Highlights

  • Fix Start/Stop of the staker wallet's data poster: #1854
  • Check validity of input before setting pendingWasmModuleRoot of StatelessBlockValidator: #1853

Full Changelog: v2.1.0-beta.14...v2.1.0-beta.15

Arbitrum Nitro v2.1.0 Beta 14

04 Sep 18:17
v2.1.0-beta.14
9a65598
Compare
Choose a tag to compare
Pre-release

This release is available as a Docker image on Docker Hub at offchainlabs/nitro-node:v2.1.0-beta.14-9a65598

What's Changed

This release fixes data poster backwards compatibility compared to the previous beta release.

User-facing Improvements

  • Implement legacy storage encoding with hot-reload flag to change encoding strategy on the fly: #1844

Internal Highlights

  • Fix changing the basefee in non-mutating calls: #1850

Full Changelog: v2.1.0-beta.13...v2.1.0-beta.14

Arbitrum Nitro v2.1.0 Beta 13

01 Sep 03:23
v2.1.0-beta.13
8252c29
Compare
Choose a tag to compare
Pre-release

This release is available as a Docker image on Docker Hub at offchainlabs/nitro-node:v2.1.0-beta.13-8252c29

What's Changed

This release improves batch posting for L3s compared to the previous beta release.

User-facing Improvements

  • Fix batch bounds calculation on L3s: #1841
  • Disable wait-for-l1-finality on L3 data posters: #1846
  • Fix batch poster fixAccErr not resetting when the error stops: #1849
  • Fix batch poster pollForReverts channel reading: #1845
  • Upgrade ConditionalOptions variables to type math.HexOrDecimal64: #1848

Internal Highlights

  • Fix off by 1 in validator logging: #1847
  • Drop unused fields with koanf tags: #1837

Full Changelog: v2.1.0-beta.12...v2.1.0-beta.13

Arbitrum Nitro v2.1.0 Beta 12

28 Aug 16:59
v2.1.0-beta.12
8af8cbf
Compare
Choose a tag to compare
Pre-release

This release is available as a Docker image on Docker Hub at offchainlabs/nitro-node:v2.1.0-beta.12-8af8cbf

What's Changed

This release hardens the data poster compared to the previous beta release.

User-facing Improvements

  • Improve batch poster reliability for L3s: #1835
  • Move ExtraGas to L1ValidatorConfig and use it for eoa wallets too: #1831
    • This is a configuration change but this configuration option was only introduced in the last beta so it likely isn't in use

Internal Highlights

  • Check that the nonce is correct in the data poster: #1834
  • Fix flag initializations in sample_hmac.go, init.go and data_poster.go: #1824

Full Changelog: v2.1.0-beta.11...v2.1.0-beta.12