This guide covers everything you need to run a Shibarium full node, including system requirements, setup with Ansible or binaries, using snapshots, troubleshooting, and operational best practices. Follow each section carefully to ensure a successful deployment.
Node System Requirements
| 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 |
Open Necessary Ports
| 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) |
Downloading and Using Snapshots
1
Download and extract Heimdall snapshot
wget -c <snapshot_url>tar -zxvf <file>2
Download and extract Bor snapshot
wget -c <snapshot_url>tar -zxvf <file>3
Move extracted data to correct directories
mv ~/snapshots/heimdall_extract ~/snapshots/datamv ~/snapshots/bor_extract ~/snapshots/chaindatasudo ln -s ~/snapshots/data /var/lib/heimdallsudo ln -s ~/snapshots/chaindata /var/lib/bor4
Set permissions
sudo chown -R bor:nogroup /var/lib/heimdall/datasudo chown -R heimdall:nogroup /var/lib/bor/data/borFull Node Setup with Ansible
Ansible automates full node setup. Ensure Python 3.x and Ansible are installed. Remove any previous Bor/Heimdall setups and Go installations.
1
Install Ansible
pip3 install ansible2
Clone the node-ansible repo
git clone https://github.com/shibaone/node-ansiblecd node-ansible3
Edit inventory.yml
Add your node’s IP(s) under
sentry->hosts.4
Check connectivity
ansible sentry -m ping5
Check latest versions
Check the latest Heimdall and Bor versions for Shibarium (tags:
1.x.x-bone).6
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-hosts7
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”8
Clean setup if needed
ansible-playbook playbooks/clean.ymlFull Node Setup with Binaries
1
Install build-essential
sudo apt-get updatesudo apt-get install build-essential2
Install Heimdall
curl -L https://raw.githubusercontent.com/shibaone/install/bone/heimdall.sh | bash -s — <heimdall_version> shibarium sentryheimdalld version —long3
Install Bor
curl -L https://raw.githubusercontent.com/shibaone/install/bone/bor.sh | bash -s — <bor_version> shibarium sentrybor version4
Configure seeds and bootnodes
Edit
config.toml for both Heimdall and Bor as needed.5
Update service config user permissions
sed -i ‘s/User=heimdall/User=root/g’ /lib/systemd/system/heimdalld.servicesed -i ‘s/User=bor/User=root/g’ /lib/systemd/system/bor.service6
Start Heimdall
sudo service heimdalld start7
Wait for Heimdall to sync
Check sync status:
curl localhost:26657https://shib-io.openstatus.dev/
catching_up: false means synced.8
Start Bor
sudo service bor startIf Bor shows a data permission error, run:
sudo chown bor /var/lib/borLogs and Monitoring
- Check Heimdall logs:
journalctl -u heimdalld.service -f - Check Bor logs:
journalctl -u bor.service -f
For advanced log management, see the Journalctl tutorial.
Troubleshooting
Common Issues and Fixes
Common Issues and Fixes
- Ensure no previous Bor/Heimdall or Go installations exist before setup.
- Always use the correct versions for your network (mainnet/testnet).
- If services fail to start, check permissions and config files.
- For archive nodes, verify
gcmode = “archive”in Bor config. - If Heimdall or Bor is not syncing, check network/firewall settings and snapshot data integrity.
Resetting and Cleaning Up
Resetting and Cleaning Up
To reset your node, use the Ansible clean playbook:
ansible-playbook playbooks/clean.ymlChecking Node Health
Checking Node Health
- Heimdall:
curl localhost:26657https://shib-io.openstatus.dev/(look forcatching_up: false) - Bor:
sudo service bor status
Best Practices
- Only open required ports and restrict access to validator nodes.
- Use sentry nodes for public RPC and p2p access.
- Regularly update your system and node software.
- Monitor disk IOPS and network bandwidth for optimal performance.
- Use snapshots for fast recovery and migration.