Commit Graph

5876 Commits

Author SHA1 Message Date
Sean Bowe
fd5007c126 Create new hasher for sha256() utility. 2016-03-31 16:19:29 -06:00
Sean Bowe
27a109af01 Improve testing and API of CSHA256 compression. 2016-03-31 16:15:07 -06:00
Sean Bowe
d3612b1c94 Remove zerocash's SHA256 implementation 2016-03-31 15:59:06 -06:00
Sean Bowe
8466467a35 Added SHA256Compress to Bitcoin's SHA256 implementation. 2016-03-31 14:23:56 -06:00
Taylor Hornby
9bab3e89a2 Initialize libsodium first. 2016-03-24 13:13:14 -06:00
Sean Bowe
6806256b80 Initialize libsodium and remove openssl headers from util.cpp 2016-03-23 16:26:57 -06:00
Taylor Hornby
41d4eb705b Link with libsodium and replace a CSPRNG. 2016-03-17 16:38:27 -06:00
Sean Bowe
a633044b25 Reorder proving key and verifying key arguments. 2016-03-15 15:59:52 -06:00
Sean Bowe
8f8c4c6c0c Lazily load the proving key at time of first pour. 2016-03-15 14:16:05 -06:00
Sean Bowe
57220d0320 Fix test_pour return type. 2016-02-18 00:04:55 -07:00
Sean Bowe
6e96cf089b Add zerocash tests and utilities. 2016-02-15 22:57:55 -07:00
Sean Bowe
cf5f4f679d Remove unnecessary comments. 2016-02-15 19:10:15 -07:00
Sean Bowe
e463edc122 Build and link libzerocash. 2016-02-15 15:28:20 -07:00
Sean Bowe
a897db652f Reorganizing the zerocash tree. 2016-02-15 15:28:20 -07:00
Sean Bowe
523bc77f64 Move libzerocash (dd5db5815be70f0e4895784cc905df6f1c73cb17) into the src tree. 2016-02-11 13:44:25 -07:00
Sean Bowe
63ea9b75bb Add decoding support for vpour in the decoderawtransaction RPC. 2016-01-23 18:07:18 -07:00
Sean Bowe
9ce86bec59 Remove type check on zcrawpour which is not necessary and causes errors with the RPC. 2016-01-20 14:53:27 -07:00
Sean Bowe
d488e75ea8 Fix comment. 2016-01-19 16:29:44 -07:00
Nathan Wilcox
8cb250885c Replace magic 2s in rpcwallet and change > to != for arity checks. Replace magic 2's with named constants in test cases. 2016-01-19 14:36:18 -07:00
Nathan Wilcox
f15b9549dc Implement online help for zcraw* commands. 2016-01-19 14:36:18 -07:00
Sean Bowe
cf47198370 Fixed a couple incremental merkle tree bugs breaking consistency checks. 2016-01-19 14:36:10 -07:00
Sean Bowe
8505fd548a Prevent testnet from connecting to Bitcoin and getting people marked as DoS. 2016-01-19 14:36:10 -07:00
Sean Bowe
9144ea8c2b Testnet modifications -- just take the parameters from regtest. Also, move loading ZC params to _before_ verification. 2016-01-19 14:36:10 -07:00
Sean Bowe
d66877afb3 Added mapSerials consensus rules to prohibit double-spending. 2016-01-19 14:36:09 -07:00
Sean Bowe
03bff15fe2 Enforce zk-SNARK validity during consensus. 2016-01-19 14:36:09 -07:00
Sean Bowe
a8ac403db0 Added mapAnchors consensus rules, finished zcrawpour/zcrawreceive.
Some specifics on consensus changes:
* Transactions must be anchored to a real anchor in the chain.
* Anchors are pushed and popped during ConnectBlock/DisconnectBlock as appropriate.
* DisconnectTip triggers evictions, under some circumstances, of transactions in the
  mempool which are anchored to roots that are no longer valid.
* Commitments append to the tree at the current best root during ConnectBlock.
2016-01-19 14:36:04 -07:00
Sean Bowe
730790f7a4 Added primitive zcrawkeygen/zcrawpour implementations 2016-01-19 14:36:04 -07:00
Sean Bowe
4f1c37980e Load proving/verifying keys at startup from the public alpha parameters file. 2016-01-19 14:36:04 -07:00
Sean Bowe
f512cf7c7b Added value balance consensus enforcement for pours. 2016-01-19 14:36:04 -07:00
Sean Bowe
45d6bee945 Add mapSerials infrastructure to CCoinsView.
This adds the TXDB/CCoinsViewCache primitives necessary for
writing consensus rules for mapSerials later.
2016-01-19 14:36:04 -07:00
Sean Bowe
9f25631d50 Add mapAnchors infrastructure to CCoinsView.
This adds the TXDB/CCoinsViewCache primitives necessary for
writing consensus rules for mapAnchors later.
2016-01-19 14:36:04 -07:00
Sean Bowe
96c31d163f Added CPourTx verification and construction routines. 2016-01-19 14:36:04 -07:00
Sean Bowe
69761d8269 Primitive, context-free consensus changes for CPourTx
* PourTxs cannot appear in coinbase transactions.
* Transactions can only contain empty vin/vouts if they contain a PourTx.
* PourTx public values must be well-formed (not negative or too large).
* Transactions cannot have the same serial twice throughout all PourTxs.
2016-01-19 14:36:04 -07:00
Sean Bowe
5884044ba9 Introduce vpour to CTransaction.
Transactions of version 2 and above contain a `vpour` field which is a vector of `CPourTx`
objects that embody our protocol. We introduce serialization primitives for boost::array
(we intend for changing the amount of inputs and outputs in the circuit to be simple).

SIGHASH_* operations hash this field like any other for now.
2016-01-19 14:35:59 -07:00
Nathan Wilcox
108650a55a Include a dubious "bug-fix" which allows exceptions to be thrown in reverselock destructor, which is required in reverselock_tests. ref #480 2015-12-22 09:20:42 -08:00
Nathan Wilcox
c4da097069 Pull over depends and build changes from zc.v0.10.0.latest. Fails to build due to new ./configure dependency for serialization stuff. 2015-12-22 09:20:42 -08:00
Taylor Hornby
8a18333567 Rename .bitcoin (DataDir), bitcoind, and bitcoin-cli. 2015-11-30 13:03:21 -07:00
Wladimir J. van der Laan
984587ac5d bump version to 0.11.2 2015-11-08 00:56:01 +01:00
Pieter Wuille
4e895b08da Always flush block and undo when switching to new file
Previously, the undo weren't being flushed during a reindex because
fKnown was set to true in FindBlockPos. That is the correct behaviour
for block files as they aren't being touched, but undo files are
touched.

This changes the behaviour to always flush when switching to a new file
(even for block files, though that isn't really necessary).

Rebased-From: 22e780737db57bcb18b3824eb8158e19a4775cb6
Github-Pull: #6948
2015-11-06 14:30:46 +01:00
Wladimir J. van der Laan
6c31ac019f Merge pull request #6825
af6edac *: alias -h for --help (Daniel Cousens)
131d7f9 Change URLs to https in debian/control (Matt Corallo)
7ce2c91 Update debian/changelog and slight tweak to debian/control (Matt Corallo)
4fbfebe Correct spelling mistakes in doc folder (Mitchell Cash)
e42bf16 Clarification of unit test build instructions. (Eric Lombrozo)
54f9dee Update bluematt-key, the old one is long-since revoked (Matt Corallo)
bfc6154 [Trivial] Fixed typo when referring to a previous section in depends/README.md [skip ci] (Chris Kleeschulte)
9e45157 build: disable -Wself-assign (Wladimir J. van der Laan)
33d6825 Bugfix: Allow mining on top of old tip blocks for testnet (fixes testnet-in-a-box use case) (Luke Dashjr)
87a797a build: Remove dependency of bitcoin-cli on secp256k1 (Wladimir J. van der Laan)
a33cd5b [trivial] Fix rpc message "help generate" (MarcoFalke)
6fd0019 Drop "with minimal dependencies" from description (Zak Wilcox)
2394f4d Split bitcoin-tx into its own package (Zak Wilcox)
1e672ae Include bitcoin-tx binary on Debian/Ubuntu (Zak Wilcox)
b3eaa30 [Qt] Raise debug window when requested (MarcoFalke)
01878c9 Fix locking in GetTransaction. (Alex Morcos)
9b9acc2 Fix spelling of Qt (Diego Viola)
2015-11-06 14:08:06 +01:00
Wladimir J. van der Laan
df616ae43e Merge pull request #6884
f720c5f Enable policy enforcing GetMedianTimePast as the end point of lock-time constraints (Mark Friedenbach)
a1d3c6f Add rules--presently disabled--for using GetMedianTimePast as endpoint for lock-time calculations (Mark Friedenbach)
2015-11-05 12:18:21 +01:00
Pieter Wuille
70de437eb4 Update LevelDB 2015-11-04 23:48:07 +01:00
Mark Friedenbach
f720c5fc9f Enable policy enforcing GetMedianTimePast as the end point of lock-time constraints
Transactions are not allowed in the memory pool or selected for inclusion in a block until their lock times exceed chainActive.Tip()->GetMedianTimePast(). However blocks including transactions which are only mature under the old rules are still accepted; this is *not* the soft-fork required to actually rely on the new constraint in production.
2015-10-23 21:33:51 +01:00
Mark Friedenbach
a1d3c6fb9d Add rules--presently disabled--for using GetMedianTimePast as endpoint for lock-time calculations
The lock-time code currently uses CBlock::nTime as the cutoff point for time based locked transactions. This has the unfortunate outcome of creating a perverse incentive for miners to lie about the time of a block in order to collect more fees by including transactions that by wall clock determination have not yet matured. By using CBlockIndex::GetMedianTimePast from the prior block instead, the self-interested miner no longer gains from generating blocks with fraudulent timestamps. Users can compensate for this change by simply adding an hour (3600 seconds) to their time-based lock times.

If enforced, this would be a soft-fork change. This commit only adds the functionality on an unexecuted code path, without changing the behaviour of Bitcoin Core.
2015-10-23 21:33:31 +01:00
Alex Morcos
dfe55bdc32 Do not allow blockfile pruning during reindex.
Also clarify startup message.

Github-Pull: #6856
Rebased-From: d3b09f6bac738958b6bf5711bcb5291049b7466d
2015-10-23 14:42:05 +02:00
Wladimir J. van der Laan
fc7f0ee28c Merge pull request #6707
6af25b0 Add BIP65 to getblockchaininfo softforks list (Peter Todd)
ba1da90 Show softfork status in getblockchaininfo (Wladimir J. van der Laan)
70a427b CLTV: Add more tests to improve coverage (Esteban Ordano)
c5a27f4 Add RPC tests for the CHECKLOCKTIMEVERIFY (BIP65) soft-fork (Peter Todd)
5e82e1c Add CHECKLOCKTIMEVERIFY (BIP65) soft-fork logic (Peter Todd)
6ea5ca4 Enable CHECKLOCKTIMEVERIFY as a standard script verify flag (Peter Todd)
4fa7a04 Replace NOP2 with CHECKLOCKTIMEVERIFY (BIP65) (Peter Todd)
6ec08db Move LOCKTIME_THRESHOLD to src/script/script.h (Peter Todd)
684636b Make CScriptNum() take nMaxNumSize as an argument (Peter Todd)
2015-10-23 13:35:06 +02:00
Gregory Maxwell
95a50390e1 Set TCP_NODELAY on P2P sockets.
Nagle appears to be a significant contributor to latency now that the static
 sleeps are gone.  Most of our messages are relatively large compared to
 IP + TCP so I do not expect this to create enormous overhead.

This may also reduce traffic burstyness somewhat.

Conflicts:
	src/net.cpp

Rebased-From: a4e28b3d1e5c95eb0c87f144851cd65048c3e0bc
Github-Pull: #6867
2015-10-23 10:02:53 +02:00
Daniel Cousens
af6edac0bd *: alias -h for --help 2015-10-23 03:24:59 +00:00
Eric Lombrozo
e42bf16ae0 Clarification of unit test build instructions. 2015-10-14 08:21:55 +00:00
Luke Dashjr
33d6825c6f Bugfix: Allow mining on top of old tip blocks for testnet (fixes testnet-in-a-box use case) 2015-10-14 08:20:38 +00:00