September 5, 2022

Установка ноды SEI - ACT 3 (Не актуально)

"Неуверен, что актуально залетать, но меня это ж никогда не останавливало."

"Короче на каком то моменте мне каписали, что меня не особо тут рады видеть и как бы мест уже нет" - more validators than maxValidators found [recovered]. Кто не успел - тот опиздал.

12.07.2022 запустили оплачиваемый тестнет, так что переустанавливаем с нуля

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

Требования для ноды согласно документации следующие: 8 Cores (modern CPU's), 32GB RAM, 1TB of storage (SSD or NVME)

19.08.2022 обновили до версии 1.1.1beta (Для установки с нуля сначала ставим версию 1.0.6, а потом как цепочка дойдет до конца обновляем, либо ищем снапшоты под 1.1.1beta и ставим ее)

Как всегда обновляем наш сервер
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
После этого скачиваем и устанавливаем бинарник
cd $HOME
git clone https://github.com/sei-protocol/sei-chain.git
cd sei-chain
git checkout 1.0.6beta
make install
После установки переносим бинарник в рабочую папку
chmod +x /root/go/bin/seid && sudo mv /root/go/bin/seid /usr/local/bin/seid
cd $HOME

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

MONIKER="your_name"
CHAIN="atlantic-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
Инициализируем ноду
seid init $MONIKER --chain-id $CHAIN -o
Скачиваем генезис и адрес бук
wget -qO $HOME/.sei/config/genesis.json "https://raw.githubusercontent.com/sei-protocol/testnet/main/sei-incentivized-testnet/genesis.json"
wget -qO $HOME/.sei/config/addrbook.json "https://raw.githubusercontent.com/sei-protocol/testnet/main/sei-incentivized-testnet/addrbook.json"
Добавляем сидов и пиров
SEEDS="df1f6617ff5acdc85d9daa890300a57a9d956e5e@sei-atlantic-1.seed.rhinostake.com:16660"
PEERS="[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:12656,[email protected]:19656,[email protected]:12656,[email protected]:20956,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:10956,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:12656,[email protected]:12656,[email protected]:26656,[email protected]:26651,[email protected]:56656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:12656,[email protected]:36376,[email protected]:21156"
sed -i -e "s/^seeds *=.*/seeds = \"$SEEDS\"/; s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.sei/config/config.toml
Прописываем в конфиг имя сети и вывод сохранения кошельков
seid config chain-id $CHAIN
seid config keyring-backend file

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

pruning="custom"
pruning_keep_recent="100"
pruning_keep_every="0"
pruning_interval="10"
sed -i -e "s/^pruning *=.*/pruning = \"$pruning\"/" $HOME/.sei/config/app.toml
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" $HOME/.sei/config/app.toml
sed -i -e "s/^pruning-keep-every *=.*/pruning-keep-every = \"$pruning_keep_every\"/" $HOME/.sei/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" $HOME/.sei/config/app.toml
Включаем прометэя
sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.sei/config/config.toml
Выключаем индексер
indexer="null"
sed -i -e "s/^indexer *=.*/indexer = \"$indexer\"/" $HOME/.sei/config/config.toml
Создаем сервис
tee /etc/systemd/system/seid.service > /dev/null <<EOF
[Unit]
Description=SEI
After=network.target
[Service]
Type=simple
User=$USER
ExecStart=$(which seid) start
Restart=on-failure
RestartSec=10
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
Запускаем сервис
sudo systemctl daemon-reload
sudo systemctl enable seid
sudo systemctl restart seid
Смотрим логи
journalctl -u seid -f -o cat
Или смотрим статус синхронизации (когда "catching_up": false то нода синхронизирована)
seid status 2>&1 | jq .SyncInfo
Если нода не может подключиться к пирам то в дискорде просим поделиться пирами, и добавляем их.
На высоте блока 836963 цепь остановится и надо будет обновить на версию 1.0.7beta-postfix. Если с ноля ставить, то ждать пиздец как долго.
cd $HOME
sudo systemctl stop seid
sudo rm -r sei-chain/
git clone https://github.com/sei-protocol/sei-chain.git
cd sei-chain
git checkout 1.0.7beta-postfix
make install
chmod +x /root/go/bin/seid && sudo mv /root/go/bin/seid /usr/local/bin/seid
cd $HOME
sudo systemctl restart seid && journalctl -u seid -f -o cat
На высоте блока 1862331 цепь остановится и надо будет обновить на версию 1.1.0beta
cd $HOME
sudo systemctl stop seid
sudo rm -r sei-chain/
git clone https://github.com/sei-protocol/sei-chain.git
cd sei-chain
git checkout 1.1.0beta
make install
chmod +x /root/go/bin/seid && sudo mv /root/go/bin/seid /usr/local/bin/seid
cd $HOME
sudo systemctl restart seid && journalctl -u seid -f -o cat
На высоте блока 3223245 цепь остановится и надо будет обновить на версию 1.1.1beta
cd $HOME
sudo systemctl stop seid
sudo rm -r sei-chain/
git clone https://github.com/sei-protocol/sei-chain.git
cd sei-chain
git checkout 1.1.1beta
make install
chmod +x /root/go/bin/seid && sudo mv /root/go/bin/seid /usr/local/bin/seid
cd $HOME
sudo systemctl restart seid && journalctl -u seid -f -o cat
После того как нода синхронизировалась создаем кошелек, не забываем сохранять номер кошелька и мнемоник.
seid keys add $WALLET_NAME
Если кошелек уже есть то восстановить из мнемоника
seid keys add $WALLET_NAME --recover
При необходимости можно создать еще кошельки, не забываем сохранять номер кошелька и мнемоник
seid keys add имя_нового_кошелька
Создаем переменную для адреса кошелька (вводим заданный пароль)
WALLET_ADDRESS=$(seid keys show $WALLET_NAME -a)
И добавляем переменную в баш профиль
echo 'export WALLET_ADDRESS='${WALLET_ADDRESS} >> $HOME/.bash_profile
source $HOME/.bash_profile
Далее нам необходимы средства на кошельке для создания валидатора, кран в дискорде
Проверка баланса на кошельке
seid query bank balances $WALLET_ADDRESS
После получения средств нам нужно сделать валидатора (Сумму вводим сами чутка меньше чем есть на кошельке, что бы хватило на комиссию )
seid tx staking create-validator \
  --amount 900000usei \
  --from $WALLET_NAME \
  --commission-max-change-rate "0.01" \
  --commission-max-rate "0.2" \
  --commission-rate "0.07" \
  --min-self-delegation "1" \
  --pubkey  $(seid tendermint show-validator) \
  --moniker $MONIKER \
  --chain-id $CHAIN \ 
  --fees 2220usei
После создания валидатора создадим переменную с его адресом (вводим заданный ранее пароль)
VALOPER=$(seid keys show $WALLET_ADDRESS --bech val -a)
Добавляем переменную в баш профиль
echo 'export VALOPER='${VALOPER} >> $HOME/.bash_profile
source $HOME/.bash_profile
Проверка статуса валидатора
seid query staking validator $VALOPER
Делегация средств со своего кошелька на своего валидатора (сумму вводите свою)
seid tx staking delegate $VALOPER 1000000usei --from $WALLET_NAME --chain-id $CHAIN
Ну и если вдруг ваша нода попала в тюрьму, то выход
seid tx slashing unjail --from $WALLET_NAME --chain-id $CHAIN

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

Перезапускаем сервис
sudo systemctl daemon-reload
sudo systemctl enable seid
sudo systemctl restart seid
Смотрим логи
journalctl -u seid -f -o cat
Собрать награды и комиссионные
seid tx distribution withdraw-rewards $VALOPER --from $WALLET_NAME --commission -y
Перевести монеты на другой кошелек
seid tx bank send $WALLET_NAME адрес_получателя 1000000usei -y
Что бы проголосовать за предложение объявленное в проекте (скобки убираем)
seid tx gov vote (номер голосования) (yes или no) --from $WALLET_NAME
Удалить всё к хуям, если ничего не получается
sudo systemctl stop seid && \
sudo systemctl disable seid && \
rm /etc/systemd/system/seid.service && \
sudo systemctl daemon-reload && \
cd $HOME && \
rm -rf .sei-chain sei-chain && \
rm -rf $(which seid)

На этом пожалуй всё. Если всё получилось установить, то заебок. Но незабывайте что поставить ноду - это только пол дела, тут нужно будеть ещё постараться изьебнуться и выполнить пару тройку занимательных квестов. Ссылочка на квесты от создателя: https://3pgv.notion.site/All-Seinami-Testnet-Missions-16c0a40320244c24b0bc3f663c0cf00b

Не надо стесняться, подписываемся:

Yoda's Nodes Telegram

Yoda's Nodes Youtube

Yoda's Nodes Twitter