Method 1: Setting up your own Avalanchego node
Installing AvalancheGo
The first step to running a Beam Node is installing AvalancheGo, the client for the Avalanche network. The easiest method is using the installer which you can find here. Please note that this guide is compatible with AvalancheGo version 1.14.0.
Installing the Beam Network-EVM
Downloading the Subnet-EVM
Download the Subnet-EVM binary from the AvalancheGo releases page. Subnet-EVM is now maintained and released in the AvalancheGo repository.
For AvalancheGo v1.15.0 on Linux AMD64, use Subnet-EVM v1.15.0:
mkdir -p subnetevm
cd subnetevm
wget https://github.com/ava-labs/avalanchego/releases/download/v1.15.0/subnet-evm-linux-amd64-v1.15.0.tar.gz
tar -xvzf subnet-evm-linux-amd64-v1.15.0.tar.gz
mkdir -p ~/.avalanchego/plugins
install -m 0755 subnet-evm ~/.avalanchego/plugins/kLPs8zGsTVZ28DhP1VefPCFbCgS7o5bDNez8JUxPVw9E6UbbzAvalancheGo and Subnet-EVM must use the same RPCChainVM protocol version.
AvalancheGo v1.15.0 requires protocol version 46, provided by the
Subnet-EVM v1.15.0 release above. The older Subnet-EVM v0.8.0 uses
protocol version 44 and is incompatible with AvalancheGo v1.15.0.
Updating upgrade.json does not update the Subnet-EVM binary.
The long string kLPs8zGsTVZ28DhP1VefPCFbCgS7o5bDNez8JUxPVw9E6Ubbz is the CB58 encoded VMID of the Beam Subnet-EVM. AvalancheGo will use the name of this file to determine what VMs are available to run from the plugins directory.
Tracking the Beam L1, configuring Partial Network Sync
To start tracking the Beam L1, update your node config in your preferred editor.
The installation script creates the node configuration file at
~/.avalanchego/configs/node.json. If AvalancheGo is built from source, no
default file is created; you would need to create it manually if needed.
nano ~/.avalanchego/configs/node.jsonAdd the track-subnets option to node config and set partial-sync-primary-network. By default, an AvalancheGo node syncs all chains, including the C-Chain and X-Chain. This setting ensures that only the necessary network components are synchronized, reducing resource usage and improving node startup times.
{
"track-subnets": "eYwmVU67LmSfZb1RwqCMhBYkFyG8ftxn6jAwqzFmxC9STBWLC",
"partial-sync-primary-network": true
}As an alternative to the config file, you can pass the subnet ID as parameter during the node start-up:
--track-subnets eYwmVU67LmSfZb1RwqCMhBYkFyG8ftxn6jAwqzFmxC9STBWLCApply Network Upgrades
Create the config directory for Beam and download the upgrade.json file from GitHub. Place it in the appropriate directory.
You might need to use sudo to elevate your privileges if mkdir fails. If you don’t have wget on your particular Linux distribution, you can use the curl -O command instead.
mkdir -p ~/.avalanchego/configs/chains/2tmrrBo1Lgt1mzzvPSFt73kkQKFas5d1AP88tv9cicwoFp8BSn
cd ~/.avalanchego/configs/chains/2tmrrBo1Lgt1mzzvPSFt73kkQKFas5d1AP88tv9cicwoFp8BSn
wget https://raw.githubusercontent.com/BuildOnBeam/beam-subnet/main/subnets/beam-mainnet/upgrade.jsonIf you didn’t use the installer, your config directory may be located elsewhere. In that case, place the file in {chain-config-dir}/2tmrrBo1Lgt1mzzvPSFt73kkQKFas5d1AP88tv9cicwoFp8BSn/, where 2tmrrBo1Lgt1mzzvPSFt73kkQKFas5d1AP88tv9cicwoFp8BSn is the {blockchainID}.
Restarting the Node
After updating your configuration, restart your node to begin tracking the Beam L1.
sudo systemctl restart avalanchegoOnce your Beam Node is properly set up, head over to register a validator.