🔗 Ноды ←
July 21, 2022

Stride Multichain Liquid Staking — ГАЙД

Знакомство и Инструкция по установке ноды

Website | Github | Twitter | Discord | Docs

Что такое Stride?

Stride - это блокчейн ("зона"), который обеспечивает ликвидность для поставленных на кон активов. Используя Stride, вы можете зарабатывать как на ставках, так и на DeFi в экосистеме Cosmos IBC. Прочитайте наш блог "Знакомство со Stride", чтобы узнать больше о том, почему мы создали Stride.

После успешного запуска нашей публичной тестовой сети мы рады объявить о планах Stride по запуску нашей основной сети в июле. В тестовой сети PoolParty мы поддерживаем Liquid Staking stATOM, но видение Stride гораздо шире: мы стремимся обеспечить Liquid Staking для всех цепочек в экосистеме Cosmos. Процесс включения новых цепочек прост: любой может предложить включение новой цепочки через голосование руководства, которое автоматически включит новую цепочку, если она будет принята.

При запуске мы отдаем приоритет крупнейшим сетям Cosmos: мы начнем с ATOM и 1-2 других крупных сетей Cosmos. После запуска мы планируем быстро расширить охват всей экосистемы Cosmos. Цепочки и токены, которые мы планируем добавить в конце этого года:

Cosmo Hub (stATOM), Juno (stJUNO), Secret (stSCRT), Osmosis (stOSMO), Kava (stKAVA), Oasis (stROSE), Axelar (stAXL), Akash (stAKT), Evmos (stEVMOS), Injective (stINJ), Regen (stREGEN), Sommelier (stSOMM), Band (stBAND), dYdX (stDYDX), Terra V2 (stLUNA), Stargaze (stSTARS), Kujira (stKUJI), Umee (stUMEE), E-Money (stNGM), Crypto.Org (stCRO), Comdex (stCMDX), Sifchain (stEROWAN), Crescent Network (stCRE), MediBloc (stMED), Persistence (stXPRT), Iris (stIRIS), AssetMantle (stMNTL), Sentinel (stDVPN), BitSong (stBTSG), Cheqd (stCHEQ), Chihuahua (stHUAHUA), KiChain (stXKI), Ixo (stIXO), Microtick (stTICK), Fetch.Ai (stFET), Konstellation (stDARC), Desmos (stDSM), Bitcanna (stBCNA), Lum Network (stLUM), Bostrom (stBOOT), Likecoin (stLIKE), Dig Chain (stDIG), RiZON (stATOLO), OmniFlix (stFLIX), Decentr (stDEC), Vidulum (stVDL), Altered Carbon (stACB), Shentu (stCTK), и другие.

Как работает Multichain Liquid Staking?

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

Настройка переменных

Здесь вы должны указать имя вашего moniker (валидатора), которое будет видно в проводнике. Без <скобочек>.

NODENAME=<ВАШЕ_ИМЯ_НОДЫ_ВАЛИДАТОРА>

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

# вставляйте одной командой
STRIDE_PORT=16
echo "export NODENAME=$NODENAME" >> $HOME/.bash_profile
if [ ! $WALLET ]; then
	echo "export WALLET=wallet" >> $HOME/.bash_profile
fi
echo "export STRIDE_CHAIN_ID=STRIDE-1" >> $HOME/.bash_profile
echo "export STRIDE_PORT=${STRIDE_PORT}" >> $HOME/.bash_profile
source $HOME/.bash_profile

Обновление пакетов

sudo apt update && sudo apt upgrade -y

Установите зависимости

sudo apt install curl build-essential git wget jq make gcc tmux chrony -y

Установите GO

if ! [ -x "$(command -v go)" ]; then
  ver="1.18.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
fi

# проверьте версию Go
go version

Версия Go должна быть 1.18.2

Загрузите и соберите двоичные файлы

cd $HOME
git clone https://github.com/Stride-Labs/stride.git
cd stride
git checkout c53f6c562d9d3e098aab5c27303f41ee055572cb
make build
sudo cp $HOME/stride/build/strided /usr/local/bin

Приложение конфигурации

strided config chain-id $STRIDE_CHAIN_ID
strided config keyring-backend test
strided config node tcp://localhost:${STRIDE_PORT}657

Запустите приложение

strided init $NODENAME --chain-id $STRIDE_CHAIN_ID

Скачайте Genesis и Addrbook

wget -qO $HOME/.stride/config/genesis.json "https://raw.githubusercontent.com/Stride-Labs/testnet/main/poolparty/genesis.json"

Установите семена и сверстники

SEEDS="baee9ccc2496c2e3bebd54d369c3b788f9473be9@seedv1.poolparty.stridenet.co:26656"
PEERS=""
sed -i -e "s/^seeds *=.*/seeds = \"$SEEDS\"/; s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.stride/config/config.toml

Установите пользовательские порты

sed -i.bak -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:${STRIDE_PORT}658\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:${STRIDE_PORT}657\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:${STRIDE_PORT}060\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:${STRIDE_PORT}656\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":${STRIDE_PORT}660\"%" $HOME/.stride/config/config.toml
sed -i.bak -e "s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:${STRIDE_PORT}317\"%; s%^address = \":8080\"%address = \":${STRIDE_PORT}080\"%; s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:${STRIDE_PORT}090\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:${STRIDE_PORT}091\"%" $HOME/.stride/config/app.toml

Настройте pruning

pruning="custom"
pruning_keep_recent="100"
pruning_keep_every="0"
pruning_interval="50"

sed -i -e "s/^pruning *=.*/pruning = \"$pruning\"/" $HOME/.stride/config/app.toml
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" $HOME/.stride/config/app.toml
sed -i -e "s/^pruning-keep-every *=.*/pruning-keep-every = \"$pruning_keep_every\"/" $HOME/.stride/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" $HOME/.stride/config/app.toml

Установите минимальную цену на газ и тайм-аут фиксации

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

Включите prometheus

sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.stride/config/config.toml

Сбросить данные цепочки

strided tendermint unsafe-reset-all --home $HOME/.stride

Создать сервис

sudo tee /etc/systemd/system/strided.service > /dev/null <<EOF
[Unit]
Description=stride
After=network-online.target

[Service]
User=$USER
ExecStart=$(which strided) start --home $HOME/.stride
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF

Зарегистрируйтесь и запустите сервис

sudo systemctl daemon-reload
sudo systemctl enable strided
sudo systemctl restart strided && sudo journalctl -u strided -f -o cat

После установки

После завершения установки загрузите переменные в систему.

source $HOME/.bash_profile

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

strided status 2>&1 | jq .SyncInfo

(НЕОБЯЗАТЕЛЬНО) Отключить и очистить индексацию

indexer="null"
sed -i -e "s/^indexer *=.*/indexer = \"$indexer\"/" $HOME/.stride/config/config.toml
sudo systemctl restart strided
sleep 3
sudo rm -rf $HOME/.stride/data/tx_index.db

(ДОПОЛНИТЕЛЬНО) Синхронизация состояния

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

SNAP_RPC1="stride-node2.poolparty.stridenet.co:26657" \
&& SNAP_RPC2="stride-node3.poolparty.stridenet.co:26657"
LATEST_HEIGHT=$(curl -s $SNAP_RPC2/block | jq -r .result.block.header.height) \
&& BLOCK_HEIGHT=$((LATEST_HEIGHT - 2000)) \
&& TRUST_HASH=$(curl -s "$SNAP_RPC2/block?height=$BLOCK_HEIGHT" | jq -r .result.block_id.hash)
sed -i.bak -E "s|^(enable[[:space:]]+=[[:space:]]+).*$|\1true| ; \
s|^(rpc_servers[[:space:]]+=[[:space:]]+).*$|\1\"$SNAP_RPC1,$SNAP_RPC2\"| ; \
s|^(trust_height[[:space:]]+=[[:space:]]+).*$|\1$BLOCK_HEIGHT| ; \
s|^(trust_hash[[:space:]]+=[[:space:]]+).*$|\1\"$TRUST_HASH\"|" $HOME/.stride/config/config.toml
strided tendermint unsafe-reset-all --home $HOME/.stride
sudo systemctl restart strided && journalctl -fu strided -o cat

Создайте кошелек

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

strided keys add $WALLET

(НЕОБЯЗАТЕЛЬНО) Чтобы восстановить свой кошелек с помощью seed-фразы, если вы устанавливаете не в первый раз.

strided keys add $WALLET --recover

Чтобы получить текущий список кошельков.

strided keys list

Сохранить информацию о кошельке

Добавьте кошелек и адрес valoper в переменные.

STRIDE_WALLET_ADDRESS=$(strided keys show $WALLET -a)
STRIDE_VALOPER_ADDRESS=$(strided keys show $WALLET --bech val -a)
echo 'export STRIDE_WALLET_ADDRESS='${STRIDE_WALLET_ADDRESS} >> $HOME/.bash_profile
echo 'export STRIDE_VALOPER_ADDRESS='${STRIDE_VALOPER_ADDRESS} >> $HOME/.bash_profile
source $HOME/.bash_profile

Пополните свой кошелек

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

  • #token-faucet для запроса тестовых токенов

Чтобы запросить грант сборщика:

$faucet:<ВАШ_АДРЕС_КОШЕЛЬКА>

Чтобы проверить баланс кошелька:

$balance:<ВАШ_АДРЕС_КОШЕЛЬКА>

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

Перед созданием валидатора убедитесь, что у вас есть хотя бы 1 STRD (1 STRD равен 1000000 uSTRD) и ваша нода синхронизирована.

Чтобы проверить баланс кошелька:

strided query bank balances $STRIDE_WALLET_ADDRESS
Если в вашем кошельке нет баланса, возможно, ваш узел все еще синхронизируется. Пожалуйста, дождитесь завершения синхронизации, а затем продолжите.

Чтобы создать валидатора, введите команду ниже.

strided tx staking create-validator \
  --amount 10000000ustrd \
  --from $WALLET \
  --commission-max-change-rate "0.01" \
  --commission-max-rate "0.2" \
  --commission-rate "0.07" \
  --min-self-delegation "1" \
  --pubkey  $(strided tendermint show-validator) \
  --moniker $NODENAME \
  --chain-id $STRIDE_CHAIN_ID

Операции с ликвидной долей

Добавить ликвидную ставку

Liquid ставите свой ATOM на Stride для stATOM. Вот пример того, как сделать ликвидную ставку.

strided tx stakeibc liquid-stake 1000000 uatom --node https://frontend.poolparty.stridenet.co:445/ --from $WALLET --chain-id STRIDE-1 --gas=auto -y
Примечание: если вы поставите 1000 uATOM, вы можете получить только 990 (может быть больше или меньше) stATOM взамен! Это связано с тем, как работает наш обменный курс. Ваши 990 stATOM по-прежнему стоят 1000 uATOM (или больше, поскольку вы получаете вознаграждение за стейкинг!)

Погасить ставку

После получения вознаграждения за стейкинг вы можете снять свои токены. В настоящее время период отсоединения в нашей тестовой сети Gaia (Cosmos Hub) составляет около 30 минут.

strided tx stakeibc redeem-stake 999 GAIA <cosmos_address_you_want_to_redeem_to> --chain-id $STRIDE_CHAIN_ID --from $WALLET

Проверьте, доступны ли токены

Если вы хотите узнать, готовы ли ваши токены к получению, найдите UserRedemptionRecordключ с ключом <your_stride_account>.

strided q records list-user-redemption-record --output json | jq --arg WALLET_ADDRESS "$STRIDE_WALLET_ADDRESS" '.UserRedemptionRecord | map(select(.sender == $WALLET_ADDRESS))'

Если у вашей записи есть атрибут isClaimable=true, они готовы к заявке!

Получить жетоны

После того, как ваши токены отсоединены, их можно запросить, запустив процесс запроса.

strided tx stakeibc claim-undelegated-tokens GAIA 5 --chain-id $STRIDE_CHAIN_ID --from $WALLET
Примечание. Эта функция инициирует заявки в очереди FIFO, то есть, если ваша заявка занимает 20-е место в очереди, вам придется обработать другие заявки, прежде чем ваши токены появятся в вашей учетной записи.

Безопасность

Чтобы защитить свои ключи, убедитесь, что вы соблюдаете основные правила безопасности.

Базовая безопасность брандмауэра

Начните с проверки состояния ufw.

sudo ufw status

По умолчанию разрешает исходящие подключения, запрещает все входящие, кроме ssh и 26656. Ограничивает попытки входа в систему через SSH.

sudo ufw default allow outgoing
sudo ufw default deny incoming
sudo ufw allow ssh/tcp
sudo ufw limit ssh/tcp
sudo ufw allow ${STRIDE_PORT}656,${STRIDE_PORT}660/tcp
sudo ufw enable

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

strided 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

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

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

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

Проверить журналы.

journalctl -fu strided -o cat

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

sudo systemctl start strided

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

sudo systemctl stop strided

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

sudo systemctl restart strided

Информация об узле

Информация о синхронизации.

strided status 2>&1 | jq .SyncInfo

Информация о валидаторе.

strided status 2>&1 | jq .ValidatorInfo

Информация об узле.

strided status 2>&1 | jq .NodeInfo

Показать идентификатор узла.

strided tendermint show-node-id

Операции с кошельком

Список кошельков.

strided keys list

Восстановить кошелек.

strided keys add $WALLET --recover

Удалить кошелек.

strided keys delete $WALLET

Получить баланс кошелька.

strided query bank balances $STRIDE_WALLET_ADDRESS

Перевод средств.

strided tx bank send $STRIDE_WALLET_ADDRESS <TO_STRIDE_WALLET_ADDRESS> 10000000ustrd

Голосование

strided tx gov vote 1 yes --from $WALLET --chain-id=$STRIDE_CHAIN_ID

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

Делегировать ставку.

strided tx staking delegate $STRIDE_VALOPER_ADDRESS 10000000ustrd --from=$WALLET --chain-id=$STRIDE_CHAIN_ID --gas=auto

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

strided tx staking redelegate <srcValidatorAddress> <destValidatorAddress> 10000000ustrd --from=$WALLET --chain-id=$STRIDE_CHAIN_ID --gas=auto

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

strided tx distribution withdraw-all-rewards --from=$WALLET --chain-id=$STRIDE_CHAIN_ID --gas=auto

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

strided tx distribution withdraw-rewards $STRIDE_VALOPER_ADDRESS --from=$WALLET --commission --chain-id=$STRIDE_CHAIN_ID

Управление валидатором

Изменить валидатор.

strided tx staking edit-validator \
  --moniker=$NODENAME \
  --identity=<your_keybase_id> \
  --website="<your_website>" \
  --details="<your_validator_description>" \
  --chain-id=$STRIDE_CHAIN_ID \
  --from=$WALLET

Разблокировать валидатор.

strided tx slashing unjail \
  --broadcast-mode=block \
  --from=$WALLET \
  --chain-id=$STRIDE_CHAIN_ID \
  --gas=auto

Удаление ноды

Эта команда полностью удалит узел с сервера. Используйте на свой риск!

sudo systemctl stop strided
sudo systemctl disable strided
sudo rm /etc/systemd/system/stride* -rf
sudo rm $(which strided) -rf
sudo rm $HOME/.stride* -rf
sudo rm $HOME/stride -rf
sed -i '/STRIDE_/d' ~/.bash_profile

Подписывайтесь на наш Telegram канал, где мы пишем о новых интересных проектах, которые только начинают свой путь, и помогаем им развиваться вместе с Вами.


UNITED CRYPTO MEDIA