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

Document types specified in 7.1 Transaction Encoding and Consensus as part of the consensus rules #3222

Closed
5 tasks done
Tracked by #3125
mpguerra opened this issue Dec 14, 2021 · 4 comments
Closed
5 tasks done
Tracked by #3125
Assignees

Comments

@mpguerra
Copy link
Contributor

mpguerra commented Dec 14, 2021

For each consensus rule:

  • check that the rule is implemented in Zebra
  • make sure the latest version of the rule is quoted in the docs for the code that implements it
  • make sure the code implements the latest version of the rule

Subtasks

Zcash transaction format

https://zips.z.cash/protocol/protocol.pdf#txnencoding

Up to transaction v4

Screenshot 2021-12-16 at 16 27 07

Transaction v5

Screenshot 2021-12-16 at 16 37 04

Implementation

See #3223

@mpguerra
Copy link
Contributor Author

Not sure if we can do any easy documentation here or if it's all over the codebase...

@teor2345
Copy link
Contributor

teor2345 commented Dec 16, 2021

Not sure if we can do any easy documentation here or if it's all over the codebase...

The format specs should be documented where the types are serialized and deserialized.

@teor2345
Copy link
Contributor

Here is the split I'd suggest, because it matches the structure of Zebra's code (and also the spec):

  • transaction header
  • transparent
  • sapling
  • sprout
  • orchard

You can see this split in the v5 transaction format, it's indicated using double lines. v1-v4 should follow the same split, even though the field order is different. The leftover JoinSplit fields are sprout fields.

We should cover all relevant transaction versions as part of each sub-ticket. (The code is repeated but usually identical.)

@mpguerra can you assign people to the sub-tasks after you've split this task?

@oxarbitrage
Copy link
Contributor

Closed by #3491, #3498, #3499, #3501 and #3507

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants