How to submit gentx and setup validator node you can find here.
Original validator guide you can find here.
wget https://raw.githubusercontent.com/Kava-Labs/kava-testnets/master/14000/genesis.json -O ~/.kava/config/genesis.json
cd ~/.kava/config/
shasum -a 256 genesis.json
# Output
ccce0d62cb57c0e3e39ea857fcd78473ec77a7587627c027288d479412518f43
Next, adjust some configurations. To open the config file:
vim $HOME/.kava/config/config.toml
At line 188, add some persistent peers, which help maintain a connection to the peer-to-peer network
c393dae6f1fb31824a8be066c03cb33434943505@107.21.78.161:26656
Next, chose how much historical state you want to store. To open the application config file:
vim $HOME/.kava/config/app.toml
In this file, choose between default
, nothing
, and everything
. To reduce hard drive storage, choose everything
or default
. To run an archival node, chose nothing
.
pruning = "default"
In the same file, you will want to set minimum gas prices — setting a minimum prevents spam transactions:
minimum-gas-prices = "0.001ukava"
To sync your node, you will use systemd, which manages the Kava daemon and automatically restarts it in case of failure. To use systemd, you will create a service file.
sudo tee /etc/systemd/system/kava.service > /dev/null <<'EOF'
[Unit]
Description=Kava daemon
After=network-online.target
[Service]
User=$USER
ExecStart=$HOME/go/bin/kava start
Restart=on-failure
RestartSec=3
LimitNOFILE=4096
[Install]
WantedBy=multi-user.target
EOF
To start syncing:
# Start the node
sudo systemctl enable kava
sudo systemctl start kava
To check on the status of syncing:
kava status --log_format json | jq '.sync_info'
This will give output like:
{
"latest_block_hash": "1C2335882316936706565C20B9D65B48705AD7B4399A575E7C44CB1006C3D68D",
"latest_app_hash": "24EC5AC12DCE697F0CBE27AEDC465FC685F1DF0E963333294D9EE00CD3C5482D",
"latest_block_height": "1190",
"latest_block_time": "2022-01-08T01:18:46.477424985Z",
"earliest_block_hash": "00A76F0ADAD55C00A8CE77F3174A312E321D7238227EED3229CA42E56839A89E",
"earliest_app_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"earliest_block_height": "1",
"earliest_block_time": "2022-01-07T23:00:00Z",
"catching_up": false
}
The main thing to watch is that the block height is increasing. Once you are caught up with the chain, catching_up
will become false. At that point, you can start using your node to create a validator.
To check the logs of the node:
sudo journalctl -u kava -f
To see a list of wallets on your node
kava keys list
To see the options when creating a validator:
kava tx staking create-validator -h
An example of creating a validator with 50KAVA self-delegation and 10% commission:
# Replace <key_name> with the key you created previously
kava tx staking create-validator \
--amount=50000000ukava \
--pubkey=$(kava tendermint show-validator) \
--moniker="choose moniker" \
--website="optional website for your validator" \
--details="optional details for your validator" \
--commission-rate="0.10" \
--commission-max-rate="0.20" \
--commission-max-change-rate="0.01" \
--min-self-delegation="1" \
--from=<key_name> \
--chain-id=kava-testnet-14000 \
--gas=auto \
--gas-adjustment=1.4
To check on the status of your validator:
kava status --log_format json | jq '.ValidatorInfo'
If you have questions, please join the active conversation in the #validators thread of the Kava Discord Channel.