Home » Node-setups » Beam Validator Node Setup on Linux VPS
Home » Node-setups » Beam Validator Node Setup on Linux VPS
Disclaimer
The information provided in this guide is for general informational purposes only. By accessing or using this guide, you acknowledge and agree that the author and this website shall not be held responsible or liable for any errors, omissions, or outcomes resulting from the use of this material. This includes, without limitation, any direct, indirect, incidental, or consequential damages to hardware, software, data, or any other property. While reasonable efforts have been made to ensure the accuracy and reliability of the content, no warranties or guarantees are provided, either express or implied. Users assume full responsibility for the implementation of any instructions contained herein and are strongly advised to perform appropriate backups and due diligence before proceeding. For official support or the most up-to-date information, please consult the relevant project’s official documentation or support channels.
To access your VPS, you have two options
root
as the default username.Run this command:
ssh username@your_server_ip
Replace username
and your_server_ip
with your actual VPS login credentials. You’ll be prompted to enter the password to complete the login.
Example: ssh root@192.0.2.123
⚡ Prefer a one-liner script (recommended)?
wget https://raw.githubusercontent.com/depinspirationhub/beamnode/main/node_install.sh && chmod +x node_install.sh && ./node_install.sh
🛠 Prefer Manual Step-by-Step Setup?
✅ Step 1: Update Your Server & Install Dependencies
sudo apt-get update && sudo apt-get install -y wget tar screen jq curl
⬇️ Step 2: Download and Install AvalancheGo (Avalanche Node Software)
latest=$(curl -s https://api.github.com/repos/ava-labs/avalanchego/releases/latest | jq -r .tag_name) && \
wget -q https://github.com/ava-labs/avalanchego/releases/download/$latest/avalanchego-linux-amd64-$latest.tar.gz && \
tar -xzf avalanchego-linux-amd64-$latest.tar.gz && \
sudo mv avalanchego-$latest/* /usr/local/bin/ && \
sudo chmod +x /usr/local/bin/avalanchego && \
rm -rf avalanchego-$latest avalanchego-linux-amd64-$latest.tar.gz
🧱 Step 3: Install Beam’s Subnet-EVM Binary
mkdir -p ~/subnetevm ~/.avalanchego/plugins ~/.avalanchego/configs && \
cd ~/subnetevm && \
subnetevm_latest=$(curl -s https://api.github.com/repos/ava-labs/subnet-evm/releases/latest | jq -r .tag_name) && \
wget -q https://github.com/ava-labs/subnet-evm/releases/download/${subnetevm_latest}/subnet-evm_${subnetevm_latest#v}_linux_amd64.tar.gz && \
tar -xzf subnet-evm_${subnetevm_latest#v}_linux_amd64.tar.gz && \
mv subnet-evm ~/.avalanchego/plugins/kLPs8zGsTVZ28DhP1VefPCFbCgS7o5bDNez8JUxPVw9E6Ubbz
⚙️ Step 4: Create Configuration Files
echo '{ "track-subnets": "eYwmVU67LmSfZb1RwqCMhBYkFyG8ftxn6jAwqzFmxC9STBWLC", "partial-sync-primary-network": true }' > ~/.avalanchego/configs/node.json && \
mkdir -p ~/.avalanchego/configs/chains/2tmrrBo1Lgt1mzzvPSFt73kkQKFas5d1AP88tv9cicwoFp8BSn && \
cd ~/.avalanchego/configs/chains/2tmrrBo1Lgt1mzzvPSFt73kkQKFas5d1AP88tv9cicwoFp8BSn && \
wget -q https://raw.githubusercontent.com/BuildOnBeam/beam-subnet/main/subnets/beam-mainnet/upgrade.json
🛠️ Step 5: Create Systemd Service to Auto-Start the Node
sudo tee /etc/systemd/system/beamnode.service > /dev/null <<EOF
[Unit]
Description=Beam Node
After=network.target
[Service]
User=root
ExecStart=/usr/local/bin/avalanchego --track-subnets=eYwmVU67LmSfZb1RwqCMhBYkFyG8ftxn6jAwqzFmxC9STBWLC
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
▶️ Step 6: Start the Beam Node
sudo systemctl daemon-reexec && \
sudo systemctl daemon-reload && \
sudo systemctl enable beamnode && \
sudo systemctl restart beamnode
⏳ Step 7: Wait a Bit for Node to Start
sleep 10
📡 Step 8: Get Your Validator Node Details
NODE_INFO=$(curl -s -X POST --data '{ "jsonrpc":"2.0", "id":1, "method":"info.getNodeID", "params":{} }' \
-H 'Content-Type: application/json' 127.0.0.1:9650/ext/info) && \
NODE_ID=$(echo "$NODE_INFO" | jq -r .result.nodeID) && \
BLS_KEY=$(echo "$NODE_INFO" | jq -r .result.nodePOP.publicKey) && \
BLS_PROOF=$(echo "$NODE_INFO" | jq -r .result.nodePOP.proofOfPossession) && \
echo "\nNode ID: $NODE_ID" && \
echo "BLS Public Key: $BLS_KEY" && \
echo "Proof of Possession: $BLS_PROOF"
💾 Step 9: Save Validator Info to File
echo -e "Node ID: $NODE_ID\nBLS Public Key: $BLS_KEY\nProof of Possession: $BLS_PROOF" > ~/beam-node-info.txt
📈 Step 10: Monitor Node Logs
journalctl -u beamnode -f
🔍 Step 11: Check Node Sync Status
To inspect the L1 sync status of your node, use the following command:
curl -X POST --data '{
"jsonrpc": "2.0",
"method": "platform.getBlockchainStatus",
"params":{
"blockchainID":"2tmrrBo1Lgt1mzzvPSFt73kkQKFas5d1AP88tv9cicwoFp8BSn"
},
"id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/bc/P
To check if your node has fully bootstrapped and is ready to be added as a validator, run:
curl -X POST --data '{
"jsonrpc":"2.0",
"id":1,
"method": "info.isBootstrapped",
"params": {
"chain": "2tmrrBo1Lgt1mzzvPSFt73kkQKFas5d1AP88tv9cicwoFp8BSn"
}
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/info
📝 Step 12: Register Your Validator Node
Once your node is fully synced with the Beam network, you can proceed with registration.
Check the video above for a walkthrough, or refer to the official documentation for step-by-step instructions.
🎉 Congrats! You’re now running a Beam node on Avalanche!