-
Notifications
You must be signed in to change notification settings - Fork 616
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
02-client refactor #1871
02-client refactor #1871
Changes from 62 commits
a4b5b8f
841d21d
18abb79
a333a73
daa01db
2de5f1d
12f4ed2
ebf40bb
b0fa240
5e9785e
4c8b7c5
bdbaa91
f4480fb
5e3bac0
efbc5a1
b0dd49d
17209f7
fadd9d0
c2602a5
40183b4
a4b3d09
2e2bfab
18f1382
3c7358b
5cf6528
eb48e54
d2be6d5
e2f37b8
8a9978c
c43af66
e249518
e91ee68
e1ec9f4
cf893c2
55b115a
48882a9
8f46821
e1f2103
31b6ead
d120044
e2bdd1f
aab9ca2
4def196
32c4827
1617de7
3987a5b
81a7cae
60e5305
549c181
04df7cd
d8ac28a
d3d91ed
b0a58a8
7237c43
6cdcc63
0d8f408
a7d23fd
f861e0e
607458a
e9a7fac
18eee1a
197c2bd
2da9e65
68e8e79
3d33e8b
163b706
3cb1ba8
81f2d09
311a563
173c1fb
f8debd7
a7407cc
fc4bfaf
9a4ed68
87bae33
88936be
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -89,4 +89,4 @@ pull_request_rules: | |
actions: | ||
backport: | ||
branches: | ||
- release/v5.0.x | ||
- release/v5.0.x |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -43,6 +43,10 @@ Ref: https://keepachangelog.com/en/1.0.0/ | |
|
||
### API Breaking | ||
|
||
* (06-solomachine) [\#1679](https://github.com/cosmos/ibc-go/pull/1679) Remove `types` sub-package from `06-solomachine` lightclient directory. | ||
* (07-tendermint) [\#1677](https://github.com/cosmos/ibc-go/pull/1677) Remove `types` sub-package from `07-tendermint` lightclient directory. | ||
* (06-solomachine) [\#1687](https://github.com/cosmos/ibc-go/pull/1687) Bump `06-solomachine` protobuf version from `v2` to `v3`. | ||
* (06-solomachine) [\#1687](https://github.com/cosmos/ibc-go/pull/1687) Removed `DataType` enum and associated message types from `06-solomachine`. `DataType` has been removed from `SignBytes` and `SignatureAndData` in favour of `path`. | ||
* (core/03-connection) [\#1797](https://github.com/cosmos/ibc-go/pull/1797) Remove `PreviousConnectionID` from `NewMsgConnectionOpenTry` arguments. `MsgConnectionOpenTry.ValidateBasic()` returns error if the deprecated `PreviousConnectionID` is not empty. | ||
* (core/04-channel) [\#1792](https://github.com/cosmos/ibc-go/pull/1792) Remove `PreviousChannelID` from `NewMsgChannelOpenTry` arguments. `MsgChannelOpenTry.ValidateBasic()` returns error if the deprecated `PreviousChannelID` is not empty. | ||
* (core/04-channel) [\#1418](https://github.com/cosmos/ibc-go/pull/1418) `NewPacketId` has been renamed to `NewPacketID` to comply with go linting rules. | ||
|
@@ -65,6 +69,18 @@ Ref: https://keepachangelog.com/en/1.0.0/ | |
|
||
### Improvements | ||
|
||
* (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. An upgrade handler is provided in `modules/migrations/v5` to prune `09-localhost` clients and consensus states from the store. | ||
* [\#1186](https://github.com/cosmos/ibc-go/pull/1186/files) Removing `GetRoot` function from ConsensusState interface in `02-client`. `GetRoot` is unused by core IBC. | ||
* (modules/core/02-client) [\#1196](https://github.com/cosmos/ibc-go/pull/1196) Adding VerifyClientMessage to ClientState interface. | ||
* (modules/core/02-client) [\#1198](https://github.com/cosmos/ibc-go/pull/1198) Adding UpdateStateOnMisbehaviour to ClientState interface. | ||
* (modules/core/02-client) [\#1170](https://github.com/cosmos/ibc-go/pull/1170) Updating `ClientUpdateProposal` to set client state in lightclient implementations `CheckSubstituteAndUpdateState` methods. | ||
* (modules/core/02-client) [\#1197](https://github.com/cosmos/ibc-go/pull/1197) Adding `CheckForMisbehaviour` to `ClientState` interface. | ||
* (modules/core/02-client) [\#1195](https://github.com/cosmos/ibc-go/pull/1210) Removing `CheckHeaderAndUpdateState` from `ClientState` interface & associated light client implementations. | ||
* (modules/core/02-client) [\#1189](https://github.com/cosmos/ibc-go/pull/1212) Removing `CheckMisbehaviourAndUpdateState` from `ClientState` interface & associated light client implementations. | ||
* (modules/core/exported) [\#1206](https://github.com/cosmos/ibc-go/pull/1206) Adding new method `UpdateState` to `ClientState` interface. | ||
* (modules/core/02-client) [\#1741](https://github.com/cosmos/ibc-go/pull/1741) Emitting a new `upgrade_chain` event upon setting upgrade consensus state. | ||
* (linting) [\#1418](https://github.com/cosmos/ibc-go/pull/1418) Fix linting errors, resulting compatiblity with go1.18 linting style, golangci-lint 1.46.2 and the revivie linter. This caused breaking changes in core/04-channel, core/ante, and the testing library. | ||
* (app/20-transfer) [\#1680](https://github.com/cosmos/ibc-go/pull/1680) Adds migration to correct any malformed trace path information of tokens with denoms that contains slashes. The transfer module consensus version has been bumped to 2. | ||
* (app/20-transfer) [\#1730](https://github.com/cosmos/ibc-go/pull/1730) parse the ics20 denomination provided via a packet using the channel identifier format specified by ibc-go. | ||
|
@@ -81,6 +97,12 @@ Ref: https://keepachangelog.com/en/1.0.0/ | |
### Features | ||
|
||
* [\#276](https://github.com/cosmos/ibc-go/pull/276) Adding the Fee Middleware module v1 | ||
|
||
### Bug Fixes | ||
|
||
* (light-clients/solomachine) [#1839](https://github.com/cosmos/ibc-go/issues/1839) Fixed usage of the new diversifier in validation of changing diversifiers for the solo machine. The current diversifier must sign over the new diversifier. | ||
* (07-tendermint) [\#1674](https://github.com/cosmos/ibc-go/pull/1674) Submitted ClientState is zeroed out before checking the proof in order to prevent the proposal from containing information governance is not actually voting on. | ||
* (modules/core/02-client)[\#1676](https://github.com/cosmos/ibc-go/pull/1676) ClientState must be zeroed out for `UpgradeProposals` to pass validation. This prevents a proposal containing information governance is not actually voting on. | ||
* (apps/29-fee) [\#1229](https://github.com/cosmos/ibc-go/pull/1229) Adding CLI commands for getting all unrelayed incentivized packets and packet by packet-id. | ||
* (apps/29-fee) [\#1224](https://github.com/cosmos/ibc-go/pull/1224) Adding Query/CounterpartyAddress and CLI to ICS29 fee middleware | ||
* (apps/29-fee) [\#1225](https://github.com/cosmos/ibc-go/pull/1225) Adding Query/FeeEnabledChannel and Query/FeeEnabledChannels with CLIs to ICS29 fee middleware. | ||
|
@@ -152,6 +174,11 @@ Ref: https://keepachangelog.com/en/1.0.0/ | |
|
||
### API Breaking | ||
|
||
* (02-client) [\#598](https://github.com/cosmos/ibc-go/pull/598) The client state and consensus state return value has been removed from `VerifyUpgradeAndUpdateState`. Light client implementations must update the client state and consensus state after verifying a valid client upgrade. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. And these are added to the v3.0.0 release... |
||
* (06-solomachine) [\#1100](https://github.com/cosmos/ibc-go/pull/1100) Remove `GetClientID` function from 06-solomachine `Misbehaviour` type. | ||
* (06-solomachine) [\#1100](https://github.com/cosmos/ibc-go/pull/1100) Deprecate `ClientId` field in 06-solomachine `Misbehaviour` type. | ||
* (07-tendermint) [\#1097](https://github.com/cosmos/ibc-go/pull/1097) Remove `GetClientID` function from 07-tendermint `Misbehaviour` type. | ||
* (07-tendermint) [\#1097](https://github.com/cosmos/ibc-go/pull/1097) Deprecate `ClientId` field in 07-tendermint `Misbehaviour` type. | ||
* (testing) [\#939](https://github.com/cosmos/ibc-go/pull/939) Support custom power reduction for testing. | ||
* (modules/core/05-port) [\#1086](https://github.com/cosmos/ibc-go/pull/1086) Added `counterpartyChannelID` argument to IBCModule.OnChanOpenAck | ||
* (channel) [\#848](https://github.com/cosmos/ibc-go/pull/848) Added `ChannelId` to MsgChannelOpenInitResponse | ||
|
@@ -163,6 +190,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ | |
* (transfer) [\#517](https://github.com/cosmos/ibc-go/pull/517) Separates the ICS 26 callback functions from `AppModule` into a new type `IBCModule` for ICS 20 transfer. | ||
* (modules/core/02-client) [\#536](https://github.com/cosmos/ibc-go/pull/536) `GetSelfConsensusState` return type changed from bool to error. | ||
* (channel) [\#644](https://github.com/cosmos/ibc-go/pull/644) Removes `CounterpartyHops` function from the ChannelKeeper. | ||
* (modules/core/exported) [\#1107](https://github.com/cosmos/ibc-go/pull/1107) Merging the `Header` and `Misbehaviour` interfaces into a single `ClientMessage` type | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Also in v3.0.0 |
||
* (testing) [\#776](https://github.com/cosmos/ibc-go/pull/776) Adding helper fn to generate capability name for testing callbacks | ||
* (testing) [\#892](https://github.com/cosmos/ibc-go/pull/892) IBC Mock modules store the scoped keeper and portID within the IBCMockApp. They also maintain reference to the AppModule to update the AppModule's list of IBC applications it references. Allows for the mock module to be reused as a base application in middleware stacks. | ||
* (channel) [\#882](https://github.com/cosmos/ibc-go/pull/882) The `WriteAcknowledgement` API now takes `exported.Acknowledgement` instead of a byte array | ||
|
@@ -174,6 +202,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ | |
|
||
### Improvements | ||
|
||
* (client) [\#888](https://github.com/cosmos/ibc-go/pull/888) Add `GetTimestampAtHeight` to `ClientState` | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Also in v3.0.0. |
||
* (interchain-accounts) [\#1037](https://github.com/cosmos/ibc-go/pull/1037) Add a function `InitModule` to the interchain accounts `AppModule`. This function should be called within the upgrade handler when adding the interchain accounts module to a chain. It should be called in place of InitGenesis (set the consensus version in the version map). | ||
* (testing) [\#942](https://github.com/cosmos/ibc-go/pull/942) `NewTestChain` will create 4 validators in validator set by default. A new constructor function `NewTestChainWithValSet` is provided for test writers who want custom control over the validator set of test chains. | ||
* (testing) [\#904](https://github.com/cosmos/ibc-go/pull/904) Add `ParsePacketFromEvents` function to the testing package. Useful when sending/relaying packets via the testing package. | ||
|
@@ -183,6 +212,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ | |
* (channel) [\#692](https://github.com/cosmos/ibc-go/pull/692) Minimize channel logging by only emitting the packet sequence, source port/channel, destination port/channel upon packet receives, acknowledgements and timeouts. | ||
* [\#383](https://github.com/cosmos/ibc-go/pull/383) Adds helper functions for merging and splitting middleware versions from the underlying app version. | ||
* (modules/core/05-port) [\#288](https://github.com/cosmos/ibc-go/issues/288) Making the 05-port keeper function IsBound public. The IsBound function checks if the provided portID is already binded to a module. | ||
* (client) [\#724](https://github.com/cosmos/ibc-go/pull/724) `IsRevisionFormat` and `IsClientIDFormat` have been updated to disallow newlines before the dash used to separate the chainID and revision number, and the client type and client sequence. | ||
* (channel) [\#644](https://github.com/cosmos/ibc-go/pull/644) Adds `GetChannelConnection` to the ChannelKeeper. This function returns the connectionID and connection state associated with a channel. | ||
* (channel) [\647](https://github.com/cosmos/ibc-go/pull/647) Reorganizes channel handshake handling to set channel state after IBC application callbacks. | ||
* (client) [\#724](https://github.com/cosmos/ibc-go/pull/724) `IsRevisionFormat` and `IsClientIDFormat` have been updated to disallow newlines before the dash used to separate the chainID and revision number, and the client type and client sequence. | ||
|
@@ -597,6 +627,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ | |
### Client Breaking Changes | ||
|
||
* (02-client/cli) [\#196](https://github.com/cosmos/ibc-go/pull/196) Rename `node-state` cli command to `self-consensus-state`. | ||
* (02-client/cli) [\#897](https://github.com/cosmos/ibc-go/pull/897) Remove `GetClientID()` from `Misbehaviour` interface. Submit client misbehaviour cli command requires an explicit client id now. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This entry has been added to the v1.0.0 release... |
||
|
||
## IBC in the Cosmos SDK Repository | ||
|
||
|
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
|
@@ -23,7 +23,7 @@ v1.0.0 was decided to be used instead of v0.1.0 primarily for the following reas | |||||
|
||||||
When a Go module is released under v1.0.0, all following releases must follow Go semantic versioning. | ||||||
Thus when the go API is broken, the Go module major version **must** be incremented. | ||||||
For example, changing the go package version from `v2` to `v3` bumps the import from `github.com/cosmos/ibc-go/v2` to `github.com/cosmos/ibc-go/v3`. | ||||||
For example, changing the go package version from `v2` to `v3` bumps the import from `github.com/cosmos/ibc-go/v2` to `github.com/cosmos/ibc-go/v5`. | ||||||
damiannolan marked this conversation as resolved.
Show resolved
Hide resolved
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
colin-axner marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
|
||||||
If the Go module version is not incremented then attempting to go get a module @v3.0.0 without the suffix results in: | ||||||
`invalid version: module contains a go.mod file, so major version must be compatible: should be v0 or v1, not v3` | ||||||
|
@@ -33,7 +33,7 @@ Not including a go.mod in our release is not a viable option. | |||||
|
||||||
#### Attempting to import multiple go module versions for ibc-go | ||||||
|
||||||
Attempting to import two versions of ibc-go, such as `github.com/cosmos/ibc-go/v2` and `github.com/cosmos/ibc-go/v3`, will result in multiple issues. | ||||||
Attempting to import two versions of ibc-go, such as `github.com/cosmos/ibc-go/v2` and `github.com/cosmos/ibc-go/v5`, will result in multiple issues. | ||||||
damiannolan marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
|
||||||
The Cosmos SDK does global registration of error and governance proposal types. | ||||||
The errors and proposals used in ibc-go would need to now register their naming based on the go module version. | ||||||
|
@@ -76,7 +76,7 @@ For example, lets say this solution is implemented in v3. Then | |||||
|
||||||
`github.com/cosmos/ibc-go/v2` cannot be imported with any other ibc-go version | ||||||
|
||||||
`github.com/cosmos/ibc-go/v3` cannot be imported with any previous ibc-go versions | ||||||
`github.com/cosmos/ibc-go/v5` cannot be imported with any previous ibc-go versions | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
||||||
`github.com/cosmos/ibc-go/v4` may be imported with ibc-go versions v3+ | ||||||
|
||||||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,88 @@ | ||
# ADR 005: UpdateClient Events - ClientState Consensus Heights | ||
|
||
## Changelog | ||
* 25/04/2022: initial draft | ||
|
||
## Status | ||
|
||
Accepted | ||
|
||
## Context | ||
|
||
The `ibc-go` implementation leverages the [Cosmos-SDK's EventManager](https://github.com/cosmos/cosmos-sdk/blob/v0.45.4/docs/core/events.md#EventManager) to provide subscribers a method of reacting to application specific events. | ||
Some IBC relayers depend on the [`consensus_height`](https://github.com/cosmos/ibc-go/blob/v3.0.0/modules/core/02-client/keeper/events.go#L33) attribute emitted as part of `UpdateClient` events in order to run `07-tendermint` misbehaviour detection by cross-checking the details of the *Header* emitted at a given consensus height against those of the *Header* from the originating chain. This includes such details as: | ||
|
||
- The `SignedHeader` containing the commitment root. | ||
- The `ValidatorSet` that signed the *Header*. | ||
- The `TrustedHeight` seen by the client at less than or equal to the height of *Header*. | ||
- The last `TrustedValidatorSet` at the trusted height. | ||
|
||
Following the refactor of the `02-client` submodule and associated `ClientState` interfaces, it will now be possible for | ||
light client implementations to perform such actions as batch updates, inserting `N` number of `ConsensusState`s into the application state tree with a single `UpdateClient` message. This flexibility is provided in `ibc-go` by the usage of the [Protobuf `Any`](https://developers.google.com/protocol-buffers/docs/proto3#any) field contained within the [`UpdateClient`](https://github.com/cosmos/ibc-go/blob/v3.0.0/proto/ibc/core/client/v1/tx.proto#L44) message. | ||
For example, a batched client update message serialized as a Protobuf `Any` type for the `07-tendermint` lightclient implementation could be defined as follows: | ||
|
||
```protobuf | ||
message BatchedHeaders { | ||
repeated Header headers = 1; | ||
} | ||
``` | ||
|
||
To complement this flexibility, the `UpdateClient` handler will now support the submission of [client misbehaviour](https://github.com/cosmos/ibc/tree/master/spec/core/ics-002-client-semantics#misbehaviour) by consolidating the `Header` and `Misbehaviour` interfaces into a single `ClientMessage` interface type: | ||
|
||
```go | ||
// ClientMessage is an interface used to update an IBC client. | ||
// The update may be done by a single header, a batch of headers, misbehaviour, or any type which when verified produces | ||
// a change to state of the IBC client | ||
type ClientMessage interface { | ||
proto.Message | ||
|
||
ClientType() string | ||
ValidateBasic() error | ||
} | ||
``` | ||
|
||
To support this functionality the `GetHeight()` method has been omitted from the new `ClientMessage` interface. | ||
Emission of standardised events from the `02-client` submodule now becomes problematic and is two-fold: | ||
|
||
1. The `02-client` submodule previously depended upon the `GetHeight()` method of `Header` types in order to [retrieve the updated consensus height](https://github.com/cosmos/ibc-go/blob/v3.0.0/modules/core/02-client/keeper/client.go#L90). | ||
2. Emitting a single `consensus_height` event attribute is not sufficient in the case of a batched client update containing multiple *Headers*. | ||
|
||
## Decision | ||
|
||
The following decisions have been made in order to provide flexibility to consumers of `UpdateClient` events in a non-breaking fashion: | ||
|
||
1. Return a list of updated consensus heights `[]exported.Height` from the new `UpdateState` method of the `ClientState` interface. | ||
|
||
```go | ||
// UpdateState updates and stores as necessary any associated information for an IBC client, such as the ClientState and corresponding ConsensusState. | ||
// Upon successful update, a list of consensus heights is returned. It assumes the ClientMessage has already been verified. | ||
UpdateState(sdk.Context, codec.BinaryCodec, sdk.KVStore, ClientMessage) []Height | ||
``` | ||
|
||
2. Maintain the `consensus_height` event attribute emitted from the `02-client` update handler, but mark as deprecated for future removal. For example, with tendermint lightclients this will simply be `consensusHeights[0]` following a successful update using a single *Header*. | ||
|
||
3. Add an additional `consensus_heights` event attribute, containing a comma separated list of updated heights. This provides flexibility for emitting a single consensus height or multiple consensus heights in the example use-case of batched header updates. | ||
|
||
## Consequences | ||
|
||
### Positive | ||
|
||
- Subscribers of IBC core events can act upon `UpdateClient` events containing one or more consensus heights. | ||
- Deprecation of the existing `consensus_height` attribute allows consumers to continue to process `UpdateClient` events as normal, with a path to upgrade to using the `consensus_heights` attribute moving forward. | ||
|
||
### Negative | ||
|
||
- Consumers of IBC core `UpdateClient` events are forced to make future code changes. | ||
|
||
### Neutral | ||
|
||
## References | ||
|
||
Discussions: | ||
- [#1208](https://github.com/cosmos/ibc-go/pull/1208#discussion_r839691927) | ||
|
||
Issues: | ||
- [#594](https://github.com/cosmos/ibc-go/issues/594) | ||
|
||
PRs: | ||
- [#1285](https://github.com/cosmos/ibc-go/pull/1285) |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -100,7 +100,7 @@ packaged inside a payload which is json serialized and passed to `callContract` | |
array of bytes returned by the smart contract. This data is deserialized and passed as return argument. | ||
|
||
```go | ||
func (c *ClientState) CheckProposedHeaderAndUpdateState(context sdk.Context, marshaler codec.BinaryMarshaler, store sdk.KVStore, header exported.Header) (exported.ClientState, exported.ConsensusState, error) { | ||
func (c *ClientState) CheckProposedHeaderAndUpdateState(context sdk.Context, marshaler codec.BinaryMarshaler, store sdk.KVStore, header exported.ClientMessage) (exported.ClientState, exported.ConsensusState, error) { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Shouldn't this be split up into two functions or we will allow the ADR authors to update? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think we should change the status of the ADR to "needs update" |
||
// get consensus state corresponding to client state to check if the client is expired | ||
consensusState, err := GetConsensusState(store, marshaler, c.LatestHeight) | ||
if err != nil { | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This shouldn't be under v3.0.0 I think?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep, I think all the changelogs need to moved to the unreleased section