Relaying The Message: A Deep Dive Into IBC Relayer Operations

Relayers’ Role in IBC

Who are relayer operators?

Relayer Software

  • Hermes relayer. Developed by Informal Systems in Rust
  • Golang relayer. Developed by Strangelove Ventures in Go
  • Typescript relayer. Developed by Confio in Typescript
  • It should be stressed that not every relayer operator needs to initialize their own channel when starting to relay a certain path.This is a quite common misconception when starting to relay.
    As of today, IBC token transfers via ICS-20 are the main IBC application, these require only one canonical channel to be opened between chains. In fact, tokens sent over a different channel will be non-fungible as a result of the way IBC denoms work, which is to be avoided. Unless you are helping a chain set up IBC, there likely is a canonical channel already established. When in doubt, you can check Map of Zones, Mintscan or query channels with the relayer software to see if there is already a canonical channel. Recently, a new data schema for IBC data to the chain-registry was added and it will be expanded in the near future. This will allow for definitive info on the canonical channels.
  • Note: As more chains implement Interchain Accounts (which currently do require a separate channel for each Interchain account), it will become more commonplace for relayer operators to set up a channel, but it is still recommended to do some research first and see if there’s a canonical channel established.
  • Relaying packets often requires that the relayer pays fees when submitting messages (more on this later). Keep in mind that you will need to have a wallet set up with funds available to successfully relay packets. This is true in local testing setups (you can easily grant addresses funds through the config files), on public testnets (look to get testnet tokens via a faucet) and on mainnet.

Technical Setup

Cost and Scaling

  • Team delegation: team delegation is a way for relayers to indirectly benefit from the relaying services they offer, given that most relayer operators are also validators for the chains they relay for.
  • Direct funding: Chains directly fund the relayers’ wallets
  • Relayer (community) pools: a portion of community funds are pooled and distributed among relayer operators. From anecdotal evidence, this is not always easy to execute in a fair way.
  • Fee grant: Cosmos SDK chains have the fee grant functionality that allows an account to pay the fees for another account. This way, a chain operated account can pay the fees for the relayers, for example taking inspiration from this config file used by the Omniflix team. However, this functionality only covers relaying costs and does not provide incentives on top.
  • Relayer fee middleware (ICS-29): the fee middleware allows end-users or chains to provide fees for relayers per individual packet, please refer to this blog post for more information on how this works.

Coverage Map

Acknowledgements

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store