You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As it was discovered in #3112, hermes does not properly support ICS Consumer chains. We fixed this temporarily in #3113
However the fix is not ideal as it requires relayer operator knowledge of the correct unbonding_period of the consumer chain. It also does not address the health check for historical_entries parameter.
Currently hermes uses the staking parameter query endpoint to get some parameters required for IBC client creation and chain health check.
ICS Consumer chains do not have an SDK staking module that can be queried in the same way as for sovereign chains. The relevant parameters for relaying are the ccvconsumer parameters in genesis which are derived from the governance proposal used to create the consumer chain in the first place. Here is an example (see historical_entries and unbonding_period):
For relaying purposes (creating and updating clients, creating connections, etc) we need to use these parameters as they are the ones relevant to block production.
If the consumer chain is also a "democracy", i.e. it has its own native token, the chain will have an additional staking module. This is not the one hermes should use.
Proposal
add gRPC endpoint in ICS to retrieve the ccvconsumer parameters. This will be done in the interchain-security, (see issue) and partial blocker to proceed with the final implementation.
add ICS protos to ibc-proto-rs. This is a blocker now as we cannot change the SDK version to the custom one that ICS is using
use this new gRPC endpoint in hermes. This should be further discussed but high level we need to:
remove the unbonding_period parameter from config.toml
import the new ICS .proto file and release ibc-proto
add a new configuration flag to indicate a chain is consumer (vs. sovereign - default). The name is TBD. An alternative is to derive the chain type based on the Unimplemented return value of the new gRPC
call the new gRPC for consumer chains
write integration tests for ICS
coordinate release with cosmos hub
Acceptance Criteria
Be able to retrieve and use the correct parameters when creating clients such that connections with other chains can be established.
For Admin Use
Not duplicate issue
Appropriate labels applied
Appropriate milestone (priority) applied
Appropriate contributors tagged
Contributor assigned/self-assigned
The text was updated successfully, but these errors were encountered:
ancazamfir
changed the title
Hermes support for ICS Consumer chains
Hermes uses wrong unbonding period or fails ICS Consumer chains
Mar 16, 2023
ancazamfir
changed the title
Hermes uses wrong unbonding period or fails ICS Consumer chains
Hermes uses wrong unbonding period or fails for ICS Consumer chains
Mar 16, 2023
Summary
As it was discovered in #3112, hermes does not properly support ICS Consumer chains. We fixed this temporarily in #3113
However the fix is not ideal as it requires relayer operator knowledge of the correct
unbonding_period
of the consumer chain. It also does not address the health check forhistorical_entries
parameter.Problem Definition
summary of discussions with @mpoke @MSalopek @romac
Currently hermes uses the staking parameter query endpoint to get some parameters required for IBC client creation and chain health check.
ICS Consumer chains do not have an SDK staking module that can be queried in the same way as for sovereign chains. The relevant parameters for relaying are the
ccvconsumer
parameters in genesis which are derived from the governance proposal used to create the consumer chain in the first place. Here is an example (seehistorical_entries
andunbonding_period
):For relaying purposes (creating and updating clients, creating connections, etc) we need to use these parameters as they are the ones relevant to block production.
If the consumer chain is also a "democracy", i.e. it has its own native token, the chain will have an additional staking module. This is not the one hermes should use.
Proposal
ccvconsumer
parameters. This will be done in theinterchain-security
, (see issue) and partial blocker to proceed with the final implementation.ibc-proto-rs
. This is a blocker now as we cannot change the SDK version to the custom one that ICS is usingunbonding_period
parameter from config.tomlibc-proto
consumer
(vs.sovereign
- default). The name is TBD. An alternative is to derive the chain type based on theUnimplemented
return value of the new gRPCAcceptance Criteria
Be able to retrieve and use the correct parameters when creating clients such that connections with other chains can be established.
For Admin Use
The text was updated successfully, but these errors were encountered: