Lava Network- Validator Node DEV

Lava Protocol, a crypto-market which powers a decentralized RPC layer for Web3.

Main Concepts

Lava Chain: is a cosmos PoS layer 1 with $LAVA for settlement, validator nodes secure the chain by verifying new blocks to earn rewards.

Providers: Provider nodes, are nodes running atop Lavanet connecting to Lava chain for rewards do not participate in consensus, these nodes provide RPC endpoints of other chains to any consumer.

Consumers: consumers of chain data, paying for access to RPC endpoints to providers

Setup Validator Node

This Guide will focus on the setup of a Validator node which is also a Full node for Lava chain

Hardware Requirements: 4vCPU/8GB/100GB SSD
OS: Ubuntu 20.04LTS

edit make dev/private

1. Pre-requisite Software and Setup

Switch to root user, can exit any time with exit

sudo -i

Update your system and repositories

apt update && apt upgrade -y

Install Dependencies required for lava node

from TEL - Don’t Use

apt install curl iptables build-essential git wget jq make gcc nano tmux htop nvme-cli pkg-config libssl-dev libleveldb-dev tar clang bsdmainutils ncdu unzip libleveldb-dev -y

Dependencies from theam (same as official)- USE THIS

sudo apt update && sudo apt upgrade -y
sudo apt install make clang pkg-config libssl-dev build-essential git jq llvm libudev-dev -y

Install Go- Tel Guide (fixed) USE THIS

ver="1.19.4"
wget "https://golang.org/dl/go$ver.linux-amd64.tar.gz"
rm -rf /usr/local/go
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" >> $HOME/.bash_profile
source $HOME/.bash_profile
go version

Install Go- via Docs - NOT USING

wget -q "https://go.dev/dl/go1.18.linux-amd64.tar.gz"

Unpack installation file to /usr/local

sudo tar -C /usr/local -xzf go1.18.linux-amd64.tar.gz

Add to PATH

echo "export PATH=\$PATH:/usr/local/go/bin" >>~/.profile
echo "export PATH=\$PATH:\$(go env GOPATH)/bin" >>~/.profile
source ~/.profile

Confirm installed with go version

See this section if having probs, concerning go and PATH

Firewall Settings

Outbound - allow all traffic. Inbound - open the following ports: 1317 - REST, 26657 - TENDERMINT_RPC, 26656 - Cosmos

sudo ufw allow 1317
sudo ufw allow 26657
sudo ufw allow 26656
sudo ufw allow ssh
sudo ufw enable

Default setting ufw is to allow all outgoing, if your server is remote ensure to allow 22 for ssh.

2. Download Lava node (lavad)

Download lavad (genesis) binary, move to $HOME/go/bin and make executable. Check discord ‘updates’ for the latest version.

mkdir -p $HOME/go/bin
wget -qO $HOME/go/bin/lavad https://lava-binary-upgrades.s3.amazonaws.com/testnet/v0.4.0/lavad
chmod +x $HOME/go/bin/lavad

Lavad should now be accessible from PATH, to verify run lavad --help this will output available commands, if you have Error then make sure the lavad_binary_path is part of PATH

NOTE: this is diff from my provider node doc- no output (this was from theam)

Download Setup configurations

- from theam (NOT USING)

git clone https://github.com/K433QLtr6RA9ExEq/GHFkqmTzpdNLDd6T.git

mkdir -p $HOME/.lava/config

cp GHFkqmTzpdNLDd6T/testnet-1/genesis_json/genesis.json $HOME/.lava/config/genesis.json
cp GHFkqmTzpdNLDd6T/testnet-1/default_lavad_config_files/* $HOME/.lava/config
wget -qO $HOME/.lava/config/addrbook.json http://94.250.203.6:90/lava-addrbook.json

theres an address book here im not using

Download Setup configurations - from official fixed

Copy lavad default config files to config Lava config folder, and set genesis JSON file in the configuration folder, obtain files from here

git clone https://github.com/K433QLtr6RA9ExEq/GHFkqmTzpdNLDd6T.git
cd GHFkqmTzpdNLDd6T/testnet-1

in here you can see the configurations, source setup_config/setup_config.sh

mkdir -p $HOME/.lava/config
cp default_lavad_config_files/* $HOME/.lava/config
cp genesis_json/genesis.json $HOME/.lava/config/genesis.json

This makes a folder in our working directory .lava to copy setup configurations to, that were cloned from github. 2nd line copies the folder and contents to $HOME/.lava/config, and 3rd line the file genesis.json to $HOME/.lava/config

in .lava/config you should now have the following files

Cosmovisor (Optional for now) - Omitting

Set up SystemD for lavad

tee /etc/systemd/system/lavad.service << EOF
[Unit]
Description=Lava Node
After=network-online.target
[Service]
User=root
ExecStart=$(which lavad) start --home="$HOME/.lava"
Restart=always
RestartSec=30
LimitNOFILE=infinity
LimitNPROC=infinity
[Install]
WantedBy=multi-user.target
EOF

Enable and Start Service

systemctl enable lavad
systemctl daemon-reload
systemctl start lavad

Check running and Check logs with

systemctl status lavad
journalctl -u lavad -f
If started with no errors this should be trying to connect
If started with no errors this should be trying to connect

It should take a while to

Add Address book -from another peer using (theamsolutions.info node)

wget -qO $HOME/.lava/config/addrbook.json http://94.250.203.6:90/lava-addrbook.json

Add Seed Nodes- some available nodes

e711b6631c3e5bb2f6c389cbc5d422912b05316b@seed.ppnv.space:33256

Can add this to start command on service file with the flag --p2p.seeds <seed>

Might need to open this port in your firewall

Snap Sync (optional faster sync)

snap=$(curl -s http://94.250.203.6:90 | egrep -o ">lavad-snap*.*tar" | tr -d ">")
rm -rf  $HOME/.lava/data
wget -P $HOME http://94.250.203.6:90/${snap}
tar xf $HOME/${snap} -C $HOME/.lava/
rm $HOME/${snap}
sudo systemctl restart lavad
sudo journalctl -u lavad -f -o cat

Version Updates

See HERE

Server Migration

With CosmoVisor

Subscribe to GLCstaked
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.
Author Address
0xf3bF9DDbA413825…b09C2AbD8d190dd
Content Digest
mScdF2qISBERLRw…msHwt-pJdhsCIqA
More from GLCstaked

Skeleton

Skeleton

Skeleton