Commit Graph

121 Commits

Author SHA1 Message Date
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
therealyingtong bc33ba5a9f Update FFI to use scoped APIs for viewing keys and addresses 2022-03-30 08:30:27 -06:00
Jack Grigg 9e9f58b26f Merge branch 'master' into unify-nu5-consensus-changes 2022-03-23 02:57:16 +00:00
Jack Grigg 77a971fbc1 Migrate to latest `zcash/librustzcash` revision
This includes:
- `orchard =0.1.0-beta.3` which includes the final circuit changes.
- The new NU5 consensus branch ID.
- Updated ZIP 244 test vectors (which use the NU5 consensus branch ID).
2022-03-23 02:05:06 +00:00
Kris Nuttycombe 315392ce3b Add OrchardWallet::GetTxActions
This method detects and returns metadata for any notes belonging to the
wallet that are spent in the transaction. It also trial-decrypts the
Orchard outputs of a transaction using the wallet's incoming viewing
keys along a set of OVKs provided by the caller, and returns metadata
about the notes that were successfully decrypted.
2022-03-18 08:03:16 -06:00
Kris Nuttycombe 80324bc653 Merge remote-tracking branch 'upstream/master' into feature/wallet_orchard-merge_master 2022-03-17 16:52:49 -06:00
Kris Nuttycombe 4eda33f184 Serialize the Orchard note commitment tree to the wallet.
This adds serialization of Orchard note commitment trees
to `SetBestChain` and deserialization and loading of those
trees to wallet load.
2022-03-11 22:47:37 -07:00
Daira Hopwood cb2c89eedf Use the tracing crate for debugging.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-03-11 17:17:56 +00:00
Daira Hopwood 999b395360 Improve memory hygiene, and use -stdin to pass the recovery phrase to the child zcash-cli process.
Co-authored-by: Jack Grigg <str4d@electriccoin.co>
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-03-10 17:17:06 +00:00
Kris Nuttycombe 8bf99eaacc Merge remote-tracking branch 'upstream/master' into feature/wallet_orchard-merge_master 2022-03-09 22:17:49 -07:00
Kris Nuttycombe 237384cf2b Update incrementalmerkletree version 2022-03-07 18:32:58 -07:00
Daira Hopwood 6f5efcbb0f Improved error handling.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-03-07 18:39:23 +00:00