May 23, 2022

Sei

Cистемные требования:

Минимальные: 3 CPU 4GB RAM 80GB SSD

Максимальные: 4 CPU 8GB RAM 200GB SSD

Аренда сервера:

Vdsina - 10% cкидка на пополнение (пополнять можно криптой).

Hetzner - 30$ за регистрацию (можно абузить с разных акков).

Установка

Придумываем имя вашего валидатора:

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

Cкачиваем и создаем бинарник

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 && 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

Скачиваем genesis и 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"

Cтавим минимальный газ

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

Ставим сиды и пиры

SEEDS=""
PEERS="[email protected]:26642,[email protected]:26656,[email protected]:46656"
sed -i -e "s/^seeds *=.*/seeds = \"$SEEDS\"/; 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

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

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 tendermint 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 $HOME/.bash_profile

Посмотреть логи и синхронизацию

journalctl -u seid -f -o cat
seid status 2>&1 | jq .SyncInfo

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

seid keys add $WALLET
WALLET_ADDRESS=$(seid keys show $WALLET -a)
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

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

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

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

wget https://raw.githubusercontent.com/freshe4qa/sei/main/sei.sh && chmod +x sei.sh && ./sei.sh