Skip to content
Validators
/
Support external chains
/
Kava

Kava

This guide presents you the Kava Node setup for both Testnet and Mainnet, as well as the integration with Axelar Network.

Prerequisites

Install Go

# First remove existing old Go installation
sudo rm -rf /usr/local/go

# Download and verify go
curl -O https://dl.google.com/go/go1.18.7.linux-amd64.tar.gz
sha256sum --check <<EOF
6c967efc22152ce3124fc35cdf50fc686870120c5fd2107234d05d450a6105d8  $HOME/go1.18.7.linux-amd64.tar.gz
EOF

# install
sudo tar -xvf go1.18.7.linux-amd64.tar.gz
sudo mv go /usr/local

# Update environment variables to include go
cat <<'EOF' >>$HOME/.profile
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export GO111MODULE=on
export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin
EOF
source $HOME/.profile

# Verify that Go is installed:
go version

Install Kava

git clone https://github.com/Kava-Labs/kava
cd kava
git checkout v0.19.0
make install

# verify versions
kava version --long

Initialize Kava Node and create necessary toml files

Initialize Kava

kava init [your_moniker_name] --chain-id kava_2222-10
kava tendermint unsafe-reset-all --home $HOME/.kava
cd $HOME/.kava/config
rm genesis.json

Download Genesis File

wget https://kava-genesis-files.s3.us-east-1.amazonaws.com/kava_2222-10/genesis.json

Edit your config.toml file and add the following persistent peers.

persistent_peers = "2a15d9c39eea97b4cf00480b45d4ea32a2e173d0@94.130.78.22:26656,5a933891627e8bde0c4bd0b43c9f99b706e520a2@141.95.99.214:11656,ab3064c37d406245fa2d6e6109395518e8ac8a4c@95.111.255.148:26656,41d88639239c55fd37279d24df507238e1c417ea@85.237.192.104:26656,b23050c89f8cb2f4099688b2bcd60f49b15f41d1@95.214.53.217:26656,d5db8898d40054c07442f3364b32f7fac2752f5e@188.34.178.92:26656,fc34d9a3aff6026a3dbd531a96a50680df61dd91@50.116.3.21:26656,50e4cad7d5e28f7b6495168f92e12bf810e293fd@142.132.152.187:10856,6885971cdb724fa93034fb9e6a11113a6f555d2a@15.235.53.92:11656,7b5a2b519cb5a7d70f0fc5842829d4cce1262585@65.108.121.153:26656,51cfccb07d5a45efdf98d005159c01f0656751ad@54.165.27.59:26656,f7c894901f450b92614fd051d10854d168ec30b5@65.21.94.20:10856,7393ed21b6dc516fcc0ad33c4fe42bdd295d2795@18.206.217.244:26656,508d7ec33c7f3c9c479ca9b845cadbbefee670f7@162.55.133.237:21656,d68410115d7681196651e7fece9e4cafc0456856@3.0.206.176:26656,4cfdd459466cfd492d66b7a5fe26cde96e35d735@182.48.203.7:26656,63ec88e98fc267fb82fa62a51ca5c0a2c115d749@51.38.53.4:27656,ebc272824924ea1a27ea3183dd0b9ba713494f83@185.16.39.172:26656,4efe3caf3b8c0ca197d40756f3bb1bd6081bf18d@51.210.220.20:36656,c124ce0b508e8b9ed1c5b6957f362225659b5343@136.243.248.185:26656,82588f011491c6100d922d133f52fc23460b9231@95.217.91.233:26656,8b5c4a890c8ae7efbbe3360af71be1c3c3a9e12e@121.78.241.68:46656,ce203135031ab08fc0ddff5bd13806e25f21b91d@3.115.125.121:26656,dcd6026ebe5586ed0e94751090f8290b5997666b@5.189.165.172:26656,bc61c26018f65e54232b7e9e99bf7599dffeb78b@13.56.56.180:26656"

 seeds = "b334e291ac361f9a1cf253d290047700b488b679@52.2.147.96:26656"

Add minium gas prices into app.toml

minimum-gas-prices = "0.025ukava;1000000000akava"

Do the rest of the port configuration as desired; The EVM configuration and ports can be found in the app.toml under ection "EVM Configuration"

State sync script

https://kava-mainnet.chainode.tech:443
# create state sync script
nano statesync.sh

Add the content below and change the RPC var for desired network

#!/bin/bash

RPC="https://kava-testnet.chainode.tech:443"

LATEST_HEIGHT=$(curl -s $RPC/block | jq -r .result.block.header.height); \
BLOCK_HEIGHT=$((LATEST_HEIGHT - 1000)); \
TRUST_HASH=$(curl -s "$RPC/block?height=$BLOCK_HEIGHT" | jq -r .result.block_id.hash)

sed -i.bak -E "s|^(enable[[:space:]]+=[[:space:]]+).*$|\1true| ; \
s|^(rpc_servers[[:space:]]+=[[:space:]]+).*$|\1\"$RPC,$RPC\"| ; \
s|^(trust_height[[:space:]]+=[[:space:]]+).*$|\1$BLOCK_HEIGHT| ; \
s|^(trust_hash[[:space:]]+=[[:space:]]+).*$|\1\"$TRUST_HASH\"|" $HOME/.kava/config/config.toml

Assign the correct access rights

chmod 700 statesync.sh

Execute the script

./statesync.sh

Start Kava Node with systemd

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

[Service]
User=<your_user>
ExecStart=/home/<your_user>/go/bin/kava start
Restart=on-failure
RestartSec=3
LimitNOFILE=16384

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl enable kvd
sudo systemctl daemon-reload
sudo systemctl start kvd

Kava EVM Endpoint integration with Axelar

Once the Kava Node is fully synced you can use the EVM RPC endpoint for the integration with Axelar Network.