Skip to content

Commit 68bf6ae

Browse files
committed
* Merge branch 'main' into sainoe/refactor-key-assignment
* Fix integration tests which assigns key for unexistent consumer chains
1 parent 167a74d commit 68bf6ae

File tree

88 files changed

+7016
-1983
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

88 files changed

+7016
-1983
lines changed

.changelog/epilogue.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,28 @@ Interchain Security v3 uses SDK 0.47 and IBC 7.
2323
* `[x/ccv/provider]` (fix) [#977](https://github.com/cosmos/interchain-security/pull/977) Avoids panicking the provider when an unbonding delegation was removed through a `CancelUnbondingDelegation` message.
2424
* `[x/ccv/democracy]` (feat) [#1019](https://github.com/cosmos/interchain-security/pull/1019) Whitelisting non-legacy params in the "democracy module" require the entire module to be whitelisted.
2525

26+
## v2.4.0-lsm
27+
28+
*November 20, 2023*
29+
30+
* (fix) [#1439](https://github.com/cosmos/interchain-security/pull/1439) Fix unmarshaling for the CLI consumer double vote cmd.
31+
* (feat!) [#1435](https://github.com/cosmos/interchain-security/pull/1435) Add height-base filter for consumer equivocation evidence.
32+
33+
## v2.3.0-provider-lsm
34+
35+
*November 15, 2023*
36+
37+
*This release is deprecated and should not be used in production.*
38+
39+
* (fix!) [#1422](https://github.com/cosmos/interchain-security/pull/1422) Fix the misbehaviour handling by verifying the signatures of byzantine validators.
40+
41+
## v2.2.0-provider-lsm
42+
43+
*This release is deprecated and should not be used in production.*
44+
45+
### Cryptographic verification of equivocation
46+
* New feature enabling the provider chain to verify equivocation evidence on its own instead of trusting consumer chains, see [EPIC](https://github.com/cosmos/interchain-security/issues/732).
47+
2648
## v2.1.0-provider-lsm
2749

2850
Date: September 15th, 2023
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
- Deprecate equivocation proposals.
2+
([\#1340](https://github.com/cosmos/interchain-security/pull/1340))
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
- Introduce the cryptographic verification of equivocation feature to the provider
2+
(cf. [ADR-005](/docs/docs/adrs/adr-005-cryptographic-equivocation-verification.md)
3+
& [ADR-013](/docs/docs/adrs/adr-013-equivocation-slashing.md)).
4+
([\#1340](https://github.com/cosmos/interchain-security/pull/1340))
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
- Introduce the cryptographic verification of equivocation feature to the provider
2+
(cf. [ADR-005](/docs/docs/adrs/adr-005-cryptographic-equivocation-verification.md)
3+
& [ADR-013](/docs/docs/adrs/adr-013-equivocation-slashing.md)).
4+
([\#1340](https://github.com/cosmos/interchain-security/pull/1340))

.github/workflows/proto-registry.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
runs-on: ubuntu-latest
1414
steps:
1515
- uses: actions/checkout@v4
16-
- uses: bufbuild/[email protected].0
16+
- uses: bufbuild/[email protected].1
1717
- uses: bufbuild/buf-push-action@v1
1818
with:
1919
input: "proto"

.github/workflows/proto.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
runs-on: ubuntu-latest
1515
steps:
1616
- uses: actions/checkout@v4
17-
- uses: bufbuild/[email protected].0
17+
- uses: bufbuild/[email protected].1
1818
- uses: bufbuild/buf-breaking-action@v1
1919
with:
2020
input: "proto"

CHANGELOG.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,28 @@ Interchain Security v3 uses SDK 0.47 and IBC 7.
2525
* `[x/ccv/provider]` (fix) [#977](https://github.com/cosmos/interchain-security/pull/977) Avoids panicking the provider when an unbonding delegation was removed through a `CancelUnbondingDelegation` message.
2626
* `[x/ccv/democracy]` (feat) [#1019](https://github.com/cosmos/interchain-security/pull/1019) Whitelisting non-legacy params in the "democracy module" require the entire module to be whitelisted.
2727

28+
## v2.4.0-lsm
29+
30+
*November 20, 2023*
31+
32+
* (fix) [#1439](https://github.com/cosmos/interchain-security/pull/1439) Fix unmarshaling for the CLI consumer double vote cmd.
33+
* (feat!) [#1435](https://github.com/cosmos/interchain-security/pull/1435) Add height-base filter for consumer equivocation evidence.
34+
35+
## v2.3.0-provider-lsm
36+
37+
*November 15, 2023*
38+
39+
*This release is deprecated and should not be used in production.*
40+
41+
* (fix!) [#1422](https://github.com/cosmos/interchain-security/pull/1422) Fix the misbehaviour handling by verifying the signatures of byzantine validators.
42+
43+
## v2.2.0-provider-lsm
44+
45+
*This release is deprecated and should not be used in production.*
46+
47+
### Cryptographic verification of equivocation
48+
* New feature enabling the provider chain to verify equivocation evidence on its own instead of trusting consumer chains, see [EPIC](https://github.com/cosmos/interchain-security/issues/732).
49+
2850
## v2.1.0-provider-lsm
2951

3052
Date: September 15th, 2023
@@ -175,3 +197,4 @@ In addition, RS has the following features:
175197

176198
- **Key Assignment**: Enables validator operators to use different consensus keys for each consumer chain validator node that they operate.
177199
- **Jail Throttling**: Enables the provider to slow down a "worst case scenario" attack where a malicious consumer binary attempts to jail a significant amount (> 2/3) of the voting power, effectively taking control of the provider.
200+

CONTRIBUTING.md

Lines changed: 58 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,10 @@
1414
- [Pull Request Templates](#pull-request-templates)
1515
- [Requesting Reviews](#requesting-reviews)
1616
- [Updating Documentation](#updating-documentation)
17+
- [Changelog](#changelog)
1718
- [Dependencies](#dependencies)
1819
- [Protobuf](#protobuf)
1920
- [Branching Model and Release](#branching-model-and-release)
20-
- [Semantic Versioning](#semantic-versioning)
21-
- [Backwards Compatibility](#backwards-compatibility)
2221
- [PR Targeting](#pr-targeting)
2322

2423
Thank you for considering making contributions to the Interchain Security (ICS) repository! 🎉👍
@@ -216,6 +215,63 @@ items. In addition, use the following review explanations:
216215

217216
If you open a PR in ICS, it is mandatory to update the relevant documentation in `/docs`.
218217

218+
### Changelog
219+
220+
To manage and generate our changelog, we currently use [unclog](https://github.com/informalsystems/unclog).
221+
222+
Every PR with types `fix`, `feat`, `deps`, and `refactor` should include a file
223+
`.changelog/unreleased/${section}/[${component}/]${pr-number}-${short-description}.md`,
224+
where:
225+
226+
- `section` is one of
227+
`dependencies`, `improvements`, `features`, `bug-fixes`, `state-breaking`, `api-breaking`,
228+
and _**if multiple apply, create multiple files**_,
229+
not necessarily with the same `short-description` or content;
230+
- `pr-number` is the PR number;
231+
- `short-description` is a short (4 to 6 word), hyphen separated description of the change;
232+
- `component` is used for changes that affect one of the components defined in the [config](.changelog/config.toml), e.g., `provider`, `consumer`.
233+
234+
For examples, see the [.changelog](.changelog) folder.
235+
236+
Use `unclog` to add a changelog entry in `.changelog` (check the [requirements](https://github.com/informalsystems/unclog#requirements) first):
237+
```bash
238+
# add a general entry
239+
unclog add \
240+
-i "${pr-number}-${short-description}" \
241+
-p "${pr-number}" \
242+
-s "${section}" \
243+
-m "${description}" \
244+
245+
# add a entry to a component
246+
unclog add
247+
-i "${pr-number}-${short-description}" \
248+
-p "${pr-number}" \
249+
-c "${component}" \
250+
-s "${section}" \
251+
-m "${description}" \
252+
```
253+
where `${description}` is a detailed description of the changelog entry.
254+
255+
For example,
256+
```bash
257+
# add an entry for bumping IBC to v7.2.0
258+
unclog add -i "1196-bump-ibc" -p 1196 -s dependencies -m "Bump [ibc-go](https://github.com/cosmos/ibc-go) to [v7.2.0](https://github.com/cosmos/ibc-go/releases/tag/v7.2.0)"
259+
260+
# add an entry for changing the consumer module;
261+
# note that the entry is added to both state-breaking and features sections
262+
unclog add -i "1024-jail-throttling-v2" -p 1024 -c consumer -s state-breaking -m "Add the consumer-side changes for jail throttling with retries (cf. ADR 008)."
263+
unclog add -i "1024-jail-throttling-v2" -p 1024 -c consumer -s features -m "Add the consumer-side changes for jail throttling with retries (cf. ADR 008)."
264+
```
265+
266+
**Note:** `unclog add` requires an editor. This can be set either by configuring
267+
an `$EDITOR` environment variable or by manually specify an editor binary path
268+
via the `--editor` flag.
269+
270+
**Note:** Changelog entries should answer the question: "what is important about this
271+
change for users to know?" or "what problem does this solve for users?". It
272+
should not simply be a reiteration of the title of the associated PR, unless the
273+
title of the PR _very_ clearly explains the benefit of a change to a user.
274+
219275
## Dependencies
220276

221277
We use [Go Modules](https://github.com/golang/go/wiki/Modules) to manage
@@ -243,18 +299,6 @@ To generate the protobuf stubs, you can run `make proto-gen`.
243299

244300
ICS adheres to the [trunk based development branching model](https://trunkbaseddevelopment.com/). User branches should start with a user name, example: `{moniker}/{issue#}-branch-name`.
245301

246-
### Semantic Versioning
247-
248-
ICS follows [semantic versioning](https://semver.org), but with the following deviations (similar to [IBC-Go](https://github.com/cosmos/ibc-go/blob/main/RELEASES.md)):
249-
250-
- A library API breaking change will result in an increase of the MAJOR version number (X.y.z | x > 0).
251-
- A state breaking change (change requiring coordinated upgrade and/or state migration for the consumer, the provider, or both) will result in an increase of the MINOR version number (x.Y.z | x > 0).
252-
- Any other changes (including node API breaking changes) will result in an increase of the PATCH version number (x.y.Z | x > 0).
253-
254-
### Backwards Compatibility
255-
256-
A MAJOR version of ICS will always be backwards compatible with the previous MAJOR version of ICS. Versions before that are not supported. For example, a provider chain could run ICS at version 3.4.5, and would be compatible with consumers running ICS at 2.0.0, 2.1.2, 3.2.1, but not 1.2.7.
257-
258302
### PR Targeting
259303

260304
Ensure that you base and target your PRs on either `main` or a feature branch.

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ RUN go mod tidy
2929
RUN make install
3030

3131
# Get Hermes build
32-
FROM ghcr.io/informalsystems/hermes:1.4.1 AS hermes-builder
32+
FROM otacrew/hermes-ics:evidence-cmd AS hermes-builder
3333

3434
# Get CometMock
3535
FROM ghcr.io/informalsystems/cometmock:v0.37.x as cometmock-builder

FEATURES.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Features
2+
3+
The following table indicates the major ICS features available in the [currently active releases](./RELEASES.md#version-matrix):
4+
5+
| Feature | Release | `v1.2.0-multiden` | `v2.0.0` | `v2.1.0-provider-lsm` | `v2.4.0-lsm` | `v3.1.0` |
6+
|---------|---------|------------------:|---------:|----------------------:|-------------:|---------:|
7+
| [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) | ||||||
8+
| [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) | ||||||
9+
| [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) | ||||||
10+
| [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) | ||||||
11+
| [Reward distribution](https://github.com/cosmos/ibc/blob/main/spec/app/ics-028-cross-chain-validation/overview_and_basic_concepts.md#reward-distribution) | ||||||
12+
| [Consumer chain removal](https://github.com/cosmos/ibc/blob/main/spec/app/ics-028-cross-chain-validation/methods.md#consumer-chain-removal) | ||||||
13+
| [Key assignment](https://github.com/cosmos/interchain-security/issues/26) | ||||||
14+
| [Jail throttling](https://github.com/cosmos/interchain-security/issues/404) | ||||||
15+
| [Soft opt-out](https://github.com/cosmos/interchain-security/issues/851) | ||||||
16+
| [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))| ||||||
17+
| [Cryptographic verification of equivocation](https://github.com/cosmos/interchain-security/issues/732) | ||||||
18+

0 commit comments

Comments
 (0)