-
Notifications
You must be signed in to change notification settings - Fork 351
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 SDK v0.43+ #948
Conversation
Did some testing using this branch between a gaia bin on v4.2.1 and the hub/cosmoshub-4.6 branch. Everything works great! I do get some "packet already received" errors when running The main downside is lost fees for retrying these transactions Edit: It works fine if I use gaiad to initiate the transfer. Must be related to |
This is not expected unless you had another relayer running in parallel. Could you give more detail of the setup? And the exact |
I setup an old/new gaia using the gaiad manager. Created channels and sent tokens using ts-relayer. Then stopped the ts-relayer (I'm fairly certain) Created channels using hermes, started hermes via start-multi. Sent using
got the above logs. Then sent using gaiad afterwards and it worked fine. I will try to reproduce again later today I realize that the transfer is being sent over |
I managed to reproduce. The problem scenario is when the ts-relayer is also running. Specifically:
Then hermes will actually beat the ts-relayer to the acknowledgement process but get stuck on trying to relay the packet Does hermes rely on the ibc-go error codes at all? We are planning on making the error numbers as apart of our API for versioning so we don't change them often and when we do it is well documented. We can turn the unordered channel packet already received into an error code so that hermes could stop retries. Would this help? |
Thanks @colin-axner ! We are working on better error filtering and definitely having the error code here will help. BTW, this also happens with two hermes relayers running. We haven't really started doing these types of tests heavily and understand the issues. But it's coming. |
opened a pr to update the error messages, also opened an issue on the spec repo Please checkout the ibc-go pr and see if there is anything missing that'd be useful. The only scenario I could think of not covered is already timed out packets on ordered channels. This is tricky since by construction only 1 packet can be timed out at the moment (since the channel closes). Since ICS20 doesn't use ordered channels, I'd prefer to wait to fix until more than 1 packet can be timed out |
Opened #984 to check if the event has been previously handled by another relayer. This should reduce the number of retries to one. I tested with two hermes instances and the |
Used 'merge master -X theirs' to favor master version. The problem was that there were numerous conflicts in the /proto crate, and wanted to avoid solving conflicts on a per-file basis. So I choose to favor master during the merge, and will re-generate the /proto files again.
…applications.transfer generated file
Update: Romain's tests reminded me that my statement above was wrong. Issue #1209 documents that we'll need an explicit Another thing is that we should update compatibility.rs to mark 0.43 as a compat. version. |
Running the following command using Hermes built from this branch and two v4.2.1 Gaia nodes setup via
|
The issue is likely that
UPDATE: This is already tracked in #1209 and will be addressed in a follow-up PR. |
I have tested this branch against all gaia versions v4.0.3 onwards, i.e. SDK version >=0.41.3. All E2E tests are passing. |
* Add legacy upgrade support * Fix check for legacy * Update .changelog * Add TODO * Apply suggestion Co-authored-by: Adi Seredinschi <[email protected]> Co-authored-by: Adi Seredinschi <[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.
Left a few ideas for improvements, none are blockers.
|
||
// TODO: These consts should move into the ICS27 namespace | ||
pub const ICS27_BANK_SEND_TYPE_URL: &str = "/cosmos.bank.v1beta1.MsgSend"; | ||
pub const ICS27_SEND_TYPE_URL: &str = "/intertx.MsgSend"; |
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.
FYI to share context: this is necessary for the Interchain Accounts module that @seantking is doing. Adding these lines is a temporary fix, so we'll need a permanent fix instead. Will open an issue for tracking that and detailing the problem.
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.
Later edit: these constants should be deleted with PR https://github.com/informalsystems/ibc-rs/pull/1172/files.
Also ran the E2E tests on some heterogeneous setups ->
All tests are passing. ✅ |
* Adapted proto compiler. Regenerated Rust files * Adapt to newer namespace for apps. * Manual fix for Staking erroneous compilation * Workaround: disabled chain upgrade * Added specific GRPC-web port to prevent conflict on 9091. * Upgrade protos * Add support for new message action strings * Improved output for one-chain script * CLI for chain upgrade proposal adapted to gaia v5. * Re-generated proto files with updated proto-compiler (fmt enabled). * Manual fix for staking::Validators erroneous compilation; added the .applications.transfer generated file * Quick feature for parametrizing upgraded chain * Clippy fix. Meta for params for better display. * Adapted query_upgraded_client_state * Adapted query_upgraded_consensus_state to ibc-go-v1 * Moved from gRPC to ABCI * Adapted send_tx_simulate to new def of SimulateRequest * Added parametrizable upgrade plan name * Fix unwraps. Retain unbonding period if none specified. * Missing post-merge bracket * Removed register and send match arms for rpc events * Support for new message.actions strings of ICS27 Based on discussion from cosmos/cosmos-sdk#9139 (comment) This is not yet tested! * Update protos sdk(v0.43.0-rc2) & ibc-go(v1.0.0-rc3) * Revert "Added specific GRPC-web port to prevent conflict on 9091." This reverts commit abf6dba. * Add missing fields in upgrade Plan * Fix clippy warnings * Added another action field to match intertx MsgSend * Update protos sdk(v0.43.0) & ibc-go(v1.0.0) * Update cosmos SDK module version requirement in compatibility.rs * Add legacy upgrade support (informalsystems#1289) * Add legacy upgrade support * Fix check for legacy * Update .changelog * Add TODO * Apply suggestion Co-authored-by: Adi Seredinschi <[email protected]> Co-authored-by: Adi Seredinschi <[email protected]> * Apply suggestions * Update .changelog * Fix .changelog entry Co-authored-by: Adi Seredinschi <[email protected]> Co-authored-by: Shoaib Ahmed <[email protected]>
Closes: #947
Closes: #918
Description
The proto files in this branch are currently aligned with:
For contributor use:
docs/
) and code comments.Files changed
in the Github PR explorer.