-
Notifications
You must be signed in to change notification settings - Fork 110
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
Tracking: Document Zcash consensus rules in Zebra codebase #3125
Comments
Thank you @mpguerra for listing those! How should we carry out this work? I think the hardest part is identifying each rule. My suggestion is coming up with a way to create an identifier for each one, and them mention each of them in the code where they are implemented. Then we could maybe create a script or just grep the code to list them all, and compare the list to the full list of rules to make sure we didn't forget anything. Eventually we could reach out to ECC to maybe include the identifier in the spec. As long as we have an identifier for each one of them, it's easy to rename them later if needed. Does this make sense, or is it too much work? Without this it will be really hard to find where each rule is implemented, and to determine if we missed any rule. My suggestion would look like:
@dconnolly @teor2345 @upbqdn what do you think? |
I like the general idea of having the consensus rules mapped in a one-to-one fashion between the code and the spec by leveraging unique identifiers. I think it might be helpful even if one consensus rule is scattered around multiple places in the codebase. To me, the consensus rules resemble math definitions, so having a naming system that would allow referring to each rule by its name would be convenient. |
I don't think we should create our own identifiers, because we would have to maintain them separately with every spec change. But if the Otherwise linking to the sub-section is good enough for now. |
This is done! |
Motivation
We want to ensure that all of the Zcash consensus rules are implemented in Zebra. In order to help us do this, we should document where the Zcash consensus rules are implemented in the Zebra codebase.
This will also help when auditing Zebra.
Tasks for each consensus rule:
Consensus Rules found in the Zcash Protocol Specification
Document 7.9 Payment of Founders’ Reward consensus rule(Not implemented as we checkpoint on Canopy)Consensus ZIPs
Related Work
The text was updated successfully, but these errors were encountered: