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: Replace "Initiator" w/ "Caller" and “Trigger Event” #672

Closed
mpoke opened this issue Mar 3, 2022 · 0 comments
Closed

ICS28: Replace "Initiator" w/ "Caller" and “Trigger Event” #672

mpoke opened this issue Mar 3, 2022 · 0 comments
Assignees
Labels
app Application layer. formalization Formalizing things so that they are not wrong.

Comments

@mpoke
Copy link
Contributor

mpoke commented Mar 3, 2022

In the technical specification of CCV (see https://github.com/cosmos/ibc/blob/marius/ccv/spec/app/ics-028-cross-chain-validation/technical_specification.md), the subprotocols are specified by describing every method. This entails the pseudocode followed by the following fields:

  • Initiator
  • Expected precondition
  • Expected postcondition
  • Error condition

To remove ambiguity, these fields should be restructured, i.e.,

  • Caller The entity invoking the method (e.g., another ABCI module). This is useful to keep track of the interfaces with other modules.
  • Trigger Event The event triggering the call to this method (e.g., a message is received). This is useful to reason about the overall logic of the protocol.
  • Precondition The internal state that enables the call of this method, i.e., so called "guards" in TLA+.
  • Postcondition The modifications to the internal state as a result of executing this method. This should also include abortTransactionUnless calls (i.e., reverting a transaction).
  • Error Condition The errors triggered as a result of executing this method. This consists of abortSystemUnless calls.
@mpoke mpoke self-assigned this Mar 3, 2022
@mpoke mpoke added app Application layer. formalization Formalizing things so that they are not wrong. labels Mar 9, 2022
@mpoke mpoke closed this as completed Apr 4, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
app Application layer. formalization Formalizing things so that they are not wrong.
Projects
Status: Backlog
Development

No branches or pull requests

1 participant