Skip to content

Arbitrum Nitro v2.3.0

Compare
Choose a tag to compare
@PlasmaPower PlasmaPower released this 22 Feb 02:42
· 1820 commits to master since this release
v2.3.0
3e14543

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. For a chain to adopt ArbOS 20 it must have nitro-contracts 1.2.1 or higher deployed.

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. We have a non-exhaustive list of 3rd party beacon chain RPC providers here: https://docs.arbitrum.io/node-running/reference/ethereum-beacon-rpc-providers

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, some 3rd party beacon chain RPC providers do provide this data. We list some providers known to do this in our documentation.

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