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

ICS 14: IBC consensus state upgrade protocol #11

Closed
cwgoes opened this issue Feb 11, 2019 · 6 comments
Closed

ICS 14: IBC consensus state upgrade protocol #11

cwgoes opened this issue Feb 11, 2019 · 6 comments
Assignees
Labels
tao Transport, authentication, & ordering layer.

Comments

@cwgoes
Copy link
Contributor

cwgoes commented Feb 11, 2019

Will cover:

  • Protocol for altering IBC root-of-trust (can be enabled as an option in the negotiation handshake)
@cwgoes cwgoes added tao Transport, authentication, & ordering layer. stage-strawman labels Feb 11, 2019
@cwgoes cwgoes self-assigned this Mar 5, 2019
@cwgoes cwgoes changed the title ICS ?: IBC root-of-trust upgrade protocol ICS 14: IBC root-of-trust upgrade protocol Mar 5, 2019
@cwgoes
Copy link
Contributor Author

cwgoes commented Mar 19, 2019

Datagram formats that need to be defined here:

  • CONNROTUPGRADE
  • CONNROTUPGRADEACK

(do we need a three-way?)

@ebuchman
Copy link
Member

How is this distinct from the regular lite client update operation?

@cwgoes
Copy link
Contributor Author

cwgoes commented Mar 26, 2019

This was proposed by @zmanian - it would be a secondary way to update a root-of-trust in case of an irregular chain upgrade (which might change the chain ID) or a fork (so the 2/3 signature requirement could be relaxed gradually after some time period had passed).

@cwgoes cwgoes changed the title ICS 14: IBC root-of-trust upgrade protocol ICS 14: IBC consensus state upgrade protocol May 15, 2019
@cwgoes
Copy link
Contributor Author

cwgoes commented Jun 8, 2019

I am not sure if this needs to be designed separately from the flexible light client validity predicate already included in ICS 2.

@zmanian Do you envision governance involvement for "approving" a consensus state upgrade? In that case this should be specified separately. If it's just a special operation on the originating chain (which can be signed over), the light client validity predicate can incorporate it.

@cwgoes cwgoes assigned zmanian and unassigned cwgoes Jun 8, 2019
@zmanian
Copy link
Member

zmanian commented Jun 11, 2019

So I guess there are two schools of thought here.

  1. Signaling of an irregular state upgrade should occur in the tendermint header.

  2. The Signaling of an irregular state upgrade should be it's own datatype signed by a quorum of validators.

I am very much in favor of the 2nd approach but I've heard that others have a preference for the 1st one.

I think the 2nd mechanism is the most general and will work well of instance in cases where the chain has halted. Essentially the validators can just have a mechanism for signing this packet

If we go with the second mechanism, the ValidityPredicate needs to be able handle a message of the irregular update and then it causes the next consensus state to be zero. All the connection and channel information needs to be persisted across the the irregular update.

@cwgoes
Copy link
Contributor Author

cwgoes commented Aug 17, 2019

The validity predicate in ICS 2 has become sufficiently general that it encapsulates this.

@cwgoes cwgoes closed this as completed Aug 17, 2019
en pushed a commit to en/ics that referenced this issue Dec 14, 2019
* Translate 5_IBC_DESIGN_PATTERNS.md via GitLocalize

* Translate 5_IBC_DESIGN_PATTERNS.md via GitLocalize
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
tao Transport, authentication, & ordering layer.
Projects
Status: Backlog
Development

No branches or pull requests

3 participants