Arbitrum
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.sh
Install 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/arbitrumchmod -fR 777 $HOME/data/arbitrum
Now, 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