ZcashFoundation / zebra

Zcash - Financial Privacy in Rust 🦓
https://zfnd.org/zebra/
Apache License 2.0
408 stars 98 forks source link

Analyze overlap between `zebra_chain` and `zcash_primitives` #92

Closed hdevalence closed 4 years ago

hdevalence commented 4 years ago

Now that the zcash_primitives crate has been published and we have mostly finished the networking code, we should analyze the overlap between zcash_primitives and zebra_chain, and decide:

  1. What (intended) functionality is common between these two crates;
  2. Whether we should re-export parts of zcash_primitives into zebra_chain;
  3. Whether we should combine parts of zebra_chain into zcash_primitives and upstream the changes.
hdevalence commented 4 years ago

I started writing some first-pass notes mapping out the zcash_primitives crate. They are currently UNFINISHED, and I will keep editing this comment until they are done.

Notes on zcash_primitives, starting from lib.rs and working outwards. The order they appear here is the order in which I read through them, which is mostly arbitrary but attempts to be in internal module dependency order.

lib.rs

serialize.rs

util.rs

block.rs

block/equihash.rs

constants.rs

jubjub/mod.rs

jubjub/edwards.rs

jubjub/montgomery.rs

jubjub/fs.rs

jubjub/tests.rs

group_hash.rs

pedersen_hash.rs

primitives.rs

keys.rs

legacy.rs

merkle_tree.rs

note_encryption.rs

dconnolly commented 4 years ago

Look here re: #34

dconnolly commented 4 years ago
str4d commented 4 years ago

Now that this issue has been closed, can I assume the review above is "complete"? If so, I'll go through it next week and open librustzcash issues for anything that we definitely want to address.

hdevalence commented 4 years ago

I'm not sure I'd say it was "complete" so much as "abandoned", in the sense that the parts that there are notes on are completed, but the parts that there aren't notes on have not been completed, and because of other priorities the uncompleted parts probably won't be finished in the near term.