Arbitrum
Consensus chain
This chain is verified by Axelar validators. Before setting up this node,
set up your Axelar validator.
Once the node is running, connect it to vald as described in Verify consensus
chains.
Check the official documentation
The node setup steps below follow Arbitrum's own documentation at the time of
writing and may be out of date. Check the official
documentation before you start. The Axelar-specific steps (connecting
the node to vald or ampd) are maintained here.
Set up your Arbitrum Mainnet & Sepolia Testnet RPC node
Prerequisites
- Setup your Axelar validator
- Setup your Ethereum node
- Minimum hardware requirements: CPU with 2+ cores, 4GB RAM, 600GB+ free storage space.
- MacOS or Ubuntu 20.04+
- Official Documentation
Steps
- Install Docker
- Install Arbitrum image
- Configure vald
Install docker
sudo apt update && sudo apt install curl jq -y < "/dev/null"
curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.shInstall Arbitrum node
Get the latest arbitrum version/docker image to use from the official docs. It should look something like offchainlabs/nitro-node:vx.y.z-commit.
mkdir -p $HOME/data/arbitrum
chmod -fR 777 $HOME/data/arbitrumNow, you will see this flag in the command below --l1.url <YOUR_ETH_RPC_URL> this means that your arbitrum node needs a synced Ethereum node.
Please provide the RPC URL of your synced Ethereum node with this flag.
Please use your own Ethereum node instead of using 3rd party providers like alchemy, infura etc. for decentralization/security. Third-party providers also have a specific request limit, and your node can throw 100s of thousands of requests while trying to sync.
docker run --rm -it -v /some/local/dir/arbitrum:/home/user/.arbitrum -p 0.0.0.0:8547:8547 -p 0.0.0.0:8548:8548 <LATEST_DOCKER_IMAGE> --parent-chain.connection.url <YOUR_ETH_RPC_URL> --chain.id=42161 --http.api=net,web3,eth,debug --http.corsdomain=* --http.addr=0.0.0.0 --http.vhosts=* --init.url="https://snapshot.arbitrum.foundation/arb1/nitro-archive.tar"docker run --rm -it -v /some/local/dir/arbitrum:/home/user/.arbitrum -p 0.0.0.0:8547:8547 -p 0.0.0.0:8548:8548 <LATEST_DOCKER_IMAGE> --parent-chain.connection.url <YOUR_ETH_RPC_URL> --chain.id=421613 --http.api=net,web3,eth,debug --http.corsdomain=* --http.addr=0.0.0.0 --http.vhosts=* --init.url="https://snapshot.arbitrum.foundation/sepolia/nitro-archive.tar"Verify sync status
To verify if your node is in sync you can check the latest block from the explorer.
Compare it with what you have in docker ps -q | xargs -L 1 docker logs --tail 10 -f
Test RPC connection
Once your node is fully synced, the output from above will say false. To test your Arbitrum RPC node, you can send an RPC request using cURL
curl -X POST http://localhost:8547 \
-H "Content-Type: application/json" \
--data '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}'If you are testing it remotely, please replace localhost with the IP or URL of your server.
Configure vald
In order for vald to connect to your Arbitrum node, your rpc_addr should be exposed in
vald's config.toml
start-with-bridge = true start-with-bridge = true