Skip to content

Commit

Permalink
Merge branch 'cosmos:main' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
vtjl10 authored Jan 15, 2025
2 parents 70f08fb + 3cd1a78 commit 4c9e629
Show file tree
Hide file tree
Showing 92 changed files with 2,558 additions and 3,116 deletions.
3 changes: 0 additions & 3 deletions .changelog/unreleased/dependencies/2390-bump-sdk.md

This file was deleted.

3 changes: 0 additions & 3 deletions .changelog/unreleased/state-breaking/2390-bump-sdk.md

This file was deleted.

12 changes: 12 additions & 0 deletions .changelog/v6.4.0/api-breaking/2400-preccv.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
- Enable existing (standalone) chains to use the existing client (and connection)
to the provider chain when becoming a consumer chain. This feature introduces
the following API-breaking changes.
([\#2400](https://github.com/cosmos/interchain-security/pull/2400))

- Add `connection_id` and `preCCV` to `ConsumerGenesisState`, the consumer
genesis state created by the provider chain. If the `connection_id` is not empty,
`preCCV` is set to true and both `provider.client_state` and `provider.consensus_state`
are set to nil (as the consumer doesn't need to create a new provider client).
As a result, for older versions of consumers, the `connection_id` in
`ConsumerInitializationParameters` must be empty and the resulting `ConsumerGenesisState`
needs to be adapted, i.e., both `connection_id` and `preCCV` need to be removed.
3 changes: 3 additions & 0 deletions .changelog/v6.4.0/dependencies/2458-bump-sdk.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
- Bump [cosmos-sdk](https://github.com/cosmos/cosmos-sdk) to
[v0.50.11](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.50.11)
([\#2458](https://github.com/cosmos/interchain-security/pull/2458))
13 changes: 13 additions & 0 deletions .changelog/v6.4.0/features/2400-preccv.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
- Enable existing (standalone) chains to use the existing client (and connection)
to the provider chain when becoming a consumer chain. This feature introduces
the following changes.
([\#2400](https://github.com/cosmos/interchain-security/pull/2400))

- Add `connection_id` to `ConsumerInitializationParameters`, the ID of
the connection end _on the provider chain_ on top of which the CCV channel will
be established. Consumer chain owners can set `connection_id` to a valid ID in
order to reuse the underlying clients.
- Add `connection_id` to the consumer genesis state, the ID of the connection
end _on the consumer chain_ on top of which the CCV channel will be established.
If `connection_id` is a valid ID, then the consumer chain will use the underlying
client as the provider client and it will initiate the channel handshake.
3 changes: 3 additions & 0 deletions .changelog/v6.4.0/state-breaking/2400-preccv.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
- Enable existing (standalone) chains to use the existing client (and connection)
to the provider chain when becoming a consumer chain.
([\#2400](https://github.com/cosmos/interchain-security/pull/2400))
3 changes: 3 additions & 0 deletions .changelog/v6.4.0/state-breaking/2458-bump-sdk.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
- Bump [cosmos-sdk](https://github.com/cosmos/cosmos-sdk) to
[v0.50.11](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.50.11)
([\#2458](https://github.com/cosmos/interchain-security/pull/2458))
1 change: 1 addition & 0 deletions .changelog/v6.4.0/summary.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*January 7, 2025*
2 changes: 1 addition & 1 deletion .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@

# Primary repo maintainers

* @cosmos/informal_interchain-security_maintain
* @cosmos/informal_interchain-security_maintain @cosmos/interchain_inc_ics_write
10 changes: 10 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -87,3 +87,13 @@ updates:
open-pull-requests-limit: 0
labels:
- dependencies

- package-ecosystem: gomod
directory: "/"
schedule:
interval: daily
target-branch: "release/v6.4.x"
# Only allow automated security-related dependency updates on release branches.
open-pull-requests-limit: 0
labels:
- dependencies
26 changes: 26 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -208,3 +208,29 @@ jobs:
if: env.GIT_DIFF
run: |
make verify-models
test-interchain:
runs-on: Gaia-Runner-medium
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: "1.22"
check-latest: true
cache: true
cache-dependency-path: go.sum
- uses: technote-space/[email protected]
id: git_diff
with:
PATTERNS: |
**/*.go
go.mod
go.sum
**/go.mod
**/go.sum
**/Makefile
Makefile
- name: interchain tests
if: env.GIT_DIFF
run: |
make test-interchain
10 changes: 9 additions & 1 deletion .mergify.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,4 +65,12 @@ pull_request_rules:
actions:
backport:
branches:
- release/v6.3.x
- release/v6.3.x
- name: Backport patches to the release/v6.4.x branch
conditions:
- base=main
- label=A:backport/v6.4.x
actions:
backport:
branches:
- release/v6.4.x
105 changes: 105 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,110 @@
# CHANGELOG

## v6.4.0

*January 7, 2025*

### API BREAKING

- Enable existing (standalone) chains to use the existing client (and connection)
to the provider chain when becoming a consumer chain. This feature introduces
the following API-breaking changes.
([\#2400](https://github.com/cosmos/interchain-security/pull/2400))

- Add `connection_id` and `preCCV` to `ConsumerGenesisState`, the consumer
genesis state created by the provider chain. If the `connection_id` is not empty,
`preCCV` is set to true and both `provider.client_state` and `provider.consensus_state`
are set to nil (as the consumer doesn't need to create a new provider client).
As a result, for older versions of consumers, the `connection_id` in
`ConsumerInitializationParameters` must be empty and the resulting `ConsumerGenesisState`
needs to be adapted, i.e., both `connection_id` and `preCCV` need to be removed.

### BUG FIXES

- Bump [cosmossdk.io/math](https://github.com/cosmos/cosmos-sdk/tree/main/math) to
[v1.4.0](https://github.com/cosmos/cosmos-sdk/tree/math/v1.4.0)
([\#2408](https://github.com/cosmos/gaia/pull/2408))
- `[x/consumer]` Updated `genesis transform` CLI to transform `consumer-genesis` content exported by v6.2 providers for consumer chains at version v5. Removed transformation for older consumer versions.
([\#2373](https://github.com/cosmos/interchain-security/pull/2373))
- `[x/provider]` Fixed pagination bug in query for listing the consumer chains.
([\#2398](https://github.com/cosmos/interchain-security/pull/2398))
- `[x/provider]` Fixed pagination in the list consumer chains query.
([\#2377](https://github.com/cosmos/interchain-security/pull/2377))

### DEPENDENCIES

- Bump [CometBFT](https://github.com/cometbft/cometbft) to
[v0.38.15](https://github.com/cometbft/cometbft/releases/tag/v0.38.15).
([\#2390](https://github.com/cosmos/interchain-security/pull/2390))
- Bump [cosmos-sdk](https://github.com/cosmos/cosmos-sdk) to
[v0.50.11](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.50.11)
([\#2458](https://github.com/cosmos/interchain-security/pull/2458))
- Bump [cosmossdk.io/math](https://github.com/cosmos/cosmos-sdk/tree/main/math) to
[v1.4.0](https://github.com/cosmos/cosmos-sdk/tree/math/v1.4.0)
([\#2408](https://github.com/cosmos/gaia/pull/2408))
- Bump [ibc-go](https://github.com/cosmos/ibc-go) to
[v8.5.2](https://github.com/cosmos/ibc-go/releases/tag/v8.5.2).
([\#2390](https://github.com/cosmos/interchain-security/pull/2390))

### FEATURES

- Enable existing (standalone) chains to use the existing client (and connection)
to the provider chain when becoming a consumer chain. This feature introduces
the following changes.
([\#2400](https://github.com/cosmos/interchain-security/pull/2400))

- Add `connection_id` to `ConsumerInitializationParameters`, the ID of
the connection end _on the provider chain_ on top of which the CCV channel will
be established. Consumer chain owners can set `connection_id` to a valid ID in
order to reuse the underlying clients.
- Add `connection_id` to the consumer genesis state, the ID of the connection
end _on the consumer chain_ on top of which the CCV channel will be established.
If `connection_id` is a valid ID, then the consumer chain will use the underlying
client as the provider client and it will initiate the channel handshake.
- `[x/consumer]` Remove `VSCMaturedPackets`. Consumer-side changes for [ADR 018](https://cosmos.github.io/interchain-security/adrs/adr-018-remove-vscmatured#consumer-changes-r2).
([\#2372](https://github.com/cosmos/interchain-security/pull/2372))
- `[x/provider]` Add query for consumer genesis time,
which corresponds to creation time of consumer clients.
([\#2366](https://github.com/cosmos/interchain-security/pull/2366))
- `[x/provider]` Allow consumer chains to specify a list of priority validators that are included in the validator set before other validators are considered
([\#2101](https://github.com/cosmos/interchain-security/pull/2101))
- `[x/provider]` Allow the chain id of a consumer chain to be updated before the chain
launches. ([\#2378](https://github.com/cosmos/interchain-security/pull/2378))
- `[x/provider]` Enable the customization of the slashing and jailing conditions
for infractions committed by validators on consumer chains (as per
[ADR 020](https://cosmos.github.io/interchain-security/adrs/adr-020-cutomizable_slashing_and_jailing)).
Every consumer chain can decide the punishment for every type of infraction.
([\#2403](https://github.com/cosmos/interchain-security/pull/2403))
- `[x/provider]` Prevent Opt-In chains from launching, unless at least one active validator has opted-in to them.
([\#2101](https://github.com/cosmos/interchain-security/pull/2399))

### IMPROVEMENTS

- `[x/democracy/governance]` Removal of consumer governance whitelisting functionality
([\#2381](https://github.com/cosmos/interchain-security/pull/2381))

### STATE BREAKING

- Allow the chain id of a consumer chain to be updated before the chain
launches. ([\#2378](https://github.com/cosmos/interchain-security/pull/2378))
- Bump [cosmos-sdk](https://github.com/cosmos/cosmos-sdk) to
[v0.50.11](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.50.11)
([\#2458](https://github.com/cosmos/interchain-security/pull/2458))
- Enable existing (standalone) chains to use the existing client (and connection)
to the provider chain when becoming a consumer chain.
([\#2400](https://github.com/cosmos/interchain-security/pull/2400))
- `[x/consumer]` Remove `VSCMaturedPackets`. Consumer-side changes for [ADR 018](https://cosmos.github.io/interchain-security/adrs/adr-018-remove-vscmatured#consumer-changes-r2).
([\#2372](https://github.com/cosmos/interchain-security/pull/2372))
- `[x/democracy/governance]` Removal of consumer governance whitelisting functionality
([\#2381](https://github.com/cosmos/interchain-security/pull/2381))
- `[x/provider]` Allow consumer chains to specify a list of priority validators that are included in the validator set before other validators are considered
([\#2101](https://github.com/cosmos/interchain-security/pull/2101))
- `[x/provider]` Enable the customization of the slashing and jailing conditions
for infractions committed by validators on consumer chains (as per
[ADR 020](https://cosmos.github.io/interchain-security/adrs/adr-020-cutomizable_slashing_and_jailing)).
Every consumer chain can decide the punishment for every type of infraction.
([\#2403](https://github.com/cosmos/interchain-security/pull/2403))

## v6.3.0

*October 18, 2024*
Expand Down
36 changes: 19 additions & 17 deletions FEATURES.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,23 @@

The following table indicates the major ICS features available in the [currently active releases](./RELEASES.md#version-matrix):

| Feature | `v4.0.0` | `v4.3.1` | `v4.3.1-lsm` | `v4.4.0` | `v5.0.0` | `v5.2.0` | `v6.1.0` |
|---------|---------:|---------:|-------------:|---------:|---------:|---------:|----------:|
| Feature | `v4.0.0` | `v4.4.0` | `v4.5.0` | `v5.0.0` | `v5.2.0` | `v6.1.0` | `v6.3.0` | `v6.4.0` |
|---------|---------:|---------:|---------:|---------:|----------:|---------:|---------:|---------:|
| [Channel initialization: new chains](https://github.com/cosmos/ibc/blob/main/spec/app/ics-028-cross-chain-validation/overview_and_basic_concepts.md#channel-initialization-new-chains) ||||||||
| [Validator set update](https://github.com/cosmos/ibc/blob/main/spec/app/ics-028-cross-chain-validation/overview_and_basic_concepts.md#validator-set-update) ||||||||
| [Completion of unbonding operations](https://github.com/cosmos/ibc/blob/main/spec/app/ics-028-cross-chain-validation/overview_and_basic_concepts.md#completion-of-unbonding-operations) ||||||||
| [Consumer initiated slashing](https://github.com/cosmos/ibc/blob/main/spec/app/ics-028-cross-chain-validation/overview_and_basic_concepts.md#consumer-initiated-slashing) ||||||||
| [Reward distribution](https://github.com/cosmos/ibc/blob/main/spec/app/ics-028-cross-chain-validation/overview_and_basic_concepts.md#reward-distribution) ||||||||
| [Consumer chain removal](https://github.com/cosmos/ibc/blob/main/spec/app/ics-028-cross-chain-validation/methods.md#consumer-chain-removal) ||||||||
| [Key assignment](https://github.com/cosmos/interchain-security/issues/26) ||||||||
| [Jail throttling](https://github.com/cosmos/interchain-security/issues/404) ||||||||
| [Soft opt-out](https://github.com/cosmos/interchain-security/issues/851) ||||||||
| [Channel initialization: existing chains](https://github.com/cosmos/ibc/blob/main/spec/app/ics-028-cross-chain-validation/overview_and_basic_concepts.md#channel-initialization-existing-chains) (aka [Standalone to consumer changeover](https://github.com/cosmos/interchain-security/issues/756)) ||||||||
| [Cryptographic verification of equivocation](https://github.com/cosmos/interchain-security/issues/732) ||||||||
| [Jail throttling with retries](https://github.com/cosmos/interchain-security/issues/713) ||||||||
| [ICS epochs](https://cosmos.github.io/interchain-security/adrs/adr-014-epochs) ||||||||
| [Partial Set Security](https://cosmos.github.io/interchain-security/adrs/adr-015-partial-set-security) ||||||||
| [Inactive Provider Validators](https://cosmos.github.io/interchain-security/adrs/adr-017-allowing-inactive-validators) ||||||||
| [Permissionless](https://cosmos.github.io/interchain-security/adrs/adr-019-permissionless-ics) ||||||||
| [Validator set update](https://github.com/cosmos/ibc/blob/main/spec/app/ics-028-cross-chain-validation/overview_and_basic_concepts.md#validator-set-update) |||||||||
| [Completion of unbonding operations](https://github.com/cosmos/ibc/blob/main/spec/app/ics-028-cross-chain-validation/overview_and_basic_concepts.md#completion-of-unbonding-operations) |||||||||
| [Consumer initiated slashing](https://github.com/cosmos/ibc/blob/main/spec/app/ics-028-cross-chain-validation/overview_and_basic_concepts.md#consumer-initiated-slashing) |||||||||
| [Reward distribution](https://github.com/cosmos/ibc/blob/main/spec/app/ics-028-cross-chain-validation/overview_and_basic_concepts.md#reward-distribution) |||||||||
| [Consumer chain removal](https://github.com/cosmos/ibc/blob/main/spec/app/ics-028-cross-chain-validation/methods.md#consumer-chain-removal) |||||||||
| [Key assignment](https://github.com/cosmos/interchain-security/issues/26) |||||||||
| [Jail throttling](https://github.com/cosmos/interchain-security/issues/404) |||||||||
| [Soft opt-out](https://github.com/cosmos/interchain-security/issues/851) |||||||||
| [Channel initialization: existing chains](https://github.com/cosmos/ibc/blob/main/spec/app/ics-028-cross-chain-validation/overview_and_basic_concepts.md#channel-initialization-existing-chains) (aka [Standalone to consumer changeover](https://github.com/cosmos/interchain-security/issues/756)) |||||||||
| [Cryptographic verification of equivocation](https://github.com/cosmos/interchain-security/issues/732) |||||||||
| [Jail throttling with retries](https://github.com/cosmos/interchain-security/issues/713) |||||||||
| [ICS epochs](https://cosmos.github.io/interchain-security/adrs/adr-014-epochs) |||||||||
| [Partial Set Security](https://cosmos.github.io/interchain-security/adrs/adr-015-partial-set-security) |||||||||
| [Inactive Provider Validators](https://cosmos.github.io/interchain-security/adrs/adr-017-allowing-inactive-validators) |||||||||
| [Permissionless](https://cosmos.github.io/interchain-security/adrs/adr-019-permissionless-ics) |||||||||
| [ICS Rewards in non-native denoms](https://github.com/cosmos/interchain-security/issues/1634) |||||||||
| [Customizable Slashing and Jailing](https://cosmos.github.io/interchain-security/adrs/adr-020-cutomizable_slashing_and_jailing) |||||||||
15 changes: 11 additions & 4 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -53,11 +53,18 @@ test-integration-cov:
go test ./tests/integration/... -timeout 30m -coverpkg=./... -coverprofile=integration-profile.out -covermode=atomic

# run interchain tests
# we can use PROVIDER_IMAGE_TAG and PROVIDER_IMAGE_NAME to run tests with a desired docker image,
# including a locally built one that, for example, contains some of our changes that are not yet on the main branch.
# if not provided, default value for PROVIDER_IMAGE_TAG is "latest" and for PROVIDER_IMAGE_NAME "ghcr.io/cosmos/interchain-security"
# we can use PROVIDER_IMAGE_TAG, PROVIDER_IMAGE_NAME, CONSUMER_IMAGE_TAG, CONSUMER_IMAGE_NAME, SOVEREIGN_IMAGE_TAG, and SOVEREIGN_IMAGE_NAME to run
# tests with desired docker images, including locally built ones that, for example, contain some of our changes that are not yet on the main branch.
# if not provided, default value for image tag is "latest" and for image name is "ghcr.io/cosmos/interchain-security"
test-interchain:
cd tests/interchain && PROVIDER_IMAGE_NAME=$(PROVIDER_IMAGE_NAME) PROVIDER_IMAGE_TAG=$(PROVIDER_IMAGE_TAG) go test ./... -timeout 30m
cd tests/interchain && \
PROVIDER_IMAGE_NAME=$(PROVIDER_IMAGE_NAME) \
PROVIDER_IMAGE_TAG=$(PROVIDER_IMAGE_TAG) \
SOVEREIGN_IMAGE_NAME=$(SOVEREIGN_IMAGE_NAME) \
SOVEREIGN_IMAGE_TAG=$(SOVEREIGN_IMAGE_TAG) \
CONSUMER_IMAGE_NAME=$(CONSUMER_IMAGE_NAME) \
CONSUMER_IMAGE_TAG=$(CONSUMER_IMAGE_TAG) \
go test ./... -timeout 30m -v

# run mbt tests
test-mbt:
Expand Down
Loading

0 comments on commit 4c9e629

Please sign in to comment.