How to run a protocol node with system file
Rent a server on HETZNER
There are 6 pools currently in KYVE Dashboard. Best strategy is to find a pool with the least amount of tokens needed to start. Pay attention to “Minimum staking amount” of each pool. We will focus only on “new” pools since they don’t require a big amount of $KYVE to start.
Make sure you have arweave.json on your server with a funded arweve wallet. If not, please visit https://faucet.arweave.net/ , follow instructions and save the json file on your server.
So firstly, you need to download the appropriate binary with the latest tag:
Bitcoin — https://github.com/kyve-org/bitcoin/releases/tag/v0.0.0
Solana —https://github.com/kyve-org/solana/releases/tag/v0.0.1
Zilliqa — https://github.com/kyve-org/zilliqa/releases/tag/v0.0.0
NEAR — https://github.com/kyve-org/near/releases/tag/v0.0.0
Let’s take NEAR for example. If you want a different pool, just download another binary and change kyve-near to kyve-solana, for example!
wget https://github.com/kyve-org/near/releases/download/v0.0.0/kyve-near-linux.zip
unzip kyve-near-linux.zip
mv near-linux /usr/bin/kyve-near
sudo chmod +x /usr/bin/kyve-near
Set the variables. POOLID can be seen in the Dashboard.
POOLNAME=<name of the pool>
POOLID=<number of the pool>
MNEMONIC=<mnemonic of the validator walet>
STAKE=<your amount of stake>
Please note that stake has to be above the minimum.
Next, we will create a service file.
sudo tee <<EOF >/dev/null /etc/systemd/system/kyve-neard.service
[Unit]
Description=Kyve Node
After=network.target
[Service]
Type=simple
User=$USER
ExecStart=/usr/bin/kyve-$POOLNAME \
--poolId $POOLID \
--mnemonic "$MNEMONIC" \
--initialStake $STAKE \
--keyfile /root/arweave.json \
--network korellia \
--verbose
Restart=on-failure
RestartSec=10
LimitNOFILE=10000
[Install]
WantedBy=multi-user.target
EOF
Check that all the variables are set right
cat /etc/systemd/system/kyve-neard.service
Ok, now launch the node and see the logs.
sudo systemctl daemon-reload
sudo systemctl enable kyve-neard
sudo systemctl restart kyve-neard
journalctl -u kyve-neard -f