-
Notifications
You must be signed in to change notification settings - Fork 323
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
More checks as part of config semantic validation #1388
Comments
Regarding point 2 tx indexing. I recall one of the original problems that motivated us to add the health checkup mechanism was to detect and warn if tx indexing is disabled. The problem in issue #697 was actually because tx indexing was not enabled. The testing instructions in PR #1145 should cover this case, see "Internal error: transaction indexing is disabled" in that PR. The way we currently check for tx indexing is to call into the If tx indexing is disabled, calling into this endpoint will result into an error "Internal error: transaction indexing is disabled (code: -32603)" and the overall health check fails. |
Ah, thanks for the reminder. I'm not sure we need both. Just pick one, my preferrence is |
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: