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

Extract Sapling protocol into sapling-crypto crate #738

Closed
str4d opened this issue Dec 13, 2022 · 1 comment · Fixed by #1067
Closed

Extract Sapling protocol into sapling-crypto crate #738

str4d opened this issue Dec 13, 2022 · 1 comment · Fixed by #1067
Labels
C-target Category: This is a high-level target that forms the root of a sub-graph in the DAG.

Comments

@str4d
Copy link
Contributor

str4d commented Dec 13, 2022

Back when the Sapling protocol was first developed, it lived in two places:

  • A sapling-crypto crate for the circuit logic.
  • A librustzcash crate that exposed the circuit logic to zcashd via FFI methods that contained a bunch of logic.

We refactored these to produce the zcash_* crates, and eventually got rid of both of the above crates (sapling-crypto entirely, librustzcash moved into zcashd as a pure FFI layer).

However, with the introduction of the orchard crate (which is kept in a separate repository for licensing reasons), we now run into a dependency problem: the orchard crate depends on zcash_note_encryption which is in this workspace, and zcash_primitives depends on orchard. This makes updates very tricky.

Instead, we want to fix this by moving the components/* libraries (everything that exists "below" the shielded protocols) out of this workspace, and also move the Sapling protocol into a separate crate to emulate the orchard crate positioning in the dependency graph. We can use this as an opportunity to resurrect the sapling-crypto crate!

This issue is not for moving sapling-crypto back into its old GitHub repository (the dependency issue only requires moving the component crates). We may still choose to do that, but it would be after this issue.

@str4d
Copy link
Contributor Author

str4d commented Dec 11, 2023

This issue is not for moving sapling-crypto back into its old GitHub repository (the dependency issue only requires moving the component crates). We may still choose to do that, but it would be after this issue.

We have decided to do this, so we'll do so at the same time as this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-target Category: This is a high-level target that forms the root of a sub-graph in the DAG.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants