May 27, 2022

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

Приветствую всех, сегодня мы расскажем о установке ноды Quicksilver в новой сети Killer Queen

Требования для ноды согласно документации следующие: 4 Cores (modern CPU's), 8GB RAM, 120GB of storage (we are using statesync, so disk requirements are low), стандартный cosmos практически на минималках.

!!! Если вы заполняли форму и создавали gentx для сети Killer Queen то необходимо будет заменить файл .quicksilverd/config/priv_validator_key.json на файл который был создан при создании gentx для сети Killer Queen, про это написано далее. !!!

Обновление от 01.07.2022

cd $HOME rm -r quicksilver git clone https://github.com/ingenuity-build/quicksilver.git --branch v0.4.1 cd quicksilver make build sudo chmod +x ./build/quicksilverd && sudo mv ./build/quicksilverd /usr/local/bin/quicksilverd sudo systemctl restart quicksilverd

Как всегда обновляем наш сервер

sudo apt update && sudo apt upgrade -y

Устанавливаем доп. пакеты

sudo apt install make clang pkg-config libssl-dev build-essential git gcc chrony curl jq ncdu bsdmainutils htop net-tools lsof fail2ban wget -y

Устанавливаем go и проверяем версию

cd $HOME wget -O go1.18.1.linux-amd64.tar.gz https://golang.org/dl/go1.18.1.linux-amd64.tar.gz rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.18.1.linux-amd64.tar.gz && rm go1.18.1.linux-amd64.tar.gz echo 'export GOROOT=/usr/local/go' >> $HOME/.bash_profile echo 'export GOPATH=$HOME/go' >> $HOME/.bash_profile echo 'export GO111MODULE=on' >> $HOME/.bash_profile echo 'export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin' >> $HOME/.bash_profile && . $HOME/.bash_profile go version

После этого скачиваем и устанавливаем бинарник

git clone --branch v0.4.0 https://github.com/ingenuity-build/quicksilver.git cd quicksilver make build

Перемещаем бинарник в рабочий каталог

chmod +x ./build/quicksilverd && sudo mv ./build/quicksilverd /usr/local/bin/quicksilverd cd $HOME

Проверяем версию (должна быть 0.4.0)

quicksilverd version

Задаем переменные (CHAIN оставляем без изменений, в остальные вписываем свои данные)

MONIKER="your_name" CHAIN="killerqueen-1" WALLET_NAME="your_name"

Добавляем все в баш профиль

echo 'export MONIKER='${MONIKER} >> $HOME/.bash_profile echo 'export CHAIN='${CHAIN} >> $HOME/.bash_profile echo 'export WALLET_NAME='${WALLET_NAME} >> $HOME/.bash_profile source $HOME/.bash_profile

Инициализируем ноду

quicksilverd init $MONIKER --chain-id $CHAIN

Прописываем в конфиг имя сети, вывод сохранения кошельков и режим броадкаста

quicksilverd config chain-id $CHAIN quicksilverd config keyring-backend test quicksilverd config broadcast-mode block

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

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

Проверяем чек сумму

shasum -a 256 .quicksilverd/config/genesis.json

Вывод

3510dd3310e3a127507a513b3e9c8b24147f549bac013a5130df4b704f1bac75 .quicksilverd/config/genesis.json

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

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

Добавляем сиды и пиры

SEEDS="dd3460ec11f78b4a7c4336f22a356fe00805ab64@seed.killerqueen-1.quicksilver.zone:26656,8603d0778bfe0a8d2f8eaa860dcdc5eb85b55982@seed02.killerqueen-1.quicksilver.zone:27676" PEERS="b281289df37c5180f9ff278be5e29964afa0c229@185.56.139.84:26656,4f35ab6008fc46cc50b103a337ec2266400eca2e@148.251.50.79:26656,90f4459126152d21983f42c8e86bc899cd618af6@116.202.15.183:11656,6ac91620bc5338e6f679835cc604769a213d362f@139.59.56.24:36366,f9d2dbf6c80f08d12d1bc8d07ffd3bafa4965160@95.214.55.43:26651,abe7397ff92a4ca61033ceac127b5fc3a9a4217f@65.108.98.218:25095,07bb0fd7af9dc819bb5bb850ea5d870281c3adfa@167.235.74.230:26656" sed -i -e "s/^seeds *=.*/seeds = \"$SEEDS\"/; s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.quicksilverd/config/config.toml

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

tee /etc/systemd/system/quicksilverd.service > /dev/null <<EOF [Unit] Description=Quicksilver 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

Если вы заполняли форму и создавали gentx для сети Killer Queen то необходимо заменить файл .quicksilverd/config/priv_validator_key.json на файл который был создан при создании gentx для сети Killer Queen

И запускаем сервис

sudo systemctl daemon-reload sudo systemctl enable quicksilverd sudo systemctl restart quicksilverd

Смотрим логи и ждем когда нода начнет синхронизироваться

journalctl -u quicksilverd -f -o cat

Или смотрим статус синхронизации (когда "catching_up": false то нода синхронизирована)

quicksilverd status 2>&1 | jq .SyncInfo

Если нода запущена до 23.06.2022 09:00 UTC то если заменили файл увидим в выводе примерно следующее

5:54PM INF This node is a validator addr=29E8CB95478FA1478FB53D46600CD60704AD2099 module=consensus pubKey=nFWrwOkX4K0Qmc7H1oIdMUQrPS1NZqlqKZDt+CVafh0=
...
5:54PM INF Genesis time is in the future. Sleeping until then... genTime=2022-06-23T09:00:00Z

Если файл gentx не создавали или в выводе видим

This node is not a validator

То ждем окончания синхронизации и создаем валидатора.

После синхронизации создаем кошелек (не забываем сохранить мнемоник)

quicksilverd keys add $WALLET_NAME

Если кошелек уже есть то восстанавливаем с помощью мнемоника

quicksilverd keys add $WALLET_NAME --recover

Добавляем переменную с адресом кошелька

WALLET_ADDRESS=$(quicksilverd keys show $WALLET_NAME -a)

Добавляем переменную в баш профиль

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

Теперь нам необходимо получить средства на кошелек. Для этого переходим в дискорд и в ветке #qck-tap запрашиваем токены на баланс кошелька

После запроса проверяем баланс

quicksilverd query bank balances $WALLET_ADDRESS

Если средства успешно поступили, то создаем валидатора (сумму указывайте свою, сколько хотите делегировать с кошелька, указывайте чуть меньше что бы хватило на комиссию)

quicksilverd tx staking create-validator \ --from=$WALLET_NAME \ --amount=5000000uqck \ --moniker=$MONIKER \ --chain-id=$CHAIN \ --commission-rate=0.1 \ --commission-max-rate=0.2 \ --commission-max-change-rate=0.1 \ --min-self-delegation=1 \ --pubkey=$(quicksilverd tendermint show-validator)

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

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

И добавляем ее в баш профиль

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

Проверка статуса валидатора

quicksilverd query staking validator $VALOPER

Делегация средств с кошелька на валидатора (сумму вводите свою)

quicksilverd tx staking delegate $VALOPER 1000000uqck --from $WALLET_NAME --chain-id $CHAIN

Ну и если вдруг ваша нода попала в тюрьму, то выход

quicksilverd tx slashing unjail --from $WALLET_NAME --chain-id $CHAIN

Дальше хвастаемся в дискорде, можно запросить роль валидатора, и ждем новых активностей.

Большое спасибо, за внимание и уделенное время

Наш телеграмм канал по нодам — https://t.me/mmsnodes
Наш телеграмм чат по нодам - https://t.me/mmsnodeschat
Наш телеграмм канал по экосистеме Cosmos - https://t.me/cosmochannel_mms

С уважением, MMS_Team