-
Notifications
You must be signed in to change notification settings - Fork 106
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
[WIP] Transaction verifier #1100
Conversation
/// The different SigHash types, as defined in https://zips.z.cash/zip-0143 | ||
pub struct HashType: u32 { | ||
/// | ||
const ALL = 0b0000_0001; | ||
/// | ||
const NONE = 0b0000_0010; | ||
/// | ||
const SINGLE = Self::ALL.bits | Self::NONE.bits; | ||
/// |
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 empty doc comments prevent a linter from ever noticing that they're empty, so I think it would be preferable to avoid adding them.
9c05425
to
eca674a
Compare
Co-Authored-By: Deirdre Connolly <deirdre@zfnd.org>
…ecks module Also stub out the queuing of all RedJubjub async batch signature validation and spend/output Groth16 proof verification and collecting of those resulting futures in async_checks
8111e69
to
91c8013
Compare
We rebased this onto #961. |
/// transaction transfers no money | ||
NoTransfer, |
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.
This is a misleading name, as it suggests that the consensus rules verify that zero-value coins and notes cannot be spent. The actual rules that lead to this error are only checking for the presence of inputs / spends.
Hi all, just a heads' up that this PR will be rebased and split into the part that sets up the plumbing for the transaction verification service, and the part that adds the consensus rules, which will be split off into separate PRs. I'm hoping to get this done in the next few hours. |
This is a high-level sketch of what our
TransactionVerifier
should do. Right now it's calling signature batch verifiers that we may not want to use anymore, and(Spend|Output|JoinSplit)Verifier
s that don't exist yet, and is incomplete in all its checks and outputs, but you get the idea.