Не актуально
August 21, 2022

Выполнение Task от Stride

6 TASK. Выполнить stake, redeem и claim flow (включая 6-ти часовой unbonding)

6.1 Stake. укажите свой кошелек в <WALLET>

strided tx stakeibc liquid-stake 1000 uatom --from <WALLET> --chain-id STRIDE-TESTNET-4

6.2 Reedem.

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

strided tx stakeibc redeem-stake 1000 GAIA <COSMOS_ADDRESS_YOU> --chain-id STRIDE-TESTNET-4 --from <WALLET>

Заходим в https://poolparty.stride.zone/GAIA и проверяем :

6.3 Claim.

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

strided q records list-user-redemption-record --limit 10000 --output json | jq '.UserRedemptionRecord | map(select(.sender == "stride15rdc0pzpr4x88wee3tjlu6f2alknh79ph03y2t"))'
[
  {
    "id": "GAIA.280.stride15rdc0pzpr4x88wee3tjlu6f2alknh79ph03y2t",
    "sender": "stride15rdc0pzpr4x88wee3tjlu6f2alknh79ph03y2t",
    "receiver": "cosmos15rdc0pzpr4x88wee3tjlu6f2alknh79p5y3c78",
    "amount": "1504870",
    "denom": "uatom",
    "hostZoneId": "GAIA",
    "epochNumber": "280",
    "isClaimable": true
  }
]

Если значение "isClaimable": true , то вы можете сделать Claim токенов командой:

strided tx stakeibc claim-undelegated-tokens GAIA 280 stride15rdc0pzpr4x88wee3tjlu6f2alknh79ph03y2t --chain-id STRIDE-TESTNET-4 --from <WALLET> --yes

Отправьте хэш транзакции по ссылке https://docs.google.com/forms/d/e/1FAIpQLSeoZEC5kd89KCQSJjn5Zpf-NQPX-Gc8ERjTIChK1BEbiVfMVQ/viewform

7 TASK. Запускайте ретранслятор на каналах ICA, указанных в #validator-announcements, в течение как минимум 7 дней. Между тестовыми сетями Stride и Gaia.

Выполнение данного задания представлено в : https://teletype.in/@garfield1/i9KgMh9EAg4

8 Task. Настройка GO Relayer v2 между Stride и GAIA

Перед настройкой ретранслятора вам необходимо убедиться, что у вас уже есть:

1.Полностью синхронизированные узлы RPC для каждого проекта Cosmos, к которому вы хотите подключиться

2.Ваши кошельки должны быть пополнены через кран

3. Точки RPC должны быть открыты и доступны из экземпляра ретранслятора (indexer=kv)

8.1 Настройка

# STRIDE
sed -i -e "s/^indexer *=.*/indexer = \"kv\"/" $HOME/.stride/config/config.toml
# GAIA
sed -i -e "s/^indexer *=.*/indexer = \"kv\"/" $HOME/.gaia/config/config.toml  

RPC конфигурация нод проектов, находящихся вconfig.toml file:

# STRIDE
laddr = "tcp://0.0.0.0:26657" in $HOME/.stride/config/config.toml
# GAIA
laddr = "tcp://0.0.0.0:23657" in $HOME/.gaia/config/config.toml  
RELAYER_ID='kjnodes|#8455'            # используйте свой ник из Discorda
STRIDE_RPC_ADDR='127.0.0.1:26657'    # ресерчьте config.toml по слову laddr
GAIA_RPC_ADDR='127.0.0.1:23657       # ресерчьте config.toml по слову laddr
### обновляемся
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.3"
  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

8.2 Загрузка и сборка бинарника и инициализация relayer go v2

git clone https://github.com/cosmos/relayer.git
cd relayer && git checkout v2.0.0-rc4
make install
rly config init --memo $RELAYER_ID
sudo mkdir $HOME/.relayer/chains
sudo mkdir $HOME/.relayer/paths

8.3 Создаем сервисные файлы для каждой цепочки

### Создаем конфиг файл для STRIDE
sudo tee $HOME/.relayer/chains/stride.json > /dev/null <<EOF
{
  "type": "cosmos",
  "value": {
    "key": "wallet",
    "chain-id": "STRIDE-TESTNET-4",
    "rpc-addr": "http://${STRIDE_RPC_ADDR}",
    "account-prefix": "stride",
    "keyring-backend": "test",
    "gas-adjustment": 1.2,
    "gas-prices": "0.000ustrd",
    "gas": 200000,
    "timeout": "20s",
    "trusting-period": "8h",
    "output-format": "json",
    "sign-mode": "direct"
  }
}
EOF
### Создаем конфиг файл для GAIA
sudo tee $HOME/.relayer/chains/gaia.json > /dev/null <<EOF
{
  "type": "cosmos",
  "value": {
    "key": "wallet",
    "chain-id": "GAIA",
    "rpc-addr": "http://${GAIA_RPC_ADDR}",
    "account-prefix": "cosmos",
    "keyring-backend": "test",
    "gas-adjustment": 1.2,
    "gas-prices": "0.000uatom",
    "gas": 200000,
    "timeout": "20s",
    "trusting-period": "8h",
    "output-format": "json",
    "sign-mode": "direct"
  }
}
EOF
### Загрузка каждого конфиг файла в рестранслятор
rly chains add --file=$HOME/.relayer/chains/stride.json stride
rly chains add --file=$HOME/.relayer/chains/gaia.json gaia
### check
rly chains list

Ожидаем:

### Загружаем кошельки в рестранслятор 
rly keys restore stride wallet "вставляем мнемонику кошелька STRIDE"
rly keys restore gaia wallet "вставляем мнемонику кошелька GAIA"
### Проверка, должны на выходе появится ваши суммы на кошельках
rly q balance stride
rly q balance gaia
Создаем json файл с путем STRIDE-TESTNET-4 и GAIA
sudo tee $HOME/.relayer/paths/stride-gaia.json > /dev/null <<EOF
{
  "src": {
    "chain-id": "STRIDE-TESTNET-4",
    "client-id": "07-tendermint-0",
    "connection-id": "connection-0"
  },
  "dst": {
    "chain-id": "GAIA",
    "client-id": "07-tendermint-0",
    "connection-id": "connection-0"
  },
  "src-channel-filter": {
    "rule": "allowlist",
    "channel-list": ["channel-0", "channel-1", "channel-2", "channel-3", "channel-4"]
  }
}
EOF
### Добавляем этот путь в relayer
rly paths add STRIDE-TESTNET-4 GAIA stride-gaia --file $HOME/.relayer/paths/stride-gaia.json
### Проверка пути
rly paths list

Ожидаем:

### Создаем сервисный файл
sudo tee /etc/systemd/system/relayerd.service > /dev/null <<EOF
[Unit]
Description=GO Relayer v2 Service
After=network.target
[Service]
Type=simple
User=$USER
ExecStart=$(which rly) start stride-gaia -p events
Restart=on-failure
RestartSec=10
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF

8.5 Запуск

### Если до этого вы использовали relyer через hermes, то останавливаем его 
sudo systemctl stop hermesd
sudo systemctl disable hermesd
### Запускаем relayer go v2
sudo systemctl daemon-reload
sudo systemctl enable relayerd
sudo systemctl start relayerd
### наблюдаем за логами
journalctl -u relayerd -f -o cat

Форма о выполнении задания

Переходим в любой эксплорер, находим свой кошелек и ищем информацию о клиенте relayer go v2.

Форкаем репозиторий

Переходим в форканный репозиторий и добавляем файл (либо создаем новый) с путями, для каждого пути свой файл соответсвенно

relayer/configs/stride/chains/gaia.json
relayer/configs/stride/chains/stride.json
relayer/configs/stride/paths/stride-gaia.json

В форму отправляем хэш любой транзакции IBC relayer и ссылки на созданные файлы.

TASK9. Relay interchain queries using the new v2 go relayer

Установка и сборка двоичного файла

cd $HOME
git clone https://github.com/Stride-Labs/interchain-queries.git
cd interchain-queries
go build
sudo mv interchain-queries /usr/local/bin/icq

Создайте домашний каталог для icq и создайте файл конфигурации

Одной командой можете вставлять,но обратите внимание, что для каждой цепочки нужны свои значения RPC(которые находятся в config.toml и app.toml, соответственно) rpc-addr: и grpc-addr:

cd $HOME && mkdir .icq
sudo tee $HOME/.icq/config.yaml > /dev/null <<EOF
default_chain: stride-testnet
chains:
  gaia-testnet:
    key: wallet
    chain-id: GAIA
    rpc-addr: http://127.0.0.1:23657      
    grpc-addr: http://127.0.0.1:23090     
    account-prefix: cosmos
    keyring-backend: test
    gas-adjustment: 1.2
    gas-prices: 0.001uatom
    key-directory: /root/.icq/keys
    debug: false
    timeout: 20s
    block-timeout: ""
    output-format: json
    sign-mode: direct
  stride-testnet:
    key: wallet
    chain-id: STRIDE-TESTNET-4
    rpc-addr: http://127.0.0.1:26657      
    grpc-addr: http://127.0.0.1:9090    
    account-prefix: stride
    keyring-backend: test
    gas-adjustment: 1.2
    gas-prices: 0.001ustrd
    key-directory: /root/.icq/keys
    debug: false
    timeout: 20s
    block-timeout: ""
    output-format: json
    sign-mode: direct
cl: {}
EOF

9.3 Импортируем кошельки

Вам понадобятся мнемоники обоих проектов

icq keys restore --chain stride-testnet wallet
icq keys restore --chain gaia-testnet wallet

9.4 Создаем сервисный файл ICQ

sudo tee /etc/systemd/system/icqd.service > /dev/null <<EOF
[Unit]
Description=Interchain Query Service
After=network-online.target

[Service]
User=$USER
ExecStart=$(which icq) run --debug
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF

9.5 Старт сервиса

sudo systemctl daemon-reload
sudo systemctl enable icqd
sudo systemctl restart icqd

Вам придется подождать некоторое время, пока вы не увидите некоторые логи (5-15мин)

9.6 Проверка работы

journalctl -u icqd -f -o cat

После этого вы можете проверить свою транзакцию в эксплорере

Для подтверждения о выполнении данного задания понадобится повторить шаги из 8 задания по создания branch в github.

9 Task. Relay interchain-queries using the new GO v2 Relayer

9.1 Загрузка и формирование бинарника

cd $HOME
git clone https://github.com/Stride-Labs/interchain-queries.git
cd interchain-queries
go build
sudo mv interchain-queries /usr/local/bin/icq

9.2 Создайте домашний каталог для icq и создайте конфигурационный файл

Одной командой можете вставлять,но обратите внимание, что для каждой цепочки нужны свои значения RPC(которые находятся в config.toml и app.toml, соответственно) rpc-addr: и grpc-addr:

cd $HOME && mkdir .icq
sudo tee $HOME/.icq/config.yaml > /dev/null <<EOF
default_chain: stride-testnet
chains:
  gaia-testnet:
    key: wallet
    chain-id: GAIA
    rpc-addr: http://127.0.0.1:23657      
    grpc-addr: http://127.0.0.1:23090     
    account-prefix: cosmos
    keyring-backend: test
    gas-adjustment: 1.2
    gas-prices: 0.001uatom
    key-directory: /root/.icq/keys
    debug: false
    timeout: 20s
    block-timeout: ""
    output-format: json
    sign-mode: direct
  stride-testnet:
    key: wallet
    chain-id: STRIDE-TESTNET-4
    rpc-addr: http://127.0.0.1:16657      
    grpc-addr: http://127.0.0.1:16090     
    account-prefix: stride
    keyring-backend: test
    gas-adjustment: 1.2
    gas-prices: 0.001ustrd
    key-directory: /root/.icq/keys
    debug: false
    timeout: 20s
    block-timeout: ""
    output-format: json
    sign-mode: direct
cl: {}
EOF

9.3 Импортировать кошелек

icq keys restore --chain stride-testnet wallet
icq keys restore --chain gaia-testnet wallet

После вставьте мнемонику от соответствующего кошелька

9.4 Создание сервисника

sudo tee /etc/systemd/system/icqd.service > /dev/null <<EOF
[Unit]
Description=Interchain Query Service
After=network-online.target

[Service]
User=$USER
ExecStart=$(which icq) run --debug
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF

9.5 Запуск

sudo systemctl daemon-reload
sudo systemctl enable icqd
sudo systemctl restart icqd

Проверка

journalctl -u icqd -f -o cat

Ожидаем:

store/bank/key
height parsed from GetHeightFromMetadata= 0
Fetching client update for height height 176886
store/bank/key
height parsed from GetHeightFromMetadata= 0
Fetching client update for height height 176886
Requerying lightblock
Requerying lightblock
Requerying lightblock
ICQ RELAYER | query.Height= 0
ICQ RELAYER | res.Height= 176885
Requerying lightblock
ICQ RELAYER | query.Height= 0
ICQ RELAYER | res.Height= 176885
Send batch of 4 messages
1 ClientUpdate message
1 SubmitResponse message
1 ClientUpdate message
1 SubmitResponse message
Sent batch of 2 (deduplicated) messages

Далее форкаем этот репозиторий и ищем хэш транзакций в эксплорере:

И отправляем в форму