Commit Graph

2994 Commits

Author SHA1 Message Date
Sean Bowe
55fabd8272 Refactor so that dataToBeSigned can be used later in the function for other purposes. 2018-05-08 14:28:01 -06:00
Sean Bowe
6eea48bf96 Remove unnecessary IsCoinbase() check. Coinbases are guaranteed to have empty vjoinsplit. 2018-05-08 14:23:09 -06:00
Homu
333b9a0d0b Auto merge of #3170 - ebfull:sapling-merkle-tree, r=ebfull
Sapling merkle tree implementation

Closes #3056.

Please also review https://github.com/zcash/librustzcash/pull/8

This PR:

1. Introduces ZCSaplingIncrementalMerkleTree using Pedersen hashes.
2. Adds support for Sapling anchors into consensus rules. (Adds commitments, checks anchors are correct, handles block (dis)connects, etc.)
3. Handles mempool eviction for obsolete anchors.
4. Enforces correctness of block's Sapling root field
5. Changes miner to correctly apply the Sapling root to the block header
6. Handles mempool consistency checks for anchors
2018-05-07 20:37:46 -07:00
Sean Bowe
98d2f090ca Evict transactions with obsolete anchors from the mempool 2018-05-07 14:37:46 -06:00
Sean Bowe
1f8be05b63 Add consensus support for Sapling merkle trees. 2018-05-07 14:37:46 -06:00
Sean Bowe
c643ff0b51 Add support for PopAnchor(.., SPROUT/SAPLING) 2018-05-07 14:37:46 -06:00
Sean Bowe
e814be60fe Rename hashSproutAnchorEnd to hashFinalSproutRoot to be consistent. 2018-05-07 14:37:46 -06:00
Sean Bowe
18322f074c Introduce support for GetBestAnchor(SAPLING). 2018-05-07 13:46:06 -06:00
Sean Bowe
2bd59e1473 Rename PushAnchor to PushSproutAnchor. 2018-05-07 13:46:06 -06:00
Sean Bowe
008f4ee8e7 Rename GetAnchorAt to GetSproutAnchorAt. 2018-05-07 13:46:06 -06:00
Sean Bowe
08f0728884 Rename hashAnchor to hashSproutAnchor. 2018-05-07 13:46:06 -06:00
Sean Bowe
28d20bdb11 Rename NullifierType to ShieldedType. 2018-05-07 13:46:06 -06:00
Homu
1d4235dce7 Auto merge of #3239 - str4d:sapling-default-tx-version, r=str4d
Update CreateNewContextualCMutableTransaction for Sapling

Part of #3063.
2018-05-07 12:27:47 -07:00
miketout
68334c8dae Fix incorrect validations of block transactions 2018-05-07 10:29:43 -07:00
jl777
a9bad5a300 test 2018-05-07 15:47:18 +03:00
Homu
265eca3f47 Auto merge of #3212 - str4d:2864-sapling-tx-size-limit, r=str4d
Raise 100kB transaction size limit from Sapling activation

Closes #2864.
2018-05-07 02:20:42 -07:00
miketout
39267c3553 Reduce default difficulty 2018-05-06 13:06:14 -07:00
miketout
d1bda1a204 Merge branch 'dev' of https://github.com/miketout/komodo into dev 2018-05-04 16:34:50 -07:00
miketout
e980a26ddd Enable time locked coin bases to be used as normal coinbase transactions with longer maturity, fix max_money 2018-05-04 16:33:34 -07:00
Homu
8ef1d333b5 Auto merge of #2894 - per-gron:dont-export-unless-needed, r=str4d
Make some globals static that can be

I wrote this patch as part of making a Bazel build system but it really is independent from that so I'm putting this as a separate PR.

External linkage does not help and just encourages sloppy dependencies (ie using symbols only declared in a cpp file in some other cpp file) and can lead to weird issues when there are name collisions.
2018-05-04 15:05:43 -07:00
Jack Grigg
25fee3509a Rename MAX_TX_SIZE to MAX_TX_SIZE_AFTER_SAPLING 2018-05-04 11:17:30 +01:00
Jack Grigg
15ec5525e3 Raise 100kB transaction size limit from Sapling activation
Closes #2864.
2018-05-04 11:17:30 +01:00
miketout
a582169df0 Merge pull request #4 from jl777/dev
Merge jl777's latest changes to PoS
2018-05-03 15:31:29 -07:00
Jack Grigg
fa70084c87 Expire Overwinter transactions before the Sapling activation height 2018-05-03 12:27:56 +01:00
Jack Grigg
dc889d7f52 Update CreateNewContextualCMutableTransaction to create Sapling transactions 2018-05-03 12:02:51 +01:00
miketout
48d800c2c6 Merge all Komodo changes, including proof of stake, crypto conditions, passport, etc. 2018-05-02 03:24:21 -07:00
Homu
0a8d0c25e8 Auto merge of #3220 - Eirik0:3209-fix-CheckTransaction, r=str4d
Implement consensus rules about the number of Spend and Output Descriptions in a transaction

Closes #3209.
Part of #3065.
2018-05-01 07:09:52 -07:00
jl777
4f61808ffc -print 2018-05-01 16:25:54 +03:00
Marshall Gaucher
b300118002 Merge pull request #2813 from str4d/2074-uacomment
Implement uacomment config parameter
2018-04-30 09:12:38 -06:00
miketout
2910478b5a Added LWMA difficulty algorithm for Verus, enabled compiler optimizations for verushash 2018-04-29 23:21:35 -07:00
Scott Sadler
3c7604133e tombstone for import 2018-04-29 00:37:22 -03:00
Scott Sadler
0cb91a8d20 wip 2018-04-29 00:34:57 -03:00
miketout
a0dd01bc50 Bug fixes in hash algorithm, parameters, and time lock support 2018-04-28 15:05:20 -07:00
Eirik Ogilvie-Wigley
812098256f Coinbase transactions can not have shielded spend or output 2018-04-26 15:53:26 -06:00
Eirik Ogilvie-Wigley
4b4662b06d Make sure transactions have non-empty outputs 2018-04-26 15:24:59 -06:00
jl777
8f95f7e138 Fix header special case for non-KMD 2018-04-26 11:11:55 +03:00
Sean Bowe
6679855147 Check that duplicate Sapling nullifiers don't exist within a transaction. 2018-04-25 17:10:34 -06:00
Eirik Ogilvie-Wigley
9669920f75 Rename nullifier caches and maps to indicate sprout nullifiers 2018-04-25 11:26:38 -06:00
jl777
c9fbb1a741 Sync addtoblockindex 2018-04-25 03:00:53 +03:00
jl777
6cc888dd99 Set second 2018-04-25 02:55:40 +03:00
jl777
f190f354b0 -print 2018-04-25 02:51:17 +03:00
jl777
9376e387db +ensure 2018-04-25 02:47:30 +03:00
jl777
8771059f5b Mi->second = index 2018-04-25 02:32:54 +03:00
jl777
9cdde30c2c Test 2018-04-25 02:32:14 +03:00
jl777
27113a317e Miself update 2018-04-25 02:30:59 +03:00
jl777
58ef04c7dc Set mi->second 2018-04-25 02:28:14 +03:00
Eirik Ogilvie-Wigley
cab341e1a8 Add sapling nullifiers to db and mempool 2018-04-24 17:16:43 -06:00
jl777
ab158faa6d Simplify ensure 2018-04-25 01:49:01 +03:00
jl777
85328429bb Test 2018-04-25 01:41:44 +03:00
jl777
4ac854ea90 Simplify ensure 2018-04-25 01:37:43 +03:00