A guide to setting up XPLA Validator node

Hardware Requirements

Network CPU cores RAM Disk BANDWIDTH
https://docs.xpla.io/docs/full-node/run-a-full-xpla-node/join-a-network#join-a-public-network 4 (+4 threads) 32 GB 2 TB (SSD 2000 MB/s R/W) 300 Mbps
https://docs.xpla.io/docs/full-node/run-a-full-xpla-node/join-a-network#join-a-public-network 2 (+2 threads) 16 GB 500 GB (SSD 1000 MB/s R/W) 150 Mbps
https://docs.xpla.io/docs/full-node/run-a-full-xpla-node/join-a-network#start-your-private-xpla-network 1 2 GB 20 GB (SSD 500 MB/s R/W) N/A

Prerequisites

# Install git
sudo apt-get update
sudo apt-get install git-all

# Install Go
wget <https://go.dev/dl/go1.18.linux-amd64.tar.gz>
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.18.linux-amd64.tar.gz
echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> ~/.profile
source ~/.profile

# Check version
go version 

# Build tools
sudo apt install make
sudo apt-get install gcc

XPLA Full Node

# Get the latest source
git clone <https://github.com/xpladev/xpla.git>
cd xpla
git checkout v1.0.0
make install

# Check version
xplad version --long

# Initialize the validator
xplad init "Lydia Labs" --chain-id dimension_37-1

# Generate a new key
xplad keys add "KEY_NAME"

# Download genesis
wget <https://raw.githubusercontent.com/xpladev/mainnet/main/dimension_37-1/genesis.json>
mv genesis.json ~/.xpla/config/genesis.json

# Add a new seed
nano ~/.xpla/config/config.toml

seeds = "e7b6016ce5663a69ba71a982072315545eb0d5f6@seed.xpla.delightlabs.io:26656"

Start the Node

sudo nano /etc/systemd/system/xplad.service

[Unit]
Description=xplad
After=network.target

[Service]
Type=simple
User=ubuntu
ExecStart=/home/ubuntu/go/bin/xplad start
Restart=on-abort
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

sudo systemctl enable xplad
sudo sysetmctl start xplad

# Monitor 
journalctl -fu xplad -o cat

Register Validator

Note: Make sure your node is fully synced by checking xplad status | jq '.SyncInfo' and make sure catching_up is false. Only register to validator set after your node is fully synced.

xplad tx staking create-validator \\
--from=<key_nameoraddress> \\
--amount=<staking_amount_axpla> \\
--pubkey=$(xplad tendermint show-validator) \\
--moniker="<your_moniker>" \\
--security-contact="<your_security_contract_email>" \\
--detail="<optional_your_detail>" \\
--identity="<optional_identity_signature>"
--chain-id="dimension_37-1" \\
--commission-rate="0.1" \\
--commission-max-rate="0.2" \\
--commission-max-change-rate="0.01" \\
--min-self-delegation="1" \\

example

xplad tx staking create-validator \\
		--from=LLKey \\
		--amount=500000000000000000000000axpla \\
    --pubkey=$(xplad tendermint show-validator) \\
    --moniker="Lydia Labs" \\
		--security-contact="[email protected]" \\
		--identity="43E67F501312D297" \\
		--website="<https://lydialabs.xyz>" \\
    --chain-id="dimension_37-1" \\
    --commission-rate 0.1 \\
    --commission-max-rate 0.2 \\
    --commission-max-change-rate 0.01 \\
    --min-self-delegation 1 \\
		--fees=170000000000000000axpla