June 2, 2022

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

Версия сети harpoon-4

Проект Kujira вышел из под крыла Terra, решив запустить свой собственный L1 блокчейн в экосистеме Cosmos. Команда работает в области DeFi. Создавая инструменты, которые просты использовании для всех, от начинающего криптоэнтузиаста до опытного розничного инвестора, независимо от их выбора, без необходимости рисковать больше, чем они могут позволить себе потерять. Миграция планируется примерно через 2 месяца.

Для начала нам потребуется сервер на Ubuntu 20.04

Требования стандартные для космос нод : 4 потока, 8 RAM, 200Gb

Обновляем все пакеты

sudo apt update && sudo apt upgrade -y

Устанавливаем необходимые утилиты

sudo apt install curl build-essential git wget jq make gcc tmux htop nvme-cli pkg-config libssl-dev libleveldb-dev tar clang bsdmainutils ncdu unzip libleveldb-dev -y

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

ver="1.18.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.18.2

Создаем переменные

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

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

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

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

cd $HOME
git clone https://github.com/Team-Kujira/core kujira-core && cd kujira-core
git checkout v0.4.0
make install

Начинаем инициацию

kujirad init $NODENAME --chain-id $CHAIN_ID

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

kujirad config chain-id $CHAIN_ID
kujirad config keyring-backend file

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

wget -qO $HOME/.kujira/config/genesis.json https://raw.githubusercontent.com/Team-Kujira/networks/master/testnet/harpoon-4.json

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

sed -i -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.00125ukuji\"/" $HOME/.kujira/config/app.toml

Меняем таймаут

sed -i -e "s/^timeout_commit *=.*/timeout_commit = \"1500ms\"/" $HOME/.kujira/config/config.toml

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

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

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

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

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

SEEDS=""
PEERS="[email protected]:26656,[email protected]:16656,[email protected]:26656,[email protected]:26656,[email protected]:53756,[email protected]:26656,[email protected]:26656,[email protected]:36347,[email protected]:25656,[email protected]:25656,[email protected]:26656,[email protected]:29656,[email protected]:26656,[email protected]:26656"
sed -i -e "s/^seeds *=.*/seeds = \"$SEEDS\"/; s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.kujira/config/config.toml

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

kujirad tendermint unsafe-reset-all

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

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

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

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

Смотрим логи

journalctl -u kujirad -f -o cat
curl -s localhost:26657/status

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

Создаем кошелек

kujirad keys add $WALLET

Токены запрашиваем на дискорд-сервере проекта, в разделе #faucet-requests

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

ADDR=$(kujirad keys show $WALLET -a)

Добавляем переменную в баш:

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

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

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

kujirad query bank balances $ADDR

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

VALOPER=$(kujirad keys show $WALLET --bech val -a)

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

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

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

kujirad tx staking create-validator \
  --from $WALLET \
  --amount=100000000ukuji \
  --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=$(kujirad tendermint show-validator) \
  --fees=1000ukuji

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

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

kujirad tx staking edit-validator \
--website="сайт" \
--identity="берите индификатор, созданный из https://keybase.io/" \
--details="описание" \
--chain-id=$CHAIN_ID \
--gas-adjustment="1" \
--gas-prices 0.1uqck \
--node `cat "$HOME/.kujira/config/config.toml" \
| grep -oPm1 "(?<=^laddr = \")([^%]+)(?=\")"` \
--from=$WALLET

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

kujirad tx staking delegate $VALOPER "кол-во_токенов"ukuji --from $WALLET --chain-id $CHAIN_ID

выйти из тюрьмы

kujirad tx slashing unjail --from $WALLET --chain-id $CHAIN_ID

Поздравляю, вы стали валидатором!

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

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