This guide for running Kyve node in the Kaon-1 network

Guide was successfully tested on Hetzner cloud servers CX41, CPX31, CPX51 and dedicated servers AX41-NVMe, AX51-NVMe, AX101.

Requirements

This is official minimal requirement for node:

  • CPU: 4 cores
  • RAM: 32GB
  • SSD: 200GB

Installation

Step 1. Install packages and updates.

sudo apt update && sudo apt upgrade -y

sudo apt install make clang pkg-config libssl-dev libclang-dev build-essential git curl ntp jq llvm tmux htop screen unzip cargo cmake -y

Step 2. Install GO

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

Step 3. Download and replace binary

wget https://files.kyve.network/chain/v1.0.0-rc0/kyved_linux_amd64.tar.gz && \
tar -xvzf kyved_linux_amd64.tar.gz && \
mv kyved /usr/local/bin/ && \
rm kyved_linux_amd64.tar.gzgit checkout --track origin/mainnet

Step 4. Set the variables

Replace «your_name» with your data

KYVE_CHAIN="kaon-1"
KYVE_MONIKER="your_name"
KYVE_WALLET="your_name"

Step 5. Bash profile

echo 'export KYVE_CHAIN='${KYVE_CHAIN} >> $HOME/.bash_profile
echo 'export KYVE_MONIKER='${KYVE_MONIKER} >> $HOME/.bash_profile
echo 'export KYVE_WALLET='${KYVE_WALLET} >> $HOME/.bash_profile
source $HOME/.bash_profile

Step 6. Initialize the node

kyved init $KYVE_MONIKER --chain-id $KYVE_CHAIN

Step 7. Configure name of the network

kyved config chain-id $KYVE_CHAIN

Step 8. Download genesis file

curl https://raw.githubusercontent.com/KYVENetwork/networks/main/kaon-1/genesis.json > ~/.kyve/config/genesis.json

Step 9. Configure pruning

pruning="custom"
pruning_keep_recent="1000"
pruning_interval="10"
sed -i -e "s/^pruning *=.*/pruning = \"$pruning\"/" $HOME/.kyve/config/app.toml
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" $HOME/.kyve/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" $HOME/.kyve/config/app.toml

Step 10. Setup minimal gas price

sed -i.bak -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.001tkyve\"/;" ~/.kyve/config/app.toml

Step 11. Add peers

peers="7258cf2c1867cc5b997baa19ff4a3e13681f14f4@68.183.143.17:26656,e8c9a0f07bc34fb870daaaef0b3da54dbf9c5a3b@15.235.10.35:26656,801fa026c6d9227874eeaeba288eae3b800aad7f@52.29.15.250:26656,bc8b5fbb40a1b82dfba591035cb137278a21c57d@52.59.65.9:26656,430845649afaad0a817bdf36da63b6f93bbd8bd1@3.67.29.225:26656,b68e5131552e40b9ee70427879eb34e146ef20df@18.194.131.3:26656,78d76da232b5a9a5648baa20b7bd95d7c7b9d249@142.93.161.118:26656,97b5c38213e4a845c9a7449b11d811f149fa6710@65.109.85.170:56656,bbb7a427e04d38c74f574f6f0162e1359b66b330@93.115.25.18:39656,1dfe7262db2b9bf51c3b25030e01c89e62640bb1@65.109.71.35:26656,a01d20a3c64a25f5b9199b0273f95cb1471d2b47@65.108.237.231:28656,7820d73c4449e0e4328c9fc4437b00aef8de33c2@5.161.195.113:26656"
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$peers\"/" $HOME/.kyve/config/config.toml

Step 12. Create service file

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

[Service] User=$USER ExecStart=$(which kyved) start --home $HOME/.kyve Restart=on-failure RestartSec=10 LimitNOFILE=65535

[Install] WantedBy=multi-user.target EOF

Step 13. Run service

sudo systemctl daemon-reload
sudo systemctl enable kyved
sudo systemctl restart kyved

After synchronization

Step 1. Check synchronization

If catching_up»: false, then node has synched

curl localhost:26657/status

Step 2. Make the update on block 443300

cd $HOME
git clone https://github.com/KYVENetwork/chain/
cd chain
git checkout v1.0.0-rc1
make install
chmod +x /root/go/bin/kyved && sudo mv /root/go/bin/kyved /usr/local/bin/kyved
cd $HOME
kyved version --long

 

Step 3. Create a wallet

kyved keys add $KYVE_WALLET

or recover it with command:

kyved keys add $KYVE_WALLET --recover

Step 4. Set and bach wallet variable

KYVE_ADDR=$(kyved keys show $KYVE_WALLET -a)
echo 'export KYVE_ADDR='${KYVE_ADDR} >> $HOME/.bash_profile
source $HOME/.bash_profile

Step 5. Create a validator

First, you need to check your balance:

kyved query bank balances $KYVE_ADDR

If you have tokens, then you can create validator with command:

kyved tx staking create-validator \
--amount 1000000tkyve \
--from $KYVE_WALLET \
--commission-max-change-rate "0.05" \
--commission-max-rate "0.2" \
--commission-rate "0.1" \
--min-self-delegation "1" \
--pubkey $(kyved tendermint show-validator) \
--moniker $KYVE_MONIKER \
--chain-id $KYVE_CHAIN

Then create and bash the variable with validator’s address:

KYVE_VALOPER=$(kyved keys show $KYVE_WALLET --bech val -a)
echo 'export KYVE_VALOPER='${KYVE_VALOPER} >> $HOME/.bash_profile
source $HOME/.bash_profile

Usefull commands

Check the validator’s status

kyved query staking validator $KYVE_VALOPER

Delegate tokens from wallet to validator

kyved tx staking delegate $KYVE_VALOPER 1000000tkyve --from $KYVE_WALLET --fees 5000tkyve

Escape from prison

kyved tx slashing unjail --from $KYVE_WALLET --fees 5000tkyve

Delete the node

sudo systemctl stop kyved
sudo systemctl disable kyved
cd $HOME
rm /etc/systemd/system/kyved.service
rm /usr/local/bin/kyved
rm -r kyve/
rm -r .kyve/