ZSA integration (step 1): Integrate ZSA-compatible crates into Zebra while maintaining original Orchard (Vanilla) support for now [to upstream]#24
Closed
dmidem wants to merge 43 commits into
Closed
Conversation
…l Orchard support only, without supporting and enabling ZSA features.
…loy related workflows (add .disabled suffix to their .yml files)
arya2
reviewed
Oct 31, 2024
Co-authored-by: Arya <aryasolhi@gmail.com>
Co-authored-by: Arya <aryasolhi@gmail.com>
Co-authored-by: Arya <aryasolhi@gmail.com>
…ebra into zsa-integration-zsadeps
…minorr fix in code to sync with that
…tives) interface (OrchardBundle enum etc.)
…ompiler warnings about zcash_unstable cfg
…id compiler warnings for new compiler versions
…id compiler warnings for new compiler versions (2)
…sh_primitives) interface (OrchardBundle enum etc.)" This reverts commit 998a2c7.
… make a minorr fix in code to sync with that" This reverts commit cfaac4b.
This reverts commit 6b7e665.
…rgo/config.toml settings
Collaborator
Author
|
Closed in favour of #37 |
1 similar comment
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.
This draft PR updates Zebra to use QED-it's ZSA-compatible versions of the following crates:
halo2zcash_note_encryptionspling-cryptoorchardlibruszcashrepository:zcash_primitiveszcash_protocolzcash_addresszcash_encodingzcash_historyzcash_client_backendThese version of the crates are backward-compatible and support both the current Orchard (Vanilla) protocol and the upcoming ZSA variation.
This PR maintains support for the existing Orchard protocol only, without yet enabling or integrating ZSA-specific features!