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

Upgrade to IBC-go v2 #1582

Merged
merged 34 commits into from
Dec 14, 2021
Merged

Upgrade to IBC-go v2 #1582

merged 34 commits into from
Dec 14, 2021

Conversation

adizere
Copy link
Member

@adizere adizere commented Nov 22, 2021

Closes #1410

Description

IBC-go V2 is already live on some networks.
Hub-4 plans to upgrade to ibc-go v2 on December 13th: gov proposal draft is here: https://hackmd.io/@okwme/vega-upgrade

  • Other variant should be ChanOpenTry (we don't do anything in any other case..)
  • enable (true) for gaia tests with v6.0.0 to catch the error

For contributor use:

  • Added a changelog entry, using unclog.
  • If applicable: Unit tests written, added test to CI.
  • Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
  • Updated relevant documentation (docs/) and code comments.
  • Re-reviewed Files changed in the Github PR explorer.

@adizere adizere marked this pull request as ready for review November 24, 2021 14:58
relayer/src/channel.rs Outdated Show resolved Hide resolved
relayer/src/channel.rs Outdated Show resolved Hide resolved
relayer/src/chain/handle.rs Outdated Show resolved Hide resolved
@damiannolan
Copy link

damiannolan commented Dec 7, 2021

Thank you for the quick updates to this branch, very much appreciated! ❤️ With the latest changes, the handshake flow for interchain-accounts is working pretty seemlessly, and have had success with account registration!

I am still trying to debug some issues wrt. executing an interchain-accounts tx. I am seeing the following error in hermes logs upon packet recv: account sequence mismatch, expected 7 got 6: incorrect account sequence.

I had experienced this before and it was a case that the validator address had been used for the relayer wallet. However, in this case I've set it up such that there is separate wallets being used. Will continue with this tomorrow!
Thanks once again for this 🙌

Edit: A brief update on this: after restarting hermes the packet is received on chain B and executes the interchain-accounts tx successfully.

Edit 2: I spent this morning refactoring the scripts in the interchain-accounts auth module repo. I created a number of extra accounts so that I could keep all tx execution wrt. to intertx and ica completely separate from validator accs and relayer wallets. Had great success with this and it resolved the account sequence mismatch error I was experiencing. Account registration via the handshake flow and tx execution is now working nicely :)

relayer/src/channel.rs Outdated Show resolved Hide resolved
@adizere adizere requested a review from romac December 14, 2021 10:50
@damiannolan
Copy link

Ack: When tested with the changes in ibc-go #624 channel workers are now picking up events emitted from ICS-27 handshake initiation and correctly finishing them!

Looks good 🙌 LGTM when you are happy with it :)

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.

🚀

@@ -300,8 +300,8 @@ impl From<Counterparty> for RawCounterparty {
#[derive(Clone, Copy, Debug, PartialEq, Eq, Deserialize, Serialize)]
pub enum Order {
None = 0,
Unordered,
Ordered,
Unordered = 1,
Copy link
Member Author

Choose a reason for hiding this comment

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

😍

@adizere adizere merged commit 276b46b into master Dec 14, 2021
@adizere adizere deleted the adi/ibcgo_v2 branch December 14, 2021 14:50
hu55a1n1 pushed a commit to hu55a1n1/hermes that referenced this pull request Sep 13, 2022
* Proto generation result aligned w/ ibc-go v2

* Registered port.v1.rs as a proto file. Initial sketch for calling QueryAppVersionRequest in cosmos.rs

* Cleanup ICS04 version. Add separate versions in channel.rs

* Using ics04::Version; module_version -> app_version

* add version resolve() method

* query_app_version with a Grpc request

* Separate version for each ChannelSide

* Version domain type in the ibc module

* Clippy problems re: Version newtype

* First iteration of a solution to negotiate versions. Big TODO left

* Refactor dst_app_version into the version mod

* Bump ibc compat to v2

* Fixed proposed version

* More disciplined logs

* Debugging tx raw chan open try

* fmt

* Formatting

* Remove redundant imports

* Formatting

* Fixes cf. Romain's review.

* Only resolve version for init and try, remove from validated_expected_channel (called for ack and confirm) as version validation is not done here

* Introduce Version::empty()

* Attempt to catch gaia E2E errors w/ continue-on-error: false

* More accurate naming: Other -> ChanOpenTry variant

* Avoid fetching the default channel by port when there a source channel is already specified

* Introduced  domain-type request

* changelog

* Use explicit i32 values for the `Order` enum

Co-authored-by: Romain Ruetschi <romain@informal.systems>
Co-authored-by: Anca Zamfir <zamfiranca@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Support dynamic version strings in ChanOpen handshake [ibc-go v2]
4 participants