Commit Graph

14241 Commits

Author SHA1 Message Date
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
Scott Sadler
85b55ada89 use public github url 2018-02-19 21:13:05 -03:00
Scott Sadler
f5cf215f71 extra tests for failure modes and remove CRYPTOCONDITION_OVERSIZE error state 2018-02-19 18:24:12 -03: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
Scott Sadler
656fa68d13 guard cryptoconditions 2018-02-18 20:40:24 -03:00
Scott Sadler
28b946127b make IsPayToCryptoCondition neat 2018-02-18 19:35:48 -03:00
Scott Sadler
5a7cc8287b Merge remote-tracking branch 'origin/dev' into cryptoconditions 2018-02-18 19:25:52 -03: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
Scott Sadler
5b383ba7f4 enable cryptoconditions spending 2018-02-18 18:49:04 -03:00
jl777
81c5ec4f3c Dukeleto's https://github.com/zcash/zcash/pull/2931 2018-02-18 12:45:22 +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
Scott Sadler
a99ca25a5a cryptocondition transaction is standard too 2018-02-17 02:03:34 -03: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
Scott Sadler
a01d0f5672 remove rpc crypto conditions 2018-02-16 14:24:38 -03: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