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
Загрузите и соберите двоичные файлы
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 и перейдите по ссылке:
Чтобы запросить грант сборщика:
$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 канал, где мы пишем о новых интересных проектах, которые только начинают свой путь, и помогаем им развиваться вместе с Вами.