Chain Node Kyve(RU)
Для функционирования сети проекта Kyve, это полностью автономный блокчейн Proof of Stake, созданный с помощью Starport. Этот блокчейн управляется независимыми нодами, которые называются Chain-Nodes, поскольку они работают на уровне цепи. Родной валютой блокчейна KYVE является $KYVE, он обеспечивает безопасность цепи и позволяет нодам цепочки делать ставки, а другим пользователям делегировать в них свои токены.
Для начала нам потребуется сервер на Ubuntu 20.04
sudo apt update && sudo apt upgrade -y
Задаем переменные и сохраняем их в баш
NODENAME="Имя вашей ноды"
echo "export NODENAME=$NODENAME" >> $HOME/.bash_profile echo "export WALLET=wallet" >> $HOME/.bash_profile echo "export CHAIN_ID=korellia" >> $HOME/.bash_profile source $HOME/.bash_profile
Качаем бинарный файл с оф. гитхаба проекта
wget https://github.com/KYVENetwork/chain/releases/download/v0.0.1/chain_linux_amd64.tar.gz tar -xvzf chain_linux_amd64.tar.gz
chmod +x chaind && mv ./chaind /usr/local/bin/chaind
Начинаем инициацию chaind init $NODENAME --chain-id $CHAIN_ID
Скачиваем и переносим файл генезиса
wget -qO $HOME/.kyve/config/genesis.json https://github.com/KYVENetwork/chain/releases/download/v0.0.1/genesis.json
Скачиваем и переносим файл addrbook
wget -qO $HOME/.kyve/config/addrbook.json https://api.testnet.run/addrbook-korellia.json
chaind start [email protected]:26656
В процессе вы можете получить ошибку, на подобие "CONSENSUS FAILURE"
Когда это происходит, необходимо запустить следующий выпущенный бинарный файл. Для того, чтобы это не приходилось делать постоянно вручную, мы установим Cosmovisor
wget https://github.com/KYVENetwork/chain/releases/download/v0.0.1/cosmovisor_linux_amd64 mv cosmovisor_linux_amd64 cosmovisor
Далее делаем файл исполняем и переносим его в /usr/bin
chmod +x cosmovisor && mv ./cosmovisor /usr/local/bin/cosmovisor
mkdir -p $HOME/.kyve/cosmovisor/genesis/bin/ echo "{}" > $HOME/.kyve/cosmovisor/genesis/upgrade-info.json
Далее копируем бинарник в директорию Cosmovisor
cp /usr/local/bin/chaind $HOME/.kyve/cosmovisor/genesis/bin/chaind
pruning="custom" pruning_keep_recent="100" pruning_keep_every="0" 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-keep-every *=.*/pruning-keep-every = \"$pruning_keep_every\"/" $HOME/.kyve/config/app.toml sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" $HOME/.kyve/config/app.toml
nano $HOME/.kyve/config/config.toml
В разделе indexer
выставляем значение "null"
chaind unsafe-reset-all
export DAEMON_HOME="$HOME/.kyve" export DAEMON_NAME="chaind" export DAEMON_ALLOW_DOWNLOAD_BINARIES="true"
tee <<EOF > /dev/null /etc/systemd/system/kyved.service [Unit] Description=KYVE Chain-Node daemon After=network-online.target [Service] User=$USER ExecStart=$(which cosmovisor) start Restart=on-failure RestartSec=3 LimitNOFILE=infinity Environment="DAEMON_HOME=$HOME/.kyve" Environment="DAEMON_NAME=chaind" Environment="DAEMON_ALLOW_DOWNLOAD_BINARIES=true" [Install] WantedBy=multi-user.target EOF
Включаем и запускаем сервисный файл
sudo systemctl enable kyved && sudo systemctl start kyved
journalctl -u kyved -f -o cat
Синхронизация длиться долго, поэтому следим за высотой здесь
После завершения синхронизации, создаем или восстанавливаем кошелек
chaind keys add wallet
Если у вас уже есть кошелек, можете восстановить его по мнемонической фразе
chaind keys add wallet --recover
Далее становимся валидатором, добавим кол-во токенов
chaind tx staking create-validator --yes \ --amount "кол-во монет"tkyve \ --moniker $NODENAME \ --commission-rate "0.10" \ --commission-max-rate "0.20" \ --commission-max-change-rate "0.01" \ --min-self-delegation "1" \ --pubkey "$(chaind tendermint show-validator)" \ --from $WALLET \ --chain-id $CHAIN_ID
VALOPER=$(chaind keys show wallet --bech val -a)
echo 'export VALOPER='${VALOPER} >> $HOME/.bash_profile source $HOME/.bash_profile
Для добавления стейка на вашу ноду
chaind tx staking delegate $VALOPER "кол-во монет"tkyve --from $WALLET --chain-id $CHAIN_ID
Для того, чтобы выйти из тюрьмы
chaind tx slashing unjail --chain-id $CHAIN_ID --from $WALLET
chaind tx distribution withdraw-rewards $VALOPER --from $WALLET --fees 5555tkyve --commission -y
chaind query bank balances "адрес"
Поздравляю, вы стали валидатором chain ноды!
Мой чат для обсуждения: https://t.me/russianbears1
Авторский канал: https://t.me/cryptorussianbears