It is possible to update the client with the state of the substitute client through a governance proposal. This type of governance proposal is typically used to recover an expired or frozen client, as it can recover the entire state and therefore all existing channels built on top of the client.Documentation Index
Fetch the complete documentation index at: https://cosmos-docs-evm-upgrade-7.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
CheckSubstituteAndUpdateState should be implemented to handle the proposal.
Implementing CheckSubstituteAndUpdateState
In the ClientStateinterface, we find:
- the substitute client is the same type as the subject client. For a reference implementation, please see the Tendermint light client.
- the provided substitute may be used to update the subject client. This may mean that certain parameters must remain unaltered. For example, a valid substitute Tendermint light client must NOT change the chain ID, trust level, max clock drift, unbonding period, proof specs or upgrade path. Please note that
AllowUpdateAfterMisbehaviourandAllowUpdateAfterExpiryhave been deprecated (see ADR 026 for more information).