-
Notifications
You must be signed in to change notification settings - Fork 134
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
feat!: deprecate soft opt-out #1964
Conversation
397cff4
to
69fff54
Compare
} | ||
} | ||
|
||
// stepsRedelegate tests redelegation and resulting validator power changes. |
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.
Removed this function because it did not add much because we could use stepsRedelegate
in its place.
@@ -1506,8 +1482,10 @@ func stepsValidatorsAllowlistedChain() []Step { | |||
InitialHeight: clienttypes.Height{RevisionNumber: 0, RevisionHeight: 1}, | |||
TopN: 0, | |||
// only "alice" and "bob" are allowlisted (see `getDefaultValidators` in `tests/e2e/config.go`) | |||
Allowlist: []string{"cosmosvalcons1qmq08eruchr5sf5s3rwz7djpr5a25f7xw4mceq", | |||
"cosmosvalcons1nx7n5uh0ztxsynn4sje6eyq2ud6rc6klc96w39"}, | |||
Allowlist: []string{ |
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.
Those and similar changes stem from running make format
.
WalkthroughWalkthroughThe changes focus on the deprecation of the "soft opt-out" feature, which is redundant following the release of Partial Set Security (PSS). This involves removing related code across various files, adjusting initialization logic, updating documentation, and modifying tests to reflect the deprecated feature. Changes
Sequence Diagram(s)Diagram generation is not deemed necessary for this specific set of changes as they are straightforward and involve deprecating a feature and updating related configurations and tests. Assessment against linked issues
Note: This assessment is based solely on the code changes. Non-coding tasks, such as manual testing, are not considered here. Recent review detailsConfiguration used: .coderabbit.yml Files selected for processing (1)
Additional context usedPath-based instructions (1)
golangci-lint
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (invoked as PR comments)
Additionally, you can add CodeRabbit Configration File (
|
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.
Actionable comments posted: 3
Outside diff range and nitpick comments (11)
docs/docs/adrs/intro.md (2)
Line range hint
6-6
: Consider using only one top-level heading to comply with Markdown best practices.- # Architecture Decision Records (ADR) + ## Architecture Decision Records (ADR)
Line range hint
22-22
: Add the missing article for grammatical correctness.- The spec is much more compressed and streamlined summary of everything as it is or should be. + The spec is a much more compressed and streamlined summary of everything as it is or should be.docs/docs/adrs/adr-009-soft-opt-out.md (2)
Line range hint
25-25
: Consider revising the verb form for clarity.- a function is ran which determines + a function is run which determines
Line range hint
25-25
: Add the definite article for grammatical correctness.- the so called _smallest non opt-out voting power_ + the so-called _smallest non opt-out voting power_x/ccv/consumer/types/genesis_test.go (2)
Line range hint
14-14
: Consider adding a test case to verify theSoftOptOutThreshold
is set to zero.Would you like me to help draft this test case?
Line range hint
14-14
: Consider adding a test case to ensure the restart genesis state correctly handles the deprecatedSoftOptOutThreshold
.Would you like me to help draft this test case?
app/consumer-democracy/app.go (5)
Line range hint
1-1
: Ensure the package declaration is appropriately documented.Adding a package comment explaining the purpose and scope of this package would enhance readability and maintainability.
Line range hint
7-7
: Remove unused imports to clean up the code.- "github.com/spf13/cast"
This import appears to be unused in the provided code snippet. Removing unused imports helps maintain clean and efficient code.
Line range hint
19-19
: Consider organizing imports according to the Golang style guide.Imports should be grouped in the following order: standard library, third-party packages, and local packages. This helps in improving readability and quickly identifying the dependencies of the package.
Line range hint
116-116
: Ensure module basics are well-documented.Adding comments to explain the purpose of each module included in
ModuleBasics
would help developers understand the role of each module in the application.
Line range hint
1000-1000
: Refactor to enhance readability and maintainability.The
New
function is quite long and handles multiple responsibilities. Consider breaking it down into smaller, more focused functions. This would improve readability, make the code easier to navigate, and enhance testability.
"Src": "carol", | ||
"Dst": "alice", | ||
"TxSender": "carol", |
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.
Tip
Codebase Verification
The extracted results reveal a variety of ValPowers
values across different test scenarios. These values are not consistent and vary significantly, which could indicate potential imbalances in test scenarios.
- For instance, in
slashThrottle.json
,alice
consistently has a power of511
, whilebob
fluctuates between500
and0
. - Similarly, in
shorthappy.json
,alice
has values ranging from500
to910
, andbob
fluctuates between500
and0
.
These inconsistencies suggest that the validator power values are not uniformly distributed and may introduce imbalances in the test scenarios.
tests/e2e/tracehandler_testdata/slashThrottle.json
tests/e2e/tracehandler_testdata/shorthappy.json
tests/e2e/tracehandler_testdata/happyPath.json
tests/e2e/tracehandler_testdata/consumer-misbehaviour.json
tests/e2e/tracehandler_testdata/multipleConsumers.json
Please review and ensure that the validator power values are consistent with expected power distributions to avoid imbalances in test scenarios.
Analysis chain
Adjustments to validator power values across various actions reflect the new validation dynamics without the soft opt-out feature. Ensure these changes are consistent with expected power distributions and do not introduce imbalances in test scenarios.
Also applies to: 604-606, 635-637, 664-666, 684-686, 715-716, 734-736, 765-767, 794-796, 814-816, 845-847, 874-876, 894-894, 925-925, 954-954, 974-976, 1005-1007, 1034-1036, 1054-1054, 1085-1085, 1105-1105
Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Verify that the new validator power values are consistent across all test scenarios.
# Test: Search for ValPowers in test files and check consistency. Expect: Consistent values across scenarios.
rg --type json "ValPowers" tests/e2e/
Length of output: 24653
Script:
#!/bin/bash
# Description: Extract non-null ValPowers values from test files for comparison.
# Extract non-null ValPowers values and display them for analysis.
rg --type json '"ValPowers": \{' tests/e2e/tracehandler_testdata/ -A 5
Length of output: 93622
tests/e2e/actions.go
Outdated
// Note that Soft Opt-Out has been deprecated. Nevertheless, the parameter still exists and is expected to be set | ||
// because the SDK requires that all params are set to valid values in the genesis file. | ||
action.GenesisChanges = action.GenesisChanges + ".app_state.ccvconsumer.params.soft_opt_out_threshold = \"0\"" |
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.
Deprecation note is clear but redundant
The comments on lines 609-611 clearly indicate the deprecation of the Soft Opt-Out feature. However, considering the feature has been deprecated and the parameter is set to "0" to maintain compatibility, these comments might become redundant in the future as developers might overlook them, leading to confusion. It might be beneficial to either remove these comments or update them to reflect why this deprecated feature's parameter still needs to be set.
tests/e2e/actions.go
Outdated
// Note that Soft Opt-Out has been deprecated. Nevertheless, the parameter still exists and is expected to be set | ||
// because the SDK requires that all params are set to valid values in the genesis file. | ||
action.GenesisChanges = action.GenesisChanges + ".app_state.ccvconsumer.params.soft_opt_out_threshold = \"0\"" |
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.
Redundant deprecation note
Similar to the previous comment, the redundancy of the deprecation note here could lead to future confusion. Since the parameter is set to "0" and the feature is deprecated, maintaining these comments might not be necessary unless there is a specific reason to keep setting this parameter in the genesis file which should be documented.
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.
LGTM. A few tiny nits
Wondering if deprecating like this is actually easier than having a migration? I don't have experience with the possible problems, but at least in terms of code, it seems it would maybe be preferable to just not have the key anymore. But I'm ok with either way :)
Thanks for the work, good stuff!
Co-authored-by: Philip Offtermatt <[email protected]>
Co-authored-by: Philip Offtermatt <[email protected]>
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.
Great work @insumity. See my comments below.
.changelog/unreleased/improvements/consumer/1964-deprecate-soft-opt-out.md
Outdated
Show resolved
Hide resolved
RewardDenoms: rewardDenoms, | ||
ProviderRewardDenoms: providerRewardDenoms, | ||
RetryDelayPeriod: retryDelayPeriod, | ||
// DEPRECATED but setting here to 0 (i.e., disabled) for older versions of interchain-security |
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.
Why is it necessary to set it to zero?
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.
Not sure if this answers your question:
The soft_opt_out_threshold is used as a parameter in the consumer genesis files, so to be backwards compatible with older-version consumer modules, we do not rename or remove the soft_opt_out_threshold and just set it to 0.
To add to that, I did it so that a consumer genesis generated by v4.3.0 would still be valid from the perspective of a older consumer module (see validation).
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.
What's the difference between deprecating a field and reserving it? cc @MSalopek
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.
I think you're mixing apples and oranges.
This section is about setting something to 0 in go code. "reserved" is a term from protobuf.
"reserved" keyword in protobuf is documente here:
It helps you prevent somebody from accidentally using an enum that was deprecated in an earlier version. It also helps you avoid issues that arise when you simply remove a field and when you accidentally re-map enums in a breaking manner. When you use it, you will not be able to populate the field - it will not be able to "hold a value".
[deprecated = true]
is just an annotation. It will not prevent the field from being used - you can still popoulate the field and it can "hold a value".
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.
So, is it better to remove the field and mark it as reserved or use the deprecated annotation?
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.
See discussion: #1964 (comment)
…t-opt-out.md Co-authored-by: Marius Poke <[email protected]>
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.
Actionable comments posted: 0
Outside diff range and nitpick comments (1)
docs/docs/adrs/adr-009-soft-opt-out.md (1)
Line range hint
26-26
: Correct the grammatical error in the description of the function.- In every consumer beginblocker, a function is ran which determines the so called _smallest non opt-out voting power_. + In every consumer beginblocker, a function is run which determines the so-called _smallest non opt-out voting power_.Tools
LanguageTool
[duplication] ~13-~13: Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Context: ...Change status to deprecated ## Status Deprecated Deprecated by [Partial Set Security](adr-015-parti...
[uncategorized] ~18-~18: A comma may be missing after the conjunctive/linking adverb ‘Therefore’. (SENT_START_CONJUNCTIVE_LINKING_ADVERB_COMMA)
Context: ...needed to validate all consumer chains. Therefore a need exists to allow the bottomx%
...Markdownlint
16-16: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
// set can opt out | ||
string soft_opt_out_threshold = 10; | ||
// !!! DEPRECATED !!! soft_opt_out_threshold is deprecated. see docs/docs/adrs/adr-015-partial-set-security.md | ||
string soft_opt_out_threshold = 10 [deprecated = true]; |
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.
ConsumerParams
is used to send data to the consumer chain "over the wire" - it is used in the consumer genesis.
Setting it to deprecated allows the field to exist but it will always be empty, thus maintaining backward compatibility.
We will not need to write a special parser to go from v4.2.0 ConsumerParams
to some future version ConsumerParams
.
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.
Agreed. This is why we did not use reserved
.
tests/e2e/actions.go
Outdated
|
||
// Note that Soft Opt-Out has been deprecated. Nevertheless, the parameter still exists and is expected to be set | ||
// because the SDK requires that all params are set to valid values in the genesis file. | ||
action.GenesisChanges = action.GenesisChanges + ".app_state.ccvconsumer.params.soft_opt_out_threshold = \"0\"" |
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.
Why do you need to set it? You can delete this line.
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.
The default value is ""
which is a valid zero string.
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.
Why do you need to set it? You can delete this line.
I cannot delete this line. If I do, I get the following error:
2024/06/21 11:02:14 getBalance() failed: /usr/local/bin/docker exec interchain-security-instance interchain-security-cd query bank balances consumer1sx6j9g2rh324a342a5f0rnx7me34r9nwduz5te --node tcp://7.7.8.253:26658 -o json: exit status 1
Error: post failed: Post "http://7.7.8.253:26658": dial tcp 7.7.8.253:26658: connect: no route to host
because the consumer chain never starts. Although we do not utilize soft_opt_threshold
, the parameter has still to be set. This is why this line existed in all other E2E tests as well. In this PR, I just moved this line to a central place so we do not have to repeat it every time we create a new consumer chain.
The default value is "" which is a valid zero string.
Yes, we could potentially set simply to ""
here but setting to 0
makes it clear that the soft opt-out feature is disabled.
tests/e2e/actions.go
Outdated
@@ -838,6 +842,10 @@ func (tr TestConfig) changeoverChain( | |||
log.Fatal(err, "\n", string(bz)) | |||
} | |||
|
|||
// Note that Soft Opt-Out has been deprecated. Nevertheless, the parameter still exists and is expected to be set | |||
// because the SDK requires that all params are set to valid values in the genesis file. | |||
action.GenesisChanges = action.GenesisChanges + ".app_state.ccvconsumer.params.soft_opt_out_threshold = \"0\"" |
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.
Same as above
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.
See my response.
@@ -368,9 +263,9 @@ func stepsRedelegateShort(consumerName string) []Step { | |||
ChainID(consumerName): ChainState{ | |||
ValPowers: &map[ValidatorID]uint{ | |||
// Now power changes are seen by consumer | |||
ValidatorID("alice"): 509, | |||
ValidatorID("alice"): 910, |
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.
Why has the ratio changed so much?
Are you trying to check that the soft opt-out no longer works?
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.
Why has the ratio changed so much?
TL;DR because we removed opt-out related steps that were reducing the ValPower
of alice
.
Specifically, we removed the stepsRedelegateForOptOut
and stepsDowntimeWithOptOut
. The stepsRedelegateForOptOut
was the one that reduced the ValPower
of alice
to 60
so it could test the opt out functionality.
Before, in the happyPathSteps
we had:
...
stepsRedelegateForOptOut("consu"),
stepsDowntimeWithOptOut("consu"),
stepsRedelegate("consu"),
...
but we removed stepsRedelegateForOptOut
and stepsDowntimeWithOptOut
and hence now when stepsRedelegate
is called, the ValPower
of alice
is not 60
anymore but 510
. Redelegating 400
to alice
makes alice
have a ValPower
910
. This meant that all steps*
functions called after stepsRedelegate
had to be modified as well to contain the correct ValPower
s.
Are you trying to check that the soft opt-out no longer works?
No.
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.
Thank you for elaborating. It was not clear to me after going over it a couple times.
@@ -86,12 +86,6 @@ func stepsActiveSetChanges() []Step { | |||
{Id: ValidatorID("bob"), Stake: 200000000, Allocation: 10000000000}, | |||
{Id: ValidatorID("carol"), Stake: 700000000, Allocation: 10000000000}, | |||
}, | |||
// For consumers that're launching with the provider being on an earlier version |
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 test removes the threshold while the ones above have it stil
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.
Thresholds are removed from the individual StarConsumerChainAction
and ChangeOverChainAction
actions and are moved to startConsumerChain
and changeoverChain
so we do not have to set the threshold in a multitude of other places. This was just part of small refactoring.
@@ -2065,7 +2073,7 @@ func (tr TestConfig) invokeDoublesignSlash( | |||
if err != nil { | |||
log.Fatal(err, "\n", string(bz)) | |||
} | |||
tr.waitBlocks("provi", 10, 2*time.Minute) | |||
tr.waitBlocks("provi", 20, 4*time.Minute) |
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.
Just a note for posterity: Increased this due to some flakiness in the test involving double signing.
consumerGenesis = consumerGenesis + " | " + consumerGenesisChanges | ||
} | ||
if action.GenesisChanges != "" { | ||
consumerGenesis = consumerGenesis + " | " + action.GenesisChanges |
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 was added here and in changeoverChain
because If action.GenesisChanges
was the empty string, consumerGenesis
would end with |
and as a result the jq
transformation here would fail.
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.
Actionable comments posted: 1
Outside diff range and nitpick comments (1)
tests/e2e/actions.go (1)
Line range hint
2179-2179
: Consider defining a constant for repeated string literals.The string
"auto"
is used multiple times in the file. Defining it as a constant would make the code cleaner and easier to maintain.+ const autoGas = "auto" - gas := "auto" + gas := autoGas
@@ -2065,7 +2071,7 @@ func (tr TestConfig) invokeDoublesignSlash( | |||
if err != nil { | |||
log.Fatal(err, "\n", string(bz)) | |||
} | |||
tr.waitBlocks("provi", 10, 2*time.Minute) | |||
tr.waitBlocks("provi", 20, 4*time.Minute) |
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.
Refactor the use of constants for repeated string literals.
The string "auto"
is used multiple times across different functions. It is beneficial to define it as a constant at the beginning of the file to ensure consistency and ease of maintenance.
+ const autoGas = "auto"
- gas := "auto"
+ gas := autoGas
Committable suggestion was skipped due to low confidence.
@@ -159,12 +159,6 @@ func stepsStartConsumerChain(consumerName string, proposalIndex, chainIndex uint | |||
{Id: ValidatorID("alice"), Stake: 500000000, Allocation: 10000000000}, | |||
{Id: ValidatorID("carol"), Stake: 500000000, Allocation: 10000000000}, | |||
}, | |||
// For consumers that're launching with the provider being on an earlier version |
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.
thanks for figuring out how to remove this.
Much appreciated!
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.
Thanks for pointing it out 😃
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.
Thanks for spending the time on this.
I'm glad you managed to clean up the state and simplify the protocol.
Approve!
* build(deps): bump slackapi/slack-github-action from 1.25.0 to 1.26.0 (#1803) Bumps [slackapi/slack-github-action](https://github.com/slackapi/slack-github-action) from 1.25.0 to 1.26.0. - [Release notes](https://github.com/slackapi/slack-github-action/releases) - [Commits](https://github.com/slackapi/slack-github-action/compare/v1.25.0...v1.26.0) --- updated-dependencies: - dependency-name: slackapi/slack-github-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: add v4.1.x to docs and cleanup bots (#1812) * add v4.1.x to releases and features * cleanup mergify and dependabot * build(deps): bump github.com/cosmos/cosmos-proto from 1.0.0-beta.4 to 1.0.0-beta.5 (#1802) build(deps): bump github.com/cosmos/cosmos-proto Bumps [github.com/cosmos/cosmos-proto](https://github.com/cosmos/cosmos-proto) from 1.0.0-beta.4 to 1.0.0-beta.5. - [Release notes](https://github.com/cosmos/cosmos-proto/releases) - [Commits](https://github.com/cosmos/cosmos-proto/compare/v1.0.0-beta.4...v1.0.0-beta.5) --- updated-dependencies: - dependency-name: github.com/cosmos/cosmos-proto dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * docs: add docs versioning and legacy page (pre v4.0.0) (#1833) * Updated build to allow for versioned docs * wip: add steps to build legacy docs * docs: add build legacy website * docs: add v4; rename to legacy * docs: add docs versioning for docusaurus v3.x * docs: add docs version sync and deploy scripts * update makefile * docs: rm deprecated build script * docs: fix banner in v4.1.0 * docs: update build script & config * update .gitignore * docs: update build script & config * docs: update Readme * build: update docs build script * build: update docs README.md * address review comments * address review comments -- update readme --------- Co-authored-by: Milan Mulji <[email protected]> * build(deps): bump JamesIves/github-pages-deploy-action from 4.5.0 to 4.6.0 (#1804) build(deps): bump JamesIves/github-pages-deploy-action Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.5.0 to 4.6.0. - [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases) - [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.5.0...v4.6.0) --- updated-dependencies: - dependency-name: JamesIves/github-pages-deploy-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: add release/v5.x bots targets (#1829) * chore: fix spelling errors (#1835) chore: spelling errors fixes Co-authored-by: github-merge-queue <[email protected]> * build(deps): bump github.com/hashicorp/go-getter from 1.7.1 to 1.7.4 (#1826) Bumps [github.com/hashicorp/go-getter](https://github.com/hashicorp/go-getter) from 1.7.1 to 1.7.4. - [Release notes](https://github.com/hashicorp/go-getter/releases) - [Changelog](https://github.com/hashicorp/go-getter/blob/main/.goreleaser.yml) - [Commits](https://github.com/hashicorp/go-getter/compare/v1.7.1...v1.7.4) --- updated-dependencies: - dependency-name: github.com/hashicorp/go-getter dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * docs: update docs deployment (#1841) * build(deps): bump amannn/action-semantic-pull-request from 5.4.0 to 5.5.2 (#1831) build(deps): bump amannn/action-semantic-pull-request Bumps [amannn/action-semantic-pull-request](https://github.com/amannn/action-semantic-pull-request) from 5.4.0 to 5.5.2. - [Release notes](https://github.com/amannn/action-semantic-pull-request/releases) - [Changelog](https://github.com/amannn/action-semantic-pull-request/blob/main/CHANGELOG.md) - [Commits](https://github.com/amannn/action-semantic-pull-request/compare/v5.4.0...v5.5.2) --- updated-dependencies: - dependency-name: amannn/action-semantic-pull-request dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump bufbuild/buf-setup-action from 1.30.1 to 1.31.0 (#1832) Bumps [bufbuild/buf-setup-action](https://github.com/bufbuild/buf-setup-action) from 1.30.1 to 1.31.0. - [Release notes](https://github.com/bufbuild/buf-setup-action/releases) - [Commits](https://github.com/bufbuild/buf-setup-action/compare/v1.30.1...v1.31.0) --- updated-dependencies: - dependency-name: bufbuild/buf-setup-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat!: Introduce Partial Set Security (#1809) * cleanup ./changelog entries * docs: changelog and release notes for v4.0.0 (#1564) * add v4.0.0 section to changelog * add release notes * fix!: Validation of SlashAcks fails due to marshaling to Bech32 (backport #1570) (#1577) fix!: Validation of SlashAcks fails due to marshaling to Bech32 (#1570) * add different Bech32Prefix for consumer and provider * separate app encoding and params * remove ConsumerValPubKey from ValidatorConfig * update addresses in tests * make SlashAcks consistent across chains * add comments for clarity * Regenerate traces * Fix argument order * set bech32prefix for provider to cosmos * add changelog entries * add consumer-double-downtime e2e test * update nightly-e2e workflow * fix typo * add consumer-double-downtime to testConfigs * remove changes on provider * skip invalid SlashAcks * seal the config * clear the outstanding downtime flag for new vals * add info on upgrading to v4.0.0 * fix upgrade handler * fix changeover e2e test * Update tests/e2e/config.go Co-authored-by: Philip Offtermatt <[email protected]> * Update tests/e2e/config.go Co-authored-by: Philip Offtermatt <[email protected]> * add AccountPrefix to ChainConfig * fix docstrings * update AccountAddressPrefix in app.go * fix consumer-misb e2e test --------- Co-authored-by: Philip Offtermatt <[email protected]> Co-authored-by: Simon Noetzlin <[email protected]> Co-authored-by: Philip Offtermatt <[email protected]> (cherry picked from commit 86046926502f7b0ba795bebcdd1fdc97ac776573) Co-authored-by: Marius Poke <[email protected]> * docs: update changelog for v4.0.0 (#1578) update changelog * docs: prepare for v4.0.0 (#1581) * unclog build * update release notes * update release date * feat!: enable Opt In and Top N chains through gov proposals (#1615) * init commit * added test * fixed tests * added changelog entry and comment * Update x/ccv/provider/keeper/proposal_test.go Co-authored-by: Philip Offtermatt <[email protected]> * Update .changelog/unreleased/features/1587-enable-opt-in-chains-through-gov-proposals.md Co-authored-by: Philip Offtermatt <[email protected]> * Update proto/interchain_security/ccv/provider/v1/provider.proto Co-authored-by: Philip Offtermatt <[email protected]> * Update proto/interchain_security/ccv/provider/v1/provider.proto Co-authored-by: Philip Offtermatt <[email protected]> * Update proto/interchain_security/ccv/provider/v1/provider.proto Co-authored-by: Philip Offtermatt <[email protected]> * Update proto/interchain_security/ccv/provider/v1/provider.proto Co-authored-by: Philip Offtermatt <[email protected]> * Update x/ccv/provider/keeper/keeper.go Co-authored-by: Philip Offtermatt <[email protected]> * changed to tabular test --------- Co-authored-by: insumity <[email protected]> Co-authored-by: Philip Offtermatt <[email protected]> * feat!: introduce MsgOptIn and MsgOptOut (#1620) * init commit * cleaning up * changed cons to val address * Revert "changed cons to val address" This reverts commit a32e8829fee3cbbe50e363a0aa91ad62117a8a1d. * Update x/ccv/provider/keeper/keeper.go Co-authored-by: Simon Noetzlin <[email protected]> * took into account comments * added key assignment * add contraint such that opt out only works if the chain is running --------- Co-authored-by: insumity <[email protected]> Co-authored-by: Simon Noetzlin <[email protected]> * test: MBT: Add partial set security to model (feature branch version) (#1627) * Port changes from branch to main * Add model analysis changes to Makefile * test: Ports key assignment to the driver on the PSS feature branch (#1628) * Port key assignment to MBT driver * Add comment and make var names clearer * feat!: automatically opt in validators that vote Yes on consumer addition proposals (#1629) * init commit * changed providerKeeper.GetProposedConsumerChain to return a bool * add logging mesages * one more log message * fix comment * added one more test case of NO vote and made tabular test * test: Add driver for PSS (#1636) * Port key assignment to MBT driver * Add PSS trace generation * Add PSS trace gen to longer trace gen * Start handling top N parameter for new consumers * Finish merge * Add handling for optin/optout steps * Remove expected error from OptIn, which should not error * set top N parameter during path setup * Add comment to setup.go * feat!: add PSS reward distribution spike (#1632) * PSS reward distribution * "add optin mapping to test" * Update app/provider/app.go Co-authored-by: Philip Offtermatt <[email protected]> * docs * add TODO * fix Dos vector in IBCMiddlewarea * add reformat * fix DOS issue and make integration tests pass * doc * add integration test * doc * Compute total vp per consumer * add comments * remove opt-in comments and add TODOs * format * Update x/ccv/provider/keeper/distribution.go Co-authored-by: insumity <[email protected]> * add UT + doc * Update tests/integration/distribution.go Co-authored-by: insumity <[email protected]> * Update tests/integration/distribution.go Co-authored-by: insumity <[email protected]> * nits * Update x/ccv/provider/ibc_middleware.go Co-authored-by: Marius Poke <[email protected]> * add panics in IBC Middleware ICS4wrapper funcs * address comments --------- Co-authored-by: Philip Offtermatt <[email protected]> Co-authored-by: insumity <[email protected]> Co-authored-by: Marius Poke <[email protected]> * feat! use protos to serialize opted-in validators (#1659) move OptedInValidators to proto Co-authored-by: insumity <[email protected]> * feat!: PSS enable per-consumer chain commission (#1657) * add draft commission * implement consumer commission draft * formatting * add msg handling * improve UT * nits * Update x/ccv/provider/keeper/keeper.go Co-authored-by: insumity <[email protected]> * Update proto/interchain_security/ccv/provider/v1/tx.proto Co-authored-by: Marius Poke <[email protected]> * optimize keys * Update x/ccv/provider/keeper/keeper.go Co-authored-by: insumity <[email protected]> * address comments * address comments * remove unnecessary check * Revert "remove unnecessary check" This reverts commit 2951e9bace04f6436d6ad1e4a11efcedd0be8cb1. * fix minor bug in StopConsumerChain --------- Co-authored-by: insumity <[email protected]> Co-authored-by: Marius Poke <[email protected]> * test: update integration test suite for PSS (#1687) * draft multi consumer transfer setup and test * format multi consumer distribution test * update test for democ consumer chains * nits * nit * docs: changelog and release notes for v4.0.0 (#1564) * add v4.0.0 section to changelog * add release notes * fix!: Validation of SlashAcks fails due to marshaling to Bech32 (backport #1570) (#1577) fix!: Validation of SlashAcks fails due to marshaling to Bech32 (#1570) * add different Bech32Prefix for consumer and provider * separate app encoding and params * remove ConsumerValPubKey from ValidatorConfig * update addresses in tests * make SlashAcks consistent across chains * add comments for clarity * Regenerate traces * Fix argument order * set bech32prefix for provider to cosmos * add changelog entries * add consumer-double-downtime e2e test * update nightly-e2e workflow * fix typo * add consumer-double-downtime to testConfigs * remove changes on provider * skip invalid SlashAcks * seal the config * clear the outstanding downtime flag for new vals * add info on upgrading to v4.0.0 * fix upgrade handler * fix changeover e2e test * Update tests/e2e/config.go Co-authored-by: Philip Offtermatt <[email protected]> * Update tests/e2e/config.go Co-authored-by: Philip Offtermatt <[email protected]> * add AccountPrefix to ChainConfig * fix docstrings * update AccountAddressPrefix in app.go * fix consumer-misb e2e test --------- Co-authored-by: Philip Offtermatt <[email protected]> Co-authored-by: Simon Noetzlin <[email protected]> Co-authored-by: Philip Offtermatt <[email protected]> (cherry picked from commit 86046926502f7b0ba795bebcdd1fdc97ac776573) Co-authored-by: Marius Poke <[email protected]> * docs: update changelog for v4.0.0 (#1578) update changelog * feat!: enable Opt In and Top N chains through gov proposals (#1615) * init commit * added test * fixed tests * added changelog entry and comment * Update x/ccv/provider/keeper/proposal_test.go Co-authored-by: Philip Offtermatt <[email protected]> * Update .changelog/unreleased/features/1587-enable-opt-in-chains-through-gov-proposals.md Co-authored-by: Philip Offtermatt <[email protected]> * Update proto/interchain_security/ccv/provider/v1/provider.proto Co-authored-by: Philip Offtermatt <[email protected]> * Update proto/interchain_security/ccv/provider/v1/provider.proto Co-authored-by: Philip Offtermatt <[email protected]> * Update proto/interchain_security/ccv/provider/v1/provider.proto Co-authored-by: Philip Offtermatt <[email protected]> * Update proto/interchain_security/ccv/provider/v1/provider.proto Co-authored-by: Philip Offtermatt <[email protected]> * Update x/ccv/provider/keeper/keeper.go Co-authored-by: Philip Offtermatt <[email protected]> * changed to tabular test --------- Co-authored-by: insumity <[email protected]> Co-authored-by: Philip Offtermatt <[email protected]> * feat!: introduce MsgOptIn and MsgOptOut (#1620) * init commit * cleaning up * changed cons to val address * Revert "changed cons to val address" This reverts commit a32e8829fee3cbbe50e363a0aa91ad62117a8a1d. * Update x/ccv/provider/keeper/keeper.go Co-authored-by: Simon Noetzlin <[email protected]> * took into account comments * added key assignment * add contraint such that opt out only works if the chain is running --------- Co-authored-by: insumity <[email protected]> Co-authored-by: Simon Noetzlin <[email protected]> * test: MBT: Add partial set security to model (feature branch version) (#1627) * Port changes from branch to main * Add model analysis changes to Makefile * feat!: add PSS reward distribution spike (#1632) * PSS reward distribution * "add optin mapping to test" * Update app/provider/app.go Co-authored-by: Philip Offtermatt <[email protected]> * docs * add TODO * fix Dos vector in IBCMiddlewarea * add reformat * fix DOS issue and make integration tests pass * doc * add integration test * doc * Compute total vp per consumer * add comments * remove opt-in comments and add TODOs * format * Update x/ccv/provider/keeper/distribution.go Co-authored-by: insumity <[email protected]> * add UT + doc * Update tests/integration/distribution.go Co-authored-by: insumity <[email protected]> * Update tests/integration/distribution.go Co-authored-by: insumity <[email protected]> * nits * Update x/ccv/provider/ibc_middleware.go Co-authored-by: Marius Poke <[email protected]> * add panics in IBC Middleware ICS4wrapper funcs * address comments --------- Co-authored-by: Philip Offtermatt <[email protected]> Co-authored-by: insumity <[email protected]> Co-authored-by: Marius Poke <[email protected]> * feat!: PSS enable per-consumer chain commission (#1657) * add draft commission * implement consumer commission draft * formatting * add msg handling * improve UT * nits * Update x/ccv/provider/keeper/keeper.go Co-authored-by: insumity <[email protected]> * Update proto/interchain_security/ccv/provider/v1/tx.proto Co-authored-by: Marius Poke <[email protected]> * optimize keys * Update x/ccv/provider/keeper/keeper.go Co-authored-by: insumity <[email protected]> * address comments * address comments * remove unnecessary check * Revert "remove unnecessary check" This reverts commit 2951e9bace04f6436d6ad1e4a11efcedd0be8cb1. * fix minor bug in StopConsumerChain --------- Co-authored-by: insumity <[email protected]> Co-authored-by: Marius Poke <[email protected]> * fix nits in MBT model after merging #1676 from main * Fix merging ccv model * Remove conflict markers * Remove more conflict markers * EndProviderEpoch takes ConsumerAdditionMsg * Fix using consumer addition msgs instead of chain names in boundeddrift.qnt * lint * chore: rebase PSS branch with main (#1689) * Update tests/mbt/driver/mbt_test.go * nits * revert unwanted line deletion from linter --------- Co-authored-by: Philip Offtermatt <[email protected]> * feat!: complete the PSS reward distribution (#1709) * update compute consumer total power for reward distribution * update distribution logic to work with epochcs * Adapt reward distribution mem test to epochs * doc * nits * other nits * nits * Update tests/integration/distribution.go * feat!: Add slashing logic for PSS (#1710) * add check for consumer validators in downtime logic * fix UT * try to fix weird errors in gh worfklow * fix silly merge bug * nits * ci: do not scan the tests for security issues (#1717) init commit * feat!: compute partial sets (#1702) * init commit * nit change * cleaning up * clean up * fix distribution test * Update x/ccv/provider/keeper/hooks.go Co-authored-by: Simon Noetzlin <[email protected]> * took into Simon's comments * took into rest of the comments * nit change * return an error if validator cannot opt out from a Top N chain * removed automatic opt-in for validators that vote Yes on proposals * tiny fix for E2E tests * nit change to remove unecessary else * fixed topN == 0 issue --------- Co-authored-by: Simon Noetzlin <[email protected]> * feat!: update PSS cli (#1708) finalize PSS CLI cmds * Rename and add comission rate command to commands * feat!: only perform consumer additions for non-empty chains (#1730) * init commit * Update x/ccv/provider/keeper/proposal.go Co-authored-by: Philip Offtermatt <[email protected]> --------- Co-authored-by: Philip Offtermatt <[email protected]> * feat: Add queries for PSS and consumer commission rate (#1733) * init commit * nit change * cleaning up * clean up * fix distribution test * Update x/ccv/provider/keeper/hooks.go Co-authored-by: Simon Noetzlin <[email protected]> * took into Simon's comments * took into rest of the comments * nit change * return an error if validator cannot opt out from a Top N chain * removed automatic opt-in for validators that vote Yes on proposals * tiny fix for E2E tests * nit change to remove unecessary else * update consumer chains query to return topN * update query consu chains proto * add consumer chains per validator query * Add PSS command to provider's cli * nits * add consumer commission rate query * nits * big renaming * fix doc * nits * nits * docs * Update proto/interchain_security/ccv/provider/v1/query.proto Co-authored-by: insumity <[email protected]> * nit * add OptedIn in QueryConsumerChainsValidatorHasToValidate * remove OptIn field in consumer chains query response * include validators that opt-in during the next epochs * update has-to-validate condition * fix tinny bug in the tests after merging feat/partial-security * update doc * update cli description * Update x/ccv/provider/keeper/grpc_query.go Co-authored-by: insumity <[email protected]> * changes --------- Co-authored-by: insumity <[email protected]> * fix!: Fix opt-in assignment (#1732) * Make the same validator assigning the same key a noop instead of an error * Adjust test * Update tests * Fix newline warning * Regenerate traces * Add key assignment change to changelog * Add info log for same key same validator assignments * Add changelog entry to api-breaking * Update x/ccv/provider/handler_test.go Co-authored-by: insumity <[email protected]> * Add more comments to test and return right validator --------- Co-authored-by: insumity <[email protected]> * fix silly bug in PSS opted-in val query * fix logging in ibc_module.go * test: add partial-set-security E2E tests (#1737) * init commit * fix traces * Add PSS to default tests * Update tests/e2e/steps_partial_set_security.go Co-authored-by: Philip Offtermatt <[email protected]> * Update tests/e2e/steps_partial_set_security.go Co-authored-by: Philip Offtermatt <[email protected]> --------- Co-authored-by: Philip Offtermatt <[email protected]> Co-authored-by: Philip Offtermatt <[email protected]> * Nit changes based on Simons comments. To be pushed directly because E2E PR 1737 were the comments were written was accidentally merged. * fix!: return a SlashAck even if the validator is not a consumer validator (#1763) * init commit * fix test * test: Expand PSS e2e test to include slashing (#1752) * Expand test to include slashing * Add back existing steps * Add downtime to top N test * Fix nits * fix!: update unbonding pausing for PSS (#1728) * draft PSS unbonding fix * fix hook logic to retrieve validator address from ubd op * add unbonding pausing unit-test * remove panic in hook * Get back 3.2.0 and 3.3.0 changelog from main * Port epilogue from main * Fix proto conflict * generate proto files * Port RELEASE_NOTES * Fix merge for tests * Merge declaration and assignment * Clean up model files * Add pss tests to MBT readme * Restore MsgSubmitConsumerDoubleVoting handler * Remove local driver files * Remove Quint guidelines * Add optin/optout to MBT readme * Fix types in model * Fix model * Add migration * Ensure SlashAcks are sent even when the valset does not change * adding changelog entry * Empty DowntimeSlachAcks on EndBlock * Remove logs * Change condition for sending slash acks * Revert model changes * Start fixing PSS issues in model * Add expected errors to opt out action * Revert PSS quint model changes * Add parameter to ComputeNextEpochConsumerValSet * Set top N param in setup * Fix: do not try key assignment if there is no nonjailed validator * Do not assign keys for jailed validators * Only jail validators with non-zero-power * Add unit test * Add unit test for unset case * Panic on not being able to unmarshal * Move packet handling into ack.Success block * Format * Remove unnecessary comment * Add parens for clarity * Format and fix typo * Move OptIn/OptOut events to provider events * Remove unused function * Improve comments for keys * Improve comments for key getter functions * Remove order change for existing keys * Re-add nolint instruction * nit comment fix * Move ConsumerAllocationTests to correct folder * nit comment fix * fix!: handle consumer commission marshalling errors gracefully (#1836) * handle consumer commission setter/getter gracefully to avoid BeginBlock panic + add msg in codec * fix consumer commission query rest path * fix: update queries REST path for PSS (#1839) update queries rest path * Clarify that GetProposedConsumerChain is test-only * fix: Fix has-to-validate query (#1823) * Fix has-to-validate query * Flip comparison sign for checking minPower * Regenerate traces * Remove unnecessary print * Address comments * fix!: fix slashing in PSS (#1838) * drop slash packet for opted-out validators before updating slash meter * fix integration test * fix ut * update UT * Update x/ccv/provider/types/msg.go Co-authored-by: Marius Poke <[email protected]> * Remove BlockValidatorUpdate from expected staking keeper * added an error response value to ComputeMinPowerToOptIn * delete additional state when we stop a chain * Assign keys and change voting power only for unjailed nodes with >0 power * fix: Validate consumer commission rate against minimal rate (#1834) * Validate consumer commission rate * Add test for commission rates * Remove static minimum commission rate validation from Set * feat!: introduce power shaping (#1830) * added power shaping * fixes * Add property based test for power cap * fixed tests & added algorithm's idea * nit changes * Update x/ccv/provider/keeper/proposal.go Co-authored-by: Philip Offtermatt <[email protected]> * remove empty-validator-set check * implicit memory aliasing issue fixed * added keeper tests * updated HasToValidate query * Update x/ccv/provider/keeper/keeper.go Co-authored-by: Philip Offtermatt <[email protected]> * Update x/ccv/provider/keeper/keeper.go Co-authored-by: Philip Offtermatt <[email protected]> * took into account comments * do not use cached ctx * Fix E2E test. A jailed validator does not have to validate. * fix merge issue and format --------- Co-authored-by: Philip Offtermatt <[email protected]> Co-authored-by: Philip Offtermatt <[email protected]> * Update v4 to v5 in package version * Bump consensus version * Add migration in correct folder * Update version from v4 to v5 in migration --------- Co-authored-by: mpoke <[email protected]> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> Co-authored-by: insumity <[email protected]> Co-authored-by: insumity <[email protected]> Co-authored-by: Simon Noetzlin <[email protected]> * chore: add v5.0.x-provider and v5.0.x-provider to mergify and dependabot (#1845) updated bots for v5.0.x-provider release * fix: revert version bump to v5 (#1847) * revert bump version to 5 * register migration * chore: rm v5-provider; add v4.2.0; rm old versions (#1849) * chore: rm v5-provider; add v4.2.0; rm old versions * chore: rm v5-provider; add v4.2.0; rm old versions * chore: Add coderabbit configuration file (#1852) * Add coderabbit configuration file * Add release and feat base branches to coderabbit * Change config to not auto-post review status on unreviewed PRs * refactor: remove redundant code from MakeConsumerGenesis (#1807) * remove redundant code from MakeConsumerGenesis * fix tests * refactor: nit naming changes (#1854) * small naming fix * reverts name to ComputeNextValidators because the semantics of ComputeNextEpochConsumerValSet were different in v4.1 * docs: ADR for Security Aggregation solution (#1866) * ADR CosmoLayer: Initial draft * update adr: slinky api * cleanup * Apply suggestions from code review Co-authored-by: Marius Poke <[email protected]> * addressed comments * cleanup of pseudo code, power sources * renaming to security aggregation * mv adr * removed comments * minor change in code example * Apply suggestions from code review Grammar Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --------- Co-authored-by: Marius Poke <[email protected]> Co-authored-by: Jehan <[email protected]> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * chore: Make coderabbit ignore docs folder (#1864) Make bot ignore docs folder * chore: Fix codespell config (#1869) * Add optin and opt-in to codespell ignored words * Fix typo on multiple * Fix typo on assignment * feat: PSS - Add minimum power in top N & power shaping params to consumer chain list (#1863) * Add minimum power in top N to the list-consumer-chains query * Add test for MinPowerInTop_N * Add changelog entry * Update x/ccv/provider/keeper/keeper_test.go Co-authored-by: insumity <[email protected]> * Add other validator shaping params to consumer chain list * Add power shaping params to query test * Adjust changelog for extra fields * Add changelog entry for API breaking --------- Co-authored-by: insumity <[email protected]> * chore: fixed all-pairs-valconsensus-address CLI command usage (#1870) * chore: Try to make coderabbit ignore missing/extra newlines in md files (#1877) Update .coderabbit.yml * docs: Add PSS docs (#1859) * Add params to proposals * Start rewriting intro * Finish overview and terminology * Write up generics about PSS and power shaping * Add more info about top N and optin * Nit: apostrophe * Clarify governance proposal process for Opt In chains * Apply suggestions from code review Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Add missing newlines * Update docs/docs/features/partial-set-security.md Co-authored-by: insumity <[email protected]> * Update docs/docs/features/power-shaping.md Co-authored-by: insumity <[email protected]> * Use Interchain Security instead of ICSv2 * docs: Add PSS docs (Part 2) (#1861) * first version * first commit * one more warning on having all validators opt out * Update docs/docs/validators/partial-set-security-for-validators.md Co-authored-by: Philip Offtermatt <[email protected]> * Update docs/docs/validators/partial-set-security-for-validators.md Co-authored-by: Philip Offtermatt <[email protected]> * Update docs/docs/validators/partial-set-security-for-validators.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update docs/docs/validators/partial-set-security-for-validators.md Co-authored-by: Philip Offtermatt <[email protected]> * Update docs/docs/frequently-asked-questions.md Co-authored-by: Philip Offtermatt <[email protected]> * Update docs/docs/validators/partial-set-security-for-validators.md Co-authored-by: Philip Offtermatt <[email protected]> * Update docs/docs/frequently-asked-questions.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update docs/docs/validators/partial-set-security-for-validators.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * took into account some comments * small comment changes --------- Co-authored-by: Philip Offtermatt <[email protected]> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Add warning that vals have to manually opt out if going out of top N * Add short PSS FAQ * Add FAQ on how many chains vals can opt in on * Change first to third person * Fix typo * Add missing comma * added a warning * Add more guidelines to 'how to choose the power shaping parameters' * Mention list-consumer-chains query * Add tip about default commission rate --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: insumity <[email protected]> * docs: Minor improvements (#1882) * Fix typo in tip * Minor improvements around commission rate * Mention soft opt-out * Link to normal consumer addition prop * Remove confusing line from changeover prop * Remove instructions about not assigning keys * Clarify starting condition for top N chains * Incorporate comments * Update docs/docs/validators/joining-testnet.md Co-authored-by: insumity <[email protected]> * Reformulate opting out --------- Co-authored-by: insumity <[email protected]> * build(deps): bump google.golang.org/protobuf from 1.33.0 to 1.34.1 (#1862) Bumps google.golang.org/protobuf from 1.33.0 to 1.34.1. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat: add a query to retrieve validator set that was last sent to the consumer chain (#1867) * init commit * took into account comments * add docs * Update docs/docs/validators/partial-set-security-for-validators.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * fix!: drop chain proposals with empty validator set at spawn time (#1888) * init commit * Update x/ccv/provider/keeper/proposal.go Co-authored-by: MSalopek <[email protected]> * added one more test case --------- Co-authored-by: MSalopek <[email protected]> * test: Remove v5.0.0 (pre-release) be tested within e2e compatibility (#1894) * Remove v5.0.0 (pre-release) from last version to be tested within e2e comopatibility tests * Apply suggestions from code review Co-authored-by: Marius Poke <[email protected]> --------- Co-authored-by: Marius Poke <[email protected]> * test: add E2E test for power-shaping features (#1853) * added E2E tests * Update tests/e2e/steps_partial_set_security.go Co-authored-by: Philip Offtermatt <[email protected]> * added to nightly tests --------- Co-authored-by: Philip Offtermatt <[email protected]> * build(deps): bump comet to v0.37.6 (#1876) * bump comet to v0.37.6 * add changelog entry * fix exp deps and pin it to go.mod * bump comet to 0.37.5 and sdk to 0.47.11 to match * bump comet back to 0.37.6 * add changelog entry for SDK --------- Co-authored-by: MSalopek <[email protected]> * docs: add v4.2.0; bump v5.0.0 (#1900) * docs: add v4.2.0; bump v5.0.0 * docs: add v4.2.0; bump v5.0.0 * docs: fix broken docs deploy (v4.2.0) (#1903) * docs: add v4.2.0; bump v5.0.0 * docs: add v4.2.0; bump v5.0.0 * sync * sync stuff * fix * try docs tag * add version alias * chore: fix spelling errors (#1904) chore: spelling errors fixes Co-authored-by: github-merge-queue <[email protected]> * build(deps): bump JamesIves/github-pages-deploy-action from 4.6.0 to 4.6.1 (#1905) build(deps): bump JamesIves/github-pages-deploy-action Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.6.0 to 4.6.1. - [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases) - [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.6.0...v4.6.1) --- updated-dependencies: - dependency-name: JamesIves/github-pages-deploy-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump bufbuild/buf-setup-action from 1.31.0 to 1.32.0 (#1906) Bumps [bufbuild/buf-setup-action](https://github.com/bufbuild/buf-setup-action) from 1.31.0 to 1.32.0. - [Release notes](https://github.com/bufbuild/buf-setup-action/releases) - [Commits](https://github.com/bufbuild/buf-setup-action/compare/v1.31.0...v1.32.0) --- updated-dependencies: - dependency-name: bufbuild/buf-setup-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump google.golang.org/grpc from 1.63.2 to 1.64.0 (#1908) Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.63.2 to 1.64.0. - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](https://github.com/grpc/grpc-go/compare/v1.63.2...v1.64.0) --- updated-dependencies: - dependency-name: google.golang.org/grpc dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * docs: document democracy modules in more detail (#1915) * docs: document democracy modules in more detail * docs: add diff to config * Update docs/docs/features/democracy-modules.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update docs/docs/features/democracy-modules.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update docs/docs/features/democracy-modules.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * cleanup after applying bot comments --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * docs: bring v4.2.0 changelog to main (#1909) bring v4.2.0 changelog to main * build(deps): bump github.com/cosmos/ibc-go/v7 from 7.4.0 to 7.5.0 (#1907) * build(deps): bump github.com/cosmos/ibc-go/v7 from 7.4.0 to 7.5.0 Bumps [github.com/cosmos/ibc-go/v7](https://github.com/cosmos/ibc-go) from 7.4.0 to 7.5.0. - [Release notes](https://github.com/cosmos/ibc-go/releases) - [Changelog](https://github.com/cosmos/ibc-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/cosmos/ibc-go/compare/v7.4.0...v7.5.0) --- updated-dependencies: - dependency-name: github.com/cosmos/ibc-go/v7 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * add changelong entry --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: mpoke <[email protected]> * chore: fix spelling errors (#1922) chore: spelling errors fixes Co-authored-by: github-merge-queue <[email protected]> * fix(client): write unbonding period advisory to stderr instead of stdout (#1921) * fix(client): write unbonding period advisory to stderr instead of stdout * Add changelog for unbonding period advisory --------- Co-authored-by: Philip Offtermatt <[email protected]> * docs: update ADR metadata (#1910) * update ADR metadata * fix broken link * build(deps): bump github.com/cosmos/ibc-go/v7 from 7.5.0 to 7.5.1 (#1924) * build(deps): bump github.com/cosmos/ibc-go/v7 from 7.5.0 to 7.5.1 Bumps [github.com/cosmos/ibc-go/v7](https://github.com/cosmos/ibc-go) from 7.5.0 to 7.5.1. - [Release notes](https://github.com/cosmos/ibc-go/releases) - [Changelog](https://github.com/cosmos/ibc-go/blob/v7.5.1/CHANGELOG.md) - [Commits](https://github.com/cosmos/ibc-go/compare/v7.5.0...v7.5.1) --- updated-dependencies: - dependency-name: github.com/cosmos/ibc-go/v7 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> * update changelog entry --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: mpoke <[email protected]> * build(deps): bump bufbuild/buf-setup-action from 1.32.0 to 1.32.1 (#1923) Bumps [bufbuild/buf-setup-action](https://github.com/bufbuild/buf-setup-action) from 1.32.0 to 1.32.1. - [Release notes](https://github.com/bufbuild/buf-setup-action/releases) - [Commits](https://github.com/bufbuild/buf-setup-action/compare/v1.32.0...v1.32.1) --- updated-dependencies: - dependency-name: bufbuild/buf-setup-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump bufbuild/buf-setup-action from 1.32.1 to 1.32.2 (#1934) Bumps [bufbuild/buf-setup-action](https://github.com/bufbuild/buf-setup-action) from 1.32.1 to 1.32.2. - [Release notes](https://github.com/bufbuild/buf-setup-action/releases) - [Commits](https://github.com/bufbuild/buf-setup-action/compare/v1.32.1...v1.32.2) --- updated-dependencies: - dependency-name: bufbuild/buf-setup-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump github.com/spf13/viper from 1.18.2 to 1.19.0 (#1936) Bumps [github.com/spf13/viper](https://github.com/spf13/viper) from 1.18.2 to 1.19.0. - [Release notes](https://github.com/spf13/viper/releases) - [Commits](https://github.com/spf13/viper/compare/v1.18.2...v1.19.0) --- updated-dependencies: - dependency-name: github.com/spf13/viper dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump docker/login-action from 3.1.0 to 3.2.0 (#1935) Bumps [docker/login-action](https://github.com/docker/login-action) from 3.1.0 to 3.2.0. - [Release notes](https://github.com/docker/login-action/releases) - [Commits](https://github.com/docker/login-action/compare/e92390c5fb421da1463c202d546fed0ec5c39f20...0d4c9c5ea7693da7b068278f7b52bda2a190a446) --- updated-dependencies: - dependency-name: docker/login-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * docs: Add draft ADR for validators outside of the active set (#1879) * Add draft ADR for active set validators * Remove unused changelog entry * Add initial date and remove square brackets * Suggest alternative approach: unbonded validators can validate * Expand unbonded validators section a bit * Incorporate comments * Update docs/docs/adrs/adr-017-allowing-inactive-validators.md Co-authored-by: Marius Poke <[email protected]> * Update docs/docs/adrs/adr-017-allowing-inactive-validators.md Co-authored-by: Marius Poke <[email protected]> * Update docs/docs/adrs/adr-017-allowing-inactive-validators.md Co-authored-by: Marius Poke <[email protected]> * Clarify consensus validators vs staking validators * Update ADR to roll context doc into it * Fix image links * Add negative consequence * Add sentence about module wiring * Address review comments * Add source code for diagrams and make text more technical * Update docs/docs/adrs/adr-017-allowing-inactive-validators.md Co-authored-by: Marius Poke <[email protected]> * Update docs/docs/adrs/adr-017-allowing-inactive-validators.md Co-authored-by: Marius Poke <[email protected]> * Update docs/docs/adrs/adr-017-allowing-inactive-validators.md Co-authored-by: Jehan <[email protected]> * Write changes to state * Update intro, links, mitigations --------- Co-authored-by: Marius Poke <[email protected]> Co-authored-by: Jehan <[email protected]> * chore: fix struct name in comment (#1938) Signed-off-by: xiaoxiangirl <[email protected]> * feat!: allow consumer chains to change their PSS parameters (#1932) * added modification proposal * small fixes * Update x/ccv/provider/client/proposal_handler.go Co-authored-by: Philip Offtermatt <[email protected]> * removed trailing comma * Update x/ccv/provider/types/proposal.go Co-authored-by: Philip Offtermatt <[email protected]> * Update x/ccv/provider/types/proposal.go Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * took into account comment --------- Co-authored-by: Philip Offtermatt <[email protected]> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * fix!: apply audit suggestions (#1925) * init commit * added CHANGELOG entries * added nit simplification change * addressed comment by Hypha * took into account err returned by ComputeMinPowerToOptIn * fixed test failing * build(deps): bump github.com/cosmos/ibc-go/v7 from 7.5.0 to 7.5.1 (#1924) * build(deps): bump github.com/cosmos/ibc-go/v7 from 7.5.0 to 7.5.1 Bumps [github.com/cosmos/ibc-go/v7](https://github.com/cosmos/ibc-go) from 7.5.0 to 7.5.1. - [Release notes](https://github.com/cosmos/ibc-go/releases) - [Changelog](https://github.com/cosmos/ibc-go/blob/v7.5.1/CHANGELOG.md) - [Commits](https://github.com/cosmos/ibc-go/compare/v7.5.0...v7.5.1) --- updated-dependencies: - dependency-name: github.com/cosmos/ibc-go/v7 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> * update changelog entry --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: mpoke <[email protected]> * build(deps): bump bufbuild/buf-setup-action from 1.32.0 to 1.32.1 (#1923) Bumps [bufbuild/buf-setup-action](https://github.com/bufbuild/buf-setup-action) from 1.32.0 to 1.32.1. - [Release notes](https://github.com/bufbuild/buf-setup-action/releases) - [Commits](https://github.com/bufbuild/buf-setup-action/compare/v1.32.0...v1.32.1) --- updated-dependencies: - dependency-name: bufbuild/buf-setup-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump bufbuild/buf-setup-action from 1.32.1 to 1.32.2 (#1934) Bumps [bufbuild/buf-setup-action](https://github.com/bufbuild/buf-setup-action) from 1.32.1 to 1.32.2. - [Release notes](https://github.com/bufbuild/buf-setup-action/releases) - [Commits](https://github.com/bufbuild/buf-setup-action/compare/v1.32.1...v1.32.2) --- updated-dependencies: - dependency-name: bufbuild/buf-setup-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump github.com/spf13/viper from 1.18.2 to 1.19.0 (#1936) Bumps [github.com/spf13/viper](https://github.com/spf13/viper) from 1.18.2 to 1.19.0. - [Release notes](https://github.com/spf13/viper/releases) - [Commits](https://github.com/spf13/viper/compare/v1.18.2...v1.19.0) --- updated-dependencies: - dependency-name: github.com/spf13/viper dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump docker/login-action from 3.1.0 to 3.2.0 (#1935) Bumps [docker/login-action](https://github.com/docker/login-action) from 3.1.0 to 3.2.0. - [Release notes](https://github.com/docker/login-action/releases) - [Commits](https://github.com/docker/login-action/compare/e92390c5fb421da1463c202d546fed0ec5c39f20...0d4c9c5ea7693da7b068278f7b52bda2a190a446) --- updated-dependencies: - dependency-name: docker/login-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * took into account comments --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: mpoke <[email protected]> * chore: fix spelling errors (#1939) chore: spelling errors fixes Co-authored-by: github-merge-queue <[email protected]> * fix!: Replace GetAllConsumerChains with lightweight version (#1946) * add GetAllConsumerChainIDs * replace GetAllConsumerChains with GetAllRegisteredConsumerChainIDs * add changelog entry * move HasToValidate to grpc_query.go as it's used only there * apply review suggestions * feat!: added E2E test and docs for ConsumerModificationProposal (#1949) * added E2E test for the ConsumerModificationProposal * added docs * add to nightly tests * fix markdown links * Update docs/docs/features/proposals.md Co-authored-by: Philip Offtermatt <[email protected]> --------- Co-authored-by: Philip Offtermatt <[email protected]> * build(deps): bump golang.org/x/mod from 0.17.0 to 0.18.0 (#1955) Bumps [golang.org/x/mod](https://github.com/golang/mod) from 0.17.0 to 0.18.0. - [Commits](https://github.com/golang/mod/compare/v0.17.0...v0.18.0) --- updated-dependencies: - dependency-name: golang.org/x/mod dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: add last PSS changes to changelog (#1944) add last PSS changes to changelog * test: Add integration test reproducing the LastValidators exceeding MaxValidators bug (#1945) * Add test reproducing the LastValidators exceeding MaxValidators * formatting * Update tests/integration/unbonding.go Co-authored-by: insumity <[email protected]> * Update tests/integration/unbonding.go Co-authored-by: Philip Offtermatt <[email protected]> * document --------- Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> Co-authored-by: insumity <[email protected]> Co-authored-by: Philip Offtermatt <[email protected]> * test: Add an e2e test that reproduces the chain halt (#1942) * Start writing e2e test with unjailing * Add e2e steps for too many validators bug * Fix test config and setup * Change test to use top N chain * Add comment for panic * Start cleaning up active/inactive vals e2e test * Revert change to StartChains * Revert changes to partial-set-security tests * Rename test case * Rename CLI flag for test case * Address comments * Add active set changes test to nightly runs * Fix merge in main.go * docs: update releases (bots and docs) (#1948) * update bots * update releases and features * build(deps): bump docker/build-push-action from 5.3.0 to 5.4.0 (#1954) Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5.3.0 to 5.4.0. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/2cdde995de11925a030ce8070c3d77a52ffcf1c0...ca052bb54ab0790a636c9b5f226502c73d547a25) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * refactor: use IterateLastValidatorPowers instead of GetLastValidators (#1953) * Add skeleton for GetLastValidators wrapper * Fix unit tests * Correct comment * Log error messages if validators are not found * Change AnyTimes to more specific Times(1) * Instantiate slices with their max length and truncate * Remove GetLastValidators from expectation * Remove GetLastValidators call in consumer * Move GetLastBondedValidators to validator_set_updates * Add comment on iteration loop * ci: fix merge issue on nightly e2e workflow (#1959) * fix merge issue on nightly e2e * addressed comments * feat!: store the minimal power to be in the top N on EndBlock, instead of computing on-the-fly (#1952) * Store the minimal power among the top N in EndBlock * Finish merge * Fix unit tests * Fix store method for the min power * Fix migration * Revert migration changes * Change comment to proper name for key * Add staking keeper to migration * Revert "Add staking keeper to migration" This reverts commit 575cfd3ccec7732e0d1488d80bda7f6172110cf7. * Rename migration * Update x/ccv/provider/keeper/grpc_query.go * Clean up minimal power in top N on StopConsumerChain * Set min power in consumer modification proposal * Address comments * Use GetLastBondedValidators instead of GetLastValidators * Add migration * Add comment for migration * Improve comment in migration * Handle case where topN is not found * Add test for updating minimum power in top N * Merged tests * Rename updatedMinPower->newUpdatedMinPower * Address comments * fix: print test name instead of config name (#1961) * Fix: print test name instead of config name * Add the config back in the report * chore: add ICS `release/v5.1.x` branch to Mergify (#1962) add release/v5.1.x brancg to mergify * build(deps): bump google.golang.org/protobuf from 1.34.1 to 1.34.2 (#1958) Bumps google.golang.org/protobuf from 1.34.1 to 1.34.2. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat!: only distribute rewards to validators that have been validating a consumer chain for some time (#1929) * init commit * added a warning * took into account comments * init commit * added a warning * took into account comments * added a comment * Update .changelog/unreleased/improvements/provider/1929-distribute-rewards-to-long-term-validating-validators.md Co-authored-by: Marius Poke <[email protected]> * Update .changelog/unreleased/state-breaking/provider/1929-distribute-rewards-to-long-term-validating-validators.md Co-authored-by: Marius Poke <[email protected]> * took into account comments --------- Co-authored-by: Marius Poke <[email protected]> * chore: add bots for v4.3.0 (#1975) add bots for v4.3.0 * chore: bump ibc-go to v7.6.0 (#1974) * deps!: bump ibc-go to v7.6.0 * docs: update changelog files * docs: add docs section to RELEASE_PROCESS.md (#1976) * docs: add docs section to RELEASE_PROCESS.md * docs: update the release notes template * docs: bring v4.3.0 changelog to main (#1980) * bring v4.3.0 changelog to main * fix release notes template * build(deps): bump github.com/spf13/cobra from 1.8.0 to 1.8.1 (#1967) Bumps [github.com/spf13/cobra](https://github.com/spf13/cobra) from 1.8.0 to 1.8.1. - [Release notes](https://github.com/spf13/cobra/releases) - [Commits](https://github.com/spf13/cobra/compare/v1.8.0...v1.8.1) --- updated-dependencies: - dependency-name: github.com/spf13/cobra dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump bufbuild/buf-setup-action from 1.32.2 to 1.33.0 (#1968) Bumps [bufbuild/buf-setup-action](https://github.com/bufbuild/buf-setup-action) from 1.32.2 to 1.33.0. - [Release notes](https://github.com/bufbuild/buf-setup-action/releases) - [Commits](https://github.com/bufbuild/buf-setup-action/compare/v1.32.2...v1.33.0) --- updated-dependencies: - dependency-name: bufbuild/buf-setup-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump docker/build-push-action from 5.4.0 to 6.0.0 (#1969) Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5.4.0 to 6.0.0. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/ca052bb54ab0790a636c9b5f226502c73d547a25...c382f710d39a5bb4e430307530a720f50c2d3318) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * docs: mention PSS in changeover procedure and replace Replicated Security with Interchain Security (#1981) * removed sentence that stated that "no opt-in mechanism available" * changed replicated security to interchain security * added PSS info box in the changeover procedure * chore: fix typos (#1973) * fix typos * fix typo * fix typos * fix typos * fix typo Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * docs: update ADRs rendering (#1937) * update ADRs in docs * chore: ignore templates directories in docs folder * fix broken links * fix broken links --------- Co-authored-by: MSalopek <[email protected]> * refactor!: deprecate soft opt-out (#1964) * first commit * Set soft_opt_out_threshold to 0 instead of empty * added changelog * Update docs/docs/adrs/adr-009-soft-opt-out.md Co-authored-by: Philip Offtermatt <[email protected]> * Update proto/interchain_security/ccv/v1/shared_consumer.proto Co-authored-by: Philip Offtermatt <[email protected]> * Update .changelog/unreleased/improvements/consumer/1964-deprecate-soft-opt-out.md Co-authored-by: Marius Poke <[email protected]> * fixed changelogs * added changelogs * nit fix * added changelog in ADR * took into account comments. * small fix * fixed small issue --------- Co-authored-by: Philip Offtermatt <[email protected]> Co-authored-by: Marius Poke <[email protected]> * build(deps): bump docker/build-push-action from 6.0.0 to 6.1.0 (#1989) Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.0.0 to 6.1.0. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/c382f710d39a5bb4e430307530a720f50c2d3318...31159d49c0d4756269a0940a750801a1ea5d7003) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump bufbuild/buf-setup-action from 1.33.0 to 1.34.0 (#1988) Bumps [bufbuild/buf-setup-action](https://github.com/bufbuild/buf-setup-action) from 1.33.0 to 1.34.0. - [Release notes](https://github.com/bufbuild/buf-setup-action/releases) - [Commits](https://github.com/bufbuild/buf-setup-action/compare/v1.33.0...v1.34.0) --- updated-dependencies: - dependency-name: bufbuild/buf-setup-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump github.com/hashicorp/go-getter from 1.7.4 to 1.7.5 (#1994) Bumps [github.com/hashicorp/go-getter](https://github.com/hashicorp/go-getter) from 1.7.4 to 1.7.5. - [Release notes](https://github.com/hashicorp/go-getter/releases) - [Changelog](https://github.com/hashicorp/go-getter/blob/main/.goreleaser.yml) - [Commits](https://github.com/hashicorp/go-getter/compare/v1.7.4...v1.7.5) --- updated-dependencies: - dependency-name: github.com/hashicorp/go-getter dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: fix comment (#1972) Signed-off-by: rustco <[email protected]> * build(deps): bump docker/build-push-action from 6.1.0 to 6.2.0 (#2003) Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.1.0 to 6.2.0. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/31159d49c0d4756269a0940a750801a1ea5d7003...15560696de535e4014efeff63c48f16952e52dd1) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump amannn/action-semantic-pull-request from 5.5.2 to 5.5.3 (#2002) build(deps): bump amannn/action-semantic-pull-request Bumps [amannn/action-semantic-pull-request](https://github.com/amannn/action-semantic-pull-r…
…2050) feat!: deprecate soft opt-out (backporting #1964) (#1995) * init commit * fix changelog names * fix tests * added backport link * removed unnecessary default value (cherry picked from commit 9bb62ec) Co-authored-by: insumity <[email protected]>
Description
Closes: #1927
Problem
After the release of Partial Set Security in Gaia v17, the Soft Opt-Out feature is not needed anymore because the only registered consumer chains (i.e., Stride and Neutron) have become Top 95% consumer chains. This means that the last 5% of the Cosmos Hub validators do not have to validate a consumer chain unless they choose to do so by sending a
MsgOptIn
message. Nevertheless, Soft Opt-Out is still functional in Gaia v17, and as a result, the last 5% of the top 95% validators could choose to not validate Stride or Neutron without getting jailed.Solution
This PR removes the Soft Opt-Out feature.
The
soft_opt_out_threshold
is used as a parameter in the consumer genesis files, so to be backwards compatible with older-version consumer modules, we do not rename or remove thesoft_opt_out_threshold
and just set it to0
.We also deprecate the storage under
SmallestNonOptOutPowerByteKey
on the consumer module but we do not delete the values that were stored for Stride and Neutron. To actually delete the stored soft opt-out values, we would need migration code and it did not seem that is worth it to introduce migration code to reclaim2 * size(int64) = 16 bytes
. If there are concerns, I can add the migration code for this.Author Checklist
All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.
I have...
!
to the type prefix if the change is state-machine breakingCHANGELOG.md
Reviewers Checklist
All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.
I have...
!
the type prefix if the change is state-machine breakingSummary by CodeRabbit
Deprecations
Bug Fixes
SoftOptOutThreshold
parameter to zero in the consumer app genesis.Documentation
Tests