Async channel version negotiation? #4272
michaelfig
started this conversation in
Ideas
Replies: 2 comments 7 replies
-
@AdityaSripal, @colin-axner I'd appreciate your opinions on this. |
Beta Was this translation helpful? Give feedback.
3 replies
-
@crodriguezvega, the spec change is merged in cosmos/ibc#1019. Would it be possible to schedule the |
Beta Was this translation helpful? Give feedback.
4 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Hi,
I'm asking here to gather ideas around how to enable channel version negotiation to be performed asynchronously.
In ibc-go v7.2.0's
ibc-go/modules/core-keeper/msg_server.go
's ChannelOpenTry function has the following synchronous calls to determine the version and return it to the submitter:For the Agoric chain, it is desirable to have the version negotiation initiated by
cbs.OnChanOpenTry
serviced by an async (possibly across several blocks) JS smart contract call, finally resulting in a separatek.ChannelKeeper.WriteOpenTryChannel
. In the absence of this feature, I have to (hackishly) just assume that themsg.CounterpartyVersion
is acceptable, return it to the tx submitter, and crash later if the JS contract would have negotiated something different.Is there a way to make this part of the handshake implementable async, similar to how the
k.ChannelKeeper.WriteAcknowledgement
can be done in a later block than when the RecvPacket transaction is handled?I don't have a clear suggestion for how to accomplish this without a relayer-breaking change.
Thanks for any advice you can offer!
Beta Was this translation helpful? Give feedback.
All reactions