Complete guide to deploying and managing a high-performance Lumera validator node with enterprise-grade reliability
Component | Minimum | Recommended |
---|---|---|
OS | Ubuntu 20.04 | Ubuntu 22.04 LTS |
CPU | 4 Cores | 8+ Cores |
RAM | 8GB | 16GB+ |
Storage | 500GB SSD/NVMe | 1TB SSD/NVMe |
Network | 10Mbps | 100Mbps+ |
sudo apt update && sudo apt upgrade -y
sudo apt install curl tar wget clang pkg-config libssl-dev jq build-essential bsdmainutils git make ncdu gcc git jq chrony liblz4-tool -y
ver="1.22.5"
wget "https://golang.org/dl/go$ver.linux-amd64.tar.gz"
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf "go$ver.linux-amd64.tar.gz"
rm "go$ver.linux-amd64.tar.gz"
echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> ~/.bash_profile
source ~/.bash_profile
go version
cd $HOME
curl -LO https://github.com/LumeraProtocol/lumera/releases/download/v1.0.1/lumera_v1.0.1_linux_amd64.tar.gz
tar -xvf lumera_v1.0.1_linux_amd64.tar.gz
rm lumera_v1.0.1_linux_amd64.tar.gz
rm install.sh
mv libwasmvm.x86_64.so /usr/lib/
chmod +x lumerad
mv lumerad $HOME/go/bin/
Change default ports to custom ports (e.g., 176xx series):
# Change all default ports (266xx/6060/9090/1317) to custom ports (176xx/170xx)
sed -i.bak -e "s%^node = \"tcp://localhost:26657\"%node = \"tcp://localhost:17657\"%" $HOME/.lumera/config/client.toml
sed -i.bak -e \
"s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:17658\"%; \
s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:17657\"%; \
s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:17060\"%; \
s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:17656\"%; \
s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":17660\"%" \
$HOME/.lumera/config/config.toml
sed -i.bak -e \
"s%^address = \"tcp://localhost:1317\"%address = \"tcp://localhost:17317\"%; \
s%^address = \"localhost:9090\"%address = \"localhost:17090\"%" \
$HOME/.lumera/config/app.toml
# Restart node after port changes
sudo systemctl restart lumerad
# Set minimum gas price
sed -i.bak -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.025ulume\"/" $HOME/.lumera/config/app.toml
# Disable indexer for better performance
sed -i 's|^indexer *=.*|indexer = "null"|' $HOME/.lumera/config/config.toml
# Apply changes
sudo systemctl restart lumerad
Note: 0.025ulume is the recommended minimum gas price. Adjust according to network conditions.
lumerad version --long | grep -e version -e commit
lumerad init YOUR_NODE_NAME --chain-id lumera-testnet-1
curl -L https://snapshot-t.vinjan.xyz/lumera/genesis.json > $HOME/.lumera/config/genesis.json
curl -L https://snapshot-t.vinjan.xyz/lumera/addrbook.json > $HOME/.lumera/config/addrbook.json
sudo tee /etc/systemd/system/lumerad.service > /dev/null <<EOF
[Unit]
Description=lumera
After=network-online.target
[Service]
User=$USER
ExecStart=$(which lumerad) start
Restart=on-failure
RestartSec=3
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
# Reload and enable service
sudo systemctl daemon-reload
sudo systemctl enable lumerad
sudo systemctl start lumerad
lumerad keys add wallet
⚠️ Securely backup your mnemonic phrase!
lumerad tx staking create-validator \
--amount=1000000ulume \
--pubkey=$(lumerad tendermint show-validator) \
--moniker="YOUR_VALIDATOR_NAME" \
--chain-id=lumera-testnet-1 \
--commission-rate=0.05 \
--commission-max-rate=0.20 \
--commission-max-change-rate=0.01 \
--min-self-delegation="1" \
--from=wallet \
--fees=500ulume \
-y
lumerad status 2>&1 | jq
lumerad query staking validator $(lumerad keys show wallet --bech val -a)
journalctl -fu lumerad -o cat
cd $HOME
curl -LO https://github.com/LumeraProtocol/lumera/releases/download/v1.1.0/lumera_v1.1.0_linux_amd64.tar.gz
tar -xvf lumera_v1.1.0_linux_amd64.tar.gz
rm lumera_v1.1.0_linux_amd64.tar.gz
rm install.sh
mv libwasmvm.x86_64.so /usr/lib/
chmod +x lumerad
mv lumerad $HOME/go/bin/
sudo systemctl restart lumerad && sudo journalctl -u lumerad -f
lumerad version --long | grep -e version -e commit
Should return: v1.1.0
sudo systemctl stop lumerad
cp $HOME/.lumera/data/priv_validator_state.json $HOME/.lumera/priv_validator_state.json.backup
rm -rf $HOME/.lumera/data
curl -L https://snapshot-t.vinjan.xyz/lumera/latest.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.lumera
mv $HOME/.lumera/priv_validator_state.json.backup $HOME/.lumera/data/priv_validator_state.json
sudo systemctl restart lumerad
sudo journalctl -u lumerad -f -o cat
lumerad status 2>&1 | jq
https://rpc-lumera.onenov.xyz
https://api-lumera.onenov.xyz
# List all wallets
lumerad keys list
# Recover wallet
lumerad keys add wallet --recover
# Check balance
lumerad q bank balances $(lumerad keys show wallet -a)
# Send tokens
lumerad tx bank send wallet DESTINATION_ADDRESS 1000000ulume --chain-id lumera-testnet-1 --fees=500ulume -y
# Edit validator details
lumerad tx staking edit-validator \
--moniker="NEW_NAME" \
--identity="KEYBASE_ID" \
--website="https://yourwebsite.com" \
--details="Description" \
--from wallet \
--chain-id lumera-testnet-1 \
--fees=500ulume \
-y
# Unjail validator
lumerad tx slashing unjail --from wallet --chain-id lumera-testnet-1 --fees=500ulume -y
# Delegate to self
lumerad tx staking delegate $(lumerad keys show wallet --bech val -a) 1000000ulume --from wallet --chain-id lumera-testnet-1 --fees=500ulume -y
# Withdraw rewards
lumerad tx distribution withdraw-all-rewards --from wallet --chain-id lumera-testnet-1 --fees=500ulume -y
# Withdraw rewards to specific wallet
lumerad tx distribution withdraw-rewards VALOPER_ADDRESS --from wallet --chain-id lumera-testnet-1 --fees=500ulume --commission -y
# Check staking rewards
lumerad query distribution rewards $(lumerad keys show wallet -a)
# Start node
sudo systemctl start lumerad
# Stop node
sudo systemctl stop lumerad
# Restart node
sudo systemctl restart lumerad
# Check logs
journalctl -fu lumerad -o cat
# Check sync status
lumerad status 2>&1 | jq
https://www.lumera.io/
https://github.com/LumeraProtocol/
https://docs.lumera.io
https://x.com/lumeraprotocol
https://discord.gg/lumeraprotocol
https://t.me/PastelNetwork