June 10, 2022

Sei Setup Guide

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

Модель общей ликвидности Sei

"Разработанный с учетом потребностей разработчиков и пользователей, Sei служит инфраструктурой и общим центром ликвидности для следующего поколения DeFi. Приложения могут легко подключаться для торговли в инфраструктуре книги заказов Sei и получать доступ к объединенной ликвидности из других приложений. Чтобы сделать опыт разработчиков приоритетным, Sei Network интегрировала модуль wasmd для поддержки смарт-контрактов CosmWasm." - sei

Больше информации об технической составляющей вы можете найти на сайте проекта Sei Network.

Установка и настройка ноды и клиента.

Системные требования к серверу.

4vCPU
8 GB RAM
100 GB SSD

Купить выделенные мощности можно на: Hetzner, Contabo, AWS etc.
Цена на такую VPS на Contabo около 5-10$/месяц.

Шаг №1 Подключение к серверу.

После покупки выделенного сервера все действия нужно производить на сервере, для этого нужно подключиться по SSH протоколу, как показано в гайде - Connect via SSH.

Шаг №2 Установка при помощи скрипта

Для подготовки и установки зависимостей которые нужны для запуска ноды нужно подготовить наш сервер, для этого можно воспользоваться скриптом или выполнить все комманды вручную.

Для запуска при помощи скрипта, нам нужно в терминале ввести комманду:

. <( wget -qO- https://raw.githubusercontent.com/Penton7/node-run/main/install_and_run_seid.sh )

На этапе выполнения скрипта, запросит название вашей ноды (Moniker), можно использовать только английские буквы+цифры.

Скрипт для обновления ноды.

Время от времени выходят обновы ноды, для обновления нужно запустить скрипт:

. <( wget -qO- https://raw.githubusercontent.com/Penton7/node-run/main/install_and_run_seid_update.sh )

Шаг №3 Настраиваем конфигурации ноды.

Для того что бы каждый раз не указывать явно какую сеть используем, пишем команду:

seid config chain-id sei-testnet-2

Дальше команда для передачи нашего айпи в конфиг:

external_address=$(wget -qO- eth0.me) 
sed -i.bak -e "s/^external_address *=.*/external_address = \"$external_address:26656\"/" $HOME/.sei-chain/config/config.toml

Шаг №4 Cоздаем или восстанавливаем кошелек и сохраняем вывод

# создать кошелек
seid keys add <name_wallet>

# восстановить кошелек (после команды вставить seed)
seid keys add <name_wallet> --recover

При создании кошелька, не забывайте сохранить себе seed фразу.

Шаг №5 Получаем монеты и создаем валидатора

Для начала нам нужно получить монеты из крана, для этого переходим в дискорд проекта sei, канал 🚰│testnet-faucet

Пишем канале:

!faucet наш_адрес

После этого нам дадут 1usei токен.

Для того что бы зарегистрироваться валидатором, нам нужно подождать пока засинкается наша сеть. Что бы узнать на какой высоте блока наша нода, заходим на сервер и пишем:

curl localhost:26657/status

latest_block_height - текущий последний блок нашей ноды, но не сети. В дешборде - https://sei.explorers.guru/ мы можем увидеть текущую высоту сети.

Когда наша нода полностью засинкается, вводим команду для того что бы стать валидатором:

seid tx staking create-validator \    
                   --amount=1usei \    
                   --pubkey=$PUBKEY \    
                   --moniker=$MONIKER \     
                   --from=$ACCOUNT_NAME \     
                   --commission-rate="0.10" \     
                   --commission-max-rate="0.20" \     
                   --commission-max-change-rate="0.01" \     
                   --min-self-delegation="1" \
                   --fees="2000usei"

Вы будете в статусе Inactive https://sei.explorers.guru/validators

Дальше идем в дискорд канал 📝│validator-form-submissions и просим роль валидатора (опционально).

После этого желательно скопировать в папку бекапа priv_validator_key.json !!!

Команды.

# проверить блоки
seid status 2>&1 | jq ."SyncInfo"."latest_block_height"

# проверить логи
sudo journalctl -u seid -f -o cat

# проверить статус
curl localhost:26657/status

# проверить баланс
seid q bank balances <address>

# проверить валидатора
seid query staking validator <valoper_address>
seid query staking validators --limit 1000000 -o json | jq '.validators[] | select(.description.moniker=="<name_moniker>")' | jq

# проверка информации по TX_HASH
seid query tx <TX_HASH>

# параметры сети
seid q staking params
seid q slashing params

# проверить сколько блоков пропущено валидатором и с какого блока актив
seid q slashing signing-info $(seid tendermint show-validator)

# узнать транзакцию создания валидатора (заменить свой valoper_address)
seid query txs --events='create_validator.validator=<your_valoper_address>' -o=json | jq .txs[0].txhash -r

Транзакции

# собрать комиссионные + реварды
seid tx distribution withdraw-rewards <valoper_address> --from <name_wallet> --fees 5555usei --commission -y

# заделегировать себе в стейк еще (так отправляется 1 монетa)
seid tx staking delegate <valoper_address> 1000000usei --from <name_wallet> --fees 5555usei -y

# ределегирование на другого валидатора
seid tx staking redelegate <src-validator-addr> <dst-validator-addr> 1000000usei --from <name_wallet> --fees 5555usei -y

# unbond 
seid tx staking unbond <addr_valoper> 1000000usei --from <name_wallet> --fees 5555usei -y

# отправить монеты на другой адрес
seid tx bank send <name_wallet> <address> 1000000usei --fees 5555usei -y

# выбраться из тюрьмы
seid tx slashing unjail --from <name_wallet> --fees 5555usei -y

Работа с кошельками

# вывести список кошельков
seid keys list

# показать ключ аккаунта
seid keys show <name_wallet> --bech acc

# показать ключ валидатора
seid keys show <name_wallet> --bech val

# показать ключ консенсуса
seid keys show <name_wallet> --bech cons

# запрос учетной записи
seid q auth account $(quicksilverd keys show <name_wallet> -a) -o text

# удалить кошелек
seid keys delete <name_wallet>

Ссылки проекта: