Lava Protocol, a crypto-market which powers a decentralized RPC layer for Web3.
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
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
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.
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)
- 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
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
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
See HERE