ZSA integration (step 7): Modify zebra-consensus to support Orchard ZSA#28
Closed
dmidem wants to merge 42 commits into
Closed
ZSA integration (step 7): Modify zebra-consensus to support Orchard ZSA#28dmidem wants to merge 42 commits into
dmidem wants to merge 42 commits into
Conversation
…ns from librustzcash/zcash_primitives instead of reimplementing them
… to use the correct order of the asset burn field in V6 transaction as it's defined in ZIP 230
… used in librustzcash
… now - the same as used in librustzcash to make it possible to run tests)
…add issuance_block test function there (now it simply deserialized issuance block from the test vector to check if deserialization functions work properly)
…dd checks of deserialization of transfer and burn blocks
…'re two keys now - VERIFYING_KEY_VANILLA and VERIFYING_KEY_ZSA
… use 77777777 as consensus branch id for Nu7 (to ajdust it with ones used in librustzcash)
… zebra-consensus)
…ract ValueCommitment of burn items if they are present
Collaborator
Author
|
Closed in favour of #37 |
dmidem
added a commit
that referenced
this pull request
Jun 23, 2025
This pull request merges the changes from several incremental PRs into one cumulative set of updates on top of the `zsa1` branch. It introduces ZSA-compatible crates, Network Upgrade 7 (Nu7), initial Transaction V6 support, Orchard generics for ZSA, property-based testing enhancements, note commitment handling for ZSA issuance, and initial consensus modifications for Orchard ZSA. It does not include the final state management changes or additional tests — those come in subsequent PRs. Below is a high-level overview of the merged changes: 1. **ZSA-Compatible Crates Integration (Step 1)** #24: - Replaces core libraries (`halo2`, `zcash_note_encryption`, etc.) with QED-it’s ZSA-compatible forks. - Maintains full support for Orchard “Vanilla” without activating any new ZSA features yet. 2. **Network Upgrade 7 (Nu7) Support (Step 2)** #15 - Introduces code paths and placeholders for Nu7, the upcoming network upgrade required for ZSA. - Adds `FIXME` comments where final activation heights and other specifics must be filled in. 3. **Transaction V6 Foundations (Step 3)** #16 - Adds a `V6` variant to Zebra’s `Transaction` enum, initially mirroring `V5` logic. - Sets a baseline for future ZSA-related modifications, including placeholders for relevant fields and logic. 4. **Refactor Orchard Structures to Generics (Step 4)** #17 - Converts key Orchard data structures (e.g., `ShieldedData`) to generics, enabling a single code path for both Orchard Vanilla and Orchard ZSA. - Implements serialization/deserialization for `V6` transactions, including a `burn` field in the ZSA flavor. 5. **Orchard Proptests with ZSA Enhancements (Step 5)** #18 - Extends the property-based testing framework to handle ZSA-specific fields and behaviors in `Transaction V6`. - Refactors code organization (e.g., extracting `Burn` types) for better clarity and future expansion. 6. **Integration of ZSA Issuance Commitments (Step 6)** #25 - Merges issuance action note commitments with existing shielded data commitments for `V6` transactions. - Ensures `Transaction::orchard_note_commitments` includes issuance note commitments when present, preserving `V5` behavior. 7. **Initial ZSA Consensus Support (Step 7)** #28 - Modifies `zebra-consensus` to support Orchard ZSA. **Next Steps** - **State Management & Additional Testing**: Future PRs will introduce state-layer modifications, refine consensus checks, and add more comprehensive tests. By consolidating these first several steps into a single PR, we aim to simplify the review process .
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.