Run Your LAVA Node with a few simple clicks!
March 11th, 2024

Welcome to Cryptoboys27.Validator!

With just a few clicks, you can easily learn and understand how to set up your node without any prior technical knowledge. Follow us on Twitter to stay updated on everything related to nodes.

What is Lava? 🌋

Lava is the first modular data access layer for blockchains. It introduces specs: a modular primitive that lets contributors permissionlessly add support for new chains and data services to the base protocol. RPC is the first service supported by the protocol but we are soon bringing further choice by integrating with indexing and API partners, such as Subsquid.

Data consumers send requests to Lava’s network of data providers (node operators), who join Lava to meet demand for data. Lava creates dynamic, scalable markets around any blockchain data service. The protocol also creates crypto-economic guarantees around the quality of service, across speed, uptime and data accuracy.

By leveraging modular architecture and a peer-to-peer network of node operators, Lava creates a unified platform for accessing the multi-chain world.

Hardware requirements

To run a LAVA node, you'll need a Virtual Private Server (VPS), and one of the most reliable and cost-effective options is Contabo. You can choose the CLOUD VPS 1 or 2. Note that you can choose a more powerful server (VPS 3 or 4) to run multiple nodes more economically.

Select a rental period of 1-12 months, I selected 1 month with the flexibility to extend it later if needed:

select European union

Select SSD For the best storage solution

To access Docker with Ubuntu 22.04, navigate to the “Apps & Panels” section and make the appropriate selection:

To prioritize security, I highly recommend generating a new password and securely storing it to ensure maximum protection:

Remember to choose a strong password. Once payment is complete, you'll receive an e-mail with your IP address. Connect To Your VPS via SSH : To access your VPS securely, installing the Putty application, which facilitates a protected connection is necessary. Simply connect to your VPS using your IP address. simply enter “root” as the user and use your chosen password:

Congratulations! You are now successfully logged into your server:

Node deployment :

step by step on how to Run LAVA full node Here are the detailed instructions on how you can run the LAVA full node step-by-step.

1. Install Dependencies First

you need to install the required dependencies. Use the following commands

sudo apt update 
sudo apt install -y curl git jq lz4 build-essential 
sudo apt upgrade 

2. Configure Moniker Next

you need to configure your Moniker with a unique name by running the following command: example MONIKER=”Cryptoboys27”

MONIKER="<your-moniker-name>" 

3. Install Go

After that you need to install Go by running the following commands:

sudo rm -rf /usr/local/go 
curl -Ls https://go.dev/dl/go1.22.0.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)

4. Build Binaries

The next step is to build binaries by running the following commands:

Before proceeding, ensure you visit the Lava GitHub repository to verify the latest version.

cd $HOME 
rm -rf lava 
git clone https://github.com/lavanet/lava.git 
cd lava 
git checkout v1.0.1
export LAVA_BINARY=lavad 
make build

NOTE : if there is error when you run git checkout v1.0.1 , then try git checkout main

Prepare binaries for Cosmovisor

mkdir -p $HOME/.lava/cosmovisor/genesis/bin 
mv build/lavad $HOME/.lava/cosmovisor/genesis/bin/ 
rm -rf build

Create application symlinks

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

Cosmovisor Setup

you need to set up Cosmovisor and create a service by running the following commands:

Download and install Cosmovisor

go install cosmossdk.io/tools/cosmovisor/cmd/cosmovisor@latest

Create service

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

[Service]User=$USEREx
ecStart=$(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"

[Install]WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable lava.service

Set node configuration

lavad config chain-id lava-testnet-2 lavad config keyring-backend test lavad config node tcp://localhost:14457

5. Initialize the node

lavad init $MONIKER --chain-id lava-testnet-2

Download genesis and addrbook

curl -Ls https://snapshots.kjnodes.com/lava-testnet/genesis.json > $HOME/.lava/config/genesis.json 
curl -Ls https://snapshots.kjnodes.com/lava-testnet/addrbook.json > $HOME/.lava/config/addrbook.json

add seeds

sed -i -e "s|^seeds =.|seeds = "3f472746f46493309650e5a033076689996c8881@lava-testnet.rpc.kjnodes.com:14459"|" $HOME/.lava/config/config.toml

Set minimum gas price

sed -i -e "s|^minimum-gas-prices =.|minimum-gas-prices = "0ulava"|" $HOME/.lava/config/app.toml

Set pruning

sed -i \
  -e 's|^pruning *=.*|pruning = "custom"|' \
  -e 's|^pruning-keep-recent *=.*|pruning-keep-recent = "100"|' \
  -e 's|^pruning-keep-every *=.*|pruning-keep-every = "0"|' \
  -e 's|^pruning-interval *=.*|pruning-interval = "19"|' \
  $HOME/.lava/config/app.toml

Set custom ports

sed -i -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:14458\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:14457\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:14460\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:14456\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":14466\"%" $HOME/.lava/config/config.toml

sed -i -e "s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:14417\"%; s%^address = \":8080\"%address = \":14480\"%; s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:14490\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:14491\"%; s%:8545%:14445%; s%:8546%:14446%; s%:6065%:14465%" $HOME/.lava/config/app.toml

Download latest chain snapshot

curl -L https://snapshots.kjnodes.com/lava-testnet/snapshot_latest.tar.lz4 | tar -Ilz4 -xf - -C $HOME/.lava
[[ -f $HOME/.lava/data/upgrade-info.json ]] && cp $HOME/.lava/data/upgrade-info.json $HOME/.lava/cosmovisor/genesis/upgrade-info.json

Start service and check the logs

sudo systemctl start lava.service && sudo journalctl -u lava.service -f --no-hostname -o cat

6. Set up your Validator

Create a new wallet

lavad keys add wallet

or if you already have a wallet, recover it

lavad keys add wallet --recover

Please make sure to save your address, private key, or passphrase.

To receive Testnet funds, you can get faucets from the Lava_Network DC. Simply visit the #faucet channel on the DC and request a faucet by sharing the address you previously created. To submit your request, type $request followed by your address in the channel.

For instance, you would type the following to request funds for a specific address:

$request {Address} 

then check your wallet balance using this command:

lavad q bank balances $(lavad keys show wallet -a)

Save the private validator key

Please make sure you’re already received the testnet Lava token.

Now save the private validator key, since it’s crucial to secure this file adequately to maintain the integrity and security of ur validator operations.

cat $HOME/.lava/config/priv_validator_key.json

Check the network synchronization status

lavad status 2>&1 | jq .SyncInfo.catching_up

Once the value of catching_up switches to "false", you can proceed to the final step, which is creating your validator.

Ensure you replace

your_moniker_name,

your_details,

your_website_url,

with your actual moniker, details(descryption,email,etc), and yuor website url

lavad tx staking create-validator \
--amount=150000ulava \
--pubkey=$(lavad tendermint show-validator) \
--moniker "YOUR_MONIKER_NAME" \
--details "YOUR_DETAILS" \
--website "YOUR_WEBSITE_URL" \
--chain-id=lava-testnet-2 \
--commission-rate=0.1 \
--commission-max-rate=0.2 \
--commission-max-change-rate=0.05 \
--min-self-delegation=1 \
--fees=10000ulava \
--from=wallet \
-y

Check information about your staking validator :

lavad q staking validator $(lavad keys show wallet --bech val -a)

or

lavad query staking validator $(lavad keys show wallet --bech val -a)

Congrats! You've become a validator on the Lava Network. Find your validator on https://lava.explorers.guru/validators and you can delegate some tokens to your node using this command;

lavad tx staking delegate YOUR_NODE_OPERATOR_ADRESS_HERE 1000000ulava --from wallet --chain-id lava-testnet-2

Replace "YOUR_NODE_OPERATOR_ADDRESS_HERE" with your actual node operator address

Reminder:

  1. Check validator details with

    lavad q staking validator $(lavad keys show wallet --bech val -a)
    
  2. Find your validator at https://lava.explorers.guru/validators by searching for your wallet address or moniker in the delegations.

  3. Delegate tokens to your node using :

    NOTE : 1 LAVA = 1.000.000 ulava.

    lavad tx staking delegate YOUR_NODE_OPERATOR_ADRESS_HERE 1000000ulava --from wallet --chain-id lava-testnet-2
    
  4. Follow @cryptoboys27 for more strategies.

  5. Disclaimer: This guide is for educational purposes only. The user is solely responsible for any actions taken. Consult official documentation for the latest information. Be cautious with security. The guide author and associated entities are not liable for any consequences.

Good Luck!

Subscribe to Cryptoboys27.Validator
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.
More from Cryptoboys27.Validator

Skeleton

Skeleton

Skeleton