IBC Relayer
Last updated
Last updated
Running an IBC relayer for Nomic works mostly the same as with other Cosmos chains, but with a few caveats:
Currently, Nomic is only compatible with and does not support the ibc-go relayer.
Hermes must be configured with a custom proof spec. Please see the example configuration below.
Here's an example Hermes configuration relaying between a local Nomic and Osmosis node:
The proof_specs
and event_source
fields for Nomic are the main differences to note for those otherwise familiar with IBC relaying with Hermes.
Nomic features a gRPC server to support IBC relaying, which implements only the minimum set of gRPC methods required by Hermes. The server does not run by default, and must be run in a separate process with:
or:
Fees for IBC transactions are paid with nBTC (1 sat per tx). After you've configured your relayer, you'll need to fund its Nomic account (hermes keys list --chain nomic-stakenet-3
to see the address) with nBTC.
To ensure that nBTC is recoverable by the remote chain's validator set in the event of an Emergency Disbursal, run:
This command may be re-run anytime to refresh the operator keys of the remote chain's validator set. If an Emergency Disbursal occurs on Nomic, a portion of the Bitcoin reserves equal to the nBTC held in channels backed by the specified client will become spendable by 2/3+ of the voting power of that network's top 30 validators.
Below are a couple other notes to keep in mind, given Nomic's custom IBC implementation.
For channels supporting token transfers, the Nomic channel port must be transfer
. ICS 20 is the only application-layer standard currently supported by Nomic:
Typically, the main Hermes process (hermes start
) will properly relay packets between Nomic and its counterparty. However, if it seems like an event has been missed by Hermes, packets can be manually cleared (bidirectionally) with:
Please refer to the for more information.