Install Dependencies

Update system package and install build tools

sudo apt -q update
sudo apt -qy install curl git jq lz4 build-essential fail2ban ufw
sudo apt -qy upgrade

Configure Moniker

<aside> ⚠️ Replace with your own validator name

</aside>

MONIKER="Your Moniker Name"

Install Go

sudo rm -rf /usr/local/go
curl -Ls <https://go.dev/dl/go1.20.10.linux-amd64.tar.gz> | sudo tar -xzf - -C /usr/local
eval $(echo 'export PATH=$PATH:/usr/local/go/bin' | sudo tee /etc/profile.d/golang.sh)
eval $(echo 'export PATH=$PATH:$HOME/go/bin' | tee -a $HOME/.profile)

Build Binaries

Cloning project repository & Compile binaries

cd $HOME
rm -rf lava
git clone <https://github.com/lavanet/lava.git>
cd lava
git checkout v2.0.0

Export binaries name and build

export LAVA_BINARY=lavadmake build

Prepare binaries for cosmovisor and create symlinks

# Prepare binaries
mkdir -p $HOME/.lava/cosmovisor/genesis/binmv build/lavad $HOME/.lava/cosmovisor/genesis/bin/rm -rf build

# Create symlinks
sudo ln -s $HOME/.lava/cosmovisor/genesis $HOME/.lava/cosmovisor/current -fsudo ln -s $HOME/.lava/cosmovisor/current/bin/lavad /usr/local/bin/lavad -f

Cosmovisor Setup

Install cosmovisor

go install cosmossdk.io/tools/cosmovisor/cmd/[email protected]

Create a Systemd Service

sudo tee /etc/systemd/system/lava.service > /dev/null << EOF
[Unit]
Description=lava node service
After=network-online.target

[Service]
User=$USER
ExecStart=$(which cosmovisor) run start
Restart=on-failure
RestartSec=10
LimitNOFILE=65535
Environment="DAEMON_HOME=$HOME/.lava"
Environment="DAEMON_NAME=lavad"
Environment="UNSAFE_SKIP_BACKUP=true"
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:$HOME/.lava/cosmovisor/current/bin"

[Install]
WantedBy=multi-user.target
EOF