cosmos / interchain-security

Interchain Security is an open sourced IBC application which allows cosmos blockchains to lease their proof-of-stake security to one another.
https://cosmos.github.io/interchain-security/
Other
154 stars 123 forks source link

Remove template_client from CCV provider genesis #531

Open MSalopek opened 1 year ago

MSalopek commented 1 year ago

Problem

template_client field should be removed from provider genesis.

Closing criteria

The field is removed from provider genesis.

TODOs

MSalopek commented 1 year ago

After inspecting the code, it seems the changes requested have become state breaking (correct me if I'm wrong, it happens).

This is the code.

And here an excerpt:

// Params defines the parameters for CCV Provider module
message Params {
  ibc.lightclients.tendermint.v1.ClientState template_client = 1; // removing this changes the proto field ids of all param fields
  string trusting_period_fraction = 2;
  ...
}

This can cause incompatibility between versions and require a migration of provider state because we would have to migrate the params.

EDIT: will look a bit deeper.

yaruwangway commented 1 year ago

Hi @MSalopek , yes, removal of template_client from params is state-breaking. which need a state migration.

yaruwangway commented 1 year ago

why remove template_client ?

MSalopek commented 1 year ago

Putting it to blocked until we establish if and how to remove this.

Since the issue is older, this may not be feasible any more. We should avoid state breaking changes, and be careful about backporting features to previous and current releases.

Issue will be closed if it is no longer needed.

Thanks @yaruwangway for checking this out!

EDIT: removed "good first issue" label since the change may be state breaking.