Commit Graph

2017 Commits

Author SHA1 Message Date
Jack Grigg 83c6a2d1ca Store OutputDescription `ephemeral_key` as bytes
This removes an unnecessary `to_bytes` during trial decryption of notes,
and more closely matches the protocol spec. We retain the consensus rule
canonicity check on epk due to `SaplingVerificationContext::check_output`
taking a `jubjub::ExtendedPoint`, forcing `zcashd` to parse the bytes.
2021-08-06 16:54:48 +01:00
str4d 99d877e22d
Merge pull request #421 from str4d/bench-compact-decryption
zcash_primitives: Benchmark trial decryption of compact outputs
2021-08-05 23:29:16 +01:00
str4d 945a199ddd
zcash_primitives: Use `not(unix)` instead of `windows` for flamegraphs
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2021-08-05 23:22:12 +01:00
Jack Grigg 16d38ea354 zcash_primitives: Remove spaces from benchmark group names 2021-08-05 22:40:46 +01:00
Jack Grigg 0f15743200 Disable default benchmark harness for all workspace crates
This is necessary in order to provide criterion-specific arguments to
`cargo bench`, such as `--profile-time`.
2021-08-05 22:39:36 +01:00
Jack Grigg 3ffa3ae435 zcash_primitives: Add flamegraph support to benchmarks on Unix
Use `cargo bench -- --profile-time TIME_IN_SECONDS` to measure the
flamegraphs. They will be placed in `target/criterion/`.
2021-08-05 22:24:16 +01:00
Jack Grigg 8b05727361 zcash_primitives: Benchmark trial decryption of compact outputs
These are effectively identical to full-output trial decryption (as the
primary cost is the scalar multiplication), but it's good to check.
2021-08-05 22:13:23 +01:00
Kris Nuttycombe 2945905d52 Implement manual serialization for incremental Merkle tree components.
This also adds parsing of the legacy CommitmentTree format,
to permit easy migration of persisted data.
2021-08-05 09:32:44 -06:00
str4d e8d20f73f8
Merge pull request #419 from str4d/418-ua-hrp-padding
zcash_address: Include HRP inside Unified Address Padding bytes
2021-07-30 20:44:26 +01:00
str4d c02931dc82
Tweak test comment 2021-07-30 20:35:23 +01:00
Jack Grigg 00b369b2a4 zcash_address: Include HRP inside Unified Address Padding bytes
Closes zcash/librustzcash#418.
2021-07-30 15:34:36 +01:00
Kris Nuttycombe 786da38f3e
Merge pull request #411 from nuttycom/use_orchard_zip244_commitments
Move Orchard bundle commitments to the `orchard` crate.
2021-07-29 11:05:55 -06:00
Kris Nuttycombe 232feb71be Use orchard::Flags::to_byte/from_byte 2021-07-29 10:38:43 -06:00
Kris Nuttycombe 3b8f0214eb Move Orchard bundle commitments to the `orchard` crate. 2021-07-29 10:38:43 -06:00
str4d 1a40fc9ac8
Merge pull request #416 from str4d/ua-parser-checks
Add Unified Address parser structural checks
2021-07-12 22:02:34 +01:00
Jack Grigg b875f6c34b zcash_address: Fix clippy lint by using matches! macro 2021-07-12 21:17:25 +01:00
Jack Grigg 8527dcbc32 zcash_address: Remove outdated unified::Receiver documentation
Receiver ordering is now explicitly defined by Typecode, and Receiver
is now a public type.
2021-07-12 21:11:24 +01:00
Jack Grigg 478625f72d zcash_address: Add UA test cases for truncation and invalid padding 2021-07-12 20:56:35 +01:00
Jack Grigg 77d1f0c778 zcash_address: Invert Typecode::is_shielded to Typecode::is_transparent
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2021-07-12 20:19:26 +01:00
Jack Grigg 060a15eaf8 zcash_address: Enable constructing a unified::Address from Vec<Receiver>
This enforces the same structural validity checks as at parsing time.
2021-07-12 13:39:01 +01:00
Jack Grigg 384af079a8 zcash_address: Add `unified::Address::receivers{_as_parsed}` APIs
These expose the receivers in sorted order, and in parsed order.
2021-07-12 13:35:06 +01:00
Jack Grigg b175b9bec9 zcash_address: Use preference ordering for Receivers 2021-07-12 13:34:44 +01:00
Jack Grigg 7708b27202 zcash_address: Enforce UA structural validity checks 2021-07-12 12:10:23 +01:00
Jack Grigg cd94b41d61 zcash_address: Introduce UA-specific parser error type 2021-07-12 11:45:25 +01:00
Jack Grigg 01a8dba450 zcash_address: Add a Typecode enum 2021-07-12 11:42:49 +01:00
str4d 8b4ae55e90
Merge pull request #415 from str4d/ci-rustdoc-no-deps
CI: Don't render documentation for crates outside the workspace
2021-07-09 21:18:52 +01:00
Jack Grigg c51b534bd1 CI: Don't render documentation for crates outside the workspace 2021-07-09 21:17:56 +01:00
str4d 708b015cab
Merge pull request #414 from str4d/ci-rustdoc-fix
CI: Fix documentation rendering
2021-07-09 21:12:42 +01:00
Jack Grigg d868f2363d CI: Fix documentation rendering 2021-07-09 21:12:06 +01:00
str4d 7c897d52cc
Merge pull request #413 from str4d/ci-rustdoc
CI: Add workflow to render latest documentation
2021-07-09 20:59:33 +01:00
Jack Grigg 6eb3557ea3 CI: Add workflow to render latest documentation 2021-07-09 20:59:06 +01:00
str4d 3cab105c9c
Merge pull request #410 from nuttycom/nonempty_bump
Update nonempty crate version.
2021-06-30 20:21:09 +01:00
Kris Nuttycombe 105f8da91f Update `nonempty` and `orchard` dependencies. 2021-06-30 12:57:56 -06:00
str4d 4ac5977c91
Merge pull request #409 from nuttycom/fix_clippy
Fix clippy complaints
2021-06-24 01:28:44 +01:00
Kris Nuttycombe 1ae2bd727c Fix clippy complaints 2021-06-23 16:37:48 -06:00
str4d 0205252692
Merge pull request #407 from str4d/ua-test-vectors
zcash_address: Add Unified Address test vectors
2021-06-18 20:40:57 +01:00
Jack Grigg 752ee442f8 zcash_address: Add Unified Address test vectors 2021-06-18 20:06:02 +01:00
str4d 0c3ed15998
Merge pull request #405 from str4d/bump-orchard-deps
Bump orchard deps
2021-06-15 21:54:30 +01:00
Jack Grigg 69ee9f8ca5 Bump orchard deps
Includes additional patched dependencies, now that the orchard crate is
not pinning specific revisions of the in-development crates.
2021-06-15 20:20:53 +01:00
str4d fe4b63c8fe
Merge pull request #401 from str4d/368-zip-221-orchard
`zcash_history`: Implement v2 history tree with Orchard support
2021-06-15 17:49:59 +01:00
Daira Hopwood d88e40113c
Merge pull request #402 from str4d/amount-to-orchard-valuesum
impl From<Amount> for orchard::ValueSum
2021-06-14 22:46:22 +01:00
Jack Grigg 00b3e427e6 impl From<Amount> for orchard::ValueSum
This is necessary in order to be able to calculate bvk for Orchard
bundles.
2021-06-14 11:41:02 +01:00
Jack Grigg fcbe9a842a zcash_history: Migrate tests to V2 format
V2 is implemented as a wrapper around V1, so this simply expands the
tested code.
2021-06-11 02:12:01 +01:00
Jack Grigg e84bb874af zcash_history: Implement V2 tree format 2021-06-11 02:10:16 +01:00
Jack Grigg 63f554b308 zcash_history: Introduce Version trait
Each Zcash epoch (between two network upgrades) has a separate history
tree, making it easy to switch the node data format at network upgrades.
This commit enables the general tree logic to be shared across history
tree versions.
2021-06-11 02:02:07 +01:00
str4d cc533a9da4
Merge pull request #400 from str4d/rework-shieldedoutput-api
zcash_note_encryption: Add `ShieldedOutput::ephemeral_key() -> EphemeralKeyBytes`
2021-06-10 19:22:03 +01:00
Jack Grigg c7c79d266e zcash_note_encryption: Add `ShieldedOutput::ephemeral_key() -> EphemeralKeyBytes`
This replaces the `ShieldedOutput::epk() -> &Domain::EphemeralPublicKey`
which could not be satisfied by output types that did not parse epk.
2021-06-10 18:35:19 +01:00
str4d 3915abd0a1
Merge pull request #399 from str4d/zip-244-auth-digest-test-vectors
Bring in ZIP 244 auth digest test vectors.
2021-06-08 19:47:55 +01:00
Jack Grigg 684fd504a8 ZIP 244: Write transparent scripts in their consensus encoding 2021-06-08 18:47:34 +01:00
str4d fe07fb3c51
Merge pull request #396 from str4d/394-zip-216
Impl ZIP 216 on SaplingVerificationContext and redjubjub::PublicKey
2021-06-08 18:34:47 +01:00