IBC Relayers
Last updated
Last updated
Работа ретранслятора на Namada
В этом документе описывается работа ретранслятора для протокола межблокчейн-коммуникаций (IBC) с Namada. В этой документации рассматривается возможность создания соединений по протоколу IBC, а также настройка локальных экземпляров Namada для целей тестирования.
В этом документе описаны основные шаги по использованию IBC с Namada:
Описанное ниже предназначено для тех, кто хочет организовать ретрансляцию IBC-сообщений между двумя цепочками Namada. Разумеется, это можно сделать между любыми двумя IBC-совместимыми цепочками (например, цепочкой Cosmos). В этом случае для осуществления передачи пакетов необходимо, чтобы узел работал как на цепочке назначения, так и на цепочке источника. Ниже мы рассмотрим, во-первых, как включить такое соединение между двумя уже существующими цепочками с помощью Hermes, а во-вторых, как настроить два локальных экземпляра Namada или объединить два уже существующих экземпляра Namada для этой цели.
Hermes - это ретранслятор IBC, предназначенный для передачи IBC-пакетов между цепочками (инстансами). В Namada используется , поддерживающий инстансы Namada. Перед началом ретрансляции пакетов пользователю необходимо выполнить следующие действия по настройке и запуску Hermes.
Создать файл конфигурации Hermes
Создать IBC-клиент/соединение/канал между инстансами
Запустить Hermes
Одним из важнейших элементов головоломки является создание файла config.tom
l, описывающего, какие будут установлены соединения, за которые будет отвечать ретранслятор.
Если путь к файлу не указан, то по умолчанию считается ~/.hermes/config.toml
.
Путь к файлу конфигурации, который сохраняется в переменной $HERMES_CONFIG
, пригодится в дальнейшем.
Пользователю, осуществляющему ретрансляцию, необходимо сохранить некоторые переменные окружения. К ним относятся:
Перед проведением любых операций с IBC необходимо загрузить бинарный файл форка Hermes компании Heliax или собрать его из исходных файлов.
Например.
Проверьте двоичный код:
namada_wallet
и цепочку каталогов для хранения каждого кошелька ретранслятора wallet.tomlДля работы ретранслятора необходимо иметь каталог кошелька для хранения ключей ретранслятора. Это можно сделать, выполнив команду:
В каждой цепочке должна существовать учетная запись ретранслятора. На цепочке namada это можно сделать, выполнив команду:
Теперь необходимо скопировать этот файл кошелька в каталог namada_wallet
, который был создан выше, для каждой цепочки. Продолжая этот пример, первый кошелек можно скопировать, выполнив команду:
Теперь можно приступить к настройке клиента.
Команда "создать канал" (см. ниже) создает не только канал IBC, но и необходимое клиентское соединение IBC.
После завершения создания можно увидеть идентификаторы каналов. Например, в следующем тексте показано, что в цепи A namada-test.0a4c6786dbda39f786
создан канал с идентификатором 7
, а в цепи B namada-test.647287156defa8728c
создан канал с идентификатором 12
. Идентификаторы каналов понадобятся для передачи данных по IBC. Это означает, что для передачи данных из цепочки A в цепочку B необходимо указать в качестве идентификатора канала канал-7 (префикс channel-
всегда обязателен), а для передачи данных из цепочки B в цепочку A - канал-12.
После запуска Hermes осуществляет мониторинг экземпляров через узлы и ретранслирует пакеты в соответствии с отслеживаемыми событиями.
После синхронизации вы можете создать канал и запустить Hermes, как описано выше.
Скрипт setup-namada
создаст два экземпляра с одним узлом валидатора, скопирует необходимые файлы для Hermes и создаст счет для Hermes на каждом ledger. Кроме того, в каталоге hermes будет создан файл конфигурации Hermes config_for_namada.toml
.
Для начала необходимо экспортировать некоторые переменные окружения:
В этом случае пользователю не нужно ждать синхронизации. Если на счету ретранслятора на каждом экземпляре имеется достаточный баланс, пользователь может создать канал и сразу же запустить Hermes, как было описано выше. Идентификаторы цепочек инстансов пользователь находит в конфигурационном файле config_for_namada.toml
. Можно выполнить команду grep "id" ${HERMES_CONFIG}
.
Файлы данных и конфигурации каждого узла находятся в папке hermes/data/namada-*/.namada.
Для того чтобы закрыть все ledger, настроенные скриптом, можно выполнить команду:
Пример конфигурационного файла приведен ниже. По сути, в конфигурационном файле для Namada вы меняете только идентификаторы цепочек, адреса RPC и имена ключей. Если у вас нет узлов, настройте их вручную или с помощью .
В Hermes CLI имеются команды для их создания. Перед созданием узел каждого экземпляра должен быть запущен по указанным rpc-адресам. Если у вас нет узлов, установите их вручную или с помощью .
Вы можете загрузить последний бинарный релиз с, выбрав соответствующую архитектуру.
В результате будет сгенерирован ключ для учетной записи ретранслятора. Ключ будет храниться в файле wallet.toml
, который находится в , в папке chain-id
. Например, если chain-id - namada-test.0a4c6786dbda39f786
, то wallet.toml
будет находиться в каталоге $HOME/.local/share/namada/namada-test.0a4c6786dbda39f786/wallet.toml
(на машине ubuntu, где base-dir
не был настроен должным образом).
Более подробную информацию о Hermes можно найти .
Появилась возможность .