July 11, 2022

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

Здравствуйте сегодня мы расскажем об установке ноды CLAN

Оригинальная инструкция находится тут.

CLAN это web3 игровой блокчейн, более подробно можно прочитать на официальном сайте.

Рекомендуемые требования для сервера

4GB RAM 50GB+ of disk space 2 Cores (modern CPU's)

Краткую инструкцию по аренде сервера можно посмотреть тут

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

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 https://github.com/ClanNetwork/clan-network cd clan-network git checkout v1.0.4-alpha make install

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

chmod +x /root/go/bin/cland && sudo mv /root/go/bin/cland /usr/local/bin/cland cd $HOME

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

cland version --long

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

MONIKER="your_name" CHAIN="playstation-2" 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

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

cland init $MONIKER --chain-id $CHAIN

Прописываем в конфиг имя сети

cland config chain-id $CHAIN

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

curl https://raw.githubusercontent.com/ClanNetwork/testnets/main/$CHAIN/genesis.json > ~/.clan/config/genesis.json

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

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

Вывод

10a70486f8215a2216f977084c160aabb660e1ee7ab4d25a89aeef86528fb387 .clan/config/genesis.json

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

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

Выключаем индексер (по желанию)

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

Запрашиваем и добавляем пиры

CHAIN_REPO="https://raw.githubusercontent.com/ClanNetwork/testnets/main/$CHAIN" && \ export PEERS="$(curl -s "$CHAIN_REPO/persistent-peers.txt")" sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" ~/.clan/config/config.toml

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

sudo tee /etc/systemd/system/cland.service > /dev/null <<EOF [Unit] Description=clan node After=network-online.target

[Service] User=$USER ExecStart=$(which cland) start Restart=on-failure RestartSec=3 LimitNOFILE=65535

[Install] WantedBy=multi-user.target EOF

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

sudo systemctl daemon-reload sudo systemctl enable cland sudo systemctl restart cland

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

sudo journalctl -u cland -f -o cat

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

curl localhost:26657/status

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

cland keys add $WALLET_NAME

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

cland keys add $WALLET_NAME --recover

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

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

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

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

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

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

cland query bank balances $WALLET_ADDRESS

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

cland tx staking create-validator \ --amount 1000000000uclan \ --commission-max-change-rate "0.1" \ --commission-max-rate "0.20" \ --commission-rate "0.1" \ --min-self-delegation "1" \ --pubkey=$(cland tendermint show-validator) \ --moniker $MONIKER \ --chain-id $CHAIN \ --gas-prices 0uclan \ --from $WALLET_NAME

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

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

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

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

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

cland query staking validator $VALOPER

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

cland tx staking delegate $VALOPER 1000000uclan --from $WALLET_NAME --chain-id $CHAIN

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

cland 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