Commit Graph

11166 Commits

Author SHA1 Message Date
Jay Graber 71768555dd
Add upgrades field to RPC call getblockchaininfo
Closes #2785.

Co-authored-by: Jack Grigg <jack@z.cash>
2018-02-21 21:01:46 +00:00
Homu d4d2844829 Auto merge of #2463 - str4d:713-rollback-limit, r=str4d
Implement roll-back limit for reorganisation

Part of  #2905. Closes #713.
2018-02-20 15:17:22 -08:00
Maxwell Gubler f70cd24521 Fix syntax examples for z_importwallet and export 2018-02-20 16:46:12 -05:00
Jack Grigg bdbe8e8591
Extend CWallet::GetFilteredNotes to enable filtering on a set of addresses 2018-02-20 13:19:07 +00:00
Homu 8487be8360 Auto merge of #2903 - str4d:1408-sighash, r=str4d
Overwinter SignatureHash

Implements ZIP 143.

Includes code cherry-picked from the following upstream PRs:

- bitcoin/bitcoin#7276
- bitcoin/bitcoin#7976
- bitcoin/bitcoin#8118
- bitcoin/bitcoin#8149
  - Only amount validation and SignatureHash commits.
- bitcoin/bitcoin#8346
- bitcoin/bitcoin#8524

Part of #2074 and #2254. Closes #1408 and #2584.
2018-02-20 03:59:45 -08: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
Ariel 7245f32835
update SignatureHash according to Overwinter spec
with help from str4d
2018-02-20 04:22:21 +00:00
Ariel 132dc81f7d
add blake2b writer 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
Pieter Wuille 6514771a44
Rename to PrecomputedTransactionData 2018-02-20 04:22:20 +00:00
Nicolas DORIER 90285e7b81
Unit test for sighash caching
Zcash: Modified to use P2PKH.
2018-02-20 04:22:20 +00:00
Pieter Wuille f762d44973
Precompute sighashes
Original version by Nicolas Dorier. Precomputing version by Pieter Wuille.

Edited for Zcash by Ariel Gabizon and Jack Grigg
2018-02-20 04:22:20 +00:00
Jorge Timón 722d811f89
Mempool: Use Consensus::CheckTxInputs direclty over main::CheckInputs 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
Pieter Wuille 157a5d0d9c
BIP143: Signing logic 2018-02-20 04:22:19 +00:00
Pieter Wuille c86a1cb86e
BIP143: Verification logic
Includes simplifications by Eric Lombrozo.

Edited for Zcash merge by Ariel Gabizon.
2018-02-20 04:22:19 +00:00
Pieter Wuille 2d42e1a993
Refactor script validation to observe amounts
This is a preparation for BIP143 support.

Edited for Zcash merge by Ariel Gabizon.
2018-02-20 04:22:19 +00:00
Jonas Nick ffda7e01a5
Reduce unnecessary hashing in signrawtransaction 2018-02-20 04:22:18 +00:00
21E14 8cb98d9105
Remove obsolete reference to CValidationState from UpdateCoins. 2018-02-20 04:22:18 +00:00
Pieter Wuille 838e7a29cc
Report non-mandatory script failures correctly 2018-02-20 04:22:10 +00:00
Homu 49274558c6 Auto merge of #2940 - str4d:nu-activation-mempool-expiry, r=str4d
Mempool improvements, branch ID awareness

Whenever the local chain tip is updated, transactions in the mempool which commit to an
unmineable branch ID (for example, just before a network upgrade activates, where the
next block will have a different branch ID) will be removed.

Includes commits cherry-picked from the following upstream PRs:

- bitcoin/bitcoin#6654
  - Only the mempool index change.
- bitcoin/bitcoin#6776
- bitcoin/bitcoin#7020
- bitcoin/bitcoin#6915

Part of #2074.
2018-02-19 19:00:30 -08:00
Jack Grigg 34a64fe0a2
Remove mempool transactions which commit to an unmineable branch ID 2018-02-20 02:57:44 +00:00
Suhas Daftuar 233c9eb635
Fix removeForReorg to use MedianTimePast 2018-02-20 02:57:44 +00:00
Suhas Daftuar e52ba51bda
Don't call removeForReorg if DisconnectTip fails 2018-02-20 02:57:44 +00:00
Suhas Daftuar a4b2518068
Track coinbase spends in CTxMemPoolEntry
This allows us to optimize CTxMemPool::removeForReorg.
2018-02-20 02:57:44 +00:00
Matt Corallo fe5cef0555
removeForReorg calls once-per-disconnect-> once-per-reorg 2018-02-20 02:57:44 +00:00
Matt Corallo 5aa165d557
Make indentation in ActivateBestChainStep readable 2018-02-20 02:57:44 +00:00
Matt Corallo c944d161fd
Fix comment in removeForReorg 2018-02-20 02:57:43 +00:00
Matt Corallo f5b35d2305
Fix removal of time-locked transactions during reorg 2018-02-20 02:57:43 +00:00
Matt Corallo b0f8c83f95
Add failing test checking timelocked-txn removal during reorg 2018-02-20 02:57:40 +00:00
rofl0r 36d8b2efbe
fix build error due to usage of obsolete boost_system-mt
closes #2304 for real
2018-02-19 21:21:48 +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
Homu 8da60b127e Auto merge of #2958 - bitcartel:2906_extra_test, r=str4d
Add test to check malformed v1 transaction against Overwinter tx parser
2018-02-17 10:14:31 -08:00
Simon fa78211ed7 Add test to check malformed v1 transaction against Overwinter tx parser 2018-02-16 15:42:04 -08:00
Homu c6ffabb47f Auto merge of #2925 - bitcartel:2906_overwinter_tx_format, r=str4d
Overwinter transaction format

Implements ZIP 202.

Closes #2906.
2018-02-16 11:38:58 -08: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
Simon 072099d788 Implementation of Overwinter transaction format ZIP 202. 2018-02-16 10:10:15 -08:00
Homu d527116d46 Auto merge of #2923 - str4d:sighash-tests-env-bug, r=str4d
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-02-15 05:41:18 -08:00
Alex Morcos f41775b2c8
Implement helper class for CTxMemPoolEntry constructor
This is only for unit tests.
2018-02-09 18:35:25 +00:00
Pieter Wuille 934fd19744
Support -checkmempool=N, which runs checks on average once every N transactions 2018-02-09 18:35:25 +00:00
Ashley Holman e328fa32b3
TxMemPool: Change mapTx to a boost::multi_index_container
Indexes on:
- Tx Hash
- Fee Rate (fee-per-kb)
2018-02-09 18:35:25 +00:00
Homu e6850571dd Auto merge of #2898 - str4d:2286-nu-activation-mechanism, r=str4d
Network upgrade activation mechanism

Implements ZIP 200.

Integration with `CChainParams` inspired by https://github.com/bitcoin/bitcoin/pull/7575.

Includes block index rewinding logic cherry-picked from https://github.com/bitcoin/bitcoin/pull/8149.

Closes #2286. Part of #2905.
2018-02-07 02:33:42 -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
jc 15fb13f629
read hashReserved from disk block index 2018-02-04 21:40:14 -05:00