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

feat!: ICS v5 (IBC v8) #1088

Merged
merged 17 commits into from
May 6, 2024
Merged

feat!: ICS v5 (IBC v8) #1088

merged 17 commits into from
May 6, 2024

Conversation

Reecepbcups
Copy link
Member

@Reecepbcups Reecepbcups commented Apr 23, 2024

closes #1041

also pulls in #1093 changes as it fixed some ICS v5 running <v4 stuff :D

Copy link

vercel bot commented Apr 23, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

1 Ignored Deployment
Name Status Preview Comments Updated (UTC)
interchaintest-docs ⬜️ Ignored (Inspect) Visit Preview May 6, 2024 5:44pm

@Reecepbcups Reecepbcups marked this pull request as ready for review April 25, 2024 02:03
@Reecepbcups Reecepbcups requested a review from a team as a code owner April 25, 2024 02:03
@Reecepbcups Reecepbcups requested a review from misko9 April 25, 2024 02:03
@Reecepbcups Reecepbcups enabled auto-merge (squash) April 25, 2024 13:39
@Reecepbcups Reecepbcups marked this pull request as draft May 1, 2024 18:35
auto-merge was automatically disabled May 1, 2024 18:35

Pull request was converted to draft

@Reecepbcups Reecepbcups marked this pull request as ready for review May 2, 2024 16:34
@Reecepbcups
Copy link
Member Author

Reecepbcups commented May 2, 2024

This above has been tested in spawn with a v5 consumer & provider and works w/ ghcr.io/strangelove-ventures/heighliner/ics:v5.0.0-provider-rc1 & v5.0.0-rc0 consumer too.

(uses custom app vs upstream since the upstream simapp was giving issues with rc0 wrt initial validator set being empty on start)

https://github.com/rollchains/spawn/blob/5024e298a8e8ca9474f07d6758b5ad56a627e46c/simapp/interchaintest/ics_test.go

@Reecepbcups Reecepbcups enabled auto-merge (squash) May 2, 2024 16:48
Copy link
Contributor

@jtieri jtieri left a comment

Choose a reason for hiding this comment

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

i had a handful of comments but nothing major. excited to finally land ICS support on main, great work!

LICENSE Outdated Show resolved Hide resolved
chain/cosmos/cosmos_chain.go Show resolved Hide resolved
chain/cosmos/cosmos_chain.go Show resolved Hide resolved
chain/cosmos/cosmos_chain.go Outdated Show resolved Hide resolved
chain/cosmos/cosmos_chain.go Show resolved Hide resolved
examples/ibc/ics_test.go Show resolved Hide resolved
examples/ibc/ics_test.go Show resolved Hide resolved

err = testutil.WaitForBlocks(ctx, 10, provider, consumer)
require.NoError(t, err, "failed to wait for blocks")
}
Copy link
Contributor

Choose a reason for hiding this comment

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

i recently noticed in older branches that just because both chains spin up doesn't necessarily mean that txs are working on the consumer chain. iirc when trying to do bank transfers we would see errors due to the consumer chain not receiving the first validator set update from the provider and i was struggling to figure out how to get this working.

do you think it's worthwhile to assert that some basic things work like a local bank transfer on the consumer and an ibc transfer from the provider -> consumer?

Copy link
Member Author

Choose a reason for hiding this comment

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

really good call, the v7 branch fails on these too for a failed to get funds from faucet: transaction failed with code 1: tx contains unsupported message types at height when trying to fund users accounts. Seems the provider channel is not instantiated properly in either versions. Will be diving into

Copy link
Contributor

Choose a reason for hiding this comment

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

i started to go down this rabbit hole awhile ago and what i came up with is that certain txs will not work on the consumer chain until the first validator set update has been received from the provider.

i eventually ran out of bandwidth to keep digging but essentially my issue was i couldn't figure out how to trigger the validator set updates over IBC. it wasn't clear to me if these updates happen on some epoch or if they are event based, i tried performing a bunch of delegations on the provider chain thinking that if the stake for active validators changed perhaps the CCV module would then send the validator set updates to the consumer but at least in v3 (i think is what i was testing against) this didn't seem to do anything.

Copy link
Member Author

Choose a reason for hiding this comment

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

im pretty sure a stake on the provider will trigger the event broadcast. Will mess around with it today

interchain.go Outdated Show resolved Hide resolved
local-interchain/interchain/start.go Outdated Show resolved Hide resolved
Copy link
Contributor

@jtieri jtieri left a comment

Choose a reason for hiding this comment

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

🚢 🚢

@Reecepbcups Reecepbcups merged commit 6682c8c into main May 6, 2024
19 checks passed
@Reecepbcups Reecepbcups deleted the reece/ics-ibc-v8 branch May 6, 2024 17:59
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.

feat: add interchain security (ICS) support to v8 branch
2 participants