Jack Grigg
3720b45feb
Categorise dependencies in `Cargo.toml` files
...
This should make it easier to upgrade dependencies in future.
2022-11-01 09:02:54 +00:00
Jack Grigg
a0016588ac
Remove unused dependencies
...
Some were only used by tests, others weren't used at all.
2022-11-01 09:02:27 +00:00
Kris Nuttycombe
5bf36989e2
Fix beta clippy complaints.
2022-10-19 13:35:51 -06:00
Sean Bowe
176e21b015
Update zcash_primitives to orchard 0.3; release zcash_primitives and zcash_proofs 0.8.
2022-10-19 13:32:51 -06:00
Marek
75b4036862
Avoid a needless range loop
2022-10-07 17:19:03 +02:00
Marek
f0f348ed00
Use the provided buffer when reading the response
...
The implementation of `io:Read` for `ResponseLazyReader` used to return
only one byte regardless of the size of the provided `buf`, which
significantly degraded the performance of loading the response.
This change makes use of the provided `buf`. On my machine with Rust
1.64, the downloading speed went up from ~100 KiB/s to ~2 MiB/s.
However, as before this change, the process still uses 100% of a single
CPU thread when downloading the response. The most likely reason is that
we still manually read each byte of the response. I can download the
same data with ~ 50 MiB/s on my machine using a different HTTP client.
This fix seems to be sufficient for now.
2022-10-05 23:47:50 +02:00
Marek
01a3c64606
Use `ResponseLazyReader` locally
2022-10-05 22:22:27 +02:00
Jack Grigg
620ff21005
zcash_proofs: Remove direct ff dependency
2022-10-02 23:14:14 +01:00
Kris Nuttycombe
03c3370de8
Fix problems identified by clippy's beta lints
2022-09-17 08:57:37 -06:00
Kris Nuttycombe
16a0e43f2d
Update to Rust 2021 and explicitly set MSRVs
2022-09-02 12:05:09 -06:00
teor
276bcc34f5
Download sprout parameters in zcash_proofs ( #459 )
...
* Download sprout parameters in-memory
* Add download_sapling_parameters and deprecate download_parameters
* This avoids confusion between sprout and sapling downloads,
while maintaining backward compatibility.
* Download a single file, rather than parts
* This is more efficient, because TCP adjusts its transfer speed
in the first ~20 seconds of each new connection.
* Only download files if needed, but always check the hashes
* Allow the caller to specify a response timeout
* Stream downloads from server to disk
* Refactor file loads to use the same verifying function as downloads
* Check file sizes to help debug parameter load failures
* Remove downloaded files on error (but leave existing files alone)
* Add a sprout and sapling download example
* Move the download Read impl into its own module
* Derive standard traits on SaplingParameterPaths
* Require features for the load parameters method
2022-08-04 10:19:56 -06:00
Kris Nuttycombe
199c49760b
Use the new name rustdoc::broken_intra_doc_links
2022-07-29 15:56:44 -06:00
Kris Nuttycombe
f1c2da7b1d
Add sapling::NullifierDerivingKey newtype.
...
Nullifier computation only requires the nullifier deriving key,
not the entire Sapling viewing key. This separation of concerns
will be needed for batch decryption when wallet-internal keys
will need to be considered.
2022-07-28 15:23:21 -06:00
Jack Grigg
bac093f585
zcash_proofs 0.7.1
2022-07-05 17:33:07 +00:00
Jack Grigg
6f0e26a504
zcash_proofs: Use threadpool for Sapling proof batch validation
2022-07-05 15:52:22 +00:00
Jack Grigg
b52f3cc0fc
zcash_proofs: Implement batch validation for Sapling bundles
...
We use the `redjubjub` crate for batch validation, because the demo
batch validation API in `zcash_primitives::redjubjub` cannot be used
outside that crate, and using `redjubjub` enables this to be published
as a point release of `zcash_proofs`.
2022-07-05 15:45:04 +00:00
Jack Grigg
9d72e87125
zcash_proofs: Split out internals of `SaplingVerificationContext`
...
The new `SaplingVerificationContextInner` struct handles accumulation of
`cv`, and preparation of the inputs to proof and signature verification.
`SaplingVerificationContext` uses it to maintain its existing inline
unbatched verification API.
2022-07-03 22:58:11 +00:00
Daira Hopwood
a9aa2929d2
Address feedback about the use of "permissive".
...
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-06-28 16:46:13 +01:00
Daira Hopwood
75ca854005
Projects that rely on BOSL exceptions should say that they do.
...
fixes #576
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-06-28 12:29:16 +01:00
Jack Grigg
6f4de16b97
zcash_proofs 0.7.0
2022-06-24 17:00:39 +00:00
Jack Grigg
e952ff637e
zcash_primitives 0.7.0
2022-06-24 17:00:39 +00:00
Jack Grigg
59b20c6e31
pprof 0.9
2022-06-24 16:27:06 +00:00
Jack Grigg
1161fc963f
zcash_proofs 0.6.0
2022-05-10 23:33:05 +00:00
Jack Grigg
3ecfd26d79
zcash_primitives 0.6.0
2022-05-10 23:33:05 +00:00
Jack Grigg
8c086662df
zcash_proofs: `bellman 0.13`
2022-05-07 03:24:37 +00:00
Jack Grigg
5b3632d9d9
zcash_proofs: Add flamegraph profiling to Sapling Spend benchmark
2022-05-07 03:20:19 +00:00
Jack Grigg
144512b547
Migrate to `ff 0.12`
2022-05-06 20:03:49 +00:00
Jack Grigg
91d9a42a08
Merge branch 'non-consensus-changes-on-branchid-37519621' into merge-non-consensus-changes-3
2022-02-28 23:22:40 +00:00
Kris Nuttycombe
600c06a408
Update MSRV to 1.56.1
2022-02-24 12:26:14 -07:00
Jack Grigg
4674291fd9
zcash_proofs: Silence clippy 1.54.0 lint
2022-02-16 00:03:07 +00:00
Jack Grigg
f822d7aabc
Bump MSRV to 1.54.0
...
This is the MSRV for the orchard crate version that contains the changes
to the Orchard circuit.
Closes zcash/librustzcash#513 .
2022-02-15 16:39:29 +00:00
Jack Grigg
dbfa673500
Merge branch 'non-consensus-changes-on-branchid-37519621' into merge-non-consensus-changes-again
2022-02-14 18:11:09 +00:00
Dimitris Apostolou
e600d7b917
Fix typos
2022-02-03 20:15:32 +02:00
Kris Nuttycombe
a304c3953b
Fix Clippy beta linting complaints.
2022-02-02 16:02:45 -07:00
Jack Grigg
d5a375919d
blake2{b,s}_simd 1
2021-12-17 23:44:06 +00:00
Jack Grigg
3d6bd8731d
directories 4
2021-09-22 22:16:18 +01:00
Jack Grigg
e3061e1d72
zcash_proofs: Use bellman 0.11.1 to fix non-multicore compilation bug
2021-09-13 16:20:59 +01:00
Jack Grigg
65e1d32774
ff 0.11, group 0.11, etc.
2021-09-09 18:20:37 +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
e2fb5e6402
Impl ZIP 216 on SaplingVerificationContext and redjubjub::PublicKey
...
`PublicKey::verify` now always uses post-ZIP 216 validation rules, which
is fine in non-consensus contexts.
`SaplingVerificationContext` is used by `zcashd`'s consensus rules.
2021-06-06 23:45:15 +01:00
Jack Grigg
4aa83d3048
bellman 0.10
2021-06-04 22:20:25 +01:00
Jack Grigg
1222391dd7
Migrate to bitvec 0.22, ff 0.10, etc.
...
Requires patching three dependencies:
- bellman is pending a new release.
- nom is part of the funty breakage; we are blocking on a new release.
- orchard is in development.
2021-06-04 22:02:48 +01:00
Jack Grigg
5623e02a7c
Migrate to ff 0.9 et al.
2021-05-19 18:29:37 +01:00
Jack Grigg
63db2729e9
Temporarily allow clippy::result_unit_err lint
...
Fixing these lints is deferred to zcash/librustzcash#367 .
2021-03-27 19:01:03 +13:00
Jack Grigg
636845d0f9
Renames to use lower-case abbreviations (matching Rust convention)
...
As of our MSRV bump to 1.51.0, we get lints for this.
2021-03-27 19:01:03 +13:00
Kris Nuttycombe
4086df772c
Move sapling-specific primitives into the sapling module.
2021-03-27 16:18:21 +13:00
Kris Nuttycombe
bc087a5ff7
Move pedersen hashes to sapling module.
2021-03-27 16:18:21 +13:00
Kris Nuttycombe
16948d9d78
Move zcash_primitives::prover to sapling module
2021-03-27 16:18:21 +13:00
Kris Nuttycombe
bf97b21632
Move redjubjub to sapling module.
2021-03-27 16:18:21 +13:00
Jack Grigg
38f7a0330c
Fix various clippy lints
...
The remainder will be fixed after the refactor PRs are merged.
2021-03-27 08:50:40 +13:00
Jack Grigg
9d9c0579f8
Use new name for broken_intra_doc_links lint
...
We also add the lint to crates in the workspace that didn't have it.
Closes zcash/librustzcash#279 .
2021-03-27 08:27:17 +13:00
Jack Grigg
afa0b29e62
Bump MSRV to 1.51.0
...
This is the MSRV for the orchard crate, which we will be depending on
soon.
2021-03-27 08:21:45 +13:00
Jack Grigg
813525f0b5
zcash_proofs 0.5.0
2021-03-26 18:53:42 +13:00
Jack Grigg
725699c76b
zcash_primitives 0.5.0
2021-03-26 18:51:35 +13:00
Jack Grigg
464b533937
Bump MSRV to 1.47.0
...
We'll be needing it shortly for ff et al.
2021-03-04 17:32:57 +00:00
Jack Grigg
1f6f45bbe7
Add details of unreleased changes to changelogs
2021-02-22 16:59:07 +00:00
str4d
9f14c757e6
Merge pull request #340 from str4d/changelogs
...
Add changelogs to the crates
2021-02-14 02:34:20 +13:00
Jack Grigg
bd3e18984c
Changelogs: s/project/library
2021-02-04 15:16:32 +00:00
Jack Grigg
b5c7d7f1e7
Add changelogs to the crates
...
The changelogs are accurate for the 0.4.0 release tag, but don't yet
include changes before or after that tag.
2021-02-04 15:13:22 +00:00
Kris Nuttycombe
3423b03c6d
Fix a couple more lints.
2021-02-04 07:31:00 -07:00
Kris Nuttycombe
98530184c0
Fix clippy complaints.
2021-02-03 14:27:31 -07:00
François Garillot
f5b6fa6dfb
Removes a panic in synthesis
...
The error case - a witness_256 failure - is folded in the SynthesisError case of its enclosing result.
The panic was found with [comby-rust](https://github.com/huitseeker/comby-rust/blob/master/nopanic.toml ) (using the nopanic template).
2021-02-01 13:37:56 -05:00
Kris Nuttycombe
7d92150965
Fix test compilation with WalletWrite changes.
2021-01-11 18:13:40 -07:00
Kris Nuttycombe
aad2e174c1
Consistently use nullifier and AccountId newtypes.
2021-01-08 21:49:38 -07:00
Jack Grigg
91796adcda
Remove wrapping closures around mapping functions
2020-10-30 14:10:35 +00:00
Jack Grigg
025deda712
impl Default for T on types with T::new()
2020-10-30 14:10:35 +00:00
Jack Grigg
44cbc6cc6d
Remove unnecessary references
2020-10-30 14:10:35 +00:00
Jack Grigg
0cb51f963c
Remove unnecessary clones
2020-10-30 13:51:40 +00:00
adityapk00
b8aa2d9169
Build prover with byte arrays of params
2020-10-20 11:49:42 -07:00
narodnik
6297087a5d
Mark EDWARDS_D, MONTGOMERY_A, MONTGOMERY_SCALE and PEDERSEN_CIRCUIT_GENERATORS as public only within the crate.
2020-09-21 22:59:38 +02:00
narodnik
81e3ab1c91
make fixed generator functions publicly accessible
2020-09-20 21:01:39 +02:00
Sean Bowe
d4cba74402
Version bump 0.4.0 for crates
...
Bumps zcash_proofs, zcash_primitives, zcash_client_backend to 0.4.0
Also bumps zcash_client_sqlite to 0.2.0
2020-09-09 14:41:19 -06:00
Jack Grigg
59e26a0c0f
bls12_381 0.3.1 and jubjub 0.5.1
2020-09-09 16:51:53 +01:00
Jack Grigg
96bd59b942
Migrate to ff 0.8 and bellman 0.8
...
bellman 0.8 includes fixes for several performance regressions.
MSRV is now 1.44.0, matching the ff crate.
2020-09-09 00:27:51 +01:00
str4d
a602769549
Merge pull request #285 from str4d/282-criterion
...
zcash_proof: Migrate benchmark to criterion
2020-09-03 02:42:10 +12:00
Jack Grigg
9acf763b8f
zcash_proof: Migrate benchmark to criterion
...
Closes zcash/librustzcash#282 .
2020-08-31 17:13:39 +01:00
Jack Grigg
3f06d92eec
Depend on published versions of subtree crates
2020-08-27 23:25:20 +01:00
Jack Grigg
9ce0994f0b
zcash_proofs 0.3.0
2020-08-23 16:23:53 +01:00
Jack Grigg
e25a7dacdf
zcash_primitives 0.3.0
2020-08-23 16:23:53 +01:00
Jack Grigg
1124eb3ca9
bellman 0.7.0
2020-08-23 16:23:53 +01:00
Jack Grigg
d112add8a3
jubjub 0.4.0
2020-08-23 16:23:53 +01:00
Jack Grigg
5f99c52143
bls12_381 0.2.0
2020-08-23 16:23:53 +01:00
Jack Grigg
bdb42bcbc8
pairing 0.17.0
2020-08-23 15:31:09 +01:00
Jack Grigg
ee3e8fbfbb
group 0.7.0
2020-08-23 15:31:09 +01:00
Jack Grigg
55fa366730
ff 0.7.0
2020-08-23 15:31:09 +01:00
Jack Grigg
cda56ef862
zcash_proofs: Add feature flags to docs.rs documentation
2020-08-23 12:12:11 +01:00
Daira Hopwood
74abb88dce
Fix some comments.
...
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-08-22 01:28:13 +01:00
Daira Hopwood
9e0041c497
Consistently use (u, v) for affine-ctEdwards coordinates.
...
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-08-22 01:28:13 +01:00
Daira Hopwood
cfed47c176
Rename ValueCommitment.cm() to .commitment() (because it's confusing to have cm referring to both note and value commitments).
...
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-08-22 01:28:13 +01:00
Daira Hopwood
20c5096793
Fix remaining cases of cm -> cmu.
...
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-08-22 01:28:13 +01:00
Jack Grigg
24c61f9417
zcash_proofs: Remove unnecessary comment
...
Likely left over from the Sapling audit.
2020-08-21 18:37:51 +01:00
Jack Grigg
d15acf8acc
zcash_primitives: Rename Note::cm to Note::cmu
2020-08-21 18:35:04 +01:00
Jack Grigg
b9a8e1e415
zcash_primitives: Remove Jubjub implementation
...
We now use the jubjub crate for this.
2020-08-19 23:08:19 +01:00
Jack Grigg
fdf06032e3
s/{pairing::bls12_381, zcash_primitives::jubjub}/{bls12_381, jubjub}
...
FINALLY.
2020-08-19 23:08:19 +01:00
Jack Grigg
315f00d6d4
zcash_proofs: Define generator constants using new crates
...
Includes tests to ensure that the new generator constants match the
current zcash_primitives::JUBJUB generators.
2020-08-19 23:08:19 +01:00
Jack Grigg
e210a80350
zcash_proofs: directories 3
2020-08-14 17:44:17 +01:00
Daira Hopwood
81c3b54b24
Merge pull request #258 from therealyingtong/zip212-esk-plaintext-impl
...
ZIP212 implementation
2020-08-12 10:19:08 +01:00
Henry de Valence
139fc09f10
bellman: add VerificationError ( #254 )
...
* bellman: add VerificationError
This adds a distinct VerificationError type to the crate and changes
`verify_proof` to return `Result<(), VerificationError>` rather than
`Result<bool, SynthesisError>`. This is significantly safer, because it avoids
the need to mix pattern-matching logic with boolean logic (the cause of
RUSTSEC-2019-0004).
* Rename VerificationError variants per review comments.
* Add missing Clone impl to VerificationError.
2020-08-05 22:26:31 +12:00
therealyingtong
0a47a9dbea
Pass rseed to Prover
2020-08-04 16:40:53 +08:00
therealyingtong
895e251793
Fix tests
2020-07-31 22:40:48 +08:00