More checks as part of config semantic validation #1388
Labels
A: low-priority
Admin: low priority / non urgent issue, expect longer wait time for PR reviews
I: dependencies
Internal: related to dependencies
I: logic
Internal: related to the relaying logic
I: rpc
Internal: related to (g)RPC
Milestone
Crate
relayer, relayer-cli
Summary
Warn users if full nodes/ chains are not properly configured in the following cases:
historical_entries == 0
Problem Definition
historical_entries > 0
. This is to make sure that local header information is stored in the IBC state and therefore client proofs that are part of the connection handshake messages can be verified.Currently, if this is not the case, connection handshake fails with the following error:
The error is ambiguous and makes debugging hard as the same error can occur if the last client update on the source chain happened more than
historical_entries
before.Currently, if indexing is not enabled hermes will rightly not relay for old events but debugging for the root cause is difficult
Proposal
Add the following to
hermes health-check
historical_entries > 0
. As an example, there is a gRPC query forunbonding_period()
that already gets the staking parameters here:https://github.com/informalsystems/ibc-rs/blob/4eb28ffcdd4d2217ff95635e0774899b1a459913/relayer/src/chain/cosmos.rs#L159
Just extract the
historical_entries
as part of a new query.status()
RPC endpoint returns this (buried 2 level deep innode_info.other.tx_index
). Not sure if there is a way to retrieve the pruning parameters and check for aggressive pruning (likepruning = "everything"
or smallpruning-keep-recent
).Acceptance Criteria
Warn user on
hermes start
orhermes health-check
in the cases above.For 1. the relayer should not even attempt relaying for the chain.
For Admin Use
The text was updated successfully, but these errors were encountered: