We will configure the relayer to work with the Axelar and Juno testnets in this example but all the steps would be the same for whichever networks you choose to relay on.
This example assumes you have the relayer binary built already.
Initialize the relayers config.
rly config init
Add chain config files for both the src and dst.
rly config add-chains [/path/to/chain/configs/]
Add a key, for each chain, if you don't have one.
rly keys add [chain-id] [key-name]
Alternatively, if you have a mnemonic you can restore your key.
rly keys restore [chain-id] [key-name] [mnemonic]
If you used a key-name
other than default in the previous steps remember to change the key
field for the respective chain in the config.yaml
file for the relayer.
Relaying does require your configured wallets contain some of the native tokens for the chains you are relaying against. You can check your balance with:
rly q bal [key-name]
allowlist
denylist
If you would like to create a new path between the chains you need to 'link' the two chains which creates clients, connections and channels between the two.
rly tx link axelarjuno
The optional use of the --override
flag will tell the relayer to not reuse existing clients, connections, or channels. This is useful if you are trying to test the handshake process in IBC to ensure client, connection and channel creation is working as intended.
rly tx link
from the previous section should technically reuse this existing path if you don't include the --override
flag, this method below just skips having to query for the client, connection and channel identifiers.rly paths add axelar-testnet juno-testnet axelarjuno --file [path/to/file.json]
Now that everything is configured (e.g. chains, keys, paths) we can start the relayer.
rly start axelarjuno