Arc is currently in its testnet phase. During this period, the network may
experience instability or unplanned downtime. Throughout this page, all
references to Arc refer specifically to the Arc Testnet.
Background
An Arc node runs two processes that communicate through local IPC sockets. The Execution Layer executes transactions and maintains blockchain state. The Consensus Layer fetches blocks from relay endpoints, verifies their cryptographic signatures, and passes them to the Execution Layer for execution. For a deeper explanation of how these components work together, see Running a Node.Prerequisites
Before you begin, confirm that you have:- Reviewed the Node Requirements for hardware specs, software, and network endpoints
- Prepared a Linux machine that meets the minimum system requirements
- Installed Foundry
(provides the
castcommand used to verify your node is syncing)
Step 1: Install the node binaries
Buildarc-node-execution, arc-node-consensus, and arc-snapshots from
source.
1.1. Install Rust
Make sure you have Rust installed. If not, install it with the following commands:1.2. Clone the repository
Clone thearc-node repository and
check out the version for your target network. See
Node Requirements for the current
version.
1.3. Build and install
The following commands build three Arc node binaries:arc-node-execution,
arc-node-consensus, and arc-snapshots.
cargo install places compiled binaries into ~/.cargo/bin, which is added to
PATH by loading ~/.cargo/env. Include the parameter --root $BASE_DIR to
install the compiled binaries into $BASE_DIR/bin instead (for instance,
--root /usr/local).
1.4. Verify the installation
Step 2: Create data directories
Create the directories where the EL and CL store their data, and set up the runtime directory for IPC sockets:When running as a systemd service, the
RuntimeDirectory=arc directive creates
/run/arc automatically. You can skip the second command in that case.Step 3: Download blockchain snapshots
Download snapshots to start syncing from a recent block height rather than from genesis. This significantly reduces initial sync time.https://snapshots.arc.network, downloads the snapshots, and extracts them into
~/.arc/execution and ~/.arc/consensus respectively.
Step 4: Start the execution layer
Start the Execution Layer process. This creates the IPC sockets that the Consensus Layer connects to./run/arc/reth.ipc and
/run/arc/auth.ipc.
| Flag | Required | Description |
|---|---|---|
--chain arc-testnet | Yes | Selects the Arc Testnet genesis configuration bundled in the binary |
--datadir | Yes | Path to the EL data directory |
--disable-discovery | Yes | Disables P2P peer discovery (Arc uses relay endpoints instead) |
--ipcpath / --auth-ipc | Yes (IPC mode) | Paths for the IPC sockets the CL connects to |
--http / --http.addr | Yes | Enables the JSON-RPC endpoint on the specified address and port |
--http.api | Recommended | RPC namespaces to expose |
--metrics | Recommended | Enables Prometheus metrics on the specified address and port |
--enable-arc-rpc | Yes | Enables Arc-specific RPC methods |
--rpc.forwarder | Recommended | Routes submitted transactions to an RPC node for broadcast |
--chain arc-testnet uses the genesis configuration bundled in the binary. If
you have a custom genesis file, replace with --chain /path/to/genesis.json.See reth node for additional flags.Step 5: Initialize the consensus layer
Generate the private key file used for P2P network identity. This is a one-time setup step:Step 6: Start the consensus layer
Open a separate terminal and start the Consensus Layer. The CL connects to the EL through the IPC sockets and begins fetching blocks from the network.| Flag | Required | Description |
|---|---|---|
--home | Yes | Path to the CL data directory (contains keys and state) |
--eth-socket | Yes (IPC mode) | Path to the Execution Layer ETH RPC IPC socket |
--execution-socket | Yes (IPC mode) | Path to the Execution Layer Engine API IPC socket |
--rpc.addr | Recommended | CL RPC listen address and port |
--follow | Yes | Enables block-following mode through relay endpoints |
--follow.endpoint | Yes | Relay endpoint URLs. Specify multiple for redundancy. Format: https://host,wss=host |
--metrics | Recommended | Enables Prometheus metrics on the specified address and port |
Start the Execution Layer first. The Consensus Layer connects to it on startup
and fails if the EL is not running.
Step 7: Verify the node is syncing
Check that your node is syncing blocks by querying the local RPC endpoint:Execution and consensus layer communication
The preceding steps use IPC sockets, which require the EL and CL to run on the same host. If they are on separate hosts, use RPC instead.Generate a JWT secret (one-time setup)
The EL and CL use this secret to authenticate with each other:Execution layer flags for RPC mode
Remove the IPC flags (--ipcpath, --auth-ipc, --auth-ipc.path) and add:
Consensus layer flags for RPC mode
Remove--eth-socket and --execution-socket, and add:
IPC and RPC are mutually exclusive. Use one or the other, not both.
Enabling backpressure
During startup or extended sync when the node is far behind, Execution Layer memory usage surges on some hardware. Backpressure, a mechanism that throttles execution to match the speed of disk writes, constrains this memory growth. To enable backpressure, add thereth namespace to the Execution Layer HTTP API
flags:
Arc node is alpha software. The team is actively working on this performance
issue.