github OffchainLabs/nitro v2.3.0
Arbitrum Nitro v2.3.0

latest releases: v3.3.0-rc.1, v3.2.1, consensus-v32...
8 months ago

This release is available as a Docker image on Docker Hub at offchainlabs/nitro-node:v2.3.0-3e14543

What's Changed

This release adds support for ArbOS 20, which includes EIP-4844 batch posting support and new EVM opcodes such as MCOPY and TSTORE. 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 20.

Beacon chain RPC connection

To run an layer 2 Arbitrum Nitro node (this does not apply to layer 3s), you will now need to supply a beacon chain RPC connection. This allows the node to query the contents of EIP-4844 batches. If you're running an layer 1 node locally, your consensus client should expose this RPC. Prysm exposes this RPC on port 3500 by default, and Lighthouse exposes this RPC on port 5052 by default. Check your consensus client's documentation for details.

If you're using a 3rd party L1 execution client RPC (previously the only RPC required to run an Arbitrum node), ask your provider if they also provide a beacon chain RPC. If not, the 3rd party RPC providers Ankr, Bware Labs, Chainbase, Chainstack, Conduit on a case by case basis, Lava Network, Nirvana Labs, NodeReal, and Quicknode all provide beacon chain RPCs.

Currently, in order to sync an Arbitrum node from scratch (or from a database that's more than 18 days old), your beacon chain RPC will also need to support querying historical blobs, which is not the default behavior of Ethereum consensus clients. However, the third party providers Ankr, BWare Labs, Chainstack, Conduit on a case by case basis, Lava Network, Nirvana Labs, and Quicknode all provide support for querying historical blobs and can thus be used for syncing Arbitrum Nitro nodes.

To test if your beacon chain RPC URL is correct, try curl <Layer 1 beacon chain URL>/eth/v1/beacon/genesis. You should get a response like the following (this response is for mainnet, other networks will have other values for each field):

{"data":{"genesis_time":"1606824023","genesis_validators_root":"0x4b363db94e286120d76eb905340fdd4e54bfe9f06bf33ff6cf5ad27f511bfe95","genesis_fork_version":"0x00000000"}}

You can set this URL on the command line with --parent-chain.blob-client.beacon-url=<Layer 1 beacon chain URL> or use the equivalent JSON config path.

User-facing Improvements

  • Finalize ArbOS 20: #2111
  • Require beacon client RPC: #2148

Internal Highlights

  • Add consensus-v20 to Dockerfile: #2153

Full Changelog: v2.2.5...v2.3.0

Don't miss a new nitro release

NewReleases is sending notifications on new releases.