Commit Graph

147 Commits

Author SHA1 Message Date
miketout
4b729ec577 Changes for most chain power rule 2018-09-28 01:38:14 -07:00
miketout
9feb4b9e08 Major updates integration from all upstreams 2018-09-18 14:33:53 -07:00
Michael Toutonghi
5034d1c134 Sync with latest Komodo changes 2018-08-06 12:52:22 -07:00
Eirik Ogilvie-Wigley
00ed92343d Add out point for sapling note data 2018-07-25 20:47:40 -07:00
Michael Toutonghi
d7e6718dc8 More nonce and new PoS reporting improvements 2018-07-20 22:59:33 -07:00
Michael Toutonghi
3f8720fabe Fix new nonce issue 2018-07-20 20:57:28 -07:00
Michael Toutonghi
17d0160a17 Cleanup nonce changes 2018-07-20 19:57:46 -07:00
Michael Toutonghi
503bd93fa8 Differentiate raw POSHash from full one adjusted by vout value 2018-07-19 01:02:54 -07:00
Michael Toutonghi
c5325a3256 PoS improvements 2018-07-18 17:42:15 -07:00
jl777
ae4dbe22bb tx.GetJoinSplitValueOut() 2018-07-12 00:58:25 -11:00
Michael Toutonghi
4dcb64c081 Radical hash rate optimization 2018-06-26 07:39:50 -07:00
Michael Toutonghi
fa733d13fa Use portable hash for staking 2018-06-17 14:58:06 -07:00
Michael Toutonghi
5296a85018 Portable VerusHash and CPU check 2018-06-16 14:51:13 -07:00
Sean Bowe
90073aeca5 Swap types in OutputDescription to use new NoteEncryption interfaces. 2018-06-14 12:08:37 -06:00
Michael Toutonghi
20ab1c9174 mining performance boost 2018-06-10 00:12:28 -07:00
Ariel Gabizon
e1a3461cc2 Improve/Fix variable names
ZCProof was too general. pubKeyHash was actually the JoinSplit pubkey
itself.
2018-06-09 20:27:35 -07:00
Scott Sadler
c7bcf05da4 fix MoM hash calculation 2018-05-30 18:12:05 -03:00
Jack Grigg
a6bbb26e08 Replace boost::array with std::array 2018-05-26 00:12:57 +12:00
Michael Toutonghi
cf1e5967ee fix getinfo, cleanup hash 2018-05-18 02:46:21 -07:00
Michael Toutonghi
f6608b5a0d cleanup 2018-05-17 22:58:30 -07:00
Michael Toutonghi
c2923066b2 new CNetworkBlockHeader for robust compat 2018-05-17 00:04:10 -07:00
Michael Toutonghi
004e332290 Additional tests 2018-05-16 01:59:23 -07:00
Michael Toutonghi
3da69a3138 Trying to fix the forking issue, which is now clearly a bug in sending and receiving headers. This checkin will enable debugging and may be a fix. 2018-05-15 22:19:07 -07:00
Michael Toutonghi
1fae37f6bf Working proof of stake with new algorithm 2018-05-15 00:54:18 -07:00
Sean Bowe
b7a6c32178 Integrate Groth16 verification and proving. 2018-05-14 16:26:23 -06:00
Michael Toutonghi
1f722359c1 Verus Proof of Stake Compete with Additional ant-fork protection on block 1 2018-05-13 18:59:06 -07:00
Jack Grigg
0fe0ca7948 Add contextual comment for GetValueOut() and GetShieldedValueIn() 2018-05-10 09:34:19 -04:00
Scott Sadler
20c3ac51c2 wip 2018-05-09 16:17:28 -03:00
Jack Grigg
97b46f00cc Add valueBalance to value balances, and enforce its consensus rules 2018-05-09 11:34:41 +01:00
Sean Bowe
f2c6d214e5 Rename hashSaplingAnchorEnd to hashFinalSaplingRoot to match spec. 2018-05-07 14:37:46 -06:00
Sean Bowe
691a3fa2e9 Rename hashReserved to hashSaplingAnchorEnd. 2018-05-07 13:46:06 -06: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
9e5398686c Auto merge of #3206 - bitcartel:3194_polymorphic_note_class, r=str4d
Update note classes to be polymorphic

Closes #3194.  Lays foundation for introduction of Sapling notes through refactoring and creation of a class hierarchy for Sprout notes.  This PR updates some tests, but otherwise is a no-op.
2018-05-02 08:07: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
42181656c2 Implementation of VerusHash CPU-friendly hash algorithm, parameters to enable it, miner, and all changes required to support it on new asset chains 2018-04-27 00:34:50 -07:00
Homu
c6ab62191a Auto merge of #3205 - str4d:3173-missing-return, r=str4d
Return result of boost::apply_visitor

Not returning a value at the end of a non-void function is undefined behaviour.
Given that this managed to pass our full test suite, I guess that GCC looks for
un-returned values at the end of a function and uses them as the return value,
if the keyword is missing. Clang OTOH complains, which is how we spotted this:
https://ci.z.cash/#/builders/16/builds/282
2018-04-25 13:50:53 -07:00
Simon
b230fe6836 Refactoring: Rename class libzcash::Note to libzcash::SproutNote. 2018-04-25 11:33:24 -07:00
Jack Grigg
bf605b2644 Return result of boost::apply_visitor
Not returning a value at the end of a non-void function is undefined behaviour.
Given that this managed to pass our full test suite, I guess that GCC looks for
un-returned values at the end of a function and uses them as the return value,
if the keyword is missing. Clang OTOH complains, which is how we spotted this:
https://ci.z.cash/#/builders/16/builds/282
2018-04-24 23:04:09 +01:00
Homu
f961e5c3c0 Auto merge of #3195 - str4d:3180-clang-warnings, r=str4d
Remove now-unshadowed serialization lines that do nothing

Previously we had both nVersion as a class parameter *and* a serialization
argument, and in several inherited serializers the latter was set to the former,
in order to pass the serialized object's version into underlying parsers. #3180
pulled in the upstream changes to clean this up, and in doing so these lines
became no-ops - setting the class parameter to itself. Clang throws warnings on
this, which turn into errors on the MacOS builder.

We can just remove these, because upstream already had done so in earlier PRs,
indicating that they were not being relied on by underlying parsers.
2018-04-24 14:03:57 -07:00
Jack Grigg
b1608eed82 Add a constant for Overwinter's transaction version 2018-04-23 20:39:04 +01:00
Jack Grigg
b4f7174a88 Implement SpendDescription and OutputDescription datastructures
Co-authored-by: George Tankersley <george@z.cash>
2018-04-23 20:39:00 +01:00
Jack Grigg
22ffe8ce44 Remove now-unshadowed serialization lines that do nothing
Previously we had both nVersion as a class parameter *and* a serialization
argument, and in several inherited serializers the latter was set to the former,
in order to pass the serialized object's version into underlying parsers. #3180
pulled in the upstream changes to clean this up, and in doing so these lines
became no-ops - setting the class parameter to itself. Clang throws warnings on
this, which turn into errors on the MacOS builder.

We can just remove these, because upstream already had done so in earlier PRs,
indicating that they were not being relied on by underlying parsers.
2018-04-20 09:48:33 +01:00
Jack Grigg
72540cee4a Add Sapling v4 transactions to IsStandard 2018-04-19 16:25:04 +01:00
Jack Grigg
b7e75b17af Implement basic Sapling v4 transaction parser
Details of Sapling datatypes will be filled in later; for now, they are treated
as binary blobs.

Includes code cherry-picked from upstream commit:
    7030d9eb47254499bba14f1c00abc6bf493efd91
    BIP144: Serialization, hashes, relay (sender side)
2018-04-19 05:01:47 +01:00
Jack Grigg
987b8ee60e Adjust consensus rules to require v4 transactions from Sapling activation 2018-04-19 05:01:47 +01:00
Pieter Wuille
c7d71985c9 Add deserializing constructors to CTransaction and CMutableTransaction 2018-04-17 13:29:51 +01:00
Jack Grigg
68a1a592ca Remove nType and nVersion from Zcash-specific code 2018-04-17 13:09:47 +01:00
Pieter Wuille
242f1421db Get rid of nType and nVersion
Remove the nType and nVersion as parameters to all serialization methods
and functions. There is only one place where it's read and has an impact
(in CAddress), and even there it does not impact any of the recursively
invoked serializers.

Instead, the few places that need nType or nVersion are changed to read
it directly from the stream object, through GetType() and GetVersion()
methods which are added to all stream classes.
2018-04-17 13:09:28 +01:00
Pieter Wuille
b8a6579366 Make GetSerializeSize a wrapper on top of CSizeComputer
Given that in default GetSerializeSize implementations created by
ADD_SERIALIZE_METHODS we're already using CSizeComputer(), get rid
of the specialized GetSerializeSize methods everywhere, and just use
CSizeComputer. This removes a lot of code which isn't actually used
anywhere.

For CCompactSize and CVarInt this actually removes a more efficient
size computing algorithm, which is brought back in a later commit.
2018-04-16 07:38:38 -06:00