Commit Graph

132 Commits

Author SHA1 Message Date
Jack Grigg 0e74a9f40f depends: Rust 1.69.0 2023-04-20 21:58:08 +00:00
Jack Grigg 716720775e Use published `zcash_primitives 0.11` and `zcash_proofs 0.11`
Closes zcash/zcash#6462.
2023-04-15 01:51:29 +00:00
Jack Grigg b3332c6273 depends: `cxx 1.0.94` 2023-04-13 17:01:03 +00:00
Jack Grigg 002ed29c72 Migrate to published `orchard 0.4`
Part of zcash/zcash#6462.
2023-04-12 21:26:37 +00:00
Kris Nuttycombe 43a0fe237e Update to use the `ff 0.13` dependency stack. 2023-04-03 16:33:06 -06:00
Jack Grigg 69ab270480 depends: `cxx 1.0.92` 2023-03-17 20:32:01 +00:00
Jack Grigg 7f35a0da5c Migrate to `zcash_primitives 0.10`
Closes zcash/zcash#6398.
2023-03-17 00:09:45 +00:00
Jack Grigg 56ee27ed7b depends: Update Rust to 1.68.0 2023-03-09 16:31:21 +00:00
Jack Grigg e775c13c4f depends: `cxx 1.0.91`
This also partially reverts zcash/zcash@d3b434eb0f
so we now check in a lockfile for `cxxbridge`.
2023-02-16 21:25:02 +00:00
Jack Grigg d01129e752 depends: Update Rust to 1.67.1 2023-02-16 15:45:29 +00:00
Jack Grigg 3c78835498 rust: Compile with ThinLTO
This should achieve similar performance gains to "fat" LTO (which we
were previously using) while taking substantially less time to run
(over 20s saved on a Ryzen 9 5950X).

Part of zcash/zcash#6065.
2023-02-06 18:43:51 +00:00
Jack Grigg e91fe01387 depends: Update cxx to 1.0.83 2023-01-13 00:33:13 +00:00
Jack Grigg 7b57138b92 clearscreen 2.0 2023-01-11 01:01:30 +00:00
Jack Grigg 7cf42562d3 zcash_primitives 0.9 2023-01-11 00:56:29 +00:00
Jack Grigg 93de2aae0e Place zcashd.debug.* metrics behind a -debugmetrics config option 2022-11-21 20:50:02 +00:00
Daira Hopwood 36a2541f64 Update authors of librustzcash to include Greg Pfeil.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-11-01 14:40:47 +00:00
Kris Nuttycombe 741e6b1108 Update to released versions of librustzcash crates. 2022-10-20 08:35:29 -06:00
Kris Nuttycombe 05110068d9 Update and/or postpone dependencies for 5.3.0 2022-10-19 10:09:03 -06:00
Jack Grigg 1f836859f3 depends: Update cxx to 1.0.78 2022-10-10 18:56:12 +00:00
Jack Grigg 3b9f7c2a69 rust: Update to `metrics 0.20` 2022-10-10 18:44:33 +00:00
Jack Grigg 0e3fc36a47 wallet: Correctly track heap usage of batch items
As of zcash/librustzcash#633, `SaplingDomain::IncomingViewingKey` now
allocates memory internally, and this memory persists as long as the
`BatchRunner` is alive. Now that we have decoupled the measurement of
heap usage for batch tasks from their internals, we can add bounds to
all of the generic parameters of `Batch` to enable correctly measuring
their actual heap usage.

Ported from zcash/librustzcash@913aa0a988.
2022-09-26 22:19:33 +00:00
Daira Hopwood e57e799170 Use prepared epks and ivks in trial decryption.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-09-23 22:31:28 +01:00
Jack Grigg d3b434eb0f depends: Update cxx to 1.0.76 2022-09-23 03:44:07 +00:00
Jack Grigg baf7d9e24a depends: Update Rust to 1.64.0 2022-09-23 02:27:01 +00:00
Daira Hopwood fe5faf94f2 Update librustzcash commit and adapt to changes in `DiversifierKey`.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-09-14 19:39:20 +01:00
Jack Grigg b05b1dafa6 rust: Migrate to latest `zcash_primitives` revision 2022-09-14 18:20:20 +00:00
Jack Grigg fd7cb4bb4a rust: Add mnemonic phrase inspection to `zcash-inspect` 2022-08-19 04:13:05 +00:00
Jack Grigg 8d82cee9c8 rust: Add `zcash-inspect` binary for inspecting Zcash data
Currently supports Zcash blocks, block headers, and transactions. Some
consensus rules are also checked, and a JSON context object can be
optionally passed to provide any necessary details for extra contextual
consensus checks.
2022-08-19 04:13:05 +00:00
Jack Grigg e27190d00a depends: Update Rust to 1.63.0 2022-08-11 15:51:57 +00:00
Jack Grigg 93422e8fe2 depends: Update Rust to 1.62.1 2022-08-10 22:57:46 +00:00
Daira Hopwood a227652d7d Update cxx to 1.0.72.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-07-25 14:57:19 +01:00
Daira Hopwood 7d1e14ac3d Use crossbeam-channel instead of std::sync::mpsc.
See https://github.com/zcash/zcash/pull/6088#issuecomment-1192806433 for rationale.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-07-22 19:34:50 +01:00
Jack Grigg 90f13641b9 Use batch validation for Sapling proofs and signatures 2022-07-05 18:21:51 +00:00
Daira Hopwood e584b1b43f Upgrade to metrics 0.19.x and metrics-exporter-prometheus 0.10.x.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-07-01 09:12:34 +01:00
Jack Grigg 0430fdf20d Upgrade to `orchard 0.2.0` 2022-07-01 01:24:15 +00:00
Jack Grigg 19c7742318 qa: `cargo vet init` 2022-06-09 14:50:23 +00:00
Jack Grigg ee23587268 depends: Add cxxbridge command to dependencies 2022-05-27 20:15:05 +00:00
Jack Grigg b31b1211cd depends: Add cxx crate to dependencies 2022-05-26 03:14:21 +00:00
Jack Grigg 1f1810c37d Name currently-unnamed threads that we can rename
After this, the only threads that aren't named are the LevelDB
background threads.
2022-05-14 00:07:34 +00:00
Jack Grigg 5fc38dd091 Migrate to `zcash_primitives 0.6` et al 2022-05-11 00:04:34 +00:00
Kris Nuttycombe 63e4addd9a Select Orchard anchors at `-orchardanchorconfirmations` depth.
This changes anchor selection and Orchard authentication path generation
to default to select anchors at a the depth specified by the
`-orchardanchorconfirmations` CLI argument, with a default anchor
selection depth of 10 blocks.

If the value of `minconf` used for a particular call to `z_sendmany` is
less than the the set number of Orchard anchor confirmations, `minconf`
will be used instead for the Orchard anchor confirmations depth,
so that the selected anchor will be certain to contain any notes
selected to be spent.

Fixes #5644
2022-05-04 14:16:43 -06:00
Alex Wied 61cd19a52d Cargo.toml: Rename hdwallet source
This change fixes the following build error on Nix:

error: source `https://github.com/nuttycom/hdwallet` defines source https://github.com/nuttycom/hdwallet?rev=9b4c1bdbe0517e3a7a8f285d6048a37d472ba3bc, but that source is already defined by `https://github.com/nuttycom/hdwallet.git`
note: Sources are not allowed to be defined multiple times.
make[2]: *** [Makefile:9325: cargo-build-bins] Error 101
2022-04-15 09:39:10 -04:00
Kris Nuttycombe 825d8e8781 Push back NU5 testnet release height to 1842420 2022-04-13 17:01:17 -06:00
Kris Nuttycombe 40487c079d Set NU5 testnet reactivation height. 2022-04-12 21:42:47 -06:00
Jack Grigg 8e805f5d75 depends: Remove direct `tokio` dependency
We still depend on it indirectly, but we don't use it directly anymore
since we upstreamed our patch to `metrics-exporter-prometheus`.

`thiserror` is also only used by the wallet tool, so has been reordered
accordingly.
2022-04-09 15:06:29 +00:00
Jack Grigg c784d7f480 depends: Remove `hyper 0.14.2` pin
`hyper 0.14.18` stops building the C libraries by default (after opt-in
support was added via a new flag in nightly Cargo), which means we no
longer have the problem of the `cdylib` build requiring a linker to be
hooked up to the Rust build when all we want is a `staticlib`.
2022-04-09 14:57:49 +00:00
Kris Nuttycombe f86a65d7cb Make Orchard `finalState` serialization format match Sapling.
For consistency, we serialize the `finalState` field in the
same (sparse) encoding as Sapling and Sprout use. In the future
we may want to update this to the dense encoding that
incrementalmerkletree::bridgetree::Frontier uses, but that's not
necessary for the moment.
2022-04-08 19:48:40 -06:00
Kris Nuttycombe 63d13a437f Update to orchard-0.1.0-beta.3, incrementalmerkletree 0.3.0-beta.2, secp256k1-0.21 2022-04-06 17:48:49 -06:00
Kris Nuttycombe 6fbcba641d Fix a bug in initialization of the Orchard wallet after NU5 activation.
When initializing a new Orchard wallet after NU5 activation, it is
not valid to start from the empty note commitment tree; instead,
the note commitment tree needs to be initialized from the state of
the global Orchard Merkle frontier.

In addition, this change necessitates a change to how rewinds work,
such that in a rollback scenario with a newly initialized wallet
that does not have sufficient checkpoints to fully satisfy a requested
rewind, the rewind is allowed to proceed so long as it does not
invalidate any persisted witness data.
2022-04-04 13:05:42 -06:00
Kris Nuttycombe a852eb223b Update incrementalmerkletree version to fix GC bug & use updated API.
This also modifies the serialized form of the wallet's incremental
merkle tree. This will require a complete reindex for testnet wallets.
2022-03-31 10:52:48 -06:00