Установка ноды SEI
Требования для ноды согласно документации следующие: 4 Cores (modern CPU's), 32GB RAM, 1TB of storage (SSD or NVME), но для старта (что бы понять интересен проект или нет) хватит стандартной конфигурации для cosmos, 4/8/200
Как всегда обновляем наш сервер
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.0beta go build -o build/seid ./cmd/sei-chaind
После установки переносим бинарник в рабочую папку
chmod +x ./build/seid && sudo mv ./build/seid /usr/local/bin/seid cd $HOME
Задаем переменные (CHAIN оставляем без изменений, в остальные вписываем свои данные)
MONIKER="your_name" CHAIN="sei-testnet-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
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"
Прописываем в конфиг имя сети и вывод сохранения кошельков
seid config chain-id $CHAIN seid config keyring-backend file
pruning="custom" pruning_keep_recent="100" pruning_keep_every="5000" 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
PEERS="[email protected]:26656,[email protected]:26696,[email protected]:26696,[email protected]:26656,[email protected]:26656,[email protected]:45656,[email protected]:26656,[email protected]:46656,[email protected]:62136,[email protected]:26657,[email protected]:26656,[email protected]:26642,[email protected]:26656,[email protected]:26656"
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.sei-chain/config/config.toml
sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.sei-chain/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
Или смотрим статус синхронизации (когда "catching_up": false то нода синхронизирована)
Если нода не может подключиться к пирам то в дискорде просим поделиться пирами, и добавляем их.
После того как нода синхронизировалась создаем кошелек, не забываем сохранять номер кошелька и мнемоник (попросит ввести и повторить пароль (не от сервера, его надо задать самим))
При необходимости можно создать еще кошельки, не забываем сохранять номер кошелька и мнемоник
Создаем переменную для адреса кошелька (вводим заданный пароль)
И добавляем переменную в баш профиль
echo 'export WALLET_ADDRESS='${WALLET_ADDRESS} >> $HOME/.bash_profile source $HOME/.bash_profile
Далее нам необходимы средства на кошельке для создания валидатора, на момент написания гайда крана нет, но обещают добавить в дискорде. Поэтому пока просим монеты у других пользователей в чате дискорда или тематических телеграм каналах.
После получения средств нам нужно сделать валидатора
seid tx staking create-validator \ --amount 100000000usei \ --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
После создания валидатора создадим переменную с его адресом (вводим заданный ранее пароль)
Добавляем переменную в баш профиль
echo 'export VALOPER='${VALOPER} >> $HOME/.bash_profile source $HOME/.bash_profile
Делегация(добавление) средств со своего кошелька на своего валидатора (сумму вводите свою)
seid tx staking delegate $VALOPER 1000000usei --from $WALLET_NAME --chain-id $CHAIN
Ну и если вдруг ваша нода попала в тюрьму, то выход
seid tx slashing unjail --from $WALLET_NAME --chain-id $CHAIN
Дальше хвастаемся в дискорде, можно запросить роль валидатора, и ждем новых активностей.
Ниже приведены полезные команды:
Собрать награды и комиссионные
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)