An IBC (Inter-Blockchain Communication) relayer is an off-chain process responsible for relaying messages between two chains. It is a mandatory actor in the IBC network architecture. This is because blockchains are not passing messages directly to one another over the network. Instead, they create and store the data to be retrieved and used by a relayer to build the IBC messages and subsequently pass them to the destination chain via a dedicated channel.

<aside> โ„น๏ธ This page contains instructions on running a Hermes relayer, a Rust-based implementation. The other two popular but less preferred implementations are TS-based and go-based.

</aside>

โš™ Hardware Requirements

๐Ÿ‘จโ€๐Ÿญ Prerequisites

Before beginning, ensure you have a Nolus full node running in the background. You could relay on the same machine or connect to the Osmosis and Nolus full nodes via a network. You will need build-essential and git installed to follow these instructions.

๐Ÿงช Osmosis

Download the latest Osmosis binary. Check out https://docs.osmosis.zone/networks/join-testnet for a detailed setup guideline.

๐ŸŒ‰ Hermes

1. Install Rust Dependencies

Since we are relying on a Rust-based implementation, we would need to install some Rust dependencies first:

curl --proto '=https' --tlsv1.2 -sSf <https://sh.rustup.rs> | sh
source "$HOME/.cargo/env"
sudo apt-get install pkg-config libssl-dev
sudo apt install librust-openssl-dev build-essential git

2. Configure Hermes

Create the directory where you'll place the binary, clone the hermes source repository and build it using the latest release: