-
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
Tracking: transaction validation #196
Comments
We need #180; adding it to the list. |
Some notes on what our verification architecture could look like below. First, some general desiderata:
Here's a sketch of how we could try to accomplish this. At a high level, we keep all verification logic inside of This lets us do pervasive batching using the strategy in the blog post, and importantly, it allows us to have one implementation independent of the batch size. As an example, consider a version 4 (Sapling) transaction, which can have multiple
Suppose we have a This handles batching. To handle parallelism, we probably want to ensure that as much of the work as possible is in the response future itself, rather than in the I think that the futures-based approach could also work well for handling checkpointing, with the caveat that we may need to have many intermediate checkpoints. When doing checkpointing, we have an externally-trusted A nice upside of this approach would be that we could optionally extend it past Sapling activation. This would involve having a hardcoded list of "mandatory" checkpoints (up to Sapling activation), and a way to configure a file or something with other checkpoints. To me this is |
I think those ideas touch on most of the desiderata, except:
I think there are two next steps:
WDYT @dconnolly @gtank ? |
Basically this will be complete when https://github.com/ZcashFoundation/zebra/milestone/2 is complete. |
I think there are a few different levels of context:
I'll see how I go with splitting checks into these categories in #428. |
I think this might have been closed by mistake (cc @dconnolly )? (Please feel free to re-close if it wasn't) |
OOF very mistake, my bad |
Closing this epic as I think we're pretty much done here |
Tracking issue for transaction validation. Transaction validation checks should be implemented as a sequence of stateless checks that generate constraints if successful (semantic validation); these constraints are then checked as part of contextual verification when a block is being committed to the state.
See also #428 which tracks block validation.
Tree state management
Bitcoin Script Zcash-compatible Bitcoin script impl #180
zcashconsensus
as a rust crate #622zebra-script
interface to FFI crate withzebra-chain
types Make zebra-script wrap the C++ script implementation in zcashconsensus #708zebra-state
Service #724 (subsumed by state design)Transaction verifier service: [WIP] Transaction verifier #1100
Other consensus rules ??? - https://github.com/ZcashFoundation/zebra/issues?q=is%3Aissue++label%3Aconsensus+
Call transaction validation from BlockVerifier
The text was updated successfully, but these errors were encountered: