From 32e501131a5ccc7752eafe48222663acc45ebff8 Mon Sep 17 00:00:00 2001 From: Charly Date: Mon, 14 Mar 2022 17:58:34 +0100 Subject: [PATCH 1/6] update code & test --- .../07-tendermint/types/proposal_handle.go | 27 ++--- .../types/proposal_handle_test.go | 102 ++---------------- 2 files changed, 13 insertions(+), 116 deletions(-) diff --git a/modules/light-clients/07-tendermint/types/proposal_handle.go b/modules/light-clients/07-tendermint/types/proposal_handle.go index bfa7f242e92..0ad4fd6be5a 100644 --- a/modules/light-clients/07-tendermint/types/proposal_handle.go +++ b/modules/light-clients/07-tendermint/types/proposal_handle.go @@ -12,18 +12,17 @@ import ( ) // CheckSubstituteAndUpdateState will try to update the client with the state of the -// substitute if and only if the proposal passes and one of the following conditions are -// satisfied: -// 1) AllowUpdateAfterMisbehaviour and Status() == Frozen -// 2) AllowUpdateAfterExpiry=true and Status() == Expired +// substitute. // +// AllowUpdateAfterMisbehaviour and AllowUpdateAfterExpiry have been deprecated, as a code migration +// can overwrite the client and consensus states regardless of the value of these parameters +// // The following must always be true: // - The substitute client is the same type as the subject client // - The subject and substitute client states match in all parameters (expect frozen height, latest height, and chain-id) // // In case 1) before updating the client, the client will be unfrozen by resetting -// the FrozenHeight to the zero Height. If a client is frozen and AllowUpdateAfterMisbehaviour -// is set to true, the client will be unexpired even if AllowUpdateAfterExpiry is set to false. +// the FrozenHeight to the zero Height. func (cs ClientState) CheckSubstituteAndUpdateState( ctx sdk.Context, cdc codec.BinaryCodec, subjectClientStore, substituteClientStore sdk.KVStore, substituteClient exported.ClientState, @@ -39,23 +38,9 @@ func (cs ClientState) CheckSubstituteAndUpdateState( return nil, sdkerrors.Wrap(clienttypes.ErrInvalidSubstitute, "subject client state does not match substitute client state") } - switch cs.Status(ctx, subjectClientStore, cdc) { - - case exported.Frozen: - if !cs.AllowUpdateAfterMisbehaviour { - return nil, sdkerrors.Wrap(clienttypes.ErrUpdateClientFailed, "client is not allowed to be unfrozen") - } - + if cs.Status(ctx, subjectClientStore, cdc) == exported.Frozen { // unfreeze the client cs.FrozenHeight = clienttypes.ZeroHeight() - - case exported.Expired: - if !cs.AllowUpdateAfterExpiry { - return nil, sdkerrors.Wrap(clienttypes.ErrUpdateClientFailed, "client is not allowed to be unexpired") - } - - default: - return nil, sdkerrors.Wrap(clienttypes.ErrUpdateClientFailed, "client cannot be updated with proposal") } // copy consensus states and processed time from substitute to subject diff --git a/modules/light-clients/07-tendermint/types/proposal_handle_test.go b/modules/light-clients/07-tendermint/types/proposal_handle_test.go index 822ec16e014..0c2ea13c4e2 100644 --- a/modules/light-clients/07-tendermint/types/proposal_handle_test.go +++ b/modules/light-clients/07-tendermint/types/proposal_handle_test.go @@ -81,111 +81,31 @@ func (suite *TendermintTestSuite) TestCheckSubstituteAndUpdateState() { expPass bool }{ { - name: "not allowed to be updated, not frozen or expired", - AllowUpdateAfterExpiry: false, - AllowUpdateAfterMisbehaviour: false, - FreezeClient: false, - ExpireClient: false, - expPass: false, - }, - { - name: "not allowed to be updated, client is frozen", - AllowUpdateAfterExpiry: false, - AllowUpdateAfterMisbehaviour: false, - FreezeClient: true, - ExpireClient: false, - expPass: false, - }, - { - name: "not allowed to be updated, client is expired", - AllowUpdateAfterExpiry: false, - AllowUpdateAfterMisbehaviour: false, - FreezeClient: false, - ExpireClient: true, - expPass: false, - }, - { - name: "not allowed to be updated, client is frozen and expired", + name: "PASS: update checks are deprecated, client is frozen and expired", AllowUpdateAfterExpiry: false, AllowUpdateAfterMisbehaviour: false, FreezeClient: true, ExpireClient: true, - expPass: false, - }, - { - name: "allowed to be updated only after misbehaviour, not frozen or expired", - AllowUpdateAfterExpiry: false, - AllowUpdateAfterMisbehaviour: true, - FreezeClient: false, - ExpireClient: false, - expPass: false, - }, - { - name: "allowed to be updated only after misbehaviour, client is expired", - AllowUpdateAfterExpiry: false, - AllowUpdateAfterMisbehaviour: true, - FreezeClient: false, - ExpireClient: true, - expPass: false, - }, - { - name: "allowed to be updated only after expiry, not frozen or expired", - AllowUpdateAfterExpiry: true, - AllowUpdateAfterMisbehaviour: false, - FreezeClient: false, - ExpireClient: false, - expPass: false, - }, - { - name: "allowed to be updated only after expiry, client is frozen", - AllowUpdateAfterExpiry: true, - AllowUpdateAfterMisbehaviour: false, - FreezeClient: true, - ExpireClient: false, - expPass: false, - }, - { - name: "PASS: allowed to be updated only after misbehaviour, client is frozen", - AllowUpdateAfterExpiry: false, - AllowUpdateAfterMisbehaviour: true, - FreezeClient: true, - ExpireClient: false, expPass: true, }, { - name: "PASS: allowed to be updated only after misbehaviour, client is frozen and expired", + name: "PASS: update checks are deprecated, not frozen or expired", AllowUpdateAfterExpiry: false, AllowUpdateAfterMisbehaviour: true, - FreezeClient: true, - ExpireClient: true, - expPass: true, - }, - { - name: "PASS: allowed to be updated only after expiry, client is expired", - AllowUpdateAfterExpiry: true, - AllowUpdateAfterMisbehaviour: false, FreezeClient: false, - ExpireClient: true, + ExpireClient: false, expPass: true, }, { - name: "allowed to be updated only after expiry, client is frozen and expired", + name: "PASS: update checks are deprecated, not frozen or expired", AllowUpdateAfterExpiry: true, AllowUpdateAfterMisbehaviour: false, - FreezeClient: true, - ExpireClient: true, - expPass: false, - }, - { - name: "allowed to be updated after expiry and misbehaviour, not frozen or expired", - AllowUpdateAfterExpiry: true, - AllowUpdateAfterMisbehaviour: true, FreezeClient: false, ExpireClient: false, - expPass: false, + expPass: true, }, { - name: "PASS: allowed to be updated after expiry and misbehaviour, client is frozen", + name: "PASS: update checks are deprecated, client is frozen", AllowUpdateAfterExpiry: true, AllowUpdateAfterMisbehaviour: true, FreezeClient: true, @@ -193,21 +113,13 @@ func (suite *TendermintTestSuite) TestCheckSubstituteAndUpdateState() { expPass: true, }, { - name: "PASS: allowed to be updated after expiry and misbehaviour, client is expired", + name: "PASS: update checks are deprecated, client is expired", AllowUpdateAfterExpiry: true, AllowUpdateAfterMisbehaviour: true, FreezeClient: false, ExpireClient: true, expPass: true, }, - { - name: "PASS: allowed to be updated after expiry and misbehaviour, client is frozen and expired", - AllowUpdateAfterExpiry: true, - AllowUpdateAfterMisbehaviour: true, - FreezeClient: true, - ExpireClient: true, - expPass: true, - }, } for _, tc := range testCases { From a6b6d9fdded17542af6ed5e4b11904426c8256f3 Mon Sep 17 00:00:00 2001 From: Charly Date: Fri, 8 Apr 2022 13:33:58 +0200 Subject: [PATCH 2/6] update proto and adr026 --- .../adr-026-ibc-client-recovery-mechanisms.md | 13 +- docs/ibc/proto-docs.md | 4 +- .../07-tendermint/types/proposal_handle.go | 4 +- .../07-tendermint/types/tendermint.pb.go | 146 +++++++++--------- .../tendermint/v1/tendermint.proto | 11 +- 5 files changed, 87 insertions(+), 91 deletions(-) diff --git a/docs/architecture/adr-026-ibc-client-recovery-mechanisms.md b/docs/architecture/adr-026-ibc-client-recovery-mechanisms.md index c40e3b08cd5..27bcb33e545 100644 --- a/docs/architecture/adr-026-ibc-client-recovery-mechanisms.md +++ b/docs/architecture/adr-026-ibc-client-recovery-mechanisms.md @@ -6,6 +6,7 @@ - 2020/08/06: Revisions per review & to reference version - 2021/01/15: Revision to support substitute clients for unfreezing - 2021/05/20: Revision to simplify consensus state copying, remove initial height +- 2022/04/08: Revision to deprecate AllowUpdateAfterExpiry and AllowUpdateAfterMisbehaviour ## Status @@ -35,21 +36,20 @@ Two-thirds of the validator set (the quorum for governance, module participation We elect not to deal with chains which have actually halted, which is necessarily Byzantine behaviour and in which case token recovery is not likely possible anyways (in-flight packets cannot be timed-out, but the relative impact of that is minor). 1. Require Tendermint light clients (ICS 07) to be created with the following additional flags - 1. `allow_governance_override_after_expiry` (boolean, default false) + 1. `allow_update_after_expiry` (boolean, default true). Note that this flag has been deprecated, it remains to signal intent but checks against this value will not be enforced. 1. Require Tendermint light clients (ICS 07) to expose the following additional internal query functions 1. `Expired() boolean`, which returns whether or not the client has passed the trusting period since the last update (in which case no headers can be validated) 1. Require Tendermint light clients (ICS 07) & solo machine clients (ICS 06) to be created with the following additional flags - 1. `allow_governance_override_after_misbehaviour` (boolean, default false) + 1. `allow_update_after_misbehaviour` (boolean, default true). Note that this flag has been deprecated, it remains to signal intent but checks against this value will not be enforced. 1. Require Tendermint light clients (ICS 07) to expose the following additional state mutation functions 1. `Unfreeze()`, which unfreezes a light client after misbehaviour and clears any frozen height previously set 1. Add a new governance proposal type, `ClientUpdateProposal`, in the `x/ibc` module 1. Extend the base `Proposal` with two client identifiers (`string`). 1. The first client identifier is the proposed client to be updated. This client must be either frozen or expired. 1. The second client is a substitute client. It carries all the state for the client which may be updated. It must have identitical client and chain parameters to the client which may be updated (except for latest height, frozen height, and chain-id). It should be continually updated during the voting period. - 1. If this governance proposal passes, the client on trial will be updated to the latest state of the substitute, if and only if: - 1. `allow_governance_override_after_expiry` is true and the client has expired (`Expired()` returns true) - 1. `allow_governance_override_after_misbehaviour` is true and the client has been frozen (`Frozen()` returns true) - 1. In this case, additionally, the client is unfrozen by calling `Unfreeze()` + 1. If this governance proposal passes, the client on trial will be updated to the latest state of the substitute. + + Previously, AllowUpdateAfterExpiry and AllowUpdateAfterMisbehaviour were used to signal the recovery options for an expired or frozen client, and governance proposals were not allowed to overwrite the client if these parameters were set to false. However, this has now been deprecated because a code migration can overwrite the client and consensus states regardless of the value of these parameters. If governance would vote to overwrite a client or consensus state, it is likely that governance would also willing to perform a code migration to do the same. Note that clients frozen due to misbehaviour must wait for the evidence to expire to avoid becoming refrozen. @@ -62,7 +62,6 @@ This ADR does not address planned upgrades, which are handled separately as per - Establishes a mechanism for client recovery in the case of expiry - Establishes a mechanism for client recovery in the case of misbehaviour -- Clients can elect to disallow this recovery mechanism if they do not wish to allow for it - Constructing an ClientUpdate Proposal is as difficult as creating a new client ### Negative diff --git a/docs/ibc/proto-docs.md b/docs/ibc/proto-docs.md index cb9fc7a1e67..32b500639a3 100644 --- a/docs/ibc/proto-docs.md +++ b/docs/ibc/proto-docs.md @@ -3911,8 +3911,8 @@ and a possible frozen height. | `latest_height` | [ibc.core.client.v1.Height](#ibc.core.client.v1.Height) | | Latest height the client was updated to | | `proof_specs` | [ics23.ProofSpec](#ics23.ProofSpec) | repeated | Proof specifications used in verifying counterparty state | | `upgrade_path` | [string](#string) | repeated | Path at which next upgraded client will be committed. Each element corresponds to the key for a single CommitmentProof in the chained proof. NOTE: ClientState must stored under `{upgradePath}/{upgradeHeight}/clientState` ConsensusState must be stored under `{upgradepath}/{upgradeHeight}/consensusState` For SDK chains using the default upgrade module, upgrade_path should be []string{"upgrade", "upgradedIBCState"}` | -| `allow_update_after_expiry` | [bool](#bool) | | This flag, when set to true, will allow governance to recover a client which has expired | -| `allow_update_after_misbehaviour` | [bool](#bool) | | This flag, when set to true, will allow governance to unfreeze a client whose chain has experienced a misbehaviour event | +| `allow_update_after_expiry` | [bool](#bool) | | **Deprecated.** allow_update_after_expiry is deprecated | +| `allow_update_after_misbehaviour` | [bool](#bool) | | **Deprecated.** allow_update_after_misbehaviour is deprecated | diff --git a/modules/light-clients/07-tendermint/types/proposal_handle.go b/modules/light-clients/07-tendermint/types/proposal_handle.go index 064cf3a122a..a938d181f65 100644 --- a/modules/light-clients/07-tendermint/types/proposal_handle.go +++ b/modules/light-clients/07-tendermint/types/proposal_handle.go @@ -14,8 +14,8 @@ import ( // CheckSubstituteAndUpdateState will try to update the client with the state of the // substitute. // -// AllowUpdateAfterMisbehaviour and AllowUpdateAfterExpiry have been deprecated, as a code migration -// can overwrite the client and consensus states regardless of the value of these parameters +// AllowUpdateAfterMisbehaviour and AllowUpdateAfterExpiry have been deprecated. +// Please see ADR 026 for more information. // // The following must always be true: // - The substitute client is the same type as the subject client diff --git a/modules/light-clients/07-tendermint/types/tendermint.pb.go b/modules/light-clients/07-tendermint/types/tendermint.pb.go index 7257f37e5a5..00d2cba20e1 100644 --- a/modules/light-clients/07-tendermint/types/tendermint.pb.go +++ b/modules/light-clients/07-tendermint/types/tendermint.pb.go @@ -59,12 +59,10 @@ type ClientState struct { // the default upgrade module, upgrade_path should be []string{"upgrade", // "upgradedIBCState"}` UpgradePath []string `protobuf:"bytes,9,rep,name=upgrade_path,json=upgradePath,proto3" json:"upgrade_path,omitempty" yaml:"upgrade_path"` - // This flag, when set to true, will allow governance to recover a client - // which has expired - AllowUpdateAfterExpiry bool `protobuf:"varint,10,opt,name=allow_update_after_expiry,json=allowUpdateAfterExpiry,proto3" json:"allow_update_after_expiry,omitempty" yaml:"allow_update_after_expiry"` - // This flag, when set to true, will allow governance to unfreeze a client - // whose chain has experienced a misbehaviour event - AllowUpdateAfterMisbehaviour bool `protobuf:"varint,11,opt,name=allow_update_after_misbehaviour,json=allowUpdateAfterMisbehaviour,proto3" json:"allow_update_after_misbehaviour,omitempty" yaml:"allow_update_after_misbehaviour"` + // allow_update_after_expiry is deprecated + AllowUpdateAfterExpiry bool `protobuf:"varint,10,opt,name=allow_update_after_expiry,json=allowUpdateAfterExpiry,proto3" json:"allow_update_after_expiry,omitempty" yaml:"allow_update_after_expiry"` // Deprecated: Do not use. + // allow_update_after_misbehaviour is deprecated + AllowUpdateAfterMisbehaviour bool `protobuf:"varint,11,opt,name=allow_update_after_misbehaviour,json=allowUpdateAfterMisbehaviour,proto3" json:"allow_update_after_misbehaviour,omitempty" yaml:"allow_update_after_misbehaviour"` // Deprecated: Do not use. } func (m *ClientState) Reset() { *m = ClientState{} } @@ -325,75 +323,75 @@ func init() { } var fileDescriptor_c6d6cf2b288949be = []byte{ - // 1079 bytes of a gzipped FileDescriptorProto + // 1078 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0xcf, 0x6f, 0xe3, 0x44, - 0x14, 0x6e, 0xda, 0xb2, 0x4d, 0x26, 0xe9, 0x76, 0x31, 0xa5, 0x9b, 0x96, 0x6e, 0x1c, 0x19, 0xb4, - 0x44, 0x48, 0xb5, 0x49, 0x8a, 0x84, 0x54, 0x71, 0xc1, 0xdd, 0x45, 0x2d, 0x62, 0xa5, 0xca, 0xe5, - 0x87, 0x84, 0x84, 0xcc, 0xc4, 0x9e, 0x24, 0xa3, 0xb5, 0x3d, 0xc6, 0x33, 0x09, 0x2d, 0x7f, 0x01, - 0x9c, 0xd8, 0x23, 0xe2, 0xc4, 0x81, 0x3f, 0x66, 0x8f, 0x3d, 0x72, 0x32, 0xa8, 0xbd, 0x70, 0xce, - 0x91, 0x13, 0x9a, 0x1f, 0xb6, 0xa7, 0xd9, 0x2e, 0xd5, 0x72, 0x89, 0xe6, 0xbd, 0xf7, 0xbd, 0xef, - 0xcb, 0xbc, 0x79, 0xf3, 0xc6, 0xc0, 0xc1, 0xc3, 0xc0, 0x89, 0xf0, 0x78, 0xc2, 0x82, 0x08, 0xa3, - 0x84, 0x51, 0x87, 0xa1, 0x24, 0x44, 0x59, 0x8c, 0x13, 0xe6, 0xcc, 0xfa, 0x9a, 0x65, 0xa7, 0x19, - 0x61, 0xc4, 0xe8, 0xe0, 0x61, 0x60, 0xeb, 0x09, 0xb6, 0x06, 0x99, 0xf5, 0x77, 0xba, 0x5a, 0x3e, - 0x3b, 0x4f, 0x11, 0x75, 0x66, 0x30, 0xc2, 0x21, 0x64, 0x24, 0x93, 0x0c, 0x3b, 0xbb, 0x2f, 0x20, - 0xc4, 0xaf, 0x8a, 0xb6, 0xd2, 0x8c, 0x90, 0x51, 0x61, 0x75, 0xc6, 0x84, 0x8c, 0x23, 0xe4, 0x08, - 0x6b, 0x38, 0x1d, 0x39, 0xe1, 0x34, 0x83, 0x0c, 0x93, 0x44, 0xc5, 0xcd, 0xc5, 0x38, 0xc3, 0x31, - 0xa2, 0x0c, 0xc6, 0x69, 0x01, 0xe0, 0xfb, 0x0b, 0x48, 0x86, 0x1c, 0xf9, 0x77, 0xf9, 0x9e, 0xe4, - 0x4a, 0x01, 0xde, 0xad, 0x00, 0x24, 0x8e, 0x31, 0x8b, 0x0b, 0x50, 0x69, 0x29, 0xe0, 0xe6, 0x98, - 0x8c, 0x89, 0x58, 0x3a, 0x7c, 0x25, 0xbd, 0xd6, 0xdf, 0x6b, 0xa0, 0x79, 0x28, 0xf8, 0x4e, 0x19, - 0x64, 0xc8, 0xd8, 0x06, 0xf5, 0x60, 0x02, 0x71, 0xe2, 0xe3, 0xb0, 0x5d, 0xeb, 0xd6, 0x7a, 0x0d, - 0x6f, 0x4d, 0xd8, 0xc7, 0xa1, 0x81, 0x40, 0x93, 0x65, 0x53, 0xca, 0xfc, 0x08, 0xcd, 0x50, 0xd4, - 0x5e, 0xee, 0xd6, 0x7a, 0xcd, 0x41, 0xcf, 0xfe, 0xef, 0x7a, 0xda, 0x9f, 0x64, 0x30, 0xe0, 0x1b, - 0x76, 0x77, 0x9e, 0xe7, 0xe6, 0xd2, 0x3c, 0x37, 0x8d, 0x73, 0x18, 0x47, 0x07, 0x96, 0x46, 0x65, - 0x79, 0x40, 0x58, 0x9f, 0x71, 0xc3, 0x18, 0x81, 0x0d, 0x61, 0xe1, 0x64, 0xec, 0xa7, 0x28, 0xc3, - 0x24, 0x6c, 0xaf, 0x08, 0xa9, 0x6d, 0x5b, 0x16, 0xcb, 0x2e, 0x8a, 0x65, 0x3f, 0x52, 0xc5, 0x74, - 0x2d, 0xc5, 0xbd, 0xa5, 0x71, 0x57, 0xf9, 0xd6, 0x2f, 0x7f, 0x9a, 0x35, 0xef, 0x6e, 0xe1, 0x3d, - 0x11, 0x4e, 0x03, 0x83, 0x7b, 0xd3, 0x64, 0x48, 0x92, 0x50, 0x13, 0x5a, 0xbd, 0x4d, 0xe8, 0x6d, - 0x25, 0x74, 0x5f, 0x0a, 0x2d, 0x12, 0x48, 0xa5, 0x8d, 0xd2, 0xad, 0xa4, 0x10, 0xd8, 0x88, 0xe1, - 0x99, 0x1f, 0x44, 0x24, 0x78, 0xea, 0x87, 0x19, 0x1e, 0xb1, 0xf6, 0x6b, 0xaf, 0xb8, 0xa5, 0x85, - 0x7c, 0x29, 0xb4, 0x1e, 0xc3, 0xb3, 0x43, 0xee, 0x7c, 0xc4, 0x7d, 0xc6, 0x37, 0x60, 0x7d, 0x94, - 0x91, 0x1f, 0x50, 0xe2, 0x4f, 0x10, 0x3f, 0x90, 0xf6, 0x1d, 0x21, 0xb2, 0x23, 0x8e, 0x88, 0xb7, - 0x88, 0xad, 0x3a, 0x67, 0xd6, 0xb7, 0x8f, 0x04, 0xc2, 0xdd, 0x55, 0x2a, 0x9b, 0x52, 0xe5, 0x5a, - 0xba, 0xe5, 0xb5, 0xa4, 0x2d, 0xb1, 0x9c, 0x3e, 0x82, 0x0c, 0x51, 0x56, 0xd0, 0xaf, 0xbd, 0x2a, - 0xfd, 0xb5, 0x74, 0xcb, 0x6b, 0x49, 0x5b, 0xd1, 0x1f, 0x83, 0xa6, 0xb8, 0x3a, 0x3e, 0x4d, 0x51, - 0x40, 0xdb, 0xf5, 0xee, 0x4a, 0xaf, 0x39, 0xb8, 0x67, 0xe3, 0x80, 0x0e, 0xf6, 0xed, 0x13, 0x1e, - 0x39, 0x4d, 0x51, 0xe0, 0x6e, 0x55, 0x2d, 0xa4, 0xc1, 0x2d, 0x0f, 0xa4, 0x05, 0x84, 0x1a, 0x07, - 0xa0, 0x35, 0x4d, 0xc7, 0x19, 0x0c, 0x91, 0x9f, 0x42, 0x36, 0x69, 0x37, 0xba, 0x2b, 0xbd, 0x86, - 0x7b, 0x7f, 0x9e, 0x9b, 0x6f, 0xa8, 0x73, 0xd3, 0xa2, 0x96, 0xd7, 0x54, 0xe6, 0x09, 0x64, 0x13, - 0xc3, 0x07, 0xdb, 0x30, 0x8a, 0xc8, 0xf7, 0xfe, 0x34, 0x0d, 0x21, 0x43, 0x3e, 0x1c, 0x31, 0x94, - 0xf9, 0xe8, 0x2c, 0xc5, 0xd9, 0x79, 0x1b, 0x74, 0x6b, 0xbd, 0xba, 0xfb, 0xce, 0x3c, 0x37, 0xbb, - 0x92, 0xe8, 0xa5, 0x50, 0xcb, 0xdb, 0x12, 0xb1, 0x2f, 0x44, 0xe8, 0x63, 0x1e, 0x79, 0x2c, 0x02, - 0xc6, 0x77, 0xc0, 0xbc, 0x21, 0x2b, 0xc6, 0x74, 0x88, 0x26, 0x70, 0x86, 0xc9, 0x34, 0x6b, 0x37, - 0x85, 0xcc, 0x7b, 0xf3, 0xdc, 0x7c, 0xf8, 0x52, 0x19, 0x3d, 0xc1, 0xf2, 0x76, 0x17, 0xc5, 0x9e, - 0x68, 0xe1, 0x83, 0xd5, 0x1f, 0x7f, 0x33, 0x97, 0xac, 0xdf, 0x97, 0xc1, 0xdd, 0x43, 0x92, 0x50, - 0x94, 0xd0, 0x29, 0x95, 0xb7, 0xdd, 0x05, 0x8d, 0x72, 0xe0, 0x88, 0xeb, 0xce, 0x8f, 0x73, 0xb1, - 0x25, 0x3f, 0x2f, 0x10, 0x6e, 0x9d, 0x1f, 0xe7, 0x33, 0xde, 0x79, 0x55, 0x9a, 0xf1, 0x11, 0x58, - 0xcd, 0x08, 0x61, 0x6a, 0x1e, 0x58, 0x5a, 0x37, 0x54, 0x13, 0x68, 0xd6, 0xb7, 0x9f, 0xa0, 0xec, - 0x69, 0x84, 0x3c, 0x42, 0x98, 0xbb, 0xca, 0x69, 0x3c, 0x91, 0x65, 0xfc, 0x54, 0x03, 0x9b, 0x09, - 0x3a, 0x63, 0x7e, 0x39, 0x65, 0xa9, 0x3f, 0x81, 0x74, 0x22, 0xee, 0x7c, 0xcb, 0xfd, 0x6a, 0x9e, - 0x9b, 0x6f, 0xc9, 0x1a, 0xdc, 0x84, 0xb2, 0xfe, 0xc9, 0xcd, 0x0f, 0xc6, 0x98, 0x4d, 0xa6, 0x43, - 0x2e, 0xa7, 0xcf, 0x7e, 0x6d, 0x19, 0xe1, 0x21, 0x75, 0x86, 0xe7, 0x0c, 0x51, 0xfb, 0x08, 0x9d, - 0xb9, 0x7c, 0xe1, 0x19, 0x9c, 0xee, 0xcb, 0x92, 0xed, 0x08, 0xd2, 0x89, 0x2a, 0xd3, 0xcf, 0xcb, - 0xa0, 0xa5, 0x57, 0xcf, 0xd8, 0x07, 0x0d, 0xd9, 0xd8, 0xe5, 0x4c, 0x14, 0x4d, 0x78, 0x4f, 0xfe, - 0xad, 0x32, 0x64, 0xb5, 0x6b, 0x5e, 0x5d, 0x5a, 0xc7, 0xa1, 0x01, 0x41, 0x7d, 0x82, 0x60, 0x88, - 0x32, 0xbf, 0xaf, 0x2a, 0xf3, 0xf0, 0xb6, 0x49, 0x79, 0x24, 0xf0, 0x6e, 0xe7, 0x32, 0x37, 0xd7, - 0xe4, 0xba, 0x3f, 0xcf, 0xcd, 0x0d, 0x29, 0x53, 0x90, 0x59, 0xde, 0x9a, 0x5c, 0xf6, 0x35, 0x89, - 0x81, 0x9a, 0x90, 0xff, 0x43, 0x62, 0xf0, 0x82, 0xc4, 0xa0, 0x94, 0x18, 0xa8, 0x8a, 0xfc, 0xba, - 0x02, 0xee, 0x48, 0xb4, 0x01, 0xc1, 0x3a, 0xc5, 0xe3, 0x04, 0x85, 0xbe, 0x84, 0xa8, 0xa6, 0xe9, - 0xe8, 0x3a, 0xf2, 0x35, 0x3c, 0x15, 0x30, 0x25, 0xb8, 0x7b, 0x91, 0x9b, 0xb5, 0x6a, 0x0e, 0x5c, - 0xa3, 0xb0, 0xbc, 0x16, 0xd5, 0xb0, 0x7c, 0xcc, 0x94, 0xa7, 0xec, 0x53, 0x54, 0x34, 0xd6, 0x0d, - 0x12, 0xe5, 0xf1, 0x9d, 0x22, 0xe6, 0xb6, 0x2b, 0xfa, 0x6b, 0xe9, 0x96, 0xd7, 0x9a, 0x69, 0x38, - 0xe3, 0x5b, 0x20, 0x1f, 0x02, 0xa1, 0x2f, 0xc6, 0xd8, 0xca, 0xad, 0x63, 0xec, 0x81, 0x1a, 0x63, - 0x6f, 0x6a, 0xcf, 0x4b, 0x99, 0x6f, 0x79, 0xeb, 0xca, 0xa1, 0x06, 0x59, 0x04, 0x8c, 0x02, 0x51, - 0xb5, 0xab, 0x7a, 0x5a, 0x6e, 0xdb, 0xc5, 0x83, 0x79, 0x6e, 0x6e, 0x5f, 0x57, 0xa9, 0x38, 0x2c, - 0xef, 0x75, 0xe5, 0xac, 0x1a, 0xd7, 0xfa, 0x14, 0xd4, 0x8b, 0x27, 0xd6, 0xd8, 0x05, 0x8d, 0x64, - 0x1a, 0xa3, 0x8c, 0x47, 0xc4, 0xc9, 0xac, 0x7a, 0x95, 0xc3, 0xe8, 0x82, 0x66, 0x88, 0x12, 0x12, - 0xe3, 0x44, 0xc4, 0x97, 0x45, 0x5c, 0x77, 0xb9, 0xfe, 0xf3, 0xcb, 0x4e, 0xed, 0xe2, 0xb2, 0x53, - 0xfb, 0xeb, 0xb2, 0x53, 0x7b, 0x76, 0xd5, 0x59, 0xba, 0xb8, 0xea, 0x2c, 0xfd, 0x71, 0xd5, 0x59, - 0xfa, 0xfa, 0xb1, 0x76, 0xc9, 0x02, 0x42, 0x63, 0x42, 0xf9, 0x87, 0xd7, 0xde, 0x98, 0x38, 0xb3, - 0x7d, 0x27, 0x26, 0xe1, 0x34, 0x42, 0x54, 0x7e, 0x86, 0xed, 0x15, 0xdf, 0x61, 0xef, 0x7f, 0xb8, - 0xb7, 0xf8, 0xa1, 0x34, 0xbc, 0x23, 0x86, 0xca, 0xfe, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xfb, - 0x37, 0x2a, 0xdd, 0xb6, 0x09, 0x00, 0x00, + 0x14, 0x6e, 0xda, 0xb2, 0x4d, 0x26, 0xe9, 0x76, 0x31, 0xa5, 0x9b, 0x96, 0x6e, 0x1c, 0x19, 0xa9, + 0xe4, 0x40, 0x6d, 0x92, 0x22, 0x21, 0x55, 0x5c, 0x70, 0x77, 0x51, 0x8b, 0x58, 0xa9, 0x72, 0xf9, + 0x21, 0x21, 0x21, 0x33, 0xb1, 0x27, 0xc9, 0x68, 0x6d, 0x8f, 0xe5, 0x99, 0x84, 0x96, 0xbf, 0x00, + 0x4e, 0xec, 0x11, 0x71, 0xe2, 0xc0, 0x1f, 0xb3, 0xc7, 0x1e, 0x39, 0x19, 0xd4, 0x5e, 0x39, 0xe5, + 0xc8, 0x09, 0xcd, 0x0f, 0xdb, 0xd3, 0x6c, 0x97, 0x6a, 0xb9, 0x44, 0xf3, 0xde, 0xfb, 0xde, 0xf7, + 0x65, 0xe6, 0xbd, 0x79, 0x63, 0xe0, 0xe0, 0x61, 0xe0, 0x44, 0x78, 0x3c, 0x61, 0x41, 0x84, 0x51, + 0xc2, 0xa8, 0xc3, 0x50, 0x12, 0xa2, 0x2c, 0xc6, 0x09, 0x73, 0x66, 0x7d, 0xcd, 0xb2, 0xd3, 0x8c, + 0x30, 0x62, 0x74, 0xf0, 0x30, 0xb0, 0xf5, 0x04, 0x5b, 0x83, 0xcc, 0xfa, 0x3b, 0x5d, 0x2d, 0x9f, + 0x5d, 0xa4, 0x88, 0x3a, 0x33, 0x18, 0xe1, 0x10, 0x32, 0x92, 0x49, 0x86, 0x9d, 0xdd, 0x97, 0x10, + 0xe2, 0x57, 0x45, 0x5b, 0x69, 0x46, 0xc8, 0xa8, 0xb0, 0x3a, 0x63, 0x42, 0xc6, 0x11, 0x72, 0x84, + 0x35, 0x9c, 0x8e, 0x9c, 0x70, 0x9a, 0x41, 0x86, 0x49, 0xa2, 0xe2, 0xe6, 0x62, 0x9c, 0xe1, 0x18, + 0x51, 0x06, 0xe3, 0xb4, 0x00, 0xf0, 0xfd, 0x05, 0x24, 0x43, 0x8e, 0xfc, 0xbb, 0x7c, 0x4f, 0x72, + 0xa5, 0x00, 0xef, 0x55, 0x00, 0x12, 0xc7, 0x98, 0xc5, 0x05, 0xa8, 0xb4, 0x14, 0x70, 0x73, 0x4c, + 0xc6, 0x44, 0x2c, 0x1d, 0xbe, 0x92, 0x5e, 0xeb, 0xef, 0x35, 0xd0, 0x3c, 0x12, 0x7c, 0x67, 0x0c, + 0x32, 0x64, 0x6c, 0x83, 0x7a, 0x30, 0x81, 0x38, 0xf1, 0x71, 0xd8, 0xae, 0x75, 0x6b, 0xbd, 0x86, + 0xb7, 0x26, 0xec, 0x93, 0xd0, 0x40, 0xa0, 0xc9, 0xb2, 0x29, 0x65, 0x7e, 0x84, 0x66, 0x28, 0x6a, + 0x2f, 0x77, 0x6b, 0xbd, 0xe6, 0xa0, 0x67, 0xff, 0xf7, 0x79, 0xda, 0x9f, 0x66, 0x30, 0xe0, 0x1b, + 0x76, 0x77, 0x5e, 0xe4, 0xe6, 0xd2, 0x3c, 0x37, 0x8d, 0x0b, 0x18, 0x47, 0x87, 0x96, 0x46, 0x65, + 0x79, 0x40, 0x58, 0x9f, 0x73, 0xc3, 0x18, 0x81, 0x0d, 0x61, 0xe1, 0x64, 0xec, 0xa7, 0x28, 0xc3, + 0x24, 0x6c, 0xaf, 0x08, 0xa9, 0x6d, 0x5b, 0x1e, 0x96, 0x5d, 0x1c, 0x96, 0xfd, 0x58, 0x1d, 0xa6, + 0x6b, 0x29, 0xee, 0x2d, 0x8d, 0xbb, 0xca, 0xb7, 0x7e, 0xf9, 0xd3, 0xac, 0x79, 0xf7, 0x0b, 0xef, + 0xa9, 0x70, 0x1a, 0x18, 0x3c, 0x98, 0x26, 0x43, 0x92, 0x84, 0x9a, 0xd0, 0xea, 0x5d, 0x42, 0xef, + 0x2a, 0xa1, 0x87, 0x52, 0x68, 0x91, 0x40, 0x2a, 0x6d, 0x94, 0x6e, 0x25, 0x85, 0xc0, 0x46, 0x0c, + 0xcf, 0xfd, 0x20, 0x22, 0xc1, 0x33, 0x3f, 0xcc, 0xf0, 0x88, 0xb5, 0xdf, 0x78, 0xcd, 0x2d, 0x2d, + 0xe4, 0x4b, 0xa1, 0xf5, 0x18, 0x9e, 0x1f, 0x71, 0xe7, 0x63, 0xee, 0x33, 0xbe, 0x05, 0xeb, 0xa3, + 0x8c, 0xfc, 0x80, 0x12, 0x7f, 0x82, 0x78, 0x41, 0xda, 0xf7, 0x84, 0xc8, 0x8e, 0x28, 0x11, 0x6f, + 0x11, 0x5b, 0x75, 0xce, 0xac, 0x6f, 0x1f, 0x0b, 0x84, 0xbb, 0xab, 0x54, 0x36, 0xa5, 0xca, 0x8d, + 0x74, 0xcb, 0x6b, 0x49, 0x5b, 0x62, 0x39, 0x7d, 0x04, 0x19, 0xa2, 0xac, 0xa0, 0x5f, 0x7b, 0x5d, + 0xfa, 0x1b, 0xe9, 0x96, 0xd7, 0x92, 0xb6, 0xa2, 0x3f, 0x01, 0x4d, 0x71, 0x75, 0x7c, 0x9a, 0xa2, + 0x80, 0xb6, 0xeb, 0xdd, 0x95, 0x5e, 0x73, 0xf0, 0xc0, 0xc6, 0x01, 0x1d, 0x1c, 0xd8, 0xa7, 0x3c, + 0x72, 0x96, 0xa2, 0xc0, 0xdd, 0xaa, 0x5a, 0x48, 0x83, 0x5b, 0x1e, 0x48, 0x0b, 0x08, 0x35, 0x0e, + 0x41, 0x6b, 0x9a, 0x8e, 0x33, 0x18, 0x22, 0x3f, 0x85, 0x6c, 0xd2, 0x6e, 0x74, 0x57, 0x7a, 0x0d, + 0xf7, 0xe1, 0x3c, 0x37, 0xdf, 0x52, 0x75, 0xd3, 0xa2, 0x96, 0xd7, 0x54, 0xe6, 0x29, 0x64, 0x13, + 0x03, 0x82, 0x6d, 0x18, 0x45, 0xe4, 0x7b, 0x7f, 0x9a, 0x86, 0x90, 0x21, 0x1f, 0x8e, 0x18, 0xca, + 0x7c, 0x74, 0x9e, 0xe2, 0xec, 0xa2, 0x0d, 0xba, 0xb5, 0x5e, 0xdd, 0xdd, 0x9b, 0xe7, 0x66, 0x57, + 0x12, 0xbd, 0x12, 0x6a, 0xb5, 0x6b, 0xde, 0x96, 0x88, 0x7e, 0x29, 0x82, 0x9f, 0xf0, 0xd8, 0x13, + 0x11, 0x32, 0x28, 0x30, 0x6f, 0xc9, 0x8b, 0x31, 0x1d, 0xa2, 0x09, 0x9c, 0x61, 0x32, 0xcd, 0xda, + 0x4d, 0x21, 0xf4, 0xfe, 0x3c, 0x37, 0xf7, 0x5e, 0x29, 0xa4, 0x27, 0x70, 0xb9, 0xdd, 0x45, 0xb9, + 0xa7, 0x1a, 0xe0, 0x70, 0xf5, 0xc7, 0xdf, 0xcc, 0x25, 0xeb, 0xf7, 0x65, 0x70, 0xff, 0x88, 0x24, + 0x14, 0x25, 0x74, 0x4a, 0xe5, 0x8d, 0x77, 0x41, 0xa3, 0x1c, 0x3a, 0xe2, 0xca, 0xf3, 0x92, 0x2e, + 0xb6, 0xe5, 0x17, 0x05, 0xc2, 0xad, 0xf3, 0x92, 0x3e, 0xe7, 0xdd, 0x57, 0xa5, 0x19, 0x1f, 0x83, + 0xd5, 0x8c, 0x10, 0xa6, 0x66, 0x82, 0xa5, 0x75, 0x44, 0x35, 0x85, 0x66, 0x7d, 0xfb, 0x29, 0xca, + 0x9e, 0x45, 0xc8, 0x23, 0x84, 0xb9, 0xab, 0x9c, 0xc6, 0x13, 0x59, 0xc6, 0x4f, 0x35, 0xb0, 0x99, + 0xa0, 0x73, 0xe6, 0x97, 0x93, 0x96, 0xfa, 0x13, 0x48, 0x27, 0xe2, 0xde, 0xb7, 0xdc, 0xaf, 0xe7, + 0xb9, 0xf9, 0x8e, 0x3c, 0x85, 0xdb, 0x50, 0xd6, 0x3f, 0xb9, 0xf9, 0xe1, 0x18, 0xb3, 0xc9, 0x74, + 0xc8, 0xe5, 0xf4, 0xf9, 0xaf, 0x2d, 0x23, 0x3c, 0xa4, 0xce, 0xf0, 0x82, 0x21, 0x6a, 0x1f, 0xa3, + 0x73, 0x97, 0x2f, 0x3c, 0x83, 0xd3, 0x7d, 0x55, 0xb2, 0x1d, 0x43, 0x3a, 0x51, 0xc7, 0xf4, 0xf3, + 0x32, 0x68, 0xe9, 0xa7, 0x67, 0x1c, 0x80, 0x86, 0x6c, 0xee, 0x72, 0x2e, 0x8a, 0x46, 0x7c, 0x20, + 0xff, 0x56, 0x19, 0xe2, 0x65, 0xa8, 0x4b, 0xeb, 0x24, 0x34, 0x20, 0xa8, 0x4f, 0x10, 0x0c, 0x51, + 0xe6, 0xf7, 0xd5, 0xc9, 0xec, 0xdd, 0x35, 0x2d, 0x8f, 0x05, 0xde, 0xed, 0x5c, 0xe5, 0xe6, 0x9a, + 0x5c, 0xf7, 0xe7, 0xb9, 0xb9, 0x21, 0x65, 0x0a, 0x32, 0xcb, 0x5b, 0x93, 0xcb, 0xbe, 0x26, 0x31, + 0x50, 0x53, 0xf2, 0x7f, 0x48, 0x0c, 0x5e, 0x92, 0x18, 0x94, 0x12, 0x03, 0x75, 0x22, 0xbf, 0xae, + 0x80, 0x7b, 0x12, 0x6d, 0x40, 0xb0, 0x4e, 0xf1, 0x38, 0x41, 0xa1, 0x2f, 0x21, 0xaa, 0x69, 0x3a, + 0xba, 0x8e, 0x7c, 0x11, 0xcf, 0x04, 0x4c, 0x09, 0xee, 0x5e, 0xe6, 0x66, 0xad, 0x9a, 0x05, 0x37, + 0x28, 0x2c, 0xaf, 0x45, 0x35, 0x2c, 0x1f, 0x35, 0x65, 0x95, 0x7d, 0x8a, 0x8a, 0xc6, 0xba, 0x45, + 0xa2, 0x2c, 0xdf, 0x19, 0x62, 0x6e, 0xbb, 0xa2, 0xbf, 0x91, 0x6e, 0x79, 0xad, 0x99, 0x86, 0x33, + 0xbe, 0x03, 0xf2, 0x31, 0x10, 0xfa, 0x62, 0x94, 0xad, 0xdc, 0x39, 0xca, 0x1e, 0xa9, 0x51, 0xf6, + 0xb6, 0xf6, 0xc4, 0x94, 0xf9, 0x96, 0xb7, 0xae, 0x1c, 0x6a, 0x98, 0x45, 0xc0, 0x28, 0x10, 0x55, + 0xbb, 0xaa, 0xe7, 0xe5, 0xae, 0x5d, 0x3c, 0x9a, 0xe7, 0xe6, 0xf6, 0x4d, 0x95, 0x8a, 0xc3, 0xf2, + 0xde, 0x54, 0xce, 0xaa, 0x71, 0xad, 0xcf, 0x40, 0xbd, 0x78, 0x66, 0x8d, 0x5d, 0xd0, 0x48, 0xa6, + 0x31, 0xca, 0x78, 0x44, 0x54, 0x66, 0xd5, 0xab, 0x1c, 0x46, 0x17, 0x34, 0x43, 0x94, 0x90, 0x18, + 0x27, 0x22, 0xbe, 0x2c, 0xe2, 0xba, 0xcb, 0xf5, 0x5f, 0x5c, 0x75, 0x6a, 0x97, 0x57, 0x9d, 0xda, + 0x5f, 0x57, 0x9d, 0xda, 0xf3, 0xeb, 0xce, 0xd2, 0xe5, 0x75, 0x67, 0xe9, 0x8f, 0xeb, 0xce, 0xd2, + 0x37, 0x4f, 0xb4, 0x4b, 0x16, 0x10, 0x1a, 0x13, 0xca, 0x3f, 0xbe, 0xf6, 0xc7, 0xc4, 0x99, 0x1d, + 0x38, 0x31, 0x09, 0xa7, 0x11, 0xa2, 0xf2, 0x53, 0x6c, 0xbf, 0xf8, 0x16, 0xfb, 0xe0, 0xa3, 0xfd, + 0xc5, 0x8f, 0xa5, 0xe1, 0x3d, 0x31, 0x54, 0x0e, 0xfe, 0x0d, 0x00, 0x00, 0xff, 0xff, 0xdd, 0xc8, + 0x3e, 0xfe, 0xba, 0x09, 0x00, 0x00, } func (m *ClientState) Marshal() (dAtA []byte, err error) { diff --git a/proto/ibc/lightclients/tendermint/v1/tendermint.proto b/proto/ibc/lightclients/tendermint/v1/tendermint.proto index 0b55a20e433..7221f6502fa 100644 --- a/proto/ibc/lightclients/tendermint/v1/tendermint.proto +++ b/proto/ibc/lightclients/tendermint/v1/tendermint.proto @@ -52,12 +52,11 @@ message ClientState { // "upgradedIBCState"}` repeated string upgrade_path = 9 [(gogoproto.moretags) = "yaml:\"upgrade_path\""]; - // This flag, when set to true, will allow governance to recover a client - // which has expired - bool allow_update_after_expiry = 10 [(gogoproto.moretags) = "yaml:\"allow_update_after_expiry\""]; - // This flag, when set to true, will allow governance to unfreeze a client - // whose chain has experienced a misbehaviour event - bool allow_update_after_misbehaviour = 11 [(gogoproto.moretags) = "yaml:\"allow_update_after_misbehaviour\""]; + // allow_update_after_expiry is deprecated + bool allow_update_after_expiry = 10 [deprecated = true, (gogoproto.moretags) = "yaml:\"allow_update_after_expiry\""]; + // allow_update_after_misbehaviour is deprecated + bool allow_update_after_misbehaviour = 11 + [deprecated = true, (gogoproto.moretags) = "yaml:\"allow_update_after_misbehaviour\""]; } // ConsensusState defines the consensus state from Tendermint. From c34dc0716777193ad3cdd39fa74d1219efd2bcd9 Mon Sep 17 00:00:00 2001 From: Charly Date: Fri, 8 Apr 2022 13:37:19 +0200 Subject: [PATCH 3/6] update CHANGELOG --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8e5bde9662d..b65ce00b9be 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -43,6 +43,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ ### State Machine Breaking ### Improvements +* (modules/light-clients/07-tendermint) [\#1118](https://github.com/cosmos/ibc-go/pull/1118/files) Deprecating `AllowUpdateAfterExpiry and AllowUpdateAfterMisbehaviour`. See ADR-026 for context. * (modules/core/02-client) [\#1188](https://github.com/cosmos/ibc-go/pull/1188/files) Routing `MsgSubmitMisbehaviour` to `UpdateClient` keeper function. Deprecating `SubmitMisbehaviour` endpoint. * (modules/core/02-client) [\#1208](https://github.com/cosmos/ibc-go/pull/1208) Replace `CheckHeaderAndUpdateState` usage in 02-client with calls to `VerifyClientMessage`, `CheckForMisbehaviour`, `UpdateStateOnMisbehaviour` and `UpdateState`. * (modules/light-clients/09-localhost) [\#1187](https://github.com/cosmos/ibc-go/pull/1187/) Removing localhost light client implementation as it is not functional. From a0648335f0b649a551ce57331ce11ba9291c48a2 Mon Sep 17 00:00:00 2001 From: Charly Date: Fri, 8 Apr 2022 13:49:44 +0200 Subject: [PATCH 4/6] update cli docs --- docs/ibc/proposals.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/ibc/proposals.md b/docs/ibc/proposals.md index c2cb34860b2..f6bf351a705 100644 --- a/docs/ibc/proposals.md +++ b/docs/ibc/proposals.md @@ -46,7 +46,6 @@ See also the relevant documentation: [ADR-026, IBC client recovery mechanisms](. ### Preconditions - The chain is updated with ibc-go >= v1.1.0. -- Recovery parameters are set to `true` for the Tendermint light client (this determines if a governance proposal can be used). If the recovery parameters are set to `false`, recovery will require custom migration code. - The client identifier of an active client for the same counterparty chain. - The governance deposit. @@ -67,7 +66,7 @@ Check if the client is attached to the expected `chain-id`. For example, for an } ``` -The client is attached to the expected Akash `chain-id` and the recovery parameters (`allow_update_after_expiry` and `allow_update_after_misbehaviour`) are set to `true`. +The client is attached to the expected Akash `chain-id`. Note that although the parameters (`allow_update_after_expiry` and `allow_update_after_misbehaviour`) exist to signal intent, these parameters have been deprecated and will not enforce any checks on the revival of client. See ADR-026 for more context on this deprecation. ### Step 2 From 9cf6832b0c5d6473e7f51a7561b59a3aab2e7441 Mon Sep 17 00:00:00 2001 From: Charly Date: Fri, 8 Apr 2022 13:56:32 +0200 Subject: [PATCH 5/6] update broken milestone link --- docs/roadmap/roadmap.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/roadmap/roadmap.md b/docs/roadmap/roadmap.md index e425e4630aa..0a4819b4bb1 100644 --- a/docs/roadmap/roadmap.md +++ b/docs/roadmap/roadmap.md @@ -59,7 +59,7 @@ During this quarter we will also probably release versions that bump the Cosmos ### H2 January -- [`v2.0.a`](https://github.com/cosmos/ibc-go/milestone/14) +- [`v2.0.a`](https://github.com/cosmos/ibc-go/milestone/11) - [`v3.0.0-beta1`](https://github.com/cosmos/ibc-go/milestone/12): Beta 1 release of `v3.0.0` including Interchain Accounts, an update of Golang from `v1.15` to `v1.17`, and some core improvements. This is a Go-API breaking release because of [#472](https://github.com/cosmos/ibc-go/issues/472) and [#675](https://github.com/cosmos/ibc-go/pull/675). ### H1 February From c61cfd2cd7016792e727bd752b28163b98766903 Mon Sep 17 00:00:00 2001 From: Charly Date: Mon, 11 Apr 2022 15:02:50 +0200 Subject: [PATCH 6/6] update changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b65ce00b9be..c2190232888 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -43,7 +43,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ ### State Machine Breaking ### Improvements -* (modules/light-clients/07-tendermint) [\#1118](https://github.com/cosmos/ibc-go/pull/1118/files) Deprecating `AllowUpdateAfterExpiry and AllowUpdateAfterMisbehaviour`. See ADR-026 for context. +* (modules/light-clients/07-tendermint) [\#1118](https://github.com/cosmos/ibc-go/pull/1118) Deprecating `AllowUpdateAfterExpiry and AllowUpdateAfterMisbehaviour`. See ADR-026 for context. * (modules/core/02-client) [\#1188](https://github.com/cosmos/ibc-go/pull/1188/files) Routing `MsgSubmitMisbehaviour` to `UpdateClient` keeper function. Deprecating `SubmitMisbehaviour` endpoint. * (modules/core/02-client) [\#1208](https://github.com/cosmos/ibc-go/pull/1208) Replace `CheckHeaderAndUpdateState` usage in 02-client with calls to `VerifyClientMessage`, `CheckForMisbehaviour`, `UpdateStateOnMisbehaviour` and `UpdateState`. * (modules/light-clients/09-localhost) [\#1187](https://github.com/cosmos/ibc-go/pull/1187/) Removing localhost light client implementation as it is not functional.