Skip to content

Releases: cosmos/interchain-security

v1.1.0-multiden

08 May 10:38
7861804
Compare
Choose a tag to compare

Note: This release is consensus breaking for the provider, the changes are not needed on the consumer.

This release combines two fixes that we judged were urgent to get onto the Cosmos Hub before the launch of the first ICS consumer chain.

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.

Multisig fix

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.

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.

Distribution fix

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.

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.

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.

Full Changelog: v1.1.0...release/v1.1.0-multiden

v1.2.1

25 Apr 13:39
v1.2.1
ecb9554
Compare
Choose a tag to compare
v1.2.1 Pre-release
Pre-release

Date: April 25th, 2023

Note safe to use as it's SM breaking and it requires state migration.

This is a patch release of Interchain Security (ICS), also known as Replicated Security (RS), which removes the dependency on spm module for initializing the chain and updates key handling.

Changes included:

Full Changelog: v1.2.0...v1.2.1

v1.1.1

25 Apr 12:54
v1.1.1
5cbf6f7
Compare
Choose a tag to compare
v1.1.1 Pre-release
Pre-release

Note safe to use as it's SM breaking and it requires state migration.

What's Changed

Changes included:

Full Changelog: v1.1.0...v1.1.1

v1.2.0

13 Apr 15:07
Compare
Choose a tag to compare

What's changed

  • Soft opt-out (#833)
  • Correctly handle VSC packet with duplicate val updates on consumer (#846)
  • bump: sdk v0.45.15-ics (#805)
  • add interchain security consumer QueryParams (#746)

Note that the consumer soft opt-out isn't E2E tested yet.

v1.1.0

24 Mar 15:37
6a856d1
Compare
Choose a tag to compare

What's changed

  • fix StopConsumerChain not running in cachedContext @MSalopek (#802)

Full Changelog: v1.0.0...v1.1.0

v1.0.0

21 Feb 15:27
558516f
Compare
Choose a tag to compare

What's Changed

  • Update CODEOWNERS by @smarshall-spitzbart in #466
  • add event emissions to provider and consumer by @MSalopek in #427
  • Slashing related e2e test improvements by @smarshall-spitzbart in #461
  • circuit breaker params by @smarshall-spitzbart in #444
  • Adds Cryptographic Identity utility for working with various keys ect by @danwt in #470
  • testutils refactors and cleanup by @smarshall-spitzbart in #472
  • add multiple consumer chains in integration tests by @MSalopek in #407
  • Updates issue template by @danwt in #483
  • Upgrade SDK to v0.45.11 by @sainoe in #485
  • handle provider and consumer client expiration by @mpoke in #448
  • Restores panics to #485 by @jtremback in #491
  • Update #264 - updates genesis and genesis tests by @sainoe in #382
  • Fixes for issues #151 #397 by @stana-miric in #495
  • Make iterators consistent with SDK pattern by @mpoke in #459
  • Create e2e debug util file by @smarshall-spitzbart in #488
  • Remove false vscID initialization by @mpoke in #499
  • Resolve +-1 question mark in MakeConsumerGenesis by @mpoke in #500
  • Improve how sent packets are stored in e2e tests by @smarshall-spitzbart in #504
  • add pull request template by @MSalopek in #501
  • refactor changes in expired consumer handling by @MSalopek in #507
  • add consumer addition proposal documentation by @MSalopek in #502
  • fix: remove duplicated SlashingKeeper in consumer app.go by @sainoe in #508
  • Multi-consumer capable e2e tests by @smarshall-spitzbart in #475
  • show PR template on PR creation by @MSalopek in #518
  • Update PULL_REQUEST_TEMPLATE.md by @sainoe in #523
  • Update tags for HandleConsumerAdditionProposal and HandleConsumerRemovalProposal by @mpoke in #539
  • Simplifies some crypto util test helper methods by @danwt in #540
  • update provider genesis validation by @sainoe in #525
  • Deduplicate code in IncrementValidatorSetUpdateId by @danwt in #543
  • refactor provider pending packets handling by @MSalopek in #552
  • fix IterateInitTimeoutTimestamp by @MSalopek in #549
  • Separate validation and handling for recv slash packets by @smarshall-spitzbart in #542
  • test: Add CCV Test Suite with Gaia provider by @glnro in #559
  • Key assignment by @mpoke in #515
  • make OnTimeoutPacket handling consistent in consumer by @MSalopek in #550
  • Correct ValidateStringFraction by @smarshall-spitzbart in #569
  • update consumer addition proposal by @MSalopek in #558
  • Refactor: Packets -> VSCPackets by @smarshall-spitzbart in #587
  • NewErrorAcknowledgement with non-determinsitic error message by @mpoke in #591
  • chore: Update gaia dependency for e2e provider test by @glnro in #578
  • Update PULL_REQUEST_TEMPLATE.md by @smarshall-spitzbart in #574
  • add sorting into AccumulateChanges and add a unit test for it by @jtremback in #584
  • fix: verify consumer proposals execution to prevent provider halts by @sainoe in #602
  • refactor: TrustingPeriodFraction should be a fraction. by @glnro in #593
  • Slash packet throttling by @smarshall-spitzbart in #462
  • Throttle refactors by @smarshall-spitzbart in #611
  • GlobalSlashEntry protobuf type by @smarshall-spitzbart in #613
  • add slash throttling queries by @MSalopek in #600
  • Refactor: Convert iterators to array getters by @jtremback in #596
  • refactor: wrap VSCMatured/Slash packets into a consumer packet type by @sainoe in #626
  • Move info about testing from README to testing.md by @mpoke in #616
  • Always queue vsc matured packet data by @smarshall-spitzbart in #624
  • Fix: Iteration through PacketMaturityTimes assumes maturity time order by @mpoke in #622
  • Minor refactor: factor out Begin(End)Block calls from simibc by @danwt in #588
  • Adds Validator Set Replication property check to core diff model by @danwt in #589
  • add provider and consumer logging by @MSalopek in #628
  • replace TestHandleSlashPacketDistribution w/ TestSlashUndelegation by @mpoke in #633
  • Change default max throttled packets params + small log fix by @smarshall-spitzbart in #639
  • Improved assign consumer key msg validation by @danwt in #644
  • Adds ValidateBasic for key assignment related state in provider genesis by @danwt in #646
  • Key assignment related panic cleanup by @smarshall-spitzbart in #642
  • Throttle related panic cleanup by @smarshall-spitzbart in #640
  • Update IBC-Go to canonical v3.4.0 by @glnro in #632
  • Add docs about ICS params by @mpoke in #653
  • Provider panic cleanup by @mpoke in #647
  • Consumer panic cleanup by @mpoke in #655
  • Handle panic in Reward Distribution by @mpoke in #638
  • Removes depreciated keyring dependency by @smarshall-spitzbart in #657
  • Difftest core: small PR removes some todos by @danwt in #656
  • Remove Gaia Provider Test by @glnro in #669
  • run happy path tests on push; bump hermes version by @MSalopek in #659
  • Bump IBC refs to ver 4.2.0 by @smarshall-spitzbart in #654
  • Update CODEOWNERS by @mpoke in #676
  • add manual integration tests GH workflow by @MSalopek in #665
  • difftest: Adds a METHOD.md doc explaining concepts by @danwt in #663
  • Document ValidatorByConsAddr in consumer module by @danwt in #675
  • Improve crypto testutil by @sainoe in #672
  • Fix #555 document rules for key assignment by @danwt in #668
  • fix: slash meter replenishment by @smarshall-spitzbart in #687
  • difftest-core (driver): refactor setup to make it more maintainable by @danwt in #658
  • Throttle integration test fixes by @smarshall-spitzbart in #696
  • Comments and better panic prints for e2e tests by @smarshall-spitzbart in #660
  • wait after sending unjail tx in integration tests by @MSalopek in #701
  • bump SDK version by @sainoe in #709
  • disable consumer initiated slashing + fix slash acks bug by @sainoe in #692
  • Add changelo...
Read more

v1.0.0-rc7

10 Feb 20:37
2c5942d
Compare
Choose a tag to compare
v1.0.0-rc7 Pre-release
Pre-release

What's Changed

  • ADR: equivocation gov proposal by @tbruyelle in #711
  • Throttle ADR by @smarshall-spitzbart in #682
  • add additional checks for equivocation governance proposals by @MSalopek in #730

Full Changelog: v1.0.0-rc6...v1.0.0-rc7

v1.0.0-rc6

09 Feb 14:33
bbf34d5
Compare
Choose a tag to compare
v1.0.0-rc6 Pre-release
Pre-release

What's Changed

  • remove liquidity, feegrant and authz keepers by @MSalopek in #700
  • simibc: improves package documentation for simibc by @danwt in #662
  • Democracry consumer app refactors by @smarshall-spitzbart in #679
  • Fix lint error in main by @smarshall-spitzbart in #702
  • refactor multi-consumer and equivocation integration tests by @MSalopek in #715
  • difftest-core (model): bring up to date, improve comments by @danwt in #664
  • bump SDK version to v0.45.13-ics by @sainoe in #727

Full Changelog: v1.0.0-rc5...v1.0.0-rc6

v1.0.0-rc5

06 Feb 18:01
9469dae
Compare
Choose a tag to compare
v1.0.0-rc5 Pre-release
Pre-release

What's Changed

  • Throttle integration test fixes by @smarshall-spitzbart in #696
  • Comments and better panic prints for e2e tests by @smarshall-spitzbart in #660
  • wait after sending unjail tx in integration tests by @MSalopek in #701
  • bump SDK version by @sainoe in #709
  • disable consumer initiated slashing + fix slash acks bug by @sainoe in #692
  • Add changelog for v1.0.0 by @mpoke in #698
  • feat: Equivocation gov proposal by @tbruyelle in #703
  • add integration tests for equivocation proposals by @MSalopek in #710

New Contributors

Full Changelog: v1.0.0-rc4...v1.0.0-rc5

v1.0.0-rc4

01 Feb 19:17
b89c46e
Compare
Choose a tag to compare
v1.0.0-rc4 Pre-release
Pre-release

What's Changed

  • Update CODEOWNERS by @mpoke in #676
  • add manual integration tests GH workflow by @MSalopek in #665
  • difftest: Adds a METHOD.md doc explaining concepts by @danwt in #663
  • Document ValidatorByConsAddr in consumer module by @danwt in #675
  • Improve crypto testutil by @sainoe in #672
  • Fix #555 document rules for key assignment by @danwt in #668
  • fix: slash meter replenishment by @smarshall-spitzbart in #687
  • difftest-core (driver): refactor setup to make it more maintainable by @danwt in #658

Full Changelog: v1.0.0-rc3...v1.0.0-rc4