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

Add initial Transaction V6 support to Zebra (currently copies V5 behavior) #9

Draft
wants to merge 10 commits into
base: switch-to-zsa-crates-nu6
Choose a base branch
from

Conversation

dmidem
Copy link

@dmidem dmidem commented Aug 29, 2024

This PR introduces initial support for Transaction version 6 (Tx V6) in the Zebra codebase as part of the broader effort to add ZSA (Zcash Shielded Assets) support.

Key changes

  • Added a new V6 variant to the Transaction enum in the zebra-chain crate, currently replicating the behavior of V5.
  • Updated relevant code paths across the project to handle the new V6 variant, ensuring basic compatibility.
  • Tx V6 currently functions as a copy of Tx V5 (including tests); its behavior will be updated in future PRs to reflect the true V6 specification, incorporating ZSA-specific features and changes.
  • Placeholder/dummy values are used for activation height, group ID, etc., which will be replaced with proper values in future updates.

Notes

  • This implementation provides a foundational structure for Tx V6 but does not yet include ZSA-specific features, new transaction structures, or detailed serialization/deserialization changes.
  • Future work will focus on completing Tx V6 support with ZSA-specific elements, proper configuration values, and full integration into the consensus layer.

Next steps

  • Address any FIXME comments in the code.
  • Convert zebra-chain::orchard::ShieldedData struct to be a generic that supports both V5 and V6.
  • Implement serialization/deserialization for V6 (previous work from the /tx_v6_with_ser_1.8.0 branch can be utilized).
  • Update Tx V6 to perform its intended behaviors distinct from V5 in subsequent PRs.
  • Implement verification processes for Tx V6 transactions.
  • Add tests for Tx V6 transactions.

This commit introduces basic support for Transaction version 6 (Tx V6). This initial implementation treats Tx V6
as a simple copy of Tx V5, without yet integrating ZSA-specific features or the new transaction structure.

- Added a new V6 variant to the Transaction enum in the zebra-chain crate.
- Updated relevant code to handle the new V6 variant.

Note: Tests and additional adjustments are still pending, and will be addressed in subsequent commits.
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

Successfully merging this pull request may close these issues.

1 participant