Created
September 12, 2021 06:16
-
-
Save lenox11/e23bd8396f4d609e41adf82fe4e9f7f7 to your computer and use it in GitHub Desktop.
IBC в Cosmos SDK. Crypto - KiChain
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Для реализации трансляции транзакций между блокчейнами на базе Cosmos SDK нам понадобиться поднять IBC релеера. | |
Чтобы выполнить задание и не поднимать дополнительный сервер, будем использовать существующий сервер с KiCahin и установим на него клиент от Crypto.com (далее CRO). | |
Будем пересылать транзакции между тестовыми сетями kichain-t-4 и testnet-croeseid-4 соответственно. | |
# Установка клиента CRO, для доступа к тестовой сети testnet-croeseid-4 | |
1. Скачиваем клиент CRO и делаем его доступным для вызова из любого места | |
curl wget https://github.com/crypto-org-chain/chain-main/releases/download/v3.1.1-croeseid/chain-main_3.1.1-croeseid_Linux_x86_64.tar.gz | |
mkdir croeseid | |
tar -C croeseid -zxvf chain-main_3.1.1-croeseid_Linux_x86_64.tar.gz | |
cd croeseid/bin | |
sudo cp chain-maind /usr/local/bin/ | |
cd | |
2. Создаём кошелёк, попутно сохранив mnemominc который будет выведен на экран в результате выполнения команды создания | |
chain-maind keys add cro_wallet # где cro_wallet - любое имя для вашего кошелька | |
3. После создания получаем адрес кошелька | |
chain-maind keys show cro_wallet -a # где cro_wallet - любое имя для вашего кошелька | |
4. Запрашиваем токены из крана | |
https://crypto.org/faucet | |
5. После запроса токенов на предыдущем шаге, проверяем их поступления на кошелек | |
chain-maind q bank balances cro_wallet --node https://testnet-croeseid-4.crypto.org:26657 # где cro_wallet - любое имя для вашего кошелька | |
# Установка IBC релеера для трансялции транзакций между блокчейнами | |
1. Скачиваем с репозитория и устанавливаем IBC релеер | |
git clone https://github.com/cosmos/relayer.git | |
cd relayer | |
make install | |
cd | |
2. Инициализируем IBC релеер | |
rly config init | |
3. Создаём папку конфигураций IBC релеера | |
mkdir rly_config | |
cd rly_config | |
4. Создаём конфигурацию для используемых сетей: | |
KiСhain | |
nano kichain-t-4.json | |
И вставляем туда следующий текст | |
{ | |
"chain-id": "kichain-t-4", | |
"rpc-addr": "http://127.0.0.1:26657", | |
"account-prefix": "tki", | |
"gas-adjustment": 1.5, | |
"gas-prices": "0.025utki", | |
"trusting-period": "48h" | |
} | |
Такая же процедура и для CRO | |
Croeseid | |
nano testnet-croeseid-4.json | |
{ | |
"chain-id": "testnet-croeseid-4", | |
"rpc-addr": "https://testnet-croeseid-4.crypto.org:26657", | |
"account-prefix": "tcro", | |
"gas-adjustment": 1.5, | |
"gas-prices": "0.025basetcro", | |
"trusting-period": "48h" | |
} | |
5. Добавляем предварительно прописанные настройки в конфигурационный файл IBC релеера | |
rly chains add -f kichain-t-4.json | |
rly chains add -f testnet-croeseid-4.json | |
cd | |
6. Добавляем в IBC релеер кошельки в обеих сетях (рекомендуется для этого создать отдельные кошельки). Не забудьте сохранить сид-фразы и адреса | |
rly keys add kichain-t-4 kichain_rly # сохраняем mnemonic | |
rly keys add cygnusx-osmo-1 cro_rly # сохраняем mnemonic | |
7. Добавляем созданные кошельки в конфигурацию IBC релеера | |
rly chains edit kichain-t-4 key kichain_rly | |
rly chains edit cygnusx-osmo-1 key cro_rly | |
8. Обновлеяем в настройках IBC релеера значения тайм-аут, чтобы он спевал обрабатывать транзакции | |
nano ~/.relayer/config/config.yaml | |
Значние в строке | |
timeout: 10s | |
Заменяем на | |
timeout: 3m | |
8. Пополняем кошельки IBC релеера. В данном примере пополнение равно 10 монетам. | |
kid tx bank send ИМЯ_КОШЕЛЬКА_КИЧЕЙН АДРЕС_КОШЕЛЬКА_kichain_rly 10000000utki --chain-id kichain-t-4 | |
chain-maind tx bank send ИМЯ_КОШЕЛЬКА_КРО АДРЕС_КОШЕЛЬКА_cro_rly 10000000basetcro --node https://testnet-croeseid-4.crypto.org:26657/ --chain-id testnet-croeseid-4 | |
9. Проверяем баланс | |
rly q balance kichain-t-4 | |
rly q balance testnet-croeseid-4 | |
10. Если токены пришли, то инициализируем клиенты для обеих сетей следующими командами | |
rly light init kichain-t-4 -f | |
rly light init testnet-croeseid-4 -f | |
11. Настраиваем тунель с сетью Croeseid. | |
nano ~/.relayer/config/config.yaml | |
Добавляем в конфигурацию релеера следующий блок | |
paths: | |
transfer: | |
src: | |
chain-id: kichain-t-4 | |
port-id: transfer | |
order: UNORDERED | |
version: ics20-1 | |
dst: | |
chain-id: testnet-croeseid-4 | |
port-id: transfer | |
order: UNORDERED | |
version: ics20-1 | |
strategy: | |
type: naive | |
Сохраняем и выхоодим | |
12. Проверяем что тонель успешно создан | |
rly chains list | |
Должны стоять все галочки, если нет, проверяем все выше, дальше не идем | |
root@Ubuntu-2004-focal-64-minimal:~# rly chains list | |
0: kichain-t-4 -> key(✔) bal(✔) light(✔) path(✔) | |
1: testnet-croeseid-4 -> key(✔) bal(✔) light(✔) path(✔) | |
13. Открываем каналы | |
rly tx link transfer | |
# ждем Channel Created | |
Если будут ошибки, то нужно повторно выполнить | |
# Нужно перезапустить клиенты и линки | |
rly light init kichain-t-4 -f | |
rly light init testnet-croeseid-4 -f | |
rly tx link transfer | |
Должен быть следующий результат | |
root@Ubuntu-2004-focal-64-minimal:~# rly tx link transfer | |
I[2021-09-12|06:25:07.635] ★ Clients created: client(07-tendermint-11) on chain[kichain-t-4] and client(07-tendermint-127) on chain[testnet-croeseid-4] | |
I[2021-09-12|06:25:08.993] ★ Connection created: [kichain-t-4]client{07-tendermint-11}conn{connection-275} -> [testnet-croeseid-4]client{07-tendermint-127}conn{connection-98} | |
I[2021-09-12|06:25:10.370] ★ Channel created: [kichain-t-4]chan{channel-227}port{transfer} -> [testnet-croeseid-4]chan{channel-88}port{transfer} | |
14. Отправка токенов через IBC релеер, трансляция между блокчейнами | |
# отправка из KiChain в Cro | |
rly tx transfer kichain-t-4 testnet-croeseid-4 500000utki tcro103j3p5qvf79lwea3ahmeg397kp2f80gd5waerg --path transfer | |
https://api-challenge.blockchain.ki/txs/907CEC853D063F78BFC74F8B0C180CA856637B0ABFA137675EDD8EDB66E28A6D | |
https://api-challenge.blockchain.ki/txs/6494776CC868FF862382C60BB5196281D602337D2346438664466F8A19BFB4EB | |
https://api-challenge.blockchain.ki/txs/DA4A13A47C55BB027F037BE96BC44E11F58B3889C8EB155B4334D4BA39211397 | |
https://api-challenge.blockchain.ki/txs/EC28A3889F304CD276354E510D03F3B3E71F85467C3ED7C0E1B07F3DDEE5EC9B | |
https://api-challenge.blockchain.ki/txs/DCB7D398417CCA018684DB0551241E6400BEC80FC66C1F57C1E3F89BDD85BC30 | |
# отправка из Cro в KiChain | |
rly tx transfer testnet-croeseid-4 kichain-t-4 100000000basetcro tki1wunkfq9rhr7uah7px7tcgdln8g0p7ezeptm3u4 --path transfer | |
https://crypto.org/explorer/croeseid4/tx/BE8EEEE80D08D0AAB3B99A9C75A64B965882F70D2DCE9D942C706F9D37443E0E | |
https://crypto.org/explorer/croeseid4/tx/46C3A1D7399C4061D7FA82892B813F7224285875B91D707FF15320E2AD0E324F | |
https://crypto.org/explorer/croeseid4/tx/B5FEF7496563FDCAEBAD24CD5161C72E56C84184D330FE5AEF18BA9C0A3D4489 | |
https://crypto.org/explorer/croeseid4/tx/33E2937ECAC1803D2418B4EE69222B27EC7B1CEC1AAA03B5D8D18BEDCBE36408 | |
https://crypto.org/explorer/croeseid4/tx/CB3078B799BBD094CC5D4A7AF783501F5652D0DCAD301C2E869EE0EBD72D190C | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment