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

Add "Procedure" section to protocol spec. #2

Closed
nathan-at-least opened this issue Dec 16, 2015 · 2 comments
Closed

Add "Procedure" section to protocol spec. #2

nathan-at-least opened this issue Dec 16, 2015 · 2 comments
Assignees

Comments

@nathan-at-least
Copy link
Contributor

A Procedure section will specify "canonical" storage structures and algorithms which implement the protocol. For example, there should be an inductive procedure for "Verify Block".

Implementations may use different data structures/algorithms, and this section should strive to define the simplest to specify data structures and algorithms, rather than the most efficient. If there is a discrepency between an efficient real-world implementation and an algorithm here which affects the protocol, then we need to go through a rigorous process for altering the protocol if we deem it necessary. If there's a discrepency in implementation vs "canonical algorithm" that does not affect the protocol, then the canonical algorithm should either be simplified until there's no discrepency, or we add a footnote about the discrepency, or we change the canonical algorithm to be more complex.

Also, a given canonical algorithm/data-structures will imply a set of invariants / preconditions / postconditions. Those should be explicitly documented also in this spec.

@daira
Copy link
Collaborator

daira commented Aug 7, 2016

I am wary of overspecification by taking this approach.

@daira
Copy link
Collaborator

daira commented Dec 19, 2016

I'm happy with the current style of specification. Some things (e.g. the note encryption) are specified using canonical algorithms; others are not.

@daira daira closed this as completed Dec 19, 2016
daira referenced this issue in daira/zips Jan 7, 2020
daira pushed a commit that referenced this issue Oct 10, 2022
[ZIP 317] Updates from ZIP Editors' meeting
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants