Ноды (гайды)
September 13, 2023

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

Общая информация

Блокчейн Qwoyn - это децентрализованная платформа для игр и сервисов для них. Разработка ведется на основании наработок в Cosmic Horizon, сеть и ее вспомогательные модули созданы для поддержки будущего развертывания игр, сервисов, инструментов и т.п.

По мне это все тот же Cosmic Horizon под соусом от блокчейна для Игр.

Более подробно о проекте можно узнать в их официальной документации.

Я решил на таком простом примере показать работу Майнета. Как получить делегацию от проекта или привлечь обычных стейкеров.) Что может быть проще, чем нода на Cosmos)

Основная причина, по которой мы поднимаем ноду, возможность получить делегацию от проекта и быть валидатором в основной сети (mainnet).

Подготовка сервера и установка Ноды:

Минимальные требования:
ОС: Ubuntu 18.04. или Ubuntu 20.04.
Процессор (CPU): 4-ядерный и больше.
Оперативная память (RAM): 8 GB и больше.
Внутренняя память (ROM): 160 GB и больше.

Обновление имеющихся пакетов:

sudo apt update

Установка необходимых пакетов:

sudo apt install git build-essential wget jq -y

Проверка Версии GO, если у вас версия ниже 19, то следуем инструкциям ниже. Выше, то можете пропустить перейти сразу сюда:

go version

Скачиваем GO (нужна go не менее 19 версии):

wget https://dl.google.com/go/go1.20.3.linux-amd64.tar.gz

Распаковываем его:

sudo tar -C /usr/local -xzf go1.20.3.linux-amd64.tar.gz

Прописываем переменные:

echo "" >> ~/.bashrc
echo 'export GOPATH=$HOME/go' >> ~/.bashrc
echo 'export GOROOT=/usr/local/go' >> ~/.bashrc
echo 'export GOBIN=$GOPATH/bin' >> ~/.bashrc
echo 'export PATH=$PATH:/usr/local/go/bin:$GOBIN' >> ~/.bashrc

Переходим в профиль и корень директории:

cd $HOME
source ~/.bashrc

Клонируем репозиторий QWOYN:

git clone https://github.com/cosmic-horizon/QWOYN

Переходим в директорию:

cd QWOYN

Проверяем версию бинарника:

git fetch
git checkout v5.2.0

Устанавливаем бинарник:

make install

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

qwoynd version

Если выдаёт v5.2.0, то всё прошло успешно и идём дальше.

Инициализируем ноду, вместо [moniker] вписываем желаемое имя валидатора:

qwoynd init [moniker] --chain-id qwoyn-1

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

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

Обновляем genesis файл:

cd ~/.qwoynd/config
rm genesis.json
wget https://raw.githubusercontent.com/cosmic-horizon/mainnet/main/genesis.json

Обновляем seeds:

cd ~/.qwoynd/config
SEED_NODE="[email protected]:26656"
sed -i '/seeds =/c\seeds = "'"$SEED_NODE"'"' ~/.qwoynd/config/config.toml

Меняем газ по умолчанию, на тот, что рекомендуется в документации:

GAS_FEE="0.025uqwoyn"
sed -i '/minimum-gas-prices =/c\minimum-gas-prices = "'"$GAS_FEE"'"' ~/.qwoynd/config/app.toml

Настраиваем pruning, чтобы нода с течением времени не занимала много места:

sed -i 's|^pruning *=.*|pruning = "custom"|g' $HOME/.qwoynd/config/app.toml
sed -i 's|^pruning-keep-recent  *=.*|pruning-keep-recent = "100"|g' $HOME/.qwoynd/config/app.toml
sed -i 's|^pruning-interval *=.*|pruning-interval = "10"|g' $HOME/.qwoynd/config/app.toml
sed -i 's|^snapshot-interval *=.*|snapshot-interval = 0|g' $HOME/.qwoynd/config/app.toml

Выполняем сброс состояния:

qwoynd tendermint unsafe-reset-all --keep-addr-book --home $HOME/.qwoynd

Настраиваем state sync для быстрой синхронизации:

STATE_SYNC_RPC=https://qwoyn.rpc.kjnodes.com:443
STATE_SYNC_PEER=d9bfa29e0cf9c4ce0cc9c26d98e5d97228f93b0b@qwoyn.rpc.kjnodes.com:16356
LATEST_HEIGHT=$(curl -s $STATE_SYNC_RPC/block | jq -r .result.block.header.height)
SYNC_BLOCK_HEIGHT=$(($LATEST_HEIGHT - 1000))
SYNC_BLOCK_HASH=$(curl -s "$STATE_SYNC_RPC/block?height=$SYNC_BLOCK_HEIGHT" | jq -r .result.block_id.hash)
sed -i -e "s|^enable *=.*|enable = true|" -e "s|^rpc_servers *=.*|rpc_servers = \"$STATE_SYNC_RPC,$STATE_SYNC_RPC\"|" -e "s|^trust_height *=.*|trust_height = $SYNC_BLOCK_HEIGHT|" -e "s|^trust_hash *=.*|trust_hash = \"$SYNC_BLOCK_HASH\"|" -e "s|^persistent_peers *=.*|persistent_peers = \"$STATE_SYNC_PEER\"|" $HOME/.qwoynd/config/config.toml

Скачиваем snapshot:

cd $HOME
curl -L https://snapshots.kjnodes.com/qwoyn/wasm_latest.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.qwoynd

Запускаем ноду:

cd $HOME
sudo systemctl daemon-reload
sudo systemctl enable qwoynd
sudo systemctl start qwoynd

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

sudo journalctl -u qwoynd -f -o cat

Дожидаемся синхронизации ноды. Команда проверки состояния синхронизации:

qwoynd status 2>&1 | jq .SyncInfo

Если в строке будет "catching_up": false, то это значит, что нода синхронизирована. ("catching_up": true - не синхронизирована).

Далее создаем кошелёк, вместо [name] вписываем желаемое название кошелька:

qwoynd keys add [name]

Если у вас уже есть кошелёк, то нужно его импортировать:

qwoynd keys add [name] --recover

Далее потребуется ввести Seed и пароль для проведения операций/транзакций.

Когда нода синхронизировалась и создали/импортировали кошелек, переходим к созданию валидатора:

Для создания валидатора потребуются $QWOYN. Их можно запросить в чатах discord или telegramЕ проекта, ссылки ТЫК.

Когда токены запросили, проверяем баланс. Вместо [wallet_address] вписываем адрес кошелька:

qwoynd query bank balances [wallet_address]

Если вы не знаете свой кошелек (хотя вы на него запросили токены) то можете его узнать с помощью команды:

qwoynd keys list

Создаём валидатора:

Изменяем [node_moniker] на желаемое имя вашего валидатора.

Изменяем [key_name] на имя созданного или импортированного кошелька.

В [qwoyn_amount] ставим кол-во монет, которое нам удалось добыть для создания валидатора. Не забываем оставить некоторое количество монет для газа:

qwoynd tx staking create-validator \
  --amount=[qwoyn_amount] \
  --pubkey=$(qwoynd tendermint show-validator) \
  --moniker="[node_moniker]" \
  --chain-id="qwoyn-1" \
  --commission-rate="0.05" \
  --commission-max-rate="0.20" \
  --commission-max-change-rate="0.01" \
  --min-self-delegation="10" \
  --gas="400000" \
  --from=[key_name] \
  --fees="10000uqwoyn"  

Через некоторое время вы должны увидеть себя в Explorer

Для получения делегации потребуется попасть в активный сет (в данный момент это 20 монет). После этого можно выдвинуть свою кандидатуру на получение делегации!

Чтобы получить делегацию от проекта, нужно активничать в их Discord. В таком случае есть шанс получить монеты от команды раньше публичного распределения валидаторам. Когда будут активны формы для всех, условия и требования к кандидатам будут жестче.

Полезные ссылки

Официальный сайт Qwoyn Studio

Официальный сайт Cosmic Horizon

Explorer

Discord

Telegram

Вот и всё, всем профита!