Commit Graph

13811 Commits

Author SHA1 Message Date
Homu b6547929c9 Auto merge of #4593 - str4d:proofverifier-refactor, r=str4d
Refactor ProofVerifier

`ProofVerifier` was previously used to conditionally verify pre-Sapling Sprout
proofs (based on `ProofVerifier::Strict` or `ProofVerifier::Disabled` being
used), but hybrid Sprout proofs bypassed it (so were being verified multiple
times during block verification), and once `libsnark` was removed in
zcash/zcash#4060 `ProofVerifier::check` was doing nothing.

This PR refactors `ProofVerifier`, moving it out of the `libzcash` compilation
unit (so that it can depend on `primitives/transaction.h`), and moving Sprout
verification from `JSDescription::Verify` to `ProofVerifier::VerifySprout`.
Verification-skipping for Sprout proofs is re-introduced.

Additionally, the `ZCJoinSplit` global is removed from the codebase, and
`ZCJoinSplit::prove` is converted into a static function. We load the hybrid
Sprout parameters dynamically at proving time within the Rust code, and no
longer require a C++ global for any proving parameters.

As a side-effect, `libzcashconsensus.la` building with `--with-libs` is fixed,
as `primitives/transaction.cpp` no longer depends on `librustzcash.h`.
2020-08-07 12:16:59 +00:00
Jack Grigg 3855cf8be7 test: Remove obsolete TransactionBuilder test
We no longer pass Sprout parameters into the transaction builder, so
there's no error to test for.
2020-08-07 12:37:10 +01:00
Homu 022c3a4c6d Auto merge of #4567 - oxarbitrage:issue4537, r=daira
Build BDB utilities

To install the binaries we need to build with just `install` instead of `install_lib` and `install_include`, this will install everything.

Then the binaries will be moved to a folder in `zcutil` directory. We can just leave them in staging however the user might have a hard time to find them there.

Closes https://github.com/zcash/zcash/issues/4537
2020-08-07 11:11:47 +00:00
Daira Hopwood 45b2a612eb
Update Makefile.am
zcutil/bin should be cleaned by `make distclean`, not `make clean`.

Co-authored-by: str4d <thestr4d@gmail.com>
2020-08-07 11:03:55 +01:00
Homu d6f527a88f Auto merge of #4650 - teor2345:patch-1, r=daira
Fix a comment typo in pow.cpp

*Documentation and testing not required: comment-only change.*
2020-08-06 10:32:11 +00:00
teor 5919464919
Fix a comment typo in pow.cpp 2020-08-06 19:03:52 +10:00
Homu 67ab09ae43 Auto merge of #4646 - defuse:bump-dependency-update-deadlines, r=str4d
Add new dependencies to updatecheck.py; extend the postponement deadline by a month
2020-08-04 13:06:13 +00:00
Taylor Hornby 902bf838af Add new dependencies to updatecheck.py, add a flag we can use to have our CI test it. 2020-08-03 15:01:01 -06:00
Taylor Hornby 88082c4a56 Extend deadline for postponing dependency updates 2020-08-03 15:00:22 -06:00
Homu 4e3c04c876 Auto merge of #4588 - nuttycom:remove_amqp, r=str4d
Remove AMQP code and Proton library dependencies & flags
2020-07-31 21:47:52 +00:00
Kris Nuttycombe 4dd0647c1c Remove Proton license from contrib/debian/copyright 2020-07-31 13:08:19 -06:00
Kris Nuttycombe 0391809da1 Remove amqp code and Proton library depenencies & flags. 2020-07-31 13:08:18 -06:00
Homu bded4ca502 Auto merge of #4583 - oxarbitrage:issue4495, r=str4d
Check for config options that may be duplicated in the config file

`ReadConfigFile()` now enforces that only a subset of config options may be duplicated. CLI behaviour is unaltered.

Closes https://github.com/zcash/zcash/issues/4495
2020-07-31 15:59:13 +00:00
Homu 2589b2fcc5 Auto merge of #4614 - str4d:ctaes, r=str4d
Replace OpenSSL AES with ctaes-based version

Backported from upstream PR https://github.com/bitcoin/bitcoin/pull/7689.

This is backported primarily to remove merge conflicts for a subsequent
backport, and also helps us towards removing OpenSSL. Its actual usage
in wallet encryption would be replaced by a more modern construction
before we make wallet encryption a supported feature, but for now this
does not affect anyone using the experimental feature.
2020-07-31 00:14:40 +00:00
Jack Grigg fb2edcc352 Debian: Add copyright entries for ctaes and secp256k1 2020-07-30 05:57:00 +01:00
Daira Hopwood 63bfdad106 Fix a return status issue.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-07-29 14:28:54 +01:00
Homu f39e4dbaf1 Auto merge of #4627 - LarryRuane:issue4596-flush-wallet-db, r=str4d
flush witness cache (SetBestChain()) on clean shutdown

Closes #4596, follow-on to #4573. In addition to flushing witness data on shutdown, fix the RPC test that was preventing this change from being part of #4573.
2020-07-29 13:12:04 +00:00
Daira Hopwood 454fd23a90 Update .gitignore.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-07-29 13:31:19 +01:00
Daira Hopwood 499d9c222c zcutil/distclean.sh: remove BDB utility programs.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-07-29 13:31:19 +01:00
Alfredo Garcia 6abcf40a3e
add more allowed duplicates
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2020-07-29 08:45:02 -03:00
Homu 615efd2a52 Auto merge of #4584 - defuse:update-ignore, r=str4d
Block release when we haven't checked dependency updates for security fixes
2020-07-29 10:45:44 +00:00
Homu 24f3bcf275 Auto merge of #4623 - str4d:metrics-locking, r=str4d
metrics: Collect general stats before clearing screen

This prevents the metrics screen from flashing if locks are being held
by long-running processes, specifically cs_main during block validation.

We split up locking on cs_main and cs_vNodes to make obtaining the locks
easier, at the expense of potentially having slightly out-of-sync
statistics (which doesn't really matter, as all we are fetching from the
latter lock is the number of connected peers).
2020-07-29 09:33:07 +00:00
Homu 91cb52adc5 Auto merge of #4606 - str4d:safe-mode-alert-for-pre-heartwood-nodes, r=str4d
Send alert to put pre-Heartwood nodes into safe mode.

The alert targets nodes running protocol version <= 170010.
Heartwood-compatible nodes run protocol version >= 170011.
2020-07-29 07:59:59 +00:00
Homu b1b65121ae Auto merge of #4590 - cwsaunders:master, r=str4d
Update two dev tool files from Python 2 to Python 3
2020-07-29 06:45:45 +00:00
Homu e789632c32 Auto merge of #4640 - therealyingtong:v3.1.0-release-notes-update, r=str4d
Add Debian8 deprecation to release notes
2020-07-29 05:39:22 +00:00
ying tong f7b3a55505
Update doc/release-notes/release-notes-3.1.0.md
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2020-07-29 07:21:25 +08:00
therealyingtong b5ee15b781
Add Debian8 deprecation to release notes 2020-07-29 05:42:12 +08:00
Homu 65f0a4736a Auto merge of #4638 - therealyingtong:release-v3.1.0, r=daira
Release v3.1.0
2020-07-28 12:11:27 +00:00
therealyingtong 369c16ef44
Set APPROX_RELEASE_HEIGHT to 917000 and update release-notes-3.1.0.md 2020-07-28 07:57:58 +08:00
therealyingtong 228b17c9e0
make-release.py: Updated release notes and changelog for 3.1.0. 2020-07-28 07:02:06 +08:00
therealyingtong f25e86a460
make-release.py: Updated manpages for 3.1.0. 2020-07-28 07:02:06 +08:00
therealyingtong e4963385a4
make-release.py: Versioning changes for 3.1.0. 2020-07-28 06:54:02 +08:00
Homu d08883263f Auto merge of #4636 - daira:disable-mining-regression, r=daira
Fix "--disable-mining" build regression

closes #4634

Test by building with:
* `CONFIGURE_FLAGS="--disable-tests --disable-mining --disable-bench" zcutil/build.sh`
* `zcutil/distclean.sh`
* `CONFIGURE_FLAGS="--disable-mining" zcutil/build.sh`

After the second build, run `qa/zcash/full-test-suite.py`. Stop when it gets to the RPC tests, which will hang. The preceding parts of the test suite are all expected to pass.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-07-27 21:41:25 +00:00
Homu 162d5a50ee Auto merge of #4610 - ebfull:testnet-dev-fund, r=str4d
Add dev fund addresses and set activation height for testnet NU4 activation.
2020-07-27 09:05:53 +00:00
Daira Hopwood 40b9cbf0b1 Allow Equihash validation tests to be compiled with --disable-mining.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-07-25 16:33:02 +01:00
Daira Hopwood c99a00596f Fix --disable-mining build regression. closes #4634
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-07-25 15:41:39 +01:00
therealyingtong 283287ab5b
Use 51 Testnet Dev Fund addresses, and adjust the end heights.
Co-authored-by: Ying Tong Lai <yingtong@electriccoin.co>
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-07-25 09:45:30 +08:00
therealyingtong 62c3613816
Delay testnet activation height by one week 2020-07-24 08:15:35 +08:00
Homu de52eed974 Auto merge of #4628 - therealyingtong:block-903002-bug, r=str4d
Pass HistoryNode through Rust FFI as a C array

`std::array<T>` is guaranteed to store `T` contiguously. However, there is
no guarantee that `sizeof(std::array<unsigned char, N>) == N`, which
prevents us from interpreting `std::array<std::array<unsigned char, N>, 32>`
as `&[[u8; N]]` on the Rust side of the FFI.

Instead, we define `HistoryNode` as a struct wrapping a C array, which
(as checked by `static_assert`) contains no padding.

This is equivalent to 82fe37d22b, which
fixed this issue when passing a slice of `HistoryEntry`s from C++ to Rust;
the bug fixed here is writing `HistoryNodes` from Rust into C++ memory.
2020-07-23 22:40:42 +00:00
Kris Nuttycombe 04b4d42767 Zero-initialize HistoryNode values. 2020-07-23 16:24:48 -06:00
therealyingtong 13aa74aa45
Pass HistoryNode struct to librustzcash FFI 2020-07-21 17:56:47 +08:00
Larry Ruane a65ecaad54 flush wallet db (SetBestChain()) on clean shutdown 2020-07-20 20:04:48 -06:00
Jack Grigg 5d15ee1f22 metrics: Collect general stats before clearing screen
This prevents the metrics screen from flashing if locks are being held
by long-running processes, specifically cs_main during block validation.

We split up locking on cs_main and cs_vNodes to make obtaining the locks
easier, at the expense of potentially having slightly out-of-sync
statistics (which doesn't really matter, as all we are fetching from the
latter lock is the number of connected peers).
2020-07-18 23:35:19 +12:00
Homu d058568e0a Auto merge of #4617 - daira:release-notes-3.0.0-formatting, r=daira
Fix the formatting of the 3.0.0 release notes

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-07-17 20:18:26 +00:00
Homu 6631f218d3 Auto merge of #4616 - daira:4615/hashrate-display, r=daira
Use SI prefixes for hash rates on the metrics screen

fixes #4615
2020-07-17 19:11:36 +00:00
therealyingtong ab4d2ede40
Set PROTOCOL_VERSION to 170012 2020-07-18 00:29:03 +08:00
therealyingtong 8a4c51508a
Set Canopy testnet activation height to 1020500 2020-07-18 00:28:45 +08:00
Daira Hopwood f7c7c76bee Fix the formatting of the 3.0.0 release notes.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-07-17 15:15:06 +01:00
Daira Hopwood d9307ddd83 Add unit tests for DisplayDuration, DisplaySize, and DisplayHashRate.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-07-17 13:59:27 +01:00
Daira Hopwood 460a601e9b Metrics screen: display hash rates using SI prefixes rather than as powers of 2.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-07-17 13:56:33 +01:00