Commit Graph
11366 Commits
Author SHA1 Message Date
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
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
jl777 5be9870f77 A comment 2018-02-19 00:11:38 +02:00
jl777 052f006800 ASSETCHAINS_CC 2018-02-19 00:08:02 +02:00
jl777 253cd526ac MAX_MONEY to handle mining chains 2018-02-18 23:59:52 +02:00
Jonathan "Duke" Leto c989bc86e3 Read hashReserved from disk instead of assuming 0
Related to https://github.com/zcash/zcash/pull/2931
2018-02-17 20:45:00 -08:00
Simon fa78211ed7 Add test to check malformed v1 transaction against Overwinter tx parser 2018-02-16 15:42:04 -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
jl777 fc5bee9e14 -print 2018-02-14 00:57:33 +02:00
jl777 036a250c6e Test 2018-02-13 23:04:01 +02:00
jl777 e8a05f61f0 Test 2018-02-13 23:00:15 +02:00
jl777 8eaa7b03cc Test 2018-02-13 22:57:25 +02:00
jl777 148e99adac Test 2018-02-13 22:55:14 +02:00
jl777 9c7d2832f1 Test 2018-02-13 22:54:45 +02:00
jl777 85ef725a7d Test 2018-02-13 22:52:45 +02:00
jl777 e34a9d43fe Fix 2018-02-13 22:42:34 +02:00
jl777 e169b65ff0 New features in testing
New komodod -ac parameters for assetchains. If -ac_reward=<satoshis> is
non-zero, the chain will mine normally and start with -ac_reward for
the block reward.

if -ac_end=<endheight> is set, then -ac_reward will be 0 after
endheight is reached

if -ac_halving=<halvingperiod> is set, then every <halvingperiod>
blocks the block reward is reduced according to one of three methods.
1440 (approx a day) is the most frequent halving period

if -ac_decay is not set, then the normal bitcoin halving is done.

if -ac_decay=<numerator> is set to be exactly 100000000, then the
-ac_reward is scaled linearly toward 0, with 0 at endheight.

for all other values of numerator (less than 100000000) the reward is
iteratively reduced by the number of "halving" periods, ie.
	numhalvings = (height / -ac_halving);
	for (i=0; i<numhalvings; i++)
		reward = (reward * -ac_decay) / 100000000;

if -ac_perc=<satoshis> is nonzero and less than equal 100000000 and
-ac_pubkey=<secp_pubkey33> is set to a 33byte hexstr (len 66 starting
with 02 or 03) then there will be a second vout in the coinbase
transaction that is exactly the commission rate indicated by -ac_perc,
with 100000000 being the max of 100%. wallets will need to be
customized to make sure to pay the -ac_perc of transaction size as
txfee. chains with a percentage override can only be mined by the
-ac_pubkey address

bitcoin behavior would be -ac_reward=5000000000 -ac_halving=210000

KMD behavior would be -ac_reward = 300000000 -ac_end=7777777

a more smoothly reducing reward that halves every 210000 blocks would
be:

 -ac_reward=5000000000 -ac_halving=10000 -ac_decay=96777000

This release also supports a second slate of hardcoded notaries
2018-02-13 22:37:47 +02:00
jl777 ae0bb3d3c3 Test 2018-02-13 22:36:44 +02:00
jl777 698c5e7e94 Test 2018-02-13 22:34:29 +02:00
jl777 ac756fd8bb Test 2018-02-13 22:32:14 +02:00
jl777 da7b748e6b Test 2018-02-13 22:30:59 +02:00
jl777 6b1d77f585 Test 2018-02-13 22:27:18 +02:00
jl777 d209491abf Test 2018-02-13 22:25:30 +02:00
jl777 3ca78e0142 Test 2018-02-13 22:06:20 +02:00
jl777 94a465a6e9 Test 2018-02-13 21:59:39 +02:00
jl777 6e94384f91 Test 2018-02-13 21:37:32 +02:00
jl777 53a94b280d Test 2018-02-13 21:34:09 +02:00
jl777 9757c8f97e Test 2018-02-13 21:33:49 +02:00
jl777 8683bd8d11 Debugging 2018-02-13 21:29:42 +02:00
jl777 8f8b5a2ac6 -SHARK 2018-02-10 21:42:04 +02:00
jl777 de615b43f7 Disable price feed 2018-02-10 15:12:32 +02:00
Alex Morcos f41775b2c8 Implement helper class for CTxMemPoolEntry constructor
This is only for unit tests.
2018-02-09 18:35:25 +00:00