Commit Graph

16589 Commits

Author SHA1 Message Date
Jack Grigg 13d1a3fc6a make-release.py: Versioning changes for 5.1.0. 2022-07-08 02:52:02 +00:00
Jack Grigg 884c149c64 qa: Postpone latest `cxx` update 2022-07-08 02:51:43 +00:00
Jack Grigg c1b40ec2a8 Add missing release note entries for 5.1.0 2022-07-08 02:47:34 +00:00
str4d b5e3c0b3fe
Merge pull request #6060 from str4d/comment-out-slow-assertion
wallet: Comment out slow assertion
2022-07-08 03:29:13 +01:00
Jack Grigg acfd757e58 wallet: Comment out slow assertion
This particular assertion has a large fixed cost per block on current
mainnet (and has done since shortly after NU5 activation), but we
haven't figured out what is causing the performance hit. It is only a
consistency check, and commenting it out decreases single-account rescan
times by around 6% on a Ryzen 9 5950X.

Part of zcash/zcash#6052.
2022-07-08 00:22:51 +00:00
ebfull 0766e22bdd
Merge pull request #6057 from str4d/gbt-skip-proofs-and-signatures
miner: Disable proof and signature checks in CreateNewBlock
2022-07-06 15:25:01 -06:00
Jack Grigg 5230c9f2f4 miner: Disable proof and signature checks in CreateNewBlock
The only source of transactions for `CreateNewBlock` is the mempool, and
every transaction added to the mempool goes through `AcceptToMemoryPool`
which checks proofs and signatures.

We maintain the ability to enable these checks in `TestBlockValidity`
because it is also used in an (undocumented) `getblocktemplate` mode to
check a proposed block (minus PoW), where we cannot assume the
transactions are valid.

Co-authored-by: Kris Nuttycombe <kris@nutty.land>
2022-07-06 19:38:15 +00:00
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