Relayer IBC
Menyampaikan Namada
Dokumen ini menjelaskan cara mengoperasikan relayer untuk protokol Komunikasi Antar-Blockchain (IBC) dengan Namada. Dokumentasi ini mencakup kemampuan membuat koneksi melalui IBC serta menyiapkan instance lokal Namada untuk tujuan pengujian.
Dokumen ini mencakup langkah-langkah penting untuk menggunakan IBC dengan Namada:
Di bawah ini ditujukan bagi mereka yang ingin menyampaikan transfer pesan IBC antara dua rantai Namada. Tentu saja terdapat kemampuan untuk melakukan hal ini antara dua rantai yang kompatibel dengan IBC (seperti rantai Cosmos). Dalam hal ini, node perlu berjalan di rantai tujuan dan sumber untuk melakukan transfer paket apa pun. Di bawah ini, pertama-tama kami membahas cara mengaktifkan koneksi antara dua rantai yang sudah ada sebelumnya oleh Hermes, dan kedua, menyiapkan dua instans lokal Namada atau menggabungkan dua instans Namada yang sudah ada untuk tujuan ini.
Siapkan Hermes
Hermes adalah relayer IBC untuk menyampaikan paket IBC antar rantai (instance). Namada menggunakan fork Hermes yang mendukung instance Namada(terbuka di tab baru). Sebelum relai paket, pengguna memerlukan langkah-langkah berikut untuk mengkonfigurasi dan memulai Hermes.
Buat file konfigurasi Hermes
Buat klien/koneksi/saluran IBC antar instans
Jalankan Hermes
Buat file konfigurasi Hermes
Salah satu bagian penting dari teka-teki ini adalah membuat config.toml
file yang menjelaskan koneksi apa yang akan diatur dan menjadi tanggung jawab relayer.
export HERMES_CONFIG="<choose path for hermes config>/config.toml"
touch $HERMES_CONFIG
Jika Anda tidak menentukan jalur file, ~/.hermes/config.toml
itu dibaca sebagai default.
Anda dapat menemukan contoh file konfigurasi di bawah ini. Intinya, Anda hanya mengubah ID rantai, alamat RPC, dan nama kunci di file konfigurasi untuk Namada. Jika Anda tidak memiliki node, silakan atur node secara manual atau melalui skrip kami .
Jalur ke file konfigurasi yang disimpan dalam variabel $HERMES_CONFIG
akan berguna nantinya.
Buat klien/koneksi/saluran IBC antar instans
Hermes CLI memiliki perintah untuk membuatnya. Sebelum pembuatan, sebuah node dari setiap instance harus berjalan pada alamat rpc yang ditentukan. Jika Anda tidak memiliki node, silakan atur node secara manual atau melalui skrip kami .
Ekspor variabel lingkungan
Pengguna yang menyampaikan perlu menyimpan variabel lingkungan tertentu. Ini adalah:
export CHAIN_A_ID="<replace-with-chain-a-id>"
export CHAIN_B_ID="<replace-with-chain-b-id>"
export HERMES_CONFIG="<replace-with-hermes-config-path>"
Instal Hermes
Sebelum melakukan operasi IBC apa pun, seseorang harus mengunduh biner Hermes fork Heliax atau membuatnya dari sumber.
Dari biner
Seseorang dapat mengunduh rilis biner terbaru dari halaman rilis kami(terbuka di tab baru)dengan memilih arsitektur yang sesuai.
Misalnya
export TAG="v1.6.0-namada-beta3"
export ARCH="x86_64-unknown-linux-gnu" # or "aarch64-apple-darwin"
curl -Lo /tmp/hermes.tar.gz https://github.com/heliaxdev/hermes/releases/download/${TAG}/hermes-${TAG}-${ARCH}.tar.gz
tar -xvzf /tmp/hermes.tar.gz -C /usr/local/bin
Dari sumber
export TAG="v1.6.0-namada-beta3"
git clone https://github.com/heliaxdev/hermes.git
git checkout $TAG
cd hermes
cargo build --release --bin hermes
export HERMES=$(pwd) # if needed
Periksa biner:
./target/release/hermes --version #or sudo cp ./target/release/hermes /usr/local/bin/
Menyiapkan relai
Buat namada_wallet
direktori dan direktori rantai untuk menampung setiap relayer wallet.toml
namada_wallet
direktori dan direktori rantai untuk menampung setiap relayer wallet.tomlAgar relayer dapat berfungsi, ia memerlukan direktori dompet untuk menyimpan kunci relayer. Hal ini dapat dilakukan dengan berlari
# in the Hermes folder
mkdir namada_wallet
mkdir -p ~/.hermes/namada_wallet/$CHAIN_A_ID
mkdir -p ~/.hermes/namada_wallet/$CHAIN_B_ID
Buat akun relayer
Di setiap rantai pasti ada akunnya relayer
. Pada rantai namada, hal ini dapat dilakukan dengan berlari
namadaw key gen --alias relayer
Ini akan menghasilkan kunci untuk akun relayer. Kuncinya akan disimpan di wallet.toml
direktori dasar node, di dalam chain-id
folder. Misalnya, jika chain-id
is namada-test.0a4c6786dbda39f786
, maka wallet.toml
akan ditemukan di $HOME/.local/share/namada/namada-test.0a4c6786dbda39f786/wallet.toml
(pada mesin ubuntu yang base-dir
belum dikonfigurasi dengan benar).
Sekarang penting untuk menyalin file dompet ini ke namada_wallet
direktori yang dibuat di atas, untuk setiap rantai. Melanjutkan contoh ini, dompet pertama dapat disalin dengan menjalankan:
cp $HOME/.local/share/namada/$CHAIN_A_ID/wallet.toml ~/.hermes/namada_wallet/$CHAIN_A_ID/wallet.toml# Make sure this is done for both wallets on each chain!
Sekarang dimungkinkan untuk mengatur klien.
Buat saluran IBC
Perintah "buat saluran" (di bawah) tidak hanya membuat saluran IBC tetapi juga koneksi klien IBC yang diperlukan.
hermes --config $HERMES_CONFIG \
create channel \
--a-chain $CHAIN_A_ID \
--b-chain $CHAIN_B_ID \
--a-port transfer \
--b-port transfer \
--new-client-connection --yes
Ketika pembuatan telah selesai, Anda dapat melihat ID saluran. Misalnya, teks berikut menunjukkan bahwa saluran dengan ID 7
telah dibuat di Rantai A namada-test.0a4c6786dbda39f786
, dan saluran dengan ID 12
telah dibuat di Rantai namada-test.647287156defa8728c
B. Anda memerlukan ID saluran untuk transfer melalui IBC. Artinya Anda harus menentukan channel-7
sebagai ID saluran (Awalan channel-
selalu diperlukan) untuk transfer dari Rantai A ke Rantai B. Selain itu, Anda harus menentukan channel-12
sebagai ID saluran untuk transfer dari Rantai B ke Rantai A.
SUCCESS Channel {
ordering: Unordered,
a_side: ChannelSide {
chain: BaseChainHandle {
chain_id: ChainId {
id: "namada-test.0a4c6786dbda39f786",
version: 0,
},
runtime_sender: Sender { .. },
},
client_id: ClientId(
"07-tendermint-0",
),
connection_id: ConnectionId(
"connection-3",
),
port_id: PortId(
"transfer",
),
channel_id: Some(
ChannelId(
"channel-7",
),
),
version: None,
},
b_side: ChannelSide {
chain: BaseChainHandle {
chain_id: ChainId {
id: "namada-test.647287156defa8728c",
version: 0,
},
runtime_sender: Sender { .. },
},
client_id: ClientId(
"07-tendermint-1",
),
connection_id: ConnectionId(
"connection-2",
),
port_id: PortId(
"transfer",
),
channel_id: Some(
ChannelId(
"channel-12",
),
),
version: None,
},
connection_delay: 0ns,
}
Mulai relayer
Setelah Anda menjalankan Hermes, Hermes memonitor instance melalui node dan menyampaikan paket berdasarkan kejadian yang dipantau.
hermes --config $HERMES_CONFIG start
Anda dapat melihat lebih detail tentang Hermes di dokumen resmi(terbuka di tab baru).
Setelah sinkronisasi, Anda dapat membuat saluran dan memulai Hermes seperti dijelaskan di atas .
# create a channel
hermes --config $HERMES_CONFIG \
create channel \
--a-chain $CHAIN_A_ID \
--b-chain $CHAIN_B_ID \
--a-port transfer \
--b-port transfer \
--new-client-connection --yes
Mentransfer aset melalui IBC
Sekarang dimungkinkan untuk mentransfer aset antara kedua rantai tersebut.
Siapkan instance Namada lokal menggunakan skrip hermes
Skrip setup-namada
akan menyiapkan dua instance dengan satu node validator, menyalin file yang diperlukan untuk Hermes, dan membuat akun untuk Hermes di setiap buku besar. Juga, itu akan membuat file konfigurasi Hermes config_for_namada.toml
di hermes
direktori.
Pertama, Anda perlu mengekspor beberapa variabel lingkungan:
export NAMADA_DIR="<path-to-namada-source-directory>"
export TAG="v1.6.0-namada-beta3"
git clone https://github.com/heliaxdev/hermes.git
git checkout $TAG # The branch is the same as our Hermes
cd hermes
./scripts/setup-namada $NAMADA_DIR $CHAIN_ID_A $CHAIN_ID_B
Dalam hal ini, pengguna tidak perlu menunggu sinkronisasi. Jika akun relayer di setiap instance memiliki saldo yang cukup, pengguna dapat membuat saluran dan segera memulai Hermes seperti dijelaskan di atas . Pengguna menemukan ID rantai instance ini di file konfigurasi config_for_namada.toml
. Seseorang bisa lari grep "id" ${HERMES_CONFIG}
.
# create a channel
hermes --config $HERMES_CONFIG \
create channel \
--a-chain $CHAIN_A_ID \
--b-chain $CHAIN_B_ID \
--a-port transfer \
--b-port transfer \
--new-client-connection --yes
# Run Hermes
hermes --config $HERMES_CONFIG start
Setiap data node dan file konfigurasi berada dalam format hermes/data/namada-*/.namada
.
Untuk menutup pengaturan buku besar apa pun dengan skrip, seseorang dapat menjalankannya
killall namadan
Last updated