IBC Relayers

IBC リレーヤーを設定することで、Sunrise と IRIS の Blockchain 間に新しい IBC 接続やチャンネルを作成できます。

Go リレーヤーでの設定(非推奨)

詳細はこちらをご覧ください。

まず、Goをインストールしてください。

Rust 製リレーヤー Hermes での設定(推奨)

詳細はこちらをご覧ください。

まず、Rustをインストールしてください。

次に、以下のコマンドを実行します:

sudo apt update && sudo apt upgrade -y
sudo apt install librust-openssl-dev build-essential git -y

cargo install ibc-relayer-cli --bin hermes --locked
hermes version

echo word1 ... word12or24 > ~/mnemonic.txt

アカウントの設定

まず、両方のチェーンで十分な資金を持つウォレットが必要です。 このチュートリアルでは、リレーしたいチェーンに既にウォレットが作成されており、それぞれのウォレットに資金が割り当てられていることを前提としています。

hermes keys add --key-name <ユーザー名> --chain <ibc-0> --mnemonic-file mnemonic.txt
hermes keys add --key-name <ユーザー名> --chain <ibc-1> --mnemonic-file mnemonic.txt

設定ファイル

hermes config autoコマンドを使用すると、chain-registryにあるチェーン用の設定ファイルを自動生成できます:

テストネットの場合は、各パラメータを自分で設定する必要があります。詳細はドキュメントを参照してください。

hermes config auto --output $HOME/.hermes/config.toml --chain <ibc-0>:<key-ibc-0> <ibc-1>:<key-ibc-1> --chain

新しいリレーパスの追加

以下の設定は、既に IBC チャンネルが確立されているメインネットでは必要ありません。新しい接続を開始する場合のみ、以下の手順に従ってください。

  • 接続の作成

まず、ibc-0の状態を追跡するibc-1上にクライアントを作成します。これには 07-tendermint-0 という識別子が割り当てられます:

hermes create client --host-chain <ibc-1> --reference-chain <ibc-0>
  • 接続の作成

両方のチェーンにクライアントを作成した後、それらの間に接続を確立する必要があります。両方のチェーンは、最初の接続の識別子として connection-0 を割り当てます:

hermes create connection --a-chain <ibc-0> --b-chain <ibc-1>

コマンドが正常に実行されると、connection IDが出力されるはずです。

  • チャンネル識別子

最後に、接続が確立された後、その上に新しいチャンネルを開くことができます。両方のチェーンは、最初のチャンネルの識別子として channel-0 を割り当てます:

hermes create channel --a-chain <ibc-0> --a-connection <connection-id> --a-port transfer --b-port transfer

コマンドが正常に実行されると、両方のチェーンのチャンネル ID が出力されるはずです。

これらを.hermes/config.tomlに追加します

[chains.packet_filter]
policy = "allow"
list = [[
    "transfer",
    "channel-0",
]]

設定が完了したら、以下のコマンドでリレーヤーを起動できます。

hermes start

デーモンの設定

再起動後に自動的に実行されるように、SystemD を設定することをお勧めします。

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

[Service]
User=ubuntu
ExecStart=/usr/local/bin/hermes start
Restart=on-failure
RestartSec=3
LimitNOFILE=1400000

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl enable hermes
sudo systemctl daemon-reload
sudo systemctl start hermes

デーモンの監視

journalctl -u hermes.service -f

最終更新