Extract Sapling protocol into sapling-crypto
crate
#738
Labels
C-target
Category: This is a high-level target that forms the root of a sub-graph in the DAG.
Milestone
Back when the Sapling protocol was first developed, it lived in two places:
sapling-crypto
crate for the circuit logic.librustzcash
crate that exposed the circuit logic tozcashd
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 intozcashd
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: theorchard
crate depends onzcash_note_encryption
which is in this workspace, andzcash_primitives
depends onorchard
. 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 theorchard
crate positioning in the dependency graph. We can use this as an opportunity to resurrect thesapling-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.The text was updated successfully, but these errors were encountered: