FAQ: Hermes v1 #2472
Unanswered
AlianBenabdallah
asked this question in
Q&A
FAQ: Hermes v1
#2472
Replies: 2 comments 1 reply
-
Can you use the default config.toml in production settings?Briefly, no. The default values in config.toml are not for production, they are just basic heuristics that work most of the time, but in production environments these config options for each chain will require some tuning (depending on the chain). Here are some examples of production configuration (Thanks to CryptoCrew Validators and Notional Labs), which might help: |
Beta Was this translation helpful? Give feedback.
1 reply
-
Moved to https://github.com/informalsystems/ibc-rs/wiki/FAQ---Hermes-v1. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hi Cosmonauts !
This discussion is dedicated to offering answers to frequently asked questions from users. Feel free to ask any question, share and contribute as well !
Can you run multiple Hermes instances concurrently ?
Multiple instances of Hermes can not access to the same wallet concurrently. They would need to coordinate their actions in order to broadcast transactions. If two instances of Hermes operate on the same chain, they need to access different wallets. If you want to run an instance for each channel between two chains, you will need a different pair of wallets for every instance.
What does the
refresh
client feature do?As part of the
mode.client
, Hermes has arefresh
feature.https://github.com/informalsystems/ibc-rs/blob/1d188187721051a34d20841c0146b8c16b5b413b/config.toml#L24
If this feature is enabled, then Hermes will periodically send a
UpdateClient
message to all clients that are active.What is an active client?
An active client is defined as a client that an open channel is using. For instance, consider two networks
ibc-0
andibc-1
. Suppose there are 3 clients that networkibc-1
is hosting foribc-0
: (1)07-tendermint-0
,07-tendermint-1
,07-tendermint-2
. Suppose there is a single channel open between the two networks:ibc-0 : channel-1
-ibc-1 : channel-2
, which is using client07-tendermint-2
onibc-1
. This means that the other two clients (07-tendermint-0
and07-tendermint-1
) are not in use by any open channel. Upon starting Hermes, those two clients are not considered active and Hermes will not periodically refresh them.The
chains.packet_filter
feature will affect which is the set of clients that Hermes considers to be active. If youdeny
a certain channel, then Hermes will not refresh the clients underlying that channel.Debug
To debug or understand if your instance of Hermes is correctly performing client refresh, there are 2 ways: inspect the Hermes logs, or inspect the workers.
1. inspect the logs
The line you want to look for is as follows:
This means that Hermes spawned the client worker for the client existing on chain
ibc-0
with identifier07-tendermint-0
, which is verifying headers of networkibc-1
.This log line appears only when Hermes starts-up.
2. inspect the Hermes relayer workers
This method triggers Hermes to dump the state of all its workers, which can then inspect in the logs. To trigger, send a
USR1
signal to the Hermes process. Documented here: https://hermes.informal.systems/help.html#inspecting-the-relayer-stateBeta Was this translation helpful? Give feedback.
All reactions