How to run a full node for an Arbitrum or Arbitrum chain
If you’re interested in accessing an Arbitrum chain but don’t want to set up your own node, see our Node Providers to get RPC access to fully managed nodes hosted by a third-party provider.
This how-to provides step-by-step instructions for running a full node for Arbitrum on your local machine.
Prerequisites
In addition to the hardware requirements, the following prerequisites will be necessary when initially setting up your node. It is essential not to skip over these items. You would benefit by copying and pasting them into a notepad or text editor, as you will need to combine them with other commands and configuration/parameter options when you initially run your Arbitrum node.
Minimum hardware configuration
The following are the minimum hardware requirements to set up a Nitro full node (not archival):
Resource | Recommended |
---|---|
RAM | 16 GB |
CPU | 4 core CPU (for AWS, a t3 xLarge instance) |
Storage type | NVMe SSD drives are recommended |
Storage size | Depends on the chain and its traffic overtime |
Please note that:
- The minimum requirements for RAM and CPU listed here are recommended for nodes that handle a limited number of RPC requests. For nodes that need to process multiple simultaneous requests, both the RAM size and the number of CPU cores should be increased to accommodate higher levels of traffic.
- Single core performance is important. If the node is falling behind and a single core is 100% busy, the recommendation is to upgrade to a faster processor
- The minimum storage requirements will change over time as the chain grows. Using more than the minimum requirements to run a robust full node is recommended.
Recommended Nitro version
Although there are beta and release candidate versions of the Arbitrum Nitro software, use only the release version when running your node. Running beta or RC versions is not supported and might lead to unexpected behaviors and/or database corruption.
Latest Docker image: offchainlabs/nitro-node:v3.7.2-42be4fe
Database snapshots
Database snapshots are available and located in the snapshot explorer for Arbitrum One, Arbitrum Nova, and Arbitrum Sepolia. Database snapshots for other Arbitrum chains may be available at the discretion of the team running the chain. Please get in touch with them if you're interested in using a database snapshot for their chains.
Supplying a database snapshot when starting your node for the first time is required for Arbitrum One (to provide information from the Classic era) but is optional for other chains. Supplying a database snapshot on the first run will provide the state and data for that chain up to a specific block, allowing the node to sync faster to the head of the chain.
We provide a summary of the available parameters here, but we recommend reading the complete guide if you plan to use snapshots.
- Use the parameter
--init.latest <snapshot type>
(accepted values:archive
,pruned
,genesis
) to instruct your node to download the corresponding snapshot from the configured URL - Optionally, use the parameter
--init.latest-base
to set the base URL when searching for the latest snapshot - Note that these parameters get ignored if a database already exists
- When running more than one node, it's easier to manually download the different parts of the snapshot, join them into a single archive, and host it locally for your nodes. Please see Downloading the snapshot manually for instructions on how to do that.
The Fulu consensus node upgrade in Fusaka will activate Ethereum's PeerDAS (EIP-7594
), with Sepolia's upgrade on October 14th and Mainnet targeting the week of December 3rd.
Layer 2 network operators must connect to an Ethereum beacon chain node with historical blob data to ensure proper functioning of the Nitro node software, or risk failure in fetching blob data.
Impacted audiences
Required action will be required from: RPC nodes, Arbitrum One / Nova node operators, Arbitrum (Orbit) chain node operators
If you run a Nitro node and use an external L1 Ethereum beacon chain RPC URL
- Confirm that your external L1 beacon chain RPC provider has configured their L1 beacon chain node to subscribe to all subnets before the Ethereum Fusaka hard fork. For chains that post data to Ethereum Sepolia, the Ethereum Sepolia Fusaka hard fork is expected on October 14th, 2025.
- For chains that post data to Ethereum Mainnet, the Ethereum Mainnet Fusaka hard fork is expected around the first week of December 2025.
If your external L1 beacon chain RPC doesn't subscribe to all subnets:
- Switch to a provider that does before the dates above.
If you run a Nitro node and operate your own L1 Ethereum beacon chain node:
- Add the new flag (refer to specific client flags) to your beacon node's configuration before the Ethereum Fusaka hard fork. For chains that post data to Ethereum Sepolia, the Ethereum Sepolia Fusaka hard fork is expected on October 14th, 2025.
- For chains that post data to Ethereum Mainnet, the Ethereum Mainnet Fusaka hard fork is expected around the first week of December 2025.
- If you haven't added the new flag before the above deadlines, temporarily switch to an external L1 beacon chain RPC URL while your local Ethereum beacon chain node syncs up.
- Note: Ensure that the external L1 beacon chain RPC provider you're using subscribes to all subnets.
- Once your beacon chain node is fully synchronized, you can switch back to your own L1 beacon chain RPC URL (from an external L1 beacon chain RPC URL).
L1 beacon chain node flags
Prysm Consensus Layer clients
Prysm nodes have a new beacon node flag --subscribe-all-data-subnets
that needs to be added to P2P options. Refer to the Prysm command-line options documentation for configuration details.
This flag is available as of Prysm v6.1.0. We recommend upgrading to the latest stable Prysm releases to ensure you have the most recent features and security updates.
Other Consensus Layer clients
Other Consensus Layer nodes also have flags to ensure they sync data from across all subnets.
Note: The Offchain Labs team hasn't verified the accuracy of the flags below, including the corresponding versions that support these flags. Consult the respective release notes and documentation for non-Prysm consensus layer clients to ensure you're adding the correct flags.