diff --git a/CHANGELOG.md b/CHANGELOG.md index 0333484265a..0621a405486 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -88,6 +88,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ * (light-clients/06-solomachine) Moving `verifyMisbehaviour` function from update.go to misbehaviour_handle.go. * [\#2434](https://github.com/cosmos/ibc-go/pull/2478) Removed all `TypeMsg` constants * (modules/core/exported) [#1689] (https://github.com/cosmos/ibc-go/pull/2539) Removing `GetVersions` from `ConnectionI` interface. +* (core/02-connection) [#2419](https://github.com/cosmos/ibc-go/pull/2419) Add optional proof data to proto definitions of `MsgConnectionOpenTry` and `MsgConnectionOpenAck` for host state machines that are unable to introspect their own consensus state. ### Features diff --git a/docs/architecture/adr-006-02-client-refactor.md b/docs/architecture/adr-006-02-client-refactor.md index 5faa77b8bcf..2f3e67a83c1 100644 --- a/docs/architecture/adr-006-02-client-refactor.md +++ b/docs/architecture/adr-006-02-client-refactor.md @@ -5,7 +5,7 @@ ## Status -Accepted and applied in v6 of ibc-go +Accepted and applied in v7 of ibc-go ## Context diff --git a/docs/architecture/adr-007-solomachine-signbytes.md b/docs/architecture/adr-007-solomachine-signbytes.md index 0a987842e80..686552e982a 100644 --- a/docs/architecture/adr-007-solomachine-signbytes.md +++ b/docs/architecture/adr-007-solomachine-signbytes.md @@ -5,11 +5,11 @@ ## Status -Accepted, applied in v6 +Accepted, applied in v7 ## Context -The `06-solomachine` implemention up until ibc-go v6 constructed sign bytes using a `DataType` which described what type of data was being signed. +The `06-solomachine` implemention up until ibc-go v7 constructed sign bytes using a `DataType` which described what type of data was being signed. This design decision arose from a misunderstanding of the security implications. It was noted that the proto definitions do not [provide uniqueness](https://github.com/cosmos/cosmos-sdk/pull/7237#discussion_r484264573) which is a necessity for ensuring two signatures over different data types can never be the same. What was missed is that the uniqueness is not provided by the proto definition, but by the usage of the proto definition. diff --git a/modules/light-clients/06-solomachine/client_state.go b/modules/light-clients/06-solomachine/client_state.go index 5148a35aa62..cae2825b087 100644 --- a/modules/light-clients/06-solomachine/client_state.go +++ b/modules/light-clients/06-solomachine/client_state.go @@ -23,7 +23,6 @@ func NewClientState(latestSequence uint64, consensusState *ConsensusState) *Clie Sequence: latestSequence, IsFrozen: false, ConsensusState: consensusState, - // AllowUpdateAfterProposal has been DEPRECATED. See 01_concepts in the solo machine spec repo for more details. } } diff --git a/proto/ibc/core/connection/v1/tx.proto b/proto/ibc/core/connection/v1/tx.proto index 94d676bbc38..8d1a0f3ec1d 100644 --- a/proto/ibc/core/connection/v1/tx.proto +++ b/proto/ibc/core/connection/v1/tx.proto @@ -67,6 +67,8 @@ message MsgConnectionOpenTry { ibc.core.client.v1.Height consensus_height = 11 [(gogoproto.moretags) = "yaml:\"consensus_height\"", (gogoproto.nullable) = false]; string signer = 12; + // optional proof data for host state machines that are unable to introspect their own consensus state + bytes host_consensus_state_proof = 13; } // MsgConnectionOpenTryResponse defines the Msg/ConnectionOpenTry response type. @@ -94,6 +96,8 @@ message MsgConnectionOpenAck { ibc.core.client.v1.Height consensus_height = 9 [(gogoproto.moretags) = "yaml:\"consensus_height\"", (gogoproto.nullable) = false]; string signer = 10; + // optional proof data for host state machines that are unable to introspect their own consensus state + bytes host_consensus_state_proof = 11; } // MsgConnectionOpenAckResponse defines the Msg/ConnectionOpenAck response type.