May 24, 2022

Sei | Testnet

Содержание

  1. Общая информация
  2. О проекте
  3. Требования к оборудованию
  4. Установка ноды
  5. Создание кошелька
  6. Ставки, делегирование и вознаграждения
  7. Проверка ноды в списке валидаторов
  8. Устранение неполадок
  9. Полезные команды
  10. Ссылки на нас

Гайд на участие в Sei Incentivized Testnet

Тестнет состоит из 4 этапов и будет длится примерно 8 недель.

Выделяют на награду 1% от общего количества токенов

👉 Регистрация на тестнет: https://forms.gle/CzBeqENRZrrXXG4x7

👉 Подробнее о тестнете тут: https://medium.com/@seinetwork/seinami-incentivized-testnet-a66be6aa6650

👉 Сайт проекта: https://www.seinetwork.io/

👉 Дискорд проекта: https://discord.gg/xZTaK4JKv5


О проекте

Sei Network — это первый блокчейн L1, ориентированный на книгу заказов. Он построен с использованием Cosmos SDK и ядра Tendermint и имеет встроенный модуль центральной книги лимитных ордеров. Децентрализованные приложения, основанные на Sei, могут создаваться поверх CLOB, а другие блокчейны на основе Cosmos могут использовать CLOB Sei в качестве общего центра ликвидности и создавать рынки для любого актива.


Требования к оборудованию

Требования к оборудованию от разработчика

  • 4 процессора; чем выше тактовая частота, тем лучше
  • 32 ГБ ОЗУ
  • Диск 1 ТБ
  • Постоянное подключение к Интернету (трафик будет минимальным во время тестнета, 10 Мбит/с будет достаточно - для майнета ожидается не менее 100 Мбит/с)

Оптимальные требование к оборудованию

  • 4x процессора; чем выше тактовая частота, тем лучше
  • 8 ГБ ОЗУ
  • 200 ГБ памяти (SSD или NVME)
  • Постоянное подключение к Интернету (трафик будет минимальным во время тестнета, 10 Мбит/с будет достаточно - для майнета ожидается не менее 100 Мбит/с)

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

Вариант 1 (Автоматическая установка)

Для полностью автоматической установки ноды воспользуйтесь нашим скриптом, Вам будет предложено ввести имя узла валидатора (moniker - который указывали при регистрации в форме для участия в Тестнете)

curl https://raw.githubusercontent.com/agonyp/Scripts-ALPHA-Noderunning/main/install-sui.sh | bash

После выполнения скрипта переходите к созданию кошелька

Вариант 2 (Ручная установка)

Создаем переменную с названием ноды (НАЗВАНИЕ НОДЫ заменить на moniker который указывали при регистрации)

NODENAME=НАЗВАНИЕ_НОДЫ

Сохраняем и импортируем переменные в систему

echo "export NODENAME=$NODENAME" >> $HOME/.bash_profile
echo "export WALLET=wallet" >> $HOME/.bash_profile
echo "export CHAIN_ID=sei-testnet-1" >> $HOME/.bash_profile
source $HOME/.bash_profile

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

sudo apt update && sudo apt upgrade -y

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

sudo apt install curl tar wget clang pkg-config libssl-dev jq build-essential bsdmainutils git make ncdu gcc git jq chrony liblz4-tool -y

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

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

Качаем и компилируем ноду

cd $HOME
git clone https://github.com/sei-protocol/sei-chain.git
cd sei-chain
git checkout 1.0.0beta
go build -o build/seid ./cmd/sei-chaind
chmod +x ./build/seid && sudo mv ./build/seid /usr/local/bin/seid

Конфигурируем и инициализируем ноду

seid config chain-id $CHAIN_ID
seid config keyring-backend file
seid init $NODENAME --chain-id $CHAIN_ID

Качаем файл генезиса и addrbook

wget -qO $HOME/.sei-chain/config/genesis.json "https://raw.githubusercontent.com/sei-protocol/testnet/master/sei-testnet-1/genesis.json"
wget -qO $HOME/.sei-chain/config/addrbook.json "https://raw.githubusercontent.com/sei-protocol/testnet/master/sei-testnet-1/addrbook.json"

Задаем минимальный gas price

sed -i -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0usei\"/" $HOME/.sei-chain/config/app.toml

Задаем сидов и пиров

SEEDS=""
PEERS="27aab76f983cd7c6558f1dfc50b919daaef14555@3.22.112.181:26656,39c4bcaded0d1d886f2788ae955f1939406f3e7d@65.108.198.54:26696,2f2804434afda302c86eb89eca27503e49a8a260@65.21.131.215:26696,6f71bcbe347069fc4df9b607f6b843226e8deb71@95.217.221.201:26656,2f047e234cb8b99fe8b9fee0059a5bc45042bc97@95.216.84.188:26656,3cd0ccddaba6c662fb5f4836456f448f13653587@212.125.21.178:45656,9db58dba3b6354177fb428caccf5167c616ad4a1@167.235.28.18:26656,38b4d78c7d6582fb170f6c19330a7e37e6964212@194.163.189.114:46656"
sed -i -e "s/^seeds *=.*/seeds = \"$SEEDS\"/; s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.sei-chain/config/config.toml

Настраиваем pruning

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

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

seid unsafe-reset-all

Создаем сервис

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

Создание кошелька

Импортируем системные переменные

source ~/.bash_profile

Создание нового кошелька

seid keys add $WALLET

Восстановление кошелька по seed фразе (опционально)

seid keys add $WALLET --recover

Посмотреть список кошельков

seid keys list 

Добавляем адрес кошелька

WALLET_ADDRESS=$(seid keys show $WALLET -a)

Добавляем valoper адрес

VALOPER_ADDRESS=$(seid keys show $WALLET --bech val -a)

Импортируем переменные в систему

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

Перед запросом монет из крана, убедитесь что нода синхронизирована

Команда для проверки синхронизации (False - синхронизирована)

curl -s localhost:26657/status | jq .result.sync_info

Запрашиваем монеты из крана (Монеты придут на баланс после синхронизации ноды)

curl -X POST -d '{"address": "'"$WALLET_ADDRESS"'", "coins": ["1000000usei"]}' http://3.22.112.181:8000

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

seid query bank balances $WALLET_ADDRESS

Быстрая команда

sei_wallet_balance

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

seid tx staking create-validator \
  --amount 1000000usei \
  --from $WALLET \
  --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 $NODENAME \
  --chain-id $CHAIN_ID

Получение роли в Discord

После создания валидатора, переходим в explorer, находим себя в списке активных\неактивных валидаторов и делаем скриншот, который скидываем в ветку general-chat и просим роль Sei Validators.


Ставки, делегирование и вознаграждения

Делегировать ставку (10000000usei сумма делегирования, меняем на желаемое)

seid tx staking delegate $VALOPER_ADDRESS 10000000usei --from=$WALLET --chain-id=$CHAIN_ID --gas=auto

Переделегировать стейк от валидатора к другому валидатору

seid tx staking redelegate <srcValidatorAddress> <destValidatorAddress> 10000000usei --from=$WALLET --chain-id=$CHAIN_ID --gas=auto

Вывести все награды

seid tx distribution withdraw-all-rewards --from=$WALLET --chain-id=$CHAIN_ID --gas=auto

Вывод вознаграждений с комиссией

seid tx distribution withdraw-rewards $VALOPER_ADDRESS --from=$WALLET --commission --chain-id=$CHAIN_ID

Проверка ноды в списке валидаторов

Есть возможность проверить себя в списке по ссылке на explorer

https://sei.explorers.guru/validators

Получить список валидаторов

seid q staking validators -oj --limit=3000 | jq '.validators[] | select(.status=="BOND_STATUS_BONDED")' | jq -r '(.tokens|tonumber/pow(10; 6)|floor|tostring) + " \t " + .description.moniker' | sort -gr | nl

Устранение неполадок

Если у вас не синхронизируется нода, мало пиров, нет коннекта, используйте статичные пиры. В строке команды то что находиться в скобках, необходимо поменять на актуальные пиры из офф Discord проекта.

PEERS="67cd4f00052f81d4abbcc8013e300b302a3ffe6e@95.216.189.214:26656,5082637d2face9dd32c4ad7eff34d38df4244c9a@65.21.123.69:26641,4aaa57eb2ed8f839253193a893389338c081929b@80.82.215.233:26656,38b4d78c7d6582fb170f6c19330a7e37e6964212@194.163.189.114:46656,27aab76f983cd7c6558f1dfc50b919daaef14555@3.22.112.181:26656,585727dac5df8f8662a8ff42052a9584a1f7ee95@165.22.25.77:26656,dc882e58c0c51763a12423dfcac5815ef092bc29@65.108.202.114:26656"
sed -i.bak -e "s/^persistent_peers =./persistent_peers = "$PEERS"/" $HOME/.sei-chain/config/config.toml

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

Проверить логов

sei_logs
journalctl -fu seid -o cat

Команда для проверки синхронизации

curl -s localhost:26657/status | jq .result.sync_info

Запрос токенов из крана

curl -X POST -d '{"address": "'"$WALLET_ADDRESS"'", "coins": ["1000000usei"]}' http://3.22.112.181:8000

Проверка баланса кошелька

sei_wallet_balance

Получить в настоящее время подключенный список пиров с идентификаторами

curl -sS http://localhost:26657/net_info | jq -r '.result.peers[] | "\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr)"' | awk -F ':' '{print $1":"$(NF)}'

Остановить службу

systemctl stop seid

Запустить службу

systemctl start seid

Перезапустить службу

systemctl restart seid

Удалить ноду

sudo systemctl stop seid
rm -rf ~/.sei-chain
rm -rf ~/sei-chain
sudo systemctl disable seid
rm /usr/local/bin/seid

Ссылки на нас

Официальный сайт | https://www.alphaproteam.com/

Наш Discord | https://discord.gg/alphateam

Наш Telegram | http://t.me/alphateampublic

Наш Twitter | https://twitter.com/AlphaTeamInfo