Avalanche
Instructions to set up your Avalanche node.
Requirements
- Setup your Axelar validator
- Minimum hardware requirements: 8 AWS vCPU+, 16GB RAM, 500GB+ free storage space.
- MacOS or Ubuntu 20.04 (tested on 20.04)
- Official Documentation
Prerequisites
sudo apt-get install wget jq -y
Get Binaries
Check the appropriate version for the network accordingly in their docs or choose the latest release
# This is an example - check their docs and release page to opt for the right versionAVALANCHEGO=v1.9.3
# verify correct versionsecho $AVALANCHEGO
# create a temp dir for binariescd $HOMEmkdir binaries && cd binaries
# get avalanchego binary and renamewget https://github.com/ava-labs/avalanchego/releases/download/$AVALANCHEGO/avalanchego-linux-amd64-$AVALANCHEGO.tar.gztar -xvf avalanchego-linux-amd64-$AVALANCHEGO.tar.gzrm avalanchego-linux-amd64-$AVALANCHEGO.tar.gzcd avalanchego-$AVALANCHEGO
# make binaries executablechmod +x *
# move to usr binsudo mv * /usr/bin/
# get out of binaries directorycd $HOME
# verify versionavalanchego --version
Set environment variables
Note: Update your shell profile in accordance with the shell you are using
echo export NETWORK_ID=mainnet >> $HOME/.profile
echo export NETWORK_ID=fuji >> $HOME/.profile
Apply your changes
source $HOME/.profile
Create services
Use systemctl
to set up service for avalanchego
.
avalanchego
sudo tee <<EOF >/dev/null /etc/systemd/system/avalanchego.service[Unit]Description=Avalanche daemonAfter=network-online.target
[Service]User=rootExecStart=/usr/bin/avalanchego --http-host= --network-id=$NETWORK_IDRestart=on-failureRestartSec=3LimitNOFILE=32768
[Install]WantedBy=multi-user.targetEOF
# verify and enablecat /etc/systemd/system/avalanchego.servicesudo systemctl enable avalanchego
Start the service
sudo systemctl daemon-reloadsudo systemctl restart avalanchego
Check logs
# change log settings to persistent if not alreadysed -i 's/#Storage=auto/Storage=persistent/g' /etc/systemd/journald.confsudo systemctl restart systemd-journald
journalctl -u avalanchego.service -f -n 100 -o cat
Logs should appear like this
[11-28|07:50:59.280] INFO <P Chain> bootstrap/bootstrapper.go:481 fetching blocks {"numFetchedBlocks": 85000, "numTotalBlocks": 3241631, "eta": "1h52m8s"}[11-28|07:51:13.370] INFO <P Chain> bootstrap/bootstrapper.go:481 fetching blocks {"numFetchedBlocks": 90000, "numTotalBlocks": 3241631, "eta": "1h53m58s"}[11-28|07:51:29.644] INFO <P Chain> bootstrap/bootstrapper.go:481 fetching blocks {"numFetchedBlocks": 95000, "numTotalBlocks": 3241631, "eta": "1h56m46s"}[11-28|07:51:43.864] INFO <P Chain> bootstrap/bootstrapper.go:481 fetching blocks {"numFetchedBlocks": 100000, "numTotalBlocks": 3241631, "eta": "1h58m12s"}[11-28|07:51:52.789] INFO <P Chain> bootstrap/bootstrapper.go:481 fetching blocks {"numFetchedBlocks": 105000, "numTotalBlocks": 3241631, "eta": "1h56m50s"}[11-28|07:52:06.814] INFO <P Chain> bootstrap/bootstrapper.go:481 fetching blocks {"numFetchedBlocks": 110000, "numTotalBlocks": 3241631, "eta": "1h58m0s"}[11-28|07:52:17.979] INFO <P Chain> bootstrap/bootstrapper.go:481 fetching blocks {"numFetchedBlocks": 115000, "numTotalBlocks": 3241631, "eta": "1h57m45s"}[11-28|07:52:31.488] INFO <P Chain> bootstrap/bootstrapper.go:481 fetching blocks {"numFetchedBlocks": 120000, "numTotalBlocks": 3241631, "eta": "1h58m31s"}[11-28|07:52:40.475] INFO <P Chain> bootstrap/bootstrapper.go:481 fetching blocks {"numFetchedBlocks": 125000, "numTotalBlocks": 3241631, "eta": "1h57m20s"}[11-28|07:52:53.462] INFO <P Chain> bootstrap/bootstrapper.go:481 fetching blocks {"numFetchedBlocks": 130000, "numTotalBlocks": 3241631, "eta": "1h57m49s"}
Verify
YOUR_IP=$(curl -4 ifconfig.co)
curl -X POST --data '{ "jsonrpc":"2.0", "id" :1, "method" :"info.isBootstrapped", "params": { "chain":"X" }}' -H 'content-type:application/json;' $YOUR_IP:9650/ext/info | jq
If you get something like this in response of the above rpc call, your node is setup correctly
Wait for isBootstrapped
to become true before using it in vald config
{ "jsonrpc": "2.0", "result": { "isBootstrapped": false # wait for it to become true }, "id": 1}
Endpoint
echo "${YOUR_IP}:9650/ext/bc/C/rpc"
Configure vald
In order for vald
to connect to your Avalanche node, your rpc_addr
should be exposed in
vald’s config.toml
start-with-bridge = true
start-with-bridge = true