🌁IBC (HERMES)

Hermes is a Cosmos internetwork relay built on Rust. In simple words, it is a communication protocol between blockchains. The relay is a central element in the IBC network architecture and provides the extraction and collection of information from networks (blockchains) that cannot directly send messages to each other. Read more about Hermes here - https://hermes.informal.systems/index.html

Hermes is not the only implementation of cosmos relays, for example, there are also ibc-go and ts-relayer, but it is Hermes that has gained popularity and is the choice of most norunners This guide will set up a relayer between Teritori Osmosis and Evmos networks

Any relayer can be installed both on 1 server along with the necessary nodes, and on a separate server, while it is not even necessary to raise your own nodes, but it is enough to know the open RPCs of the worker nodes. But since the success of relaying is highly dependent on latency and I/O rate, it is currently recommended to serve hosts on the same machine as the relaying process.

Polkachu for example uses 40000/2000 for the relayers

In this example, we will use 1 server, on which we will install both the nodes themselves and Hermes First of all, we need:

  • install the two necessary nodes and fully synchronize them. In this example, install Teritori Osmosis and Evmos

  • minimum-gas-prices on Osmosis set to 0; on Teritori set to 0.0001

  • RPCs must be open and accessible by Hermes (how to do this can be found here)

  • indexing should be set to indexer = "kv" (if not changed, then skip this item)

  • check the availability of tokens on wallets. It's best to use the same mnemonic on all networks, don't use your relay addresses for anything else, because that could lead to mismatched account sequencing errors

Hermes installation

For UBUNTU 22.04 we can download the version

For UBUNTU 20.04, build from source above # hermes 1.0.0+ed4dd8c

Hermes customization

First, let's set the variables. RPC_ADDR is taken from config.toml - GRPC_ADDR is taken from app.toml. The value 127.0.0.1 is replaced by the IP address of the server if Hermes is installed separately from the nodes. The data below is just an example!

Chain_1 (Osmosis)

Chain_2 (Teritori)

Chain_3 (Evmos)

Create a config file This file will use the variables specified above

Checking if the configuration is correct

Adding wallets to Hermes

Create a service

Next, similar logs with transaction hashes should go, and the balance of wallets should begin to decrease. Transactions can also be checked in explorer. If there are such logs, then everything is set up and working.

Last updated