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/