Comprehensive guide to running a Shibarium full node: prerequisites, setup with Ansible or binaries, snapshots, troubleshooting, and best practices.
Node type | RAM | CPU | Storage | Network bandwidth |
---|---|---|---|---|
Full Node/Sentry Node | 16/32 GB | 4/8 core | 1 TB | 1 Gbit/s |
Validator Node | 32/64 GB | 8/16 core | 1 TB | 1 Gbit/s |
Archive (For RPC) Node | 32/64 GB | 8/16 core | 2-4 TB | 1 Gbit/s |
Port | Description |
---|---|
26656 | Heimdall p2p (sentry/full/validator) |
26657 | Heimdall RPC (sentry/full/validator) |
8545 | Bor RPC (archive/full node) |
30303 | Bor p2p (sentry/full/validator) |
Download and extract Heimdall snapshot
wget -c <snapshot_url>
tar -zxvf <file>
Download and extract Bor snapshot
wget -c <snapshot_url>
tar -zxvf <file>
Move extracted data to correct directories
mv ~/snapshots/heimdall_extract ~/snapshots/data
mv ~/snapshots/bor_extract ~/snapshots/chaindata
sudo ln -s ~/snapshots/data /var/lib/heimdall
sudo ln -s ~/snapshots/chaindata /var/lib/bor
Set permissions
sudo chown -R bor:nogroup /var/lib/heimdall/data
sudo chown -R heimdall:nogroup /var/lib/bor/data/bor
Install Ansible
pip3 install ansible
Clone the node-ansible repo
git clone https://github.com/shibaone/node-ansible
cd node-ansible
Edit inventory.yml
sentry->hosts
.Check connectivity
ansible sentry -m ping
Check latest versions
1.x.x-bone
).Test configuration
ansible-playbook playbooks/network.yml —extra-var=“bor_version=v1.x.x-bone heimdall_version=v1.x.x-bone network=shibarium node_type=sentry” —list-hosts
Run the playbook
ansible-playbook playbooks/network.yml —extra-var=“bor_version=v1.x.x-bone heimdall_version=v1.x.x-bone network=shibarium node_type=sentry”
Clean setup if needed
ansible-playbook playbooks/clean.yml
seeds
and bootnodes
in config.toml
match official values. For archive nodes, set gcmode = “archive”
in bor/config.toml
.Install build-essential
sudo apt-get update
sudo apt-get install build-essential
Install Heimdall
curl -L https://raw.githubusercontent.com/shibaone/install/bone/heimdall.sh | bash -s — <heimdall_version> shibarium sentry
heimdalld version —long
Install Bor
curl -L https://raw.githubusercontent.com/shibaone/install/bone/bor.sh | bash -s — <bor_version> shibarium sentry
bor version
Configure seeds and bootnodes
config.toml
for both Heimdall and Bor as needed.Update service config user permissions
sed -i ‘s/User=heimdall/User=root/g’ /lib/systemd/system/heimdalld.service
sed -i ‘s/User=bor/User=root/g’ /lib/systemd/system/bor.service
Start Heimdall
sudo service heimdalld start
Wait for Heimdall to sync
curl localhost:26657https://shib-io.openstatus.dev/
catching_up: false
means synced.Start Bor
sudo service bor start
sudo chown bor /var/lib/bor
journalctl -u heimdalld.service -f
journalctl -u bor.service -f
Common Issues and Fixes
gcmode = “archive”
in Bor config.Resetting and Cleaning Up
ansible-playbook playbooks/clean.yml
Checking Node Health
curl localhost:26657https://shib-io.openstatus.dev/
(look for catching_up: false
)sudo service bor status