Go to file
Henry de Valence c013895cd7 Update Transaction definition. (#105)
* Added a few more top-level fields for the Transaction struct

* Add a placeholder Script type.

This could alternately use bytes::Bytes to save some allocations
but I don't think this is important to get perfectly now.  In the future, we
will want to have all of the script handling code in the zebra-script crate,
but we will need to have a container type for an encoded script in zebra-chain,
because otherwise zebra-chain would depend on zebra-script and not the other
way around.

* Rename Transaction{Input,Output} -> Transparent{Input,Output}.

These are only *transparent* inputs and outputs, so by putting Transparent in
the name (instead of Transaction) it's more clear that a transaction's inputs
or outputs can also be shielded.

* Add a LockTime enum.

* First attempt at a Transaction enum.

This attempts to map the versioning and field presence rules into an ADT, so
that structurally invalid transactions (e.g., a BCTV14 proof in a Sapling
transaction) are unrepresentable.

* Update zebra-chain/src/transaction.rs

Co-Authored-By: Daira Hopwood <daira@jacaranda.org>

* Add fixme note on type refinement.

* Rename Transaction variants according to version.

* Split transaction.rs into submodules.

* Start filling in spend, output descriptions.

* Progress on JoinSplit data structures.

This has a lot of duplication and should really use generics to abstract over
Sprout-on-BCTV14 or Sprout-on-Groth16.

* Add data types for Bctv14 and Groth16 proofs.

This also adds a trait to abstract over them.

* Make JoinSplit descriptions generic over the proof system.

* Update zebra-chain/src/transaction/joinsplit.rs
2019-12-05 15:56:58 -05:00
.github/workflows Comment out suspicious run line 2019-10-24 16:50:34 -04:00
design Update zebra-network Monodraw diagram. 2019-10-24 15:06:02 -07:00
zebra-chain Update Transaction definition. (#105) 2019-12-05 15:56:58 -05:00
zebra-client Fix authorship, license information. (#55) 2019-10-08 09:25:59 -07:00
zebra-consensus Fix authorship, license information. (#55) 2019-10-08 09:25:59 -07:00
zebra-network Merge pull request #135 from ZcashFoundation/130 2019-12-05 14:06:05 -05:00
zebra-rpc Fix authorship, license information. (#55) 2019-10-08 09:25:59 -07:00
zebra-script Fix authorship, license information. (#55) 2019-10-08 09:25:59 -07:00
zebra-storage Fix authorship, license information. (#55) 2019-10-08 09:25:59 -07:00
zebrad Handle 'mempool' messages as 'GetMempool' requests 2019-11-18 15:55:25 -05:00
.gitignore Add Cargo.lock 2019-10-30 18:15:29 -04:00
.rustfmt.toml Tracing endpoint (#3) 2019-09-09 13:05:42 -07:00
Cargo.lock Bump thiserror from 1.0.8 to 1.0.9 2019-12-04 09:15:06 -08:00
Cargo.toml Beginning of peerset implementation. (#62) 2019-10-10 18:15:24 -07:00
Dockerfile Continuous integration (#2) 2019-09-05 13:08:48 -04:00
LICENSE-APACHE Add copyright marks on each license 2019-11-14 11:50:49 -08:00
LICENSE-MIT Add copyright marks on each license 2019-11-14 11:50:49 -08:00
README.md Update README.md 2019-11-14 14:33:40 -05:00
cloudbuild.yaml Continuous integration (#2) 2019-09-05 13:08:48 -04:00

README.md

zebra 🦓

Hello! I am Zebra, an ongoing Rust implementation of a Zcash node.

License

Zebra is distributed under the terms of both the MIT license and the Apache License (Version 2.0).

See LICENSE-APACHE and LICENSE-MIT.