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

ICS28: Remove CCV channel state #668

Closed
mpoke opened this issue Mar 3, 2022 · 1 comment
Closed

ICS28: Remove CCV channel state #668

mpoke opened this issue Mar 3, 2022 · 1 comment
Assignees
Labels
app Application layer.

Comments

@mpoke
Copy link
Contributor

mpoke commented Mar 3, 2022

There is not need to keep extra state for the CCV channel, i.e., ChannelStatus.

On the provider chain, the CCV channel is set to

  • INITIALIZING in onChanOpenTry; we can use TRYOPEN from ICS4
  • VALIDATING in onChanOpenConfirm; we can use OPEN from ICS4; plus, the channel is added to the chainToChannel map
  • INVALID is never used

On the consumer chain, the CCV channel is set to

  • INITIALIZING in onChanOpenInit; we can use INIT from ICS4
  • VALIDATING when receiving the first VSCPacket (see onRecvVSCPacket); at the same time though, providerChannel is also set, so we can use that instead
  • INVALID is never used
@mpoke mpoke self-assigned this Mar 3, 2022
@mpoke
Copy link
Contributor Author

mpoke commented Mar 3, 2022

Furthermore, if a packet sent by the consumer CCV module after onChanOpenAck cannot arrive at the provider CCV module before onChanOpenConfirm, then the consumer CCV module should set providerChannel in onChanOpenAck. The only reason providerChannel is set when receiving the first VSCPacket is to make sure the CCV channel endpoint on the provider is also OPEN.

@AdityaSripal

  • Do we want to disable User TXs on the consumer chain until the CCV channel endpoint on the provider is OPEN? Or is it sufficient to wait for the CCV channel endpoint on the consumer to be OPEN?
  • Can a packet sent after OpenChanAck be relayed before OpenChanConfirm?

@mpoke mpoke added app Application layer. formalization Formalizing things so that they are not wrong. and removed formalization Formalizing things so that they are not wrong. labels Mar 9, 2022
@mpoke mpoke closed this as completed Mar 23, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
app Application layer.
Projects
Status: Backlog
Development

No branches or pull requests

1 participant