May 14, 2022

Установка ноды Quicksilver

Гайд для тестнета killerqueen-1

Обновляем и устанавливаем необходимые пакеты:

sudo apt update && sudo apt upgrade -y
sudo apt install curl tar wget clang pkg-config libssl-dev jq build-essential bsdmainutils git make ncdu gcc git jq chrony liblz4-tool -y

Устанавливаем GO:

ver="1.17.2"
cd $HOME
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" >> ~/.bash_profile
source ~/.bash_profile
go version

Версия GO должна быть 1.17.2

NODENAME="Имя вашей ноды"

Далее сохраняем переменные в баш:

echo "export NODENAME=$NODENAME" >> $HOME/.bash_profile
echo "export WALLET=wallet" >> $HOME/.bash_profile
echo "export CHAIN_ID=killerqueen-1" >> $HOME/.bash_profile
source $HOME/.bash_profile

Скачиваем и устанавливаем бинарник:

cd $HOME
git clone https://github.com/ingenuity-build/quicksilver.git --branch v0.4.0
cd quicksilver
make build
chmod +x ./build/quicksilverd && mv ./build/quicksilverd /usr/local/bin/quicksilverd

Проверяем версию

quicksilverd version

Результат: v0.4.0

Записываем конфиг

quicksilverd config chain-id $CHAIN_ID
quicksilverd config keyring-backend test

Устанавливаем параметры сети

quicksilverd init $NODENAME --chain-id $CHAIN_ID

Скачиваем генезис

wget -qO $HOME/.quicksilverd/config/genesis.json "wget https://raw.githubusercontent.com/ingenuity-build/testnets/main/killerqueen/genesis.json"

Ставим минимальную цену газа

sed -i -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0uqck\"/" $HOME/.quicksilverd/config/app.toml

Ставим peer'ы и записываем их

SEEDS="dd3460ec11f78b4a7c4336f22a356fe00805ab64@seed.killerqueen-1.quicksilver.zone:26656,8603d0778bfe0a8d2f8eaa860dcdc5eb85b55982@seed02.killerqueen-1.quicksilver.zone:27676"
PEERS="[email protected]:26656,[email protected]:26656,[email protected]:11656,[email protected]:36366,[email protected]:26651,[email protected]:25095,[email protected]:26656"
sed -i -e "s/^seeds *=.*/seeds = \"$SEEDS\"/; s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.quicksilverd/config/config.toml

Включаем prometheus

sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.quicksilverd/config/config.toml

Настраиваем прунинг

pruning="custom" 
pruning_keep_recent="100" 
pruning_keep_every="0" 
pruning_interval="10" 
sed -i -e "s/^pruning *=.*/pruning = \"$pruning\"/" $HOME/.quicksilverd/config/app.toml 
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" $HOME/.quicksilverd/config/app.toml 
sed -i -e "s/^pruning-keep-every *=.*/pruning-keep-every = \"$pruning_keep_every\"/" $HOME/.quicksilverd/config/app.toml 
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" $HOME/.quicksilverd/config/app.toml

Отключаем индексацию

indexer="null"
sed -i -e "s/^indexer *=.*/indexer = \"$indexer\"/" $HOME/.quicksilverd/config/config.toml

Сбрасываем данные цепочки

quicksilverd tendermint unsafe-reset-all

Создаем сервисный файл

tee /etc/systemd/system/quicksilverd.service > /dev/null <<EOF
[Unit]
Description=quicksilverd
After=network.target
[Service]
Type=simple
User=$USER
ExecStart=$(which quicksilverd) start
Restart=on-failure
RestartSec=10
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF

Запускаем сервисный файл

sudo systemctl daemon-reload && sudo systemctl enable quicksilverd && sudo systemctl start quicksilverd

Проверяем логи

journalctl -u quicksilverd -f -o cat

Проверяем статус синка

curl -s localhost:26657/status

Значение catching_up: false означает, что нода синхронизирована.

latest_block_height: не должен быть 0

Как получили синхронизацию, создаем кошелёк

quicksilverd keys add $WALLET

Сохраняем полученный результат вместе с mnemonic фразой

Информация о кране будет обновлена позже

Запишем адрес в переменную для удобства

ADDRESS=$(quicksilverd keys show $WALLET -a)
echo 'export ADDRESS='${ADDRESS} >> $HOME/.bash_profile 
source $HOME/.bash_profile

Проверка баланса вашего кошелька

quicksilverd query bank balances $ADDRESS

Получаем valoper адрес

VALOPER=$(quicksilverd keys show wallet --bech val -a)

Записываем переменную в баш

echo 'export VALOPER='${VALOPER} >> $HOME/.bash_profile
source $HOME/.bash_profile

Создаем валидатора

quicksilverd tx staking create-validator \
  --from=wallet \
  --amount=4000000uqck \
  --moniker=$NODENAME \
  --chain-id=$CHAIN_ID \
  --commission-rate=0.07 \
  --commission-max-rate=0.2 \
  --commission-max-change-rate=0.01 \
  --min-self-delegation=1 \
  --pubkey=$(quicksilverd tendermint show-validator)

Свою ноду вы можете найти на этом сайте https://quicksilver.explorers.guru/validators

Если хотите выделить своего валидатора, можете внести дополнительные сведения (не обязательно)

quicksilverd tx staking edit-validator \
--from=wallet \
--website="сайт" \
--identity="Можете создать свой id здесь" \
--details="описание" \
--chain-id=$CHAIN_ID \
--gas-adjustment="1" \
--gas-prices 0.1uqck \
--node `cat "$HOME/.quicksilverd/config/config.toml" \
| grep -oPm1 "(?<=^laddr = \")([^%]+)(?=\")"`

Полезные команды

Застекать в валидатора еще токенов

quicksilverd tx staking delegate $VALOPER "кол-во_токенов"uqck --from wallet --chain-id $CHAIN_ID

Остановить ноду

sudo systemctl stop quicksilverd

Перезагрузить ноду

sudo systemctl restart quicksilverd

Восстановить кошелек по mnemonic фразе

quicksilverd keys add $WALLET --recover

Удаление ноды

sudo rm -Rvf $HOME/.quicksilverd \
/usr/local/bin/quicksilverd $HOME/quicksilver

Мой чат для обсуждения: https://t.me/russianbears1

Авторский канал: https://t.me/cryptorussianbears