This guide walks you through setting up a Shibarium (or Puppynet) validator node using Ansible. Follow each step in order for a successful deployment. For system requirements, see the Validator Node System Requirements.
Prerequisites
- Three machines:
- Local machine (runs Ansible playbook)
- Remote Sentry node
- Remote Validator node
- Local machine:
- Ansible installed
- Python 3.x installed
- Remote machines:
- Go must not be installed
- Your local machine’s SSH public key added for Ansible access
Overview: Sequence of Actions
Prepare all three machines
Ensure your local, sentry, and validator machines are ready and meet all prerequisites.
Set up the Validator node with Ansible
Run the playbook for the validator node after the sentry is ready.
Set Up the Sentry Node
- Clone the node-ansible repository:
- Add IPs to inventory.yml:
- Check remote sentry machine is reachable:
Output should include
"ping": "pong". - Test run of sentry node setup:
- Run the sentry node setup with sudo:
- If you need to start over:
Set Up the Validator Node
- Check remote validator machine is reachable:
- Test run of validator node setup:
- Run the validator node setup with sudo:
- If you need to start over:
Configure the Sentry Node
- Edit Heimdall config:
moniker = "my-full-node"pex = trueprivate_peer_ids= node ID of validator Heimdallseeds(for Shibarium only): node ID, IP, port
- Check sync status:
catching_up: truemeans syncing,falsemeans fully synced
- Start Bor service:
Configure the Validator Node
- Edit Heimdall config:
moniker = "my-validator-node"pex = false- Comment out
private_peer_ids - Add
persistent_peersas sentry node:persistent_peers = "sentryNodeID@sentryIP:26656" prometheus = true
- Edit heimdall-config.toml:
eth_rpc_url = "<your Ethereum mainnet RPC URL>"
- Edit Bor config:
trusted-nodes = ["enode://sentryEnodeID@sentryIP:30303"]
Set the Owner and Signer Key
Generate Heimdall Private Key
Generate Heimdall Private Key
On the validator machine only:
Generate Bor Keystore File
Generate Bor Keystore File
On the validator machine only:Set up a password when prompted, and ensure the
keystore parameter in Bor config matches the directory.Add password.txt
Add password.txt
Create a Ensure the
password.txt file with the keystore password:password parameter in Bor config matches this file.Add Ethereum Address to Unlock
Add Ethereum Address to Unlock
In
/var/lib/bor/config.toml, add your Ethereum address to unlock and set allow-insecure-unlock = true:Start the Validator Node
- Start Heimdall service:
Wait for
catching_up: falsebefore starting Bor. - Start Bor service: