Skip to content
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

Add ibc-go v8 to integration tests #3694

Merged
merged 25 commits into from
Nov 16, 2023
Merged

Conversation

ljoss17
Copy link
Contributor

@ljoss17 ljoss17 commented Nov 13, 2023

Closes: #3696

Description

This PR adds ibc-go simapp v8.0.0 to the chains used to run the integration tests. This requires some changes in the CLIs used to bootstrap the tests:

  • The CLIs add-genesis-account, gentx and collect-gentxs are under a subcommand genesis
  • query bank balances doesn't take a --denom flag anymore and won't return the amount if the denom has 0 tokens
  • Use MsgIBCSoftwareUpgrade instead of UpgradeProposal if the ibc-go version used by the chain is v8.x.x or higher

PR author checklist:

  • Added changelog entry, using unclog.
  • Added tests: integration (for Hermes) or unit/mock tests (for modules).
  • Linked to GitHub issue.
  • Updated code comments and documentation (e.g., docs/).
  • Tagged one reviewer who will be the one responsible for shepherding this PR.

Reviewer checklist:

  • Reviewed Files changed in the GitHub PR explorer.
  • Manually tested (in case integration/unit/mock tests are absent).

@ljoss17 ljoss17 added the CI: multi-chains CI: Run the `multi-chains` integration test job on this PR label Nov 13, 2023
@ljoss17 ljoss17 requested a review from romac November 13, 2023 07:35
Copy link
Member

@romac romac left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Amazing work, especially on the tests! And thanks for the doc as well 🚀

Left some minor comments, but otherwise it looks great!

crates/relayer/src/chain/cosmos.rs Outdated Show resolved Hide resolved
crates/relayer/src/upgrade_chain.rs Outdated Show resolved Hide resolved
tools/test-framework/src/chain/tagged.rs Outdated Show resolved Hide resolved
)?
.stdout;
let json_res: HashMap<String, serde_json::Value> =
serde_json::from_str(&output).map_err(handle_generic_error)?;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One thing we could do here and in other places where we deal with JSON to avoid peeking manually into the JSON Value is to define a struct matching the JSON we expect, derive Deserialize for it and then convert the JSON into the struct.

Can be left for later, or skipped completely, will leave you judge of whether it's worth it or not.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree, it is a good idea as the amount of methods where we extract the JSON output has increased. I think keeping this in a separate PR to clean the test-framework methods would be better. I will open an issue

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds good 👍

tools/test-framework/src/util/proposal_status.rs Outdated Show resolved Hide resolved
.is_ok());
info!("Assert that the chain upgrade proposal is eventually passed");

driver.value().assert_proposal_status(
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💯

@@ -1078,9 +1078,9 @@ impl ChainEndpoint for CosmosSdkChain {
ChainConfig::CosmosSdk(self.config.clone())
}

fn ibc_version(&self) -> Result<Option<semver::Version>, Error> {
fn version_specs(&self) -> Result<(Option<semver::Version>, semver::Version), Error> {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here I meant to suggest both renaming the method and returning the full VersionSpecs struct instead of a tuple.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh my bad, should I have it return the Specs struct https://github.com/informalsystems/hermes/blob/master/crates/relayer/src/chain/cosmos/version.rs#L37. Or would it be better to have a struct with all Option<> to avoid issues with non-SDK chains? E.g.:

pub struct VersionSpecs {
    pub cosmos_sdk: Option<semver::Version>,
    pub ibc_go: Option<semver::Version>,
    pub tendermint: Option<semver::Version>,
    pub comet: Option<semver::Version>,
}

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh right, yeah that's the way to go!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in f135f41

@ljoss17 ljoss17 merged commit c945791 into master Nov 16, 2023
60 checks passed
@ljoss17 ljoss17 deleted the luca_joss/ibc-go-v8-compatibility branch November 16, 2023 15:57
beer-1 pushed a commit to beer-1/hermes that referenced this pull request Nov 28, 2023
* Add simapp v8 to CI jobs

* Add simapp v8 to nix flake

* Handle CLI breaking changes of Cosmos SDK v0.50 in test bootstrap

* Handle genesis config 'voting_perdiod' and CLI 'query txs' changes for Cosmos SDK v0.50.1

* Use 'MsgSubmitProposal' instead of deprecated 'UpgradeProposal' to initiate a chain upgrade

* Update 'tx upgrade-chain' CLI template

* Fix 'tx chain-upgrade' tests

* Update chain upgrade for compatibility between different ibc-go versions

* Improve assertion for client upgrade tests

* Update ibc-proto-rs to v0.39.0

* Add changelog entry

* Fix and improve guide section for client upgrade

* Wait before querying client state for client upgrade tests

* Apply suggestions from code review

Co-authored-by: Romain Ruetschi <romain@informal.systems>
Signed-off-by: Luca Joss <43531661+ljoss17@users.noreply.github.com>

* Rename method 'ibc_version()' to 'version_specs'

* Extract the verification of legacy version in a method

* Implement 'FromStr' instead of 'TryFrom<String>' for 'ProposalStatus'

* Fix cargo-doc warning

* Add changelog entry for CLI

* Change the '--gov-account' flag as optional but will fail if trying to upgrade a chain with ibc-go v8+

* Update guide

* Move and update changelog entry for CLI

* Return a 'Specs' struct in 'version_specs()' method

* Fix clippy errors

---------

Signed-off-by: Luca Joss <43531661+ljoss17@users.noreply.github.com>
Co-authored-by: Romain Ruetschi <romain@informal.systems>
romac added a commit that referenced this pull request Dec 14, 2023
…lean-up process (#3725)

* prevent returning stopping workers

* clear only the specific worker

* Add ibc-go v8 to integration tests (#3694)

* Add simapp v8 to CI jobs

* Add simapp v8 to nix flake

* Handle CLI breaking changes of Cosmos SDK v0.50 in test bootstrap

* Handle genesis config 'voting_perdiod' and CLI 'query txs' changes for Cosmos SDK v0.50.1

* Use 'MsgSubmitProposal' instead of deprecated 'UpgradeProposal' to initiate a chain upgrade

* Update 'tx upgrade-chain' CLI template

* Fix 'tx chain-upgrade' tests

* Update chain upgrade for compatibility between different ibc-go versions

* Improve assertion for client upgrade tests

* Update ibc-proto-rs to v0.39.0

* Add changelog entry

* Fix and improve guide section for client upgrade

* Wait before querying client state for client upgrade tests

* Apply suggestions from code review

Co-authored-by: Romain Ruetschi <romain@informal.systems>
Signed-off-by: Luca Joss <43531661+ljoss17@users.noreply.github.com>

* Rename method 'ibc_version()' to 'version_specs'

* Extract the verification of legacy version in a method

* Implement 'FromStr' instead of 'TryFrom<String>' for 'ProposalStatus'

* Fix cargo-doc warning

* Add changelog entry for CLI

* Change the '--gov-account' flag as optional but will fail if trying to upgrade a chain with ibc-go v8+

* Update guide

* Move and update changelog entry for CLI

* Return a 'Specs' struct in 'version_specs()' method

* Fix clippy errors

---------

Signed-off-by: Luca Joss <43531661+ljoss17@users.noreply.github.com>
Co-authored-by: Romain Ruetschi <romain@informal.systems>

* Update Gaia used in tests from v12 to v13 & v14 (#3700)

* Update Gaia v12 to v13 and v14 in tests

* Fix Celestia CI job

* Replace Gaia v12 with v13 and v14 in multi-chain tests (#3701)

* Add changelog entry

---------

Signed-off-by: Luca Joss <43531661+ljoss17@users.noreply.github.com>
Co-authored-by: beer-1 <147697694+beer-1@users.noreply.github.com>
Co-authored-by: Romain Ruetschi <romain@informal.systems>
ljoss17 added a commit that referenced this pull request Dec 14, 2023
…lean-up process (#3725)

* prevent returning stopping workers

* clear only the specific worker

* Add ibc-go v8 to integration tests (#3694)

* Add simapp v8 to CI jobs

* Add simapp v8 to nix flake

* Handle CLI breaking changes of Cosmos SDK v0.50 in test bootstrap

* Handle genesis config 'voting_perdiod' and CLI 'query txs' changes for Cosmos SDK v0.50.1

* Use 'MsgSubmitProposal' instead of deprecated 'UpgradeProposal' to initiate a chain upgrade

* Update 'tx upgrade-chain' CLI template

* Fix 'tx chain-upgrade' tests

* Update chain upgrade for compatibility between different ibc-go versions

* Improve assertion for client upgrade tests

* Update ibc-proto-rs to v0.39.0

* Add changelog entry

* Fix and improve guide section for client upgrade

* Wait before querying client state for client upgrade tests

* Apply suggestions from code review

Co-authored-by: Romain Ruetschi <romain@informal.systems>
Signed-off-by: Luca Joss <43531661+ljoss17@users.noreply.github.com>

* Rename method 'ibc_version()' to 'version_specs'

* Extract the verification of legacy version in a method

* Implement 'FromStr' instead of 'TryFrom<String>' for 'ProposalStatus'

* Fix cargo-doc warning

* Add changelog entry for CLI

* Change the '--gov-account' flag as optional but will fail if trying to upgrade a chain with ibc-go v8+

* Update guide

* Move and update changelog entry for CLI

* Return a 'Specs' struct in 'version_specs()' method

* Fix clippy errors

---------

Signed-off-by: Luca Joss <43531661+ljoss17@users.noreply.github.com>
Co-authored-by: Romain Ruetschi <romain@informal.systems>

* Update Gaia used in tests from v12 to v13 & v14 (#3700)

* Update Gaia v12 to v13 and v14 in tests

* Fix Celestia CI job

* Replace Gaia v12 with v13 and v14 in multi-chain tests (#3701)

* Add changelog entry

---------

Signed-off-by: Luca Joss <43531661+ljoss17@users.noreply.github.com>
Co-authored-by: beer-1 <147697694+beer-1@users.noreply.github.com>
Co-authored-by: Romain Ruetschi <romain@informal.systems>
romac added a commit that referenced this pull request Dec 15, 2023
* Improve `broadcast_errors` metric (#3719)

* Use short description for 'broadcast_errors' metric

* Add changelog entry

* Fix hyperlink in doc comment

Signed-off-by: Romain Ruetschi <github@romac.me>

* Fix hyperlink in doc comment

---------

Signed-off-by: Romain Ruetschi <romain@informal.systems>
Co-authored-by: Romain Ruetschi <romain@informal.systems>

* Fetch the light block at trusted_height + 1 when detecting misbehavior (#3727)

* fetch the light block at trusted_height+1 when detecting misbehaviour

* Add changelog entry

* Fix typo

---------

Co-authored-by: beer-1 <147697694+beer-1@users.noreply.github.com>

* Initialise v1.7.4 release

* Avoid retrieving a worker which is being removed by the idle worker clean-up process (#3725)

* prevent returning stopping workers

* clear only the specific worker

* Add ibc-go v8 to integration tests (#3694)

* Add simapp v8 to CI jobs

* Add simapp v8 to nix flake

* Handle CLI breaking changes of Cosmos SDK v0.50 in test bootstrap

* Handle genesis config 'voting_perdiod' and CLI 'query txs' changes for Cosmos SDK v0.50.1

* Use 'MsgSubmitProposal' instead of deprecated 'UpgradeProposal' to initiate a chain upgrade

* Update 'tx upgrade-chain' CLI template

* Fix 'tx chain-upgrade' tests

* Update chain upgrade for compatibility between different ibc-go versions

* Improve assertion for client upgrade tests

* Update ibc-proto-rs to v0.39.0

* Add changelog entry

* Fix and improve guide section for client upgrade

* Wait before querying client state for client upgrade tests

* Apply suggestions from code review

Co-authored-by: Romain Ruetschi <romain@informal.systems>
Signed-off-by: Luca Joss <43531661+ljoss17@users.noreply.github.com>

* Rename method 'ibc_version()' to 'version_specs'

* Extract the verification of legacy version in a method

* Implement 'FromStr' instead of 'TryFrom<String>' for 'ProposalStatus'

* Fix cargo-doc warning

* Add changelog entry for CLI

* Change the '--gov-account' flag as optional but will fail if trying to upgrade a chain with ibc-go v8+

* Update guide

* Move and update changelog entry for CLI

* Return a 'Specs' struct in 'version_specs()' method

* Fix clippy errors

---------

Signed-off-by: Luca Joss <43531661+ljoss17@users.noreply.github.com>
Co-authored-by: Romain Ruetschi <romain@informal.systems>

* Update Gaia used in tests from v12 to v13 & v14 (#3700)

* Update Gaia v12 to v13 and v14 in tests

* Fix Celestia CI job

* Replace Gaia v12 with v13 and v14 in multi-chain tests (#3701)

* Add changelog entry

---------

Signed-off-by: Luca Joss <43531661+ljoss17@users.noreply.github.com>
Co-authored-by: beer-1 <147697694+beer-1@users.noreply.github.com>
Co-authored-by: Romain Ruetschi <romain@informal.systems>

* Add PR 3703 to patch release

* Improve `backlog` metrics (#3722)

* Update backlog metric when packet clearing is triggered

* Fix update backlog and add unit tests

* Uncomment conditional compilation from telemetry tests

* Add changelog entry

* Update guide section regarding 'backlog_*' metrics

* Correctly update the backlog when querying commitments on chain

* Update backlog_oldest_timestamp to backlog_latest_update_timestamp

* Update changelog entry

* Fix bug in backlog update

* Guard tests module by test cfg

Signed-off-by: Romain Ruetschi <github@romac.me>

* Update from GitHub suggestions

---------

Signed-off-by: Romain Ruetschi <github@romac.me>
Co-authored-by: Romain Ruetschi <romain@informal.systems>

* Update changelog

* Update release summary

---------

Signed-off-by: Romain Ruetschi <romain@informal.systems>
Signed-off-by: Luca Joss <43531661+ljoss17@users.noreply.github.com>
Co-authored-by: Romain Ruetschi <romain@informal.systems>
Co-authored-by: beer-1 <147697694+beer-1@users.noreply.github.com>
ljoss17 added a commit that referenced this pull request Dec 20, 2023
* Improve `broadcast_errors` metric (#3719)

* Use short description for 'broadcast_errors' metric

* Add changelog entry

* Fix hyperlink in doc comment

Signed-off-by: Romain Ruetschi <github@romac.me>

* Fix hyperlink in doc comment

---------

Signed-off-by: Romain Ruetschi <romain@informal.systems>
Co-authored-by: Romain Ruetschi <romain@informal.systems>

* Fetch the light block at trusted_height + 1 when detecting misbehavior (#3727)

* fetch the light block at trusted_height+1 when detecting misbehaviour

* Add changelog entry

* Fix typo

---------

Co-authored-by: beer-1 <147697694+beer-1@users.noreply.github.com>

* Initialise v1.7.4 release

* Avoid retrieving a worker which is being removed by the idle worker clean-up process (#3725)

* prevent returning stopping workers

* clear only the specific worker

* Add ibc-go v8 to integration tests (#3694)

* Add simapp v8 to CI jobs

* Add simapp v8 to nix flake

* Handle CLI breaking changes of Cosmos SDK v0.50 in test bootstrap

* Handle genesis config 'voting_perdiod' and CLI 'query txs' changes for Cosmos SDK v0.50.1

* Use 'MsgSubmitProposal' instead of deprecated 'UpgradeProposal' to initiate a chain upgrade

* Update 'tx upgrade-chain' CLI template

* Fix 'tx chain-upgrade' tests

* Update chain upgrade for compatibility between different ibc-go versions

* Improve assertion for client upgrade tests

* Update ibc-proto-rs to v0.39.0

* Add changelog entry

* Fix and improve guide section for client upgrade

* Wait before querying client state for client upgrade tests

* Apply suggestions from code review

Co-authored-by: Romain Ruetschi <romain@informal.systems>
Signed-off-by: Luca Joss <43531661+ljoss17@users.noreply.github.com>

* Rename method 'ibc_version()' to 'version_specs'

* Extract the verification of legacy version in a method

* Implement 'FromStr' instead of 'TryFrom<String>' for 'ProposalStatus'

* Fix cargo-doc warning

* Add changelog entry for CLI

* Change the '--gov-account' flag as optional but will fail if trying to upgrade a chain with ibc-go v8+

* Update guide

* Move and update changelog entry for CLI

* Return a 'Specs' struct in 'version_specs()' method

* Fix clippy errors

---------

Signed-off-by: Luca Joss <43531661+ljoss17@users.noreply.github.com>
Co-authored-by: Romain Ruetschi <romain@informal.systems>

* Update Gaia used in tests from v12 to v13 & v14 (#3700)

* Update Gaia v12 to v13 and v14 in tests

* Fix Celestia CI job

* Replace Gaia v12 with v13 and v14 in multi-chain tests (#3701)

* Add changelog entry

---------

Signed-off-by: Luca Joss <43531661+ljoss17@users.noreply.github.com>
Co-authored-by: beer-1 <147697694+beer-1@users.noreply.github.com>
Co-authored-by: Romain Ruetschi <romain@informal.systems>

* Add PR 3703 to patch release

* Improve `backlog` metrics (#3722)

* Update backlog metric when packet clearing is triggered

* Fix update backlog and add unit tests

* Uncomment conditional compilation from telemetry tests

* Add changelog entry

* Update guide section regarding 'backlog_*' metrics

* Correctly update the backlog when querying commitments on chain

* Update backlog_oldest_timestamp to backlog_latest_update_timestamp

* Update changelog entry

* Fix bug in backlog update

* Guard tests module by test cfg

Signed-off-by: Romain Ruetschi <github@romac.me>

* Update from GitHub suggestions

---------

Signed-off-by: Romain Ruetschi <github@romac.me>
Co-authored-by: Romain Ruetschi <romain@informal.systems>

* Update changelog

* Update release summary

---------

Signed-off-by: Romain Ruetschi <romain@informal.systems>
Signed-off-by: Luca Joss <43531661+ljoss17@users.noreply.github.com>
Co-authored-by: Romain Ruetschi <romain@informal.systems>
Co-authored-by: beer-1 <147697694+beer-1@users.noreply.github.com>
ljoss17 added a commit that referenced this pull request Dec 20, 2023
* Release Hermes v1.7.4 (#3729)

* Improve `broadcast_errors` metric (#3719)

* Use short description for 'broadcast_errors' metric

* Add changelog entry

* Fix hyperlink in doc comment

Signed-off-by: Romain Ruetschi <github@romac.me>

* Fix hyperlink in doc comment

---------

Signed-off-by: Romain Ruetschi <romain@informal.systems>
Co-authored-by: Romain Ruetschi <romain@informal.systems>

* Fetch the light block at trusted_height + 1 when detecting misbehavior (#3727)

* fetch the light block at trusted_height+1 when detecting misbehaviour

* Add changelog entry

* Fix typo

---------

Co-authored-by: beer-1 <147697694+beer-1@users.noreply.github.com>

* Initialise v1.7.4 release

* Avoid retrieving a worker which is being removed by the idle worker clean-up process (#3725)

* prevent returning stopping workers

* clear only the specific worker

* Add ibc-go v8 to integration tests (#3694)

* Add simapp v8 to CI jobs

* Add simapp v8 to nix flake

* Handle CLI breaking changes of Cosmos SDK v0.50 in test bootstrap

* Handle genesis config 'voting_perdiod' and CLI 'query txs' changes for Cosmos SDK v0.50.1

* Use 'MsgSubmitProposal' instead of deprecated 'UpgradeProposal' to initiate a chain upgrade

* Update 'tx upgrade-chain' CLI template

* Fix 'tx chain-upgrade' tests

* Update chain upgrade for compatibility between different ibc-go versions

* Improve assertion for client upgrade tests

* Update ibc-proto-rs to v0.39.0

* Add changelog entry

* Fix and improve guide section for client upgrade

* Wait before querying client state for client upgrade tests

* Apply suggestions from code review

Co-authored-by: Romain Ruetschi <romain@informal.systems>
Signed-off-by: Luca Joss <43531661+ljoss17@users.noreply.github.com>

* Rename method 'ibc_version()' to 'version_specs'

* Extract the verification of legacy version in a method

* Implement 'FromStr' instead of 'TryFrom<String>' for 'ProposalStatus'

* Fix cargo-doc warning

* Add changelog entry for CLI

* Change the '--gov-account' flag as optional but will fail if trying to upgrade a chain with ibc-go v8+

* Update guide

* Move and update changelog entry for CLI

* Return a 'Specs' struct in 'version_specs()' method

* Fix clippy errors

---------

Signed-off-by: Luca Joss <43531661+ljoss17@users.noreply.github.com>
Co-authored-by: Romain Ruetschi <romain@informal.systems>

* Update Gaia used in tests from v12 to v13 & v14 (#3700)

* Update Gaia v12 to v13 and v14 in tests

* Fix Celestia CI job

* Replace Gaia v12 with v13 and v14 in multi-chain tests (#3701)

* Add changelog entry

---------

Signed-off-by: Luca Joss <43531661+ljoss17@users.noreply.github.com>
Co-authored-by: beer-1 <147697694+beer-1@users.noreply.github.com>
Co-authored-by: Romain Ruetschi <romain@informal.systems>

* Add PR 3703 to patch release

* Improve `backlog` metrics (#3722)

* Update backlog metric when packet clearing is triggered

* Fix update backlog and add unit tests

* Uncomment conditional compilation from telemetry tests

* Add changelog entry

* Update guide section regarding 'backlog_*' metrics

* Correctly update the backlog when querying commitments on chain

* Update backlog_oldest_timestamp to backlog_latest_update_timestamp

* Update changelog entry

* Fix bug in backlog update

* Guard tests module by test cfg

Signed-off-by: Romain Ruetschi <github@romac.me>

* Update from GitHub suggestions

---------

Signed-off-by: Romain Ruetschi <github@romac.me>
Co-authored-by: Romain Ruetschi <romain@informal.systems>

* Update changelog

* Update release summary

---------

Signed-off-by: Romain Ruetschi <romain@informal.systems>
Signed-off-by: Luca Joss <43531661+ljoss17@users.noreply.github.com>
Co-authored-by: Romain Ruetschi <romain@informal.systems>
Co-authored-by: beer-1 <147697694+beer-1@users.noreply.github.com>

* Fix changelog

---------

Signed-off-by: Romain Ruetschi <romain@informal.systems>
Signed-off-by: Luca Joss <43531661+ljoss17@users.noreply.github.com>
Co-authored-by: Romain Ruetschi <romain@informal.systems>
Co-authored-by: beer-1 <147697694+beer-1@users.noreply.github.com>
ljoss17 added a commit that referenced this pull request Jan 23, 2024
* Fix README badge (#3675)

* Fix a bug in `query_next_sequence_receive`, where if we didnt ask for a proof, then the query height was ignored (#3662)

* Enable serde feature of ibc-proto (#3678)

* Update misbehaviour-ics tests (#3681)

* Update light_client_attack_freeze_test.sh

Update script to work with ICS `feat/ics-misbehaviour-handling` branch binary at `28e0c14b`.


Signed-off-by: Simon Noetzlin <simon.ntz@gmail.com>

* Update nix flake and remaining misbehaviour tests

* Fix env variable increment

* Use Cosmos Nix 'master' branch

---------

Signed-off-by: Simon Noetzlin <simon.ntz@gmail.com>
Co-authored-by: Luca Joss <luca@informal.systems>

* Bump version to v1.7.1

* Do not perform client update if consensus state already exists (#3555)

* Do not perform client update if consensus state already exists

On some chains there are a few active channels using the same connection
and therefore clients. This PR adds a check in the client update code and
not create the message if the consensus state at desired height is already present.
This helps with reducing relayer fees, state bloating, etc by eliminating redundant updates.

* Improve error message in `update client` command

* Add changelog entry for #3521

* Fix guide config files and balance outputs (#3690)

* Add per chain `clear_interval` configuration (#3693)

* Add per chain clear_interval configuration

* Add changelog entry

* Add guide entry for packet clearing

* Reword config comment

Signed-off-by: Romain Ruetschi <github@romac.me>

---------

Signed-off-by: Romain Ruetschi <github@romac.me>
Co-authored-by: Romain Ruetschi <romain@informal.systems>

* Add CompatMode configuration (#3667)

* Update test bootstrap to work with Celestia chain

* Update Nix flake and add Celestia CI job

* Add changelog entry

* Add guide section for 'compat_mode' configuration

* Apply suggestions from code review

Co-authored-by: Romain Ruetschi <romain@informal.systems>
Signed-off-by: Luca Joss <43531661+ljoss17@users.noreply.github.com>

* Implement serialization and deserialization for CompatMode

* Update crates/relayer/src/util/compat_mode.rs

Co-authored-by: Romain Ruetschi <romain@informal.systems>
Signed-off-by: Luca Joss <43531661+ljoss17@users.noreply.github.com>

---------

Signed-off-by: Luca Joss <43531661+ljoss17@users.noreply.github.com>
Co-authored-by: Romain Ruetschi <romain@informal.systems>

* docs: fix typos (#3687)

* docs: fix typos

* test: fix error because of typo

* Fix misbehaviour test

---------

Co-authored-by: Luca Joss <luca@informal.systems>
Co-authored-by: Luca Joss <43531661+ljoss17@users.noreply.github.com>

* Update changelog

* Apply suggestions from code review

Co-authored-by: Luca Joss <43531661+ljoss17@users.noreply.github.com>
Signed-off-by: Romain Ruetschi <github@romac.me>

* Release Hermes v1.7.2 (#3709)

* Add metric to count skipped client update messages (#3706)

* Add metric to count skipped client update messages

* Update guide with new metric

* Add changelog entry

* Update versions

* Fix cargo doc warnings and update version reference in relayer crate

* Fix clippy error

* Fix relayer-rest test

* Fix typo in changelog

* Add `broadcast_errors` metric (#3710)

* Add metric for broadcast errors

* Update the guide with the new broadcast error metric

* Add changelog entry

* Update release date

* Update changelog and summary message

* Apply github suggestion and add missing entry in Changelog

* Release Hermes v1.7.3 (#3715)

* evidence: More reliable evidence reporting + couple of bug fixes (#3702)

* evidence: Only fetch counterparty clients of chains present in the config

* Harden the evidence reporting code in the face of runtime errors

* Fix bug where the counterparty client id returned was actually the original client id

* Bump version to v1.7.3

* Release changelog

* Release Hermes v1.7.4 (#3729)

* Improve `broadcast_errors` metric (#3719)

* Use short description for 'broadcast_errors' metric

* Add changelog entry

* Fix hyperlink in doc comment

Signed-off-by: Romain Ruetschi <github@romac.me>

* Fix hyperlink in doc comment

---------

Signed-off-by: Romain Ruetschi <romain@informal.systems>
Co-authored-by: Romain Ruetschi <romain@informal.systems>

* Fetch the light block at trusted_height + 1 when detecting misbehavior (#3727)

* fetch the light block at trusted_height+1 when detecting misbehaviour

* Add changelog entry

* Fix typo

---------

Co-authored-by: beer-1 <147697694+beer-1@users.noreply.github.com>

* Initialise v1.7.4 release

* Avoid retrieving a worker which is being removed by the idle worker clean-up process (#3725)

* prevent returning stopping workers

* clear only the specific worker

* Add ibc-go v8 to integration tests (#3694)

* Add simapp v8 to CI jobs

* Add simapp v8 to nix flake

* Handle CLI breaking changes of Cosmos SDK v0.50 in test bootstrap

* Handle genesis config 'voting_perdiod' and CLI 'query txs' changes for Cosmos SDK v0.50.1

* Use 'MsgSubmitProposal' instead of deprecated 'UpgradeProposal' to initiate a chain upgrade

* Update 'tx upgrade-chain' CLI template

* Fix 'tx chain-upgrade' tests

* Update chain upgrade for compatibility between different ibc-go versions

* Improve assertion for client upgrade tests

* Update ibc-proto-rs to v0.39.0

* Add changelog entry

* Fix and improve guide section for client upgrade

* Wait before querying client state for client upgrade tests

* Apply suggestions from code review

Co-authored-by: Romain Ruetschi <romain@informal.systems>
Signed-off-by: Luca Joss <43531661+ljoss17@users.noreply.github.com>

* Rename method 'ibc_version()' to 'version_specs'

* Extract the verification of legacy version in a method

* Implement 'FromStr' instead of 'TryFrom<String>' for 'ProposalStatus'

* Fix cargo-doc warning

* Add changelog entry for CLI

* Change the '--gov-account' flag as optional but will fail if trying to upgrade a chain with ibc-go v8+

* Update guide

* Move and update changelog entry for CLI

* Return a 'Specs' struct in 'version_specs()' method

* Fix clippy errors

---------

Signed-off-by: Luca Joss <43531661+ljoss17@users.noreply.github.com>
Co-authored-by: Romain Ruetschi <romain@informal.systems>

* Update Gaia used in tests from v12 to v13 & v14 (#3700)

* Update Gaia v12 to v13 and v14 in tests

* Fix Celestia CI job

* Replace Gaia v12 with v13 and v14 in multi-chain tests (#3701)

* Add changelog entry

---------

Signed-off-by: Luca Joss <43531661+ljoss17@users.noreply.github.com>
Co-authored-by: beer-1 <147697694+beer-1@users.noreply.github.com>
Co-authored-by: Romain Ruetschi <romain@informal.systems>

* Add PR 3703 to patch release

* Improve `backlog` metrics (#3722)

* Update backlog metric when packet clearing is triggered

* Fix update backlog and add unit tests

* Uncomment conditional compilation from telemetry tests

* Add changelog entry

* Update guide section regarding 'backlog_*' metrics

* Correctly update the backlog when querying commitments on chain

* Update backlog_oldest_timestamp to backlog_latest_update_timestamp

* Update changelog entry

* Fix bug in backlog update

* Guard tests module by test cfg

Signed-off-by: Romain Ruetschi <github@romac.me>

* Update from GitHub suggestions

---------

Signed-off-by: Romain Ruetschi <github@romac.me>
Co-authored-by: Romain Ruetschi <romain@informal.systems>

* Update changelog

* Update release summary

---------

Signed-off-by: Romain Ruetschi <romain@informal.systems>
Signed-off-by: Luca Joss <43531661+ljoss17@users.noreply.github.com>
Co-authored-by: Romain Ruetschi <romain@informal.systems>
Co-authored-by: beer-1 <147697694+beer-1@users.noreply.github.com>

* Fix changelog

* add query for eip value

* add lcd as optional field

* initial integration

* using dynamic

* dynamic pricing

* added better logs

* use block_on

* remove lcd

* Add DynamicGas configuration

* Add test for dynamic gas configuration

* Fix dynamic gas price computation

* Remove test related changes

* Remove dynamic gas test

* Change dynamic_gas_price to dynamic_gas configuration name

* Correctly deserialize DynamicGas config

* Fix formatting following merge

* dynamic gas price: Add integration test (#3788)

* Dynamic gas fee test

* Add dynamic gas fee test to CI

* Fix issue with nested calls to `block_on` (#3789)

* Fix test for dynamic gas price

---------

Co-authored-by: Luca Joss <luca@informal.systems>

* Avoid depending on `cosmwasm-std` and `osmosis-std`

* Cleanup

* Use rustls instead of openssl with reqwest

* Use same feature flag as tendermint-rpc for reqwest

* Cleanup feature flag for reqwest dep in chain-registry

* Undo changes to Cargo.lock

* Add dynamic gas fees metrics (#3798)

* Add simple metric for dynamic gas price after multiplication

* Add max gas price configuration to dynamic gas configuration

* Apply dynamic max gas configuration

* Add 2 new metrics for dynamic gas fees

* Add guide entry for Dynamic gas configuration and metrics

* Fix EIP query parsing

* Use chain id instead of RPC address in emitted metrics

---------

Co-authored-by: Romain Ruetschi <106849+romac@users.noreply.github.com>

* Add changelog entry

* Reword changelog entry

* Remove lower bound on max dynamic gas price

* Small refactor

* Fix unused variable warning

* Simplify deserialization code

* Fix wrong error message

* Fixup changelog entry

* Add example to the config

* Fix integration test framework

* Fix typo in config file

* Apply suggestions from code review

Co-authored-by: Luca Joss <43531661+ljoss17@users.noreply.github.com>
Signed-off-by: Romain Ruetschi <github@romac.me>

* Use dynamic gas for Osmosis in auto-generated config

* Small improvement to `config auto` command output and usage

* Fix typo

Co-authored-by: Luca Joss <43531661+ljoss17@users.noreply.github.com>
Signed-off-by: Romain Ruetschi <github@romac.me>

* Update guide template

* Fix guide

* Rename configuration 'dynamic_gas' to 'dynamic_gas_price'

* Rename 'dynamic_gas_price' subconfigurations 'max_gas_price' to 'max' and 'gas_price_multiplier' to 'multiplier'

---------

Signed-off-by: Simon Noetzlin <simon.ntz@gmail.com>
Signed-off-by: Romain Ruetschi <github@romac.me>
Signed-off-by: Luca Joss <43531661+ljoss17@users.noreply.github.com>
Signed-off-by: Romain Ruetschi <romain@informal.systems>
Co-authored-by: Romain Ruetschi <romain@informal.systems>
Co-authored-by: Simon Noetzlin <simon.ntz@gmail.com>
Co-authored-by: GoodDaisy <90915921+GoodDaisy@users.noreply.github.com>
Co-authored-by: beer-1 <147697694+beer-1@users.noreply.github.com>
Co-authored-by: Adam Tucker <adamleetucker@outlook.com>
Co-authored-by: Nicolas Lara <nicolaslara@gmail.com>
Co-authored-by: Romain Ruetschi <106849+romac@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI: multi-chains CI: Run the `multi-chains` integration test job on this PR
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Handle new message MsgIBCSoftwareUpgrade
2 participants