Commit Graph
100 Commits
Author SHA1 Message Date
Jack Grigg 70420ff34f Test calling z_mergetoaddress to merge notes while a note merge is ongoing 2018-04-10 00:44:26 -07:00
Jack Grigg 67b849d7d4 Fix z_importviewingkey startHeight parameter
Closes #2937.
2018-04-10 00:39:52 -07:00
Jack Grigg 132a255000 Add link to Overwinter info page 2018-03-13 00:47:10 +00:00
Jack Grigg a6ae8f55ae Split declaration and definition of SPROUT_BRANCH_ID constant
Fixes an initialization-order-fiasco error detected by ASan:
https://ci.z.cash/#/builders/7/builds/149
2018-03-09 09:42:20 +00:00
Jack GriggandRobert Seacord c4379e3a22 Add configure flags for enabling ASan/UBSan and TSan
Co-authored-by: Robert Seacord <rcseacord@gmail.com>
2018-03-01 16:04:42 +00:00
Jack Grigg 326fc65e66 Add environment variable for setting ./configure flags in zcutil/build.sh
Closes #2066.
2018-03-01 16:04:12 +00:00
Jack Grigg 25b080a33b make-release.py: Updated release notes and changelog for 1.0.15. 2018-02-28 16:58:19 +00:00
Jack Grigg f58b1536b4 make-release.py: Updated manpages for 1.0.15. 2018-02-28 16:58:10 +00:00
Jack Grigg 1d6f7acf4d make-release.py: Versioning changes for 1.0.15. 2018-02-28 16:44:07 +00:00
Jack Grigg 138cf77004 Overwinter release notes and testnet activation height
Closes #2957.
2018-02-28 13:19:36 +00:00
Jack GriggandBrad Miller 704b76358d Use block hash comparison for consistency check when loading block index
The Equihash check caused block index loading to take around 38x longer.
However, we don't need to check it directly, as the only paths to writing a
block header to disk already go through a proof-of-work check (e.g. receiving a
block over the network). By forcing the block header inside the CBlockIndex to
be re-serialized, we retain the benefits of the consistency check without the
overhead at startup.

Co-authored-by: Brad Miller <brad@z.cash>
2018-02-27 00:47:56 +00:00
Jack Grigg 34ce29b3ee make-release.py: Updated release notes and changelog for 1.0.15-rc1. 2018-02-24 04:20:05 +00:00
Jack Grigg 7d0c1df409 make-release.py: Updated manpages for 1.0.15-rc1. 2018-02-24 04:17:59 +00:00
Jack Grigg 1dd95be4a9 make-release.py: Versioning changes for 1.0.15-rc1. 2018-02-24 04:08:36 +00:00
Jack Grigg 15ced9b153 wallet_mergetoaddress: Add additional syncs to prevent race conditions 2018-02-23 04:28:04 +00:00
Jack Grigg 713b366231 Regenerate sighash tests 2018-02-23 01:40:08 +00:00
Jack Grigg 50a90615af Document that consensus.chaintip != consensus.nextblock just before an upgrade 2018-02-22 14:01:43 +00:00
Jack Grigg 4c3d2b3bbe Check upgrade status in wallet_overwintertx RPC test 2018-02-22 13:44:40 +00:00
Jack Grigg 2bda6a9b22 Add z_mergetoaddress to release notes 2018-02-22 13:23:25 +00:00
Jack Grigg 553a5c1ab2 Gate z_mergetoaddress as an experimental feature 2018-02-22 13:23:25 +00:00
Jack Grigg 6e9c7629af Implement z_mergetoaddress for combining UTXOs and notes
Closes #2493.
2018-02-22 13:23:18 +00:00
Jack Grigg 44488400c1 Check Equihash solution when loading block index 2018-02-21 22:37:19 +00:00
Jack Grigg ed9aa2b62a Add branch IDs for current and next block to getblockchaininfo
Closes #2974.
2018-02-21 21:18:03 +00:00
Jack Grigg bdbe8e8591 Extend CWallet::GetFilteredNotes to enable filtering on a set of addresses 2018-02-20 13:19:07 +00:00
Jack Grigg 4553901850 Use v3 transactions with caching for validatelargetx benchmark 2018-02-20 04:22:22 +00:00
Jack Grigg 818b94f94f Make number of inputs configurable in validatelargetx test 2018-02-20 04:22:22 +00:00
Jack Grigg a3353b4e01 Regenerate SignatureHash tests 2018-02-20 04:22:21 +00:00
Jack Grigg d55e5e778b Cleanup: Wrap function arguments 2018-02-20 04:22:21 +00:00
Jack Grigg be12669982 Add consensus branch ID parameter to SignatureHash, remove SigVersion parameter
We do not need to be able to calculate multiple SignatureHash versions for a
single transaction format; instead, we use the transaction format to determine
the SigVersion.

The consensus branch ID *does* need to be passed in from the outside, as only
the caller knows the context in which the SignatureHash is being calculated
(ie. mempool acceptance vs. block validation).

JoinSplit signature verification has been moved into ContextualCheckTransaction,
where the consensus branch ID can be obtained.

The argument to the sign command for zcash-tx has been modified to take a height
in addition to the optional sigtype flags.
2018-02-20 04:22:20 +00:00
Jack Grigg e005ff83ab Remove P2WPKH and P2WSH from signing logic
Separated from the previous commit for ease of review.
2018-02-20 04:22:19 +00:00
Jack Grigg 34a64fe0a2 Remove mempool transactions which commit to an unmineable branch ID 2018-02-20 02:57:44 +00:00
Jack Grigg cb580c7241 Add rollback limit to block index rewinding
This will prevent users from starting their nodes if they switch between
software versions that implement different network upgrades. It will also
prevent users from using the testnet if they have more than MAX_REORG_LIMIT
post-upgrade blocks, and the upgrade point is shifted in a newer software
version.
2018-02-19 16:32:45 +00:00
Jack Grigg 57e6ecda5a Implement roll-back limit for reorganisation
Closes #713.
2018-02-19 16:32:42 +00:00
Jack Grigg 46d3762a90 Update SignatureHash tests for transaction format changes
The test uses randomly-generated transactions, some of which fell outside the
actual consensus rules.
2018-02-16 10:10:35 -08:00
Jack Grigg cad27eb77f Update quote from ZIP 200 2018-02-06 23:18:56 +00:00
Jack Grigg 5009136dc3 Change UI/log status message for block rewinding 2018-02-06 22:49:08 +00:00
Jack Grigg 828940b163 Use a boost::optional for nCachedBranchId
This enables us to distinguish between it being unset vs. being set to zero.
2018-02-06 22:42:18 +00:00
Jack Grigg 149d69e36b Add method for fetching the next activation height after a given block height 2018-02-04 22:58:42 +00:00
Jack Grigg 548683767c Add Overwinter to upgrade list 2018-02-04 22:58:42 +00:00
Jack Grigg 9e851450ab Adjust rewind logic to use the network upgrade mechanism 2018-02-04 22:58:42 +00:00
Jack Grigg f52da91139 Test network upgrade logic
Also demonstrates how to specify a network upgrade.
2018-02-04 22:58:39 +00:00
Jack Grigg b174b7e330 Allow changing network upgrade parameters on regtest
Derived from upstream commit 56c87e92110f05d7452f1e85bf755246ffc77206:
    Allow changing BIP9 parameters on regtest
2018-02-04 22:57:59 +00:00
Jack Grigg 780f526bc9 Network upgrade activation mechanism 2018-02-04 22:57:56 +00:00
Jack Grigg 35d64c1fde Use JoinSplitTestingSetup for Boost sighash tests
Symptom: When running all tests, the test suite passed. But when running the
sighash tests on their own, the test suite segfaulted.

Cause: The sighash tests depend on the proving parameters being accessible, but
BasicTestingSetup doesn't load them.
2018-01-31 15:31:51 +00:00
Jack Grigg 9e8f1d09ca zkey_import_export: Synchronize mempools before mining
Resolves a race condition that caused the RPC test to intermittently fail.

Closes #2892.
2018-01-22 21:10:57 +00:00
Jack Grigg 40ebf08ff8 Add viewing key prefix to regtest parameters 2018-01-22 15:32:52 +00:00
Jack Grigg ff145dfe32 Add missing namespace for boost::get 2018-01-22 10:30:41 -05:00
Jack Grigg 6bfa0fb79d make-release.py: Updated release notes and changelog for 1.0.14. 2018-01-03 23:54:16 +01:00
Jack Grigg d3c1949cf1 make-release.py: Updated manpages for 1.0.14. 2018-01-03 23:54:00 +01:00
Jack Grigg 2091cf23ae make-release.py: Versioning changes for 1.0.14. 2018-01-03 23:44:51 +01:00
Jack Grigg 44e5b42751 Check chainValueZat when checking value pool monitoring 2018-01-03 23:41:53 +01:00
Jack Grigg 2941e075a3 Enable Bash completion for -exportdir 2018-01-02 16:41:41 +01:00
Jack Grigg 5cbf238b96 Update release process 2017-12-22 10:13:40 +00:00
Jack Grigg ea6ec713ea make-release.py: Updated release notes and changelog for 1.0.14-rc1. 2017-12-22 10:12:41 +00:00
Jack Grigg f059d52038 make-release.py: Updated manpages for 1.0.14-rc1. 2017-12-22 10:12:30 +00:00
Jack Grigg 275f21ad4b make-release.py: Versioning changes for 1.0.14-rc1. 2017-12-22 09:59:01 +00:00
Jack Grigg 5d9cf8ae23 Fix pyflakes warnings in zkey_import_export RPC test 2017-12-21 18:19:42 +00:00
Jack Grigg 5d8ab776f0 Exclude beta and RC release notes from author tallies
(except for pre-1.0.0, per previous commit)
2017-12-21 00:29:41 +00:00
Jack Grigg fd08c50247 Regenerate previous release notes to conform to new format
Pre-1.0.0 release notes are excluded, as they were operating under a different
RC timeline, and make more sense separated.
2017-12-21 00:29:41 +00:00
Jack Grigg d436db662c release-notes.py: Remove unnecessary parameter 2017-12-21 00:29:41 +00:00
Jack Grigg 2b38d11eda Create release notes starting from the previous non-beta non-RC release 2017-12-21 00:29:33 +00:00
Jack Grigg 5221220c6c Add release notes for incoming viewing keys 2017-12-20 18:14:40 +00:00
Jack Grigg c4c7c6630b Scope the ECDSA constant sizes to CPubKey / CKey classes 2017-12-20 17:28:13 +00:00
Jack Grigg 2bbfe6c4e8 Add cautions to z_getbalance and z_gettotalbalance help text about viewing keys 2017-12-20 11:24:51 +00:00
Jack Grigg bec2235148 Cleanup: Add braces for clarity 2017-12-20 11:18:59 +00:00
Jack Grigg 7b8d4f87ec Modify zcrawkeygen RPC method to set "zcviewingkey" to the viewing key
The "zcviewingkey" field has never been documented before, and the method itself
is deprecated; this just ensures it is consistent with the rest of the RPC.
2017-12-20 00:46:41 +00:00
Jack Grigg 44e37656bf Add watch-only support to Zcash RPC methods
Balance totals do not include spends linked to viewing key addresses, as
nullifiers cannot be calculated and therefore spends cannot be detected.
2017-12-20 00:46:37 +00:00
Jack Grigg 9a2b8ae57f Update wallet logic to account for viewing keys
The wallet code previously assumed that an unlocked wallet would always
have a spending key associated with a note decryptor. Viewing keys break
this assumption.
2017-12-20 00:46:37 +00:00
Jack Grigg e85b33a52e Add RPC methods for exporting/importing viewing keys 2017-12-20 00:46:37 +00:00
Jack Grigg 167cd33374 Implement viewing key storage in the wallet 2017-12-20 00:46:37 +00:00
Jack Grigg 49cf707d2c Add Base58 encoding of viewing keys 2017-12-20 00:46:33 +00:00
Jack Grigg e365ca1c53 Remove nSproutValue TODO from CDiskBlockIndex
Block indices are flushed to disk when they are marked as dirty, and this
happens via enough distinct pathways that it would be sufficiently complex to
update nSproutValue via all of them. Thus it is necessary to be able to
serialize "no value" for writes by upgraded clients.
2017-12-16 10:01:26 +00:00
Jack Grigg 9d0c70e9e7 Clarify operator precedence in serialization of nSproutValue 2017-12-15 18:36:05 +00:00
Jack Grigg 0100c79405 Add Rust and Proton to configure options printout 2017-12-15 13:03:33 +00:00
Jack Grigg d66bf190cb Apply -fstack-protector-all to libsnark 2017-12-15 10:02:54 +00:00
Jack Grigg e319633435 Add Sprout value pool to getblock and getblockchaininfo 2017-12-14 22:06:15 +00:00
Jack Grigg ad6a36ad02 Track net value entering and exiting the Sprout circuit
Delta values will be stored for new blocks; old blocks can be filled in by
re-indexing. The net value currently in the Sprout circuit is only calculated
when delta values for all previous blocks are present.
2017-12-14 22:06:11 +00:00
Jack Grigg 13933e4c13 Factor out common logic from CZCPaymentAddress and CZCSpendingKey 2017-12-04 17:17:18 +00:00
Jack Grigg aa666c9673 Implement viewing key storage in the keystore 2017-12-04 17:17:18 +00:00
Jack Grigg 642a1caf93 ViewingKey -> ReceivingKey per zcash/zips#117 2017-12-04 17:17:18 +00:00
Jack Grigg 704337b2b8 Move Zcash flags into configure.ac 2017-12-01 14:10:18 +00:00
Jack Grigg c1fcdd01dd Change --enable-werror to apply to all warnings, use it in build.sh 2017-12-01 14:10:18 +00:00
Jack Grigg ad96d74afe build: Split hardening/fPIE options out in Zcash-specific binaries 2017-12-01 14:10:11 +00:00
Jack Grigg c6b39fbbd6 Include endian-ness compatibility layer in Equihash implementation 2017-11-29 17:28:44 +00:00
Jack Grigg d3096198c8 [libsnark] Use POSIX-compliant ar arguments 2017-11-29 17:28:44 +00:00
Jack Grigg daad2c2736 Check if OpenMP is available before using it 2017-11-29 17:28:44 +00:00
Jack Grigg 9635679cba Replace "install -D" with "mkdir -p && install" 2017-11-29 17:26:47 +00:00
Jack Grigg c16188cc6d Remove manual -std=c++11 flag
This is handled by autoconf now.
2017-11-29 17:24:59 +00:00
Jack Grigg e4cd341260 Replace hard-coded defaults for HOST and BUILD with config.guess 2017-11-29 15:25:14 +00:00
Jack Grigg 7fa05b29b6 Use g-prefixed coreutils commands if they are available
If they are present on the system, it means that the non-prefixed ones are not
necessarily the versions we want, while the prefixed ones are highly likely to
be the ones from GNU Coreutils.
2017-11-29 15:24:21 +00:00
Jack Grigg 7a448d3fa5 Bump secp256k1 subtree 2017-11-28 16:43:13 +00:00
Jack Grigg cde23ac085 Squashed 'src/secp256k1/' changes from 84973d3..6ad5cdb
6ad5cdb Merge #479: Get rid of reserved _t in type names
d1dc9df Get rid of reserved _t in type names
0b70241 Merge #474: Fix header guards using reserved identifiers
ab1f89f Merge #478: Fixed multiple typos
8c7ea22 Fixed multiple typos
abe2d3e Fix header guards using reserved identifiers
f532bdc Merge #459: Add pubkey prefix constants to include/secp256k1.h
cac7c55 Merge #470: Fix wnaf_const documentation
768514b Fix wnaf_const documentation with respect to return value and number of words set
b8c26a3 Merge #458: Fix typo in API documentation
817fb20 Merge #440: Fix typos
12230f9 Merge #468: Remove redundant conditional expression
2e1ccdc Remove redundant conditional expression
bc61b91 add pubkey prefix constants to include/secp256k1.h
b0452e6 Fix typo in API documentation
4c0f32e Fix typo: "Agressive" → "Aggressive"
73aca83 Fix typo: "exectured" → "executed"

git-subtree-dir: src/secp256k1
git-subtree-split: 6ad5cdb42a1a8257289a0423d644dcbdeab0f83c
2017-11-28 16:42:12 +00:00
Jack Grigg 4b9eb663bf make-release.py: Updated release notes and changelog for 1.0.13. 2017-11-20 12:31:53 +00:00
Jack Grigg 404de74fc6 make-release.py: Updated manpages for 1.0.13. 2017-11-20 12:31:33 +00:00
Jack Grigg 0523d21d22 make-release.py: Versioning changes for 1.0.13. 2017-11-20 12:23:45 +00:00
Jack Grigg 48ea914cd0 make-release.py: Updated release notes and changelog for 1.0.13-rc2. 2017-11-17 18:01:08 +00:00
Jack Grigg 562b55bec1 make-release.py: Updated manpages for 1.0.13-rc2. 2017-11-17 18:00:32 +00:00
Jack Grigg e70c8d2ea3 make-release.py: Versioning changes for 1.0.13-rc2. 2017-11-17 17:49:28 +00:00
Jack Grigg 051698a05c Add the tar-pax option to automake
This enables the tarball generated by "make dist" to contain file names longer
than 99 characters.
2017-11-16 22:37:38 +00:00
Jack Grigg fee8835388 Mark libsnark includes as library includes 2017-11-15 16:49:10 +00:00