Commit Graph

16582 Commits

Author SHA1 Message Date
str4d 606e5ed134
Merge pull request #6055 from str4d/wallet-updatedtransaction-softlock-fix
Move "previous coinbase" UI monitoring into ThreadNotifyWallets
2022-07-06 17:26:15 +01:00
str4d 904528997a
Merge pull request #6054 from nuttycom/bug/6044-null_block_pos
Ensure that the node has position information before attempting to read block data.
2022-07-06 15:52:42 +01:00
Jack Grigg e8a7b7253a Move "previous coinbase" UI monitoring into ThreadNotifyWallets
When the wallet notification logic was moved into a separate thread,
most wallet notifications were transferred across. This one was missed,
and it is particularly pernicious: all it does is ask the wallet to tell
the UI that a particular transaction had been updated. We don't actually
_have_ any UI connected in zcashd, but there is a side-effect: the
callback blocks on acquiring `cs_wallet`, in the main thread that
already holds `cs_main`. For particularly large wallets, this can cause
the main thread to block on `ThreadNotifyWallets`, which in turn means
that anything waiting on `cs_main` (e.g. RPC calls) is blocked.

We solve this by moving the callback into `ThreadNotifyWallets`. We
don't technically need it for `zcashd`, but we maintain it in case a
downstream fork has reconnected a UI.
2022-07-06 00:21:49 +00:00
sasha 903f5f9269
Merge pull request #6053 from zcash/release-v5.1.0-rc1
Release v5.1.0-rc1
2022-07-05 17:11:20 -07:00
Kris Nuttycombe d9c5326f17 Ensure that the node has position information before attempting to read block data. 2022-07-05 17:24:39 -06:00
sasha eb43bc5c02 make-release.py: Updated release notes and changelog for 5.1.0-rc1. 2022-07-05 22:25:25 +00:00
sasha 14b3c21f4a make-release.py: Updated manpages for 5.1.0-rc1. 2022-07-05 22:25:25 +00:00
sasha 1d996a080b make-release.py: Versioning changes for 5.1.0-rc1. 2022-07-05 22:11:55 +00:00
Jack Grigg 343ddc1752 qa: Add native_cxxbridge and rustcxx to update checker 2022-07-05 21:45:59 +00:00
Jack Grigg cb5a4acca9 Update release notes 2022-07-05 21:36:45 +00:00
Jack Grigg 2e6a6572ba qa: Postpone dependency updates 2022-07-05 20:43:26 +00:00
str4d 9d93dff4c8
Merge pull request #6048 from nuttycom/sapling-batch-validation
Use batch validation for Sapling proofs and signatures
2022-07-05 20:47:17 +01:00
Jack Grigg af59b2adb7 qa: Reformat for latest cargo-vet 2022-07-05 18:22:57 +00:00
Jack Grigg 90f13641b9 Use batch validation for Sapling proofs and signatures 2022-07-05 18:21:51 +00:00
Jack Grigg 5d9ae0ba63 bench: Add `ConnectBlock` benchmark using block 1723244
This block has 470 transactions, containing a total of 452 Sapling
spends and 1862 outputs, making for a nice benchmark of verification
performance.
2022-07-04 17:32:42 +00:00
str4d 466ea88539
Merge pull request #6000 from ebfull/enablezip216forall
Enable ZIP 216 for blocks prior to NU5 activation
2022-07-04 15:49:26 +01:00
Sean Bowe af2b3d35a4 Update minimum chain work and set NU5 activation block hash for mainnet
The chain work is taken from mainnet block 1710000.
2022-07-03 22:38:32 -06:00
Sean Bowe ec3d2e5dff Address clippy lints. 2022-07-03 22:38:32 -06:00
Sean Bowe cc78bf755f cargo fmt 2022-07-03 22:38:32 -06:00
Sean Bowe 1677ab63aa Remove the old Sapling verification FFI APIs. 2022-07-03 22:38:32 -06:00
Sean Bowe 458e773792 Enable ZIP 216 for blocks prior to NU5 activation 2022-07-03 22:38:32 -06:00
Sean Bowe 6c51df37b4 Introduce new Sapling verification API via cxx and switch consensus rules to use the new API. 2022-07-03 22:38:32 -06:00
Kris Nuttycombe a2d0f152fe
Merge pull request #6046 from nuttycom/bug/disabled_orchard_batch_validation2
Replace "Disabled" Orchard AuthValidator with std::nullopt
2022-07-03 22:38:03 -06:00
Kris Nuttycombe 4600079618 Replace "Disabled" Orchard AuthValidator with std::nullopt 2022-07-03 17:12:57 -06:00
Kris Nuttycombe 2e6a251de7
Merge pull request #5947 from nuttycom/deprecation/gettransaction_vjoinsplit
Deprecate vjoinsplit attribute of gettransaction result.
2022-07-01 12:03:27 -06:00
Kris Nuttycombe 74c4818d8f
Merge pull request #6041 from nuttycom/revert/feature-clock_capability
Revert "Merge pull request #6037 from nuttycom/feature/clock_capability"
2022-07-01 12:03:02 -06:00
Kris Nuttycombe 733289afa3 Revert "Merge pull request #6037 from nuttycom/feature/clock_capability"
This reverts commit 93ae72c17e, reversing
changes made to f3f1f81302.
2022-07-01 10:15:41 -06:00
Daira Hopwood 93ae72c17e
Merge pull request #6037 from nuttycom/feature/clock_capability
Add a clock for testing with an offset from the system clock.
2022-07-01 16:01:35 +01:00
str4d f3f1f81302
Merge pull request #6022 from ebfull/shielded-req-debug
Make shielded requirements error "debug" level rather than an error.
2022-07-01 15:53:27 +01:00
str4d ff82bbf408
Merge pull request #5987 from therealyingtong/orchard-getrawtransaction
Add Orchard details to getrawtransaction
2022-07-01 15:53:14 +01:00
Kris Nuttycombe 59cabff22d Deprecate the `vjoinsplit` field of `gettransaction` results.
Author: Kris Nuttycombe <kris@nutty.land>
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-07-01 15:47:16 +01:00
Kris Nuttycombe 3b653fca31 Note that `gettransaction` doesn't provide shielded info in RPC help.
Fixes #5682
2022-07-01 15:43:59 +01:00
Sean Bowe aa20e4399f Make shielded requirements error "debug" level rather than an error. 2022-07-01 13:58:44 +01:00
Daira Hopwood 181710ee58 Apply cosmetic suggestions 2022-07-01 13:51:22 +01:00
Kris Nuttycombe 825ca45341 Apply suggestions from code review
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2022-07-01 13:51:22 +01:00
Kris Nuttycombe 88401bc25e Add a clock for testing with an offset from the system clock.
This change improves clock management for zcashd by ensuring
that all clock methods (obtaining seconds, milliseconds, and
microseconds since the epoch) agree under testing conditions
using `-mocktime`, and also adds a feature that allows tests
to specify an offset to the system clock; this is useful to
allow comprehensive testing of the "timejacking attack mitigation"
consensus rules.
2022-07-01 13:51:22 +01:00
therealyingtong da15ada52e Test getrawtransaction in wallet_orchard.py 2022-07-01 08:50:34 -04:00
therealyingtong acd45224bf Use orchard_bundle ffi in getrawtransaction.
Co-authored-by: Jack Grigg <jack@electriccoin.co>
2022-07-01 08:50:34 -04:00
therealyingtong d18fcc7092 Add orchard_bundle FFI.
Co-authored-by: Jack Grigg <jack@electriccoin.co>
2022-07-01 08:50:34 -04:00
str4d bb64e895c2
Merge pull request #6014 from daira/upgrade-metrics
Upgrade to metrics 0.19.x and metrics-exporter-prometheus 0.10.x
2022-07-01 13:41:05 +01: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
Daira Hopwood a119564abf
Merge pull request #6023 from str4d/orchard-batch-validation
Batch-verify Orchard proofs
2022-07-01 08:04:03 +01:00
Jack Grigg eb9dd95f69 test: Load the proof verification keys in Boost tests
The change to use Orchard batch validation now requires the Orchard
verifying key to be available even if there are no items in the batch.
For simplicity, we now load all verifying keys in the Boost tests.
2022-07-01 01:24:15 +00:00
Jack Grigg d46e18f955 Batch-validate Orchard proofs as well as Orchard signatures 2022-07-01 01:24:15 +00:00
Jack Grigg 0430fdf20d Upgrade to `orchard 0.2.0` 2022-07-01 01:24:15 +00:00
Jack Grigg 107cb9636c cargo vet fmt 2022-07-01 01:24:15 +00:00
Jack Grigg 079ff9721f bench: Add `ConnectBlock` benchmark using block 1708048
This block has 88 Orchard transactions, containing a total of 552
actions, making for a nice benchmark of verification performance.
2022-07-01 01:24:15 +00:00
Jack Grigg d3f249e0ce bench: Support multiple trees in FakeCoinsViewDB
Blocks from mainnet aren't guaranteed to only contain transactions using
the same anchor, so we need to support sideloading multiple trees.
2022-07-01 01:24:15 +00:00
Jack Grigg e6d81e0fc1 qa: Generalise `extract_benchmark_data` in `performance-measurements.sh` 2022-07-01 01:24:15 +00:00
Jack Grigg eadfc028d6 qa: Fix `qa/zcash/create_benchmark_archive.py` script 2022-07-01 01:24:15 +00:00