-
Notifications
You must be signed in to change notification settings - Fork 224
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
TLA+: Forking cases for tendermint #496
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The spec looks very nice! The only thing that is not clear to me is what is expected as a result from model checking. I see a lot of files with counterexample
in their name, and assume that we expect to see counterexamples. It would be nice if it this is explained in the README, as well as when submitting the pull request.
\* the type of message records | ||
MT == [type |-> STRING, src |-> STRING, round |-> Int, | ||
proposal |-> STRING, validRound |-> Int, id |-> STRING] | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some comments on what the message record fields encode would be useful. For example, it is not clear that src
is a process ID or that proposal is one of "PROPOSAL", "PREVOTE", "PRECOMMIT"
. Not sure if this is the appropriate place, maybe they can go in the file where the invariants are defined.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Right. This will change with the new type checker anyways.
Co-authored-by: istoilkovska <[email protected]>
Co-authored-by: istoilkovska <[email protected]>
Co-authored-by: istoilkovska <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm. Perhaps we will revisit an polish in the future.
This is the PR moved from the verification repository.
It contains a TLA+ specification of Tendermint consensus that is tuned to safety and fork scenarios.