Skip to content

Commit 42279c8

Browse files
authored
docs: cleanup changelog for v2.0.0 on release/v2.0.x (#987)
* Update CHANGELOG.md * Update CHANGELOG.md * comment
1 parent 9f2be6c commit 42279c8

File tree

2 files changed

+7
-66
lines changed

2 files changed

+7
-66
lines changed

CHANGELOG.md

Lines changed: 6 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
11
# CHANGELOG
22

3-
## [Unreleased]
4-
5-
Add an entry to the unreleased section whenever merging a PR to main that is not targeted at a specific release. These entries will eventually be included in a release.
6-
73
## v.2.0.0
84

9-
Date: May 12th, 2023
5+
Date: June 1st, 2023
106

11-
Unlike prior releases, the ICS v2.0.0 release will be based on the main branch. v2.0.0 will contain all the accumulated PRs from the various releases below, along with other PRs that were merged, but not released to production. After v2.0.0, we plan to revamp release practices, and how we modularize the repo for consumer/provider.
7+
Unlike prior releases, the ICS `v2.0.0` release will be based on the main branch. `v2.0.0` will contain all the accumulated PRs from the various releases below, along with other PRs that were merged, but not released to production. After `v2.0.0`, we plan to revamp release practices, and how we modularize the repo for consumer/provider.
128

13-
Some PRs from v2.0.0 may reappear from other releases below. This is due to the fact that ICS v1.1.0 deviates from the commit ordering of the main branch, and other releases thereafter are based on v1.1.0.
9+
Upgrading a provider from `v1.1.0-multiden` to `v2.0.0` will require state migrations. See [migration.go](./x/ccv/provider/keeper/migration.go). See the provider module's `ConsensusVersion` in [module](./x/ccv/provider/module.go)
10+
11+
Upgrading a consumer from `v1.2.0-multiden` to `v2.0.0` will NOT require state migrations. See the consumer module's `ConsensusVersion` in [module](./x/ccv/consumer/module.go)
1412

1513
### High level changes included in v2.0.0
1614

@@ -19,7 +17,7 @@ Some PRs from v2.0.0 may reappear from other releases below. This is due to the
1917
* Various fixes, critical and non-critical
2018
* Docs updates which should not affect production code
2119

22-
## PRs included in v2.0.0
20+
## Notable PRs included in v2.0.0
2321

2422
* (feat) v1->v2 migrations to accommodate a bugfix having to do with store keys, introduce new params, and deal with consumer genesis state schema changes [#975](https://github.com/cosmos/interchain-security/pull/975)
2523
* (deps) Bump github.com/cosmos/ibc-go/v4 from 4.4.0 to 4.4.2 [#982](https://github.com/cosmos/interchain-security/pull/982)
@@ -52,63 +50,6 @@ Some PRs from v2.0.0 may reappear from other releases below. This is due to the
5250
* (api) Add consumer QueryParams [#746](https://github.com/cosmos/interchain-security/pull/746)
5351
* (feature) New validation for keeper fields [#740](https://github.com/cosmos/interchain-security/pull/740)
5452

55-
## v1.2.0-multiden
56-
57-
The first release candidate for a fix built on top of v1.2.0, intended for consumers. This release adds a list of denoms on the consumer that are allowed to be sent to the provider as rewards. This prevents a potential DOS attack that was discovered during the audit of Replicated Security performed by Oak Security and funded by the Cosmos Hub community through Proposal 687. In an effort to move quickly, this release also includes a multisig fix that is effective only for provider. It shouldn't affect the consumer module.
58-
59-
Note PRs were made in a private security repo.
60-
61-
[full diff](https://github.com/cosmos/interchain-security/compare/v1.2.0...v1.2.0-multiden-rc0)
62-
63-
## v1.1.0-multiden
64-
65-
This release combines two fixes on top of v1.1.0, that we judged were urgent to get onto the Cosmos Hub before the launch of the first ICS consumer chain. This is an emergency release intended for providers.
66-
67-
The first fix is to enable the use of multisigs and Ledger devices when assigning keys for consumer chains. The second is to prevent a possible DOS vector involving the reward distribution system.
68-
69-
Note PRs were made in a private security repo.
70-
71-
[full diff](https://github.com/cosmos/interchain-security/compare/v1.1.0...release/v1.1.0-multiden)
72-
73-
### Multisig fix
74-
75-
On April 25th (a week and a half ago), we began receiving reports that validators using multisigs and Ledger devices were getting errors reading Error: unable to resolve type URL /interchain_security.ccv.provider.v1.MsgAssignConsumerKey: tx parse error when attempting to assign consensus keys for consumer chains.
76-
77-
We quickly narrowed the problem down to issues having to do with using the PubKey type directly in the MsgAssignConsumerKey transaction, and Amino (a deprecated serialization library still used in Ledger devices and multisigs) not being able to handle this. We attempted to fix this with the assistance of the Cosmos-SDK team, but after making no headway for a few days, we decided to simply use a JSON representation of the PubKey in the transaction. This is how it is usually represented anyway. We have verified that this fixes the problem.
78-
79-
### Distribution fix
80-
81-
The ICS distribution system works by allowing consumer chains to send rewards to a module address on the provider called the FeePoolAddress. From here they are automatically distributed to all validators and delegators through the distribution system that already exists to distribute staking rewards. The FeePoolAddress is usually blocked so that no tokens can be sent to it, but to enable ICS distribution we had to unblock it.
82-
83-
We recently realized that unblocking the FeePoolAddress could enable an attacker to send a huge number of different denoms into the distribution system. The distribution system would then attempt to distribute them all, leading to out of memory errors. Fixing a similar attack vector that existed in the distribution system before ICS led us to this realization.
84-
85-
To fix this problem, we have re-blocked the FeePoolAddress and created a new address called the ConsumerRewardsPool. Consumer chains now send rewards to this new address. There is also a new transaction type called RegisterConsumerRewardDenom. This transaction allows people to register denoms to be used as rewards from consumer chains. It costs 10 Atoms to run this transaction.The Atoms are transferred to the community pool. Only denoms registered with this command are then transferred to the FeePoolAddress and distributed out to delegators and validators.
86-
87-
## v1.2.1
88-
89-
* (fix) Remove SPM [#812](https://github.com/cosmos/interchain-security/pull/812)
90-
* (refactor) Key assignment type safety [#725](https://github.com/cosmos/interchain-security/pull/725)
91-
92-
## v1.2.0
93-
94-
Date: April 13th, 2023
95-
96-
* (feat) Soft opt-out [#833](https://github.com/cosmos/interchain-security/pull/833)
97-
* (fix) Correctly handle VSC packet with duplicate val updates on consumer [#846](https://github.com/cosmos/interchain-security/pull/846)
98-
* (chore) bump: sdk v0.45.15-ics [#805](https://github.com/cosmos/interchain-security/pull/805)
99-
* (api) add interchain security consumer QueryParams [#746](https://github.com/cosmos/interchain-security/pull/746)
100-
101-
## v1.1.1
102-
103-
* (fix) Remove SPM [#812](https://github.com/cosmos/interchain-security/pull/812)
104-
* (refactor) Key assignment type safety [#725](https://github.com/cosmos/interchain-security/pull/725)
105-
106-
## v1.1.0
107-
108-
Date: March 24th, 2023
109-
110-
* (fix) StopConsumerChain not running in cachedContext [#802](https://github.com/cosmos/interchain-security/pull/802)
111-
11253
## v1.0.0
11354

11455
Date: February 6th, 2023

x/ccv/provider/keeper/migration.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ func NewMigrator(ccvProviderKeeper Keeper, ccvProviderParamSpace paramtypes.Subs
2222
return Migrator{ccvProviderKeeper: ccvProviderKeeper, ccvProviderParamSpace: ccvProviderParamSpace}
2323
}
2424

25-
// Migratev1Tov2 migrates a provider from v1.0.0 to v2.0.0.
25+
// Migratev1Tov2 migrates a provider from v1.0.0 to v2.0.0, and/or consensus version 1 -> 2.
2626
func (m Migrator) Migratev1Tov2(ctx sdk.Context) error {
2727
// Migrate params
2828
MigrateParamsv1Tov2(ctx,

0 commit comments

Comments
 (0)