Jack Grigg
17b23ffe20
v1.0.0-beta2
2016-10-04 21:55:26 -05:00
Jack Grigg
9cf182d451
Update address in Founders' Reward gtest
2016-10-04 11:55:40 -07:00
Jack Grigg
f92f004714
Fix zkey test
2016-10-04 11:05:57 -07:00
Jack Grigg
87da7b4ea0
Fix secp256k1 test compilation
2016-10-04 00:45:56 -07:00
Jack Grigg
1fc7e92ea0
Re-encode Founders' Reward keys
...
Closes #1450
2016-10-03 23:59:59 -07:00
Jack Grigg
ee64b5e726
Re-encode hard-coded addresses in tests
2016-10-03 23:53:14 -07:00
Jack Grigg
a4f2555b35
Mark previously-valid test data as invalid
2016-10-03 20:09:18 -07:00
Jack Grigg
5428c6ca34
Formatting fix
2016-10-02 19:15:01 +13:00
Jack Grigg
1fa852f7a0
Update release process with version schema
2016-10-02 00:27:50 +13:00
Jack Grigg
899d8cf5f3
Use CLIENT_VERSION_BUILD to represent -beta and -rc in client version
2016-10-02 00:20:02 +13:00
Jack Grigg
63bc8c9a17
Downgrade bdb to 5.3.28
...
bdb 6.X was released under the AGPL, which is incompatible with MIT-licensed
software (the result must be licensed under AGPL). bdb 5.X uses the same license
as bdb 4.8, and thus retains the same compatibility as in upstream Bitcoin.
Thanks to Luke-Jr for raising this issue.
2016-10-01 23:02:32 +13:00
Jack Grigg
7f01e437a6
Remove OP_CODESEPARATOR from tests
2016-10-01 01:17:32 +13:00
Jack Grigg
bab187e963
Disable OP_CODESEPARATOR
2016-10-01 01:16:51 +13:00
Jack Grigg
84f797b2c5
Ensure correctness if asserts are compiled out
2016-09-30 18:54:16 +13:00
Jack Grigg
6567a7b534
Add tests for alerts enabling RPC safe mode
2016-09-30 17:47:28 +13:00
Jack Grigg
40600f5089
Simplify ClearNoteWitnessCache()
2016-09-30 15:00:16 +13:00
Jack Grigg
f463df0e57
Use asserts to check allocation errors in CECKey::Recover
2016-09-30 14:17:14 +13:00
Jack Grigg
be9e7ce722
Remove no-autoalginit and no-autoerrinit OpenSSL flags
...
These flags are potentially risky, because they require that the app explicitly
initialize stuff that it wouldn't otherwise need to initialize, and we don't
have time for the necessary review.
2016-09-30 14:11:27 +13:00
Jack Grigg
017abaf694
Assert that new OpenSSL allocators succeed
2016-09-29 17:58:29 +13:00
Jack Grigg
4c2b2541c3
Add libsnark to pre-release dependency checks
2016-09-29 16:15:08 +13:00
Jack Grigg
629c8743a7
Disable nearly everything in OpenSSL
...
Flags obtained from:
https://gist.github.com/steakknife/8247726#gistcomment-1739713
Some flags not enabled because they aren't supported in OpenSSL 1.1.0b.
Flags not enabled because they break compilation:
- no-deprecated
- no-dh
- no-ec
2016-09-29 15:53:41 +13:00
Jack Grigg
df2bca8fbc
Re-enable disabled compiler warnings
...
Reverts:
- be1bae14e8
- ec3bd70b6d
Closes #944
2016-09-29 14:35:38 +13:00
Jack Grigg
4dddc096d4
Replace auto_ptr with unique_ptr
2016-09-29 14:28:38 +13:00
Jack Grigg
21fb88a348
Fix auto_ptr deprecation warning in Boost
2016-09-29 14:15:55 +13:00
Jack Grigg
3fe431db1b
Release process: check dependencies for updates
2016-09-29 13:59:29 +13:00
Jack Grigg
19c3917ce9
Upgrade ccache to 3.3.1
2016-09-29 12:34:40 +13:00
Jack Grigg
7bbf5f5ab2
Upgrade miniupnpc to 2.0
2016-09-29 12:34:40 +13:00
Jack Grigg
fa318aa9fe
Upgrade OpenSSL to 1.1.0b
...
Closes #1348
2016-09-29 12:34:09 +13:00
Jack Grigg
44bdcabc38
Upgrade libgmp to 6.1.1
2016-09-29 12:07:23 +13:00
Jack Grigg
2d6d5fb311
Upgrade Boost to 1.62.0
...
Part of #944
Closes #1241
2016-09-29 12:06:48 +13:00
Jack Grigg
ef3a6a97ae
Use correct lock for spending keys
2016-09-29 11:35:18 +13:00
Jack Grigg
ad041fceec
Cache note decryptors in encrypted keystore
2016-09-29 11:34:59 +13:00
Jack Grigg
6bffc46a87
Implement CSecureDataStream for streaming CKeyingMaterial
2016-09-28 13:44:53 +13:00
Jack Grigg
3bbf2c1422
Test that invalid keys fail to unlock the keystore
2016-09-28 12:52:53 +13:00
Jack Grigg
56fb1bb8e4
Write note witness cache atomically to disk to avoid corruption
...
Closes #1378
2016-09-28 11:51:42 +13:00
Jack Grigg
1683b1f58b
Clear note witness caches on reindex
2016-09-27 15:21:18 +13:00
Jack Grigg
76b226586e
Add wallet method to clear the note witness cache
2016-09-27 14:55:05 +13:00
Jack Grigg
e81c2de753
Fix test
2016-09-27 14:55:05 +13:00
Jack Grigg
a40034f7d6
Enable high-priority alerts to put the RPC into safe mode
...
This reverts the changes in 986b5e257e and adds a
priority check.
Closes #1106
2016-09-23 17:26:43 +12:00
Jack Grigg
e9006272c2
Add a make command for checking expected failures
2016-09-23 12:32:59 +12:00
Jack Grigg
9e52ca3205
Measure multithreaded solveequihash time per-thread
2016-09-13 16:12:07 +12:00
Jack Grigg
3a15b1637e
Move serialized Zcash address length constants into zcash/Address.hpp
2016-09-13 14:21:49 +12:00
Jack Grigg
6ae516f10b
Check we haven't trashed the first key entry with the second
2016-09-13 14:21:49 +12:00
Jack Grigg
16d140f4a2
Add support for encrypting spending keys
2016-09-13 14:21:49 +12:00
Jack Grigg
48bb727d8a
Remove .z# suffix from version
2016-09-09 00:22:18 -06:00
Jack Grigg
289b12e448
Add tests for refactored wallet code
2016-09-08 17:29:08 +12:00
Jack Grigg
ac1c94350d
Refactor wallet note code for testing
2016-09-08 17:17:35 +12:00
Jack Grigg
622ced8a74
Adjust test to account for integer division precision loss
2016-09-08 12:46:00 +12:00
Jack Grigg
4b37cfd5b8
Remove unnecessary method
2016-09-08 12:22:08 +12:00
Jack Grigg
aea79ec053
Adjust test to avoid spurious failures
...
Previously, if the two random numbers happened to be equal, the block time
would not be updated, and subsequent checks would fail.
2016-09-08 11:34:50 +12:00
Jack Grigg
4a749674a8
Update tests for new genesis blocks
2016-09-07 21:05:12 +12:00
Jack Grigg
66f07f5d0d
Regenerate genesis blocks for new powLimits
2016-09-07 08:18:46 +12:00
Jack Grigg
3e24a533f5
Restrict powLimit due to difficulty averaging
2016-09-07 08:17:43 +12:00
Jack Grigg
7b173bd80f
Simplify difficulty averaging code
2016-09-06 23:03:36 +12:00
Jack Grigg
5fbb839f53
Add test of difficulty averaging
2016-09-06 23:01:58 +12:00
Jack Grigg
f50e8313f5
Remove accidental double-semicolon (harmless but odd)
2016-09-06 13:18:33 +12:00
Jack Grigg
8f3ec042af
Expand bounds on difficulty adjustment
2016-09-06 13:13:23 +12:00
Jack Grigg
cb708a99a5
Add comments explaining changed semantics of pow_tests
2016-09-06 11:33:59 +12:00
Jack Grigg
333ea3c426
Remove testnet-only difficulty rules
...
The min-difficulty blocks are incompatible with difficulty averaging.
Network difficulty is also now defined as the difficulty the network is
currently working to solve, rather than the last non-min-difficulty block
difficulty.
2016-09-05 23:13:25 +12:00
Jack Grigg
29842505cc
Adjust from average difficulty instead of previous difficulty
2016-09-05 22:25:11 +12:00
Jack Grigg
f7d78fdde1
Fix failing test
2016-09-01 20:16:18 +12:00
Jack Grigg
57466ea652
Remove mainnet DNS seeds, set checkpoint to genesis
...
Closes #1185
2016-09-01 17:01:28 +12:00
Jack Grigg
00939d09ba
Add test comparing GetDifficulty() with GetNetworkDifficulty()
2016-09-01 16:36:18 +12:00
Jack Grigg
695a7a8826
Separate concepts of block difficulty and network difficulty in RPC
...
"Block difficulty" is the difficulty listed in a block's header, which in the
testnet can sometimes be min-difficulty (if time-since-last-block is too large).
"Network difficulty" is the difficulty that the network was trying to satisfy
at a particular block height. In mainnet this is always equal to the difficulty
of the solved block for that height, but in testnet the network difficulty is
derived from the last non-min-difficulty block difficulty.
This commit fixes the RPC APIs that are intended to show network difficulty, so
that on testnet they don't sometimes drop to 1.0, confusing users.
Closes #1181
2016-09-01 15:13:05 +12:00
Jack Grigg
268bd84f9a
Add coverage of the assertion inside GetNoteWitnesses()
2016-09-01 15:04:57 +12:00
Jack Grigg
73db0c12b9
Increase coverage of GetNoteDecryptor()
2016-09-01 14:44:01 +12:00
Jack Grigg
5abaca1af6
Fix the failing test!
2016-09-01 13:00:02 +12:00
Jack Grigg
ac91ebbe92
Add test showing that the witness cache isn't being serialised
2016-09-01 12:47:44 +12:00
Jack Grigg
32a103aab7
Changes after review
2016-09-01 11:48:15 +12:00
Jack Grigg
0736fa14fc
Keep any existing cached witnesses when updating transactions
2016-08-31 21:16:59 +12:00
Jack Grigg
be86b6c332
Add test for GetNoteDecryptor()
2016-08-31 18:57:32 +12:00
Jack Grigg
1551db870a
Add transactions to wallet if we spend notes in them
2016-08-31 18:28:00 +12:00
Jack Grigg
38a6e7a74d
Set witness cache size equal to coinbase maturity duration
...
Both constants have the same implicit assumption: that the blockchain will very
rarely undergo a reorganisation of that size.
2016-08-31 15:26:49 +12:00
Jack Grigg
ad20f2149a
mapNullifiers -> mapNullifiersToNotes for clarity
2016-08-31 15:11:35 +12:00
Jack Grigg
4086e5ce98
Replace vAnchorCache with a cache size counter
...
The anchor is obtained from the returned witnesses; since all witnesses are to
the same point (the latest blockchain tip), they all have the same root.
2016-08-31 15:03:42 +12:00
Jack Grigg
3fac1020e7
Remove GetNoteDecryptors(), lock inside FindMyNotes() instead
2016-08-31 02:09:17 +12:00
Jack Grigg
de42390f90
Pass ZCIncrementalMerkleTree to wallet to prevent race conditions
2016-08-31 02:00:11 +12:00
Jack Grigg
3e3da44c71
Test solution output of blockToJSON()
2016-08-30 14:42:49 +12:00
Jack Grigg
769e031c1a
Update cached incremental witnesses when the active block chain tip changes
2016-08-30 00:29:49 +12:00
Jack Grigg
be74c80deb
Add caching of incremental witnesses for spendable notes
2016-08-30 00:29:49 +12:00
Jack Grigg
8db7e25c3f
Create mapping from nullifiers to received notes
...
This is used in the same way as CTxIn.prevout (e.g. to mark transactions dirty).
2016-08-30 00:29:49 +12:00
Jack Grigg
0f1060478f
Keep track of spent notes, and detect and report conflicts
2016-08-30 00:29:49 +12:00
Jack Grigg
c3a7307a69
Store mapping between notes and PaymentAddresses in CWalletTx
2016-08-30 00:29:49 +12:00
Jack Grigg
02e674555e
Add wallet method for finding spendable notes in a CTransaction
2016-08-30 00:29:49 +12:00
Jack Grigg
5db5e42ec3
Add optional bool to disable computation of proof in JSDescription constructor
2016-08-30 00:29:49 +12:00
Jack Grigg
e1dde421c3
Output Equihash solution in RPC results as a hex string
2016-08-27 23:58:11 +12:00
Jack Grigg
488e61e852
Undo debugging change from 5be6abbf84
...
This was unintentionally committed, and caused Equihash verification of blocks
without parents to be skipped. This only affects the genesis block on the test
network, but also causes the "time verifyequihash" benchmark to incorrectly
appear instantaneous.
2016-08-26 14:09:25 +12:00
Jack Grigg
90b740fd3b
Test conversion between solution indices and minimal representation
2016-08-24 13:42:52 +12:00
Jack Grigg
e273f05d10
Remove unnecessary temporary array from Equihash hash generation
2016-08-21 06:05:48 +12:00
Jack Grigg
6e629886e5
Add another test case based on example in the spec
2016-08-21 05:57:46 +12:00
Jack Grigg
a4f4fa8fe9
ASSERT -> EXPECT in test to get more info per test run about future regressions
2016-08-18 12:25:01 +12:00
Jack Grigg
04dfc3c569
Rework test to check for failure to return a spending key
2016-08-18 12:22:30 +12:00
Jack Grigg
0d7386916d
Add separate lock for SpendingKey key store operations
2016-08-16 22:17:33 +12:00
Jack Grigg
c2059f9e09
Remove non-libsnark dependencies and test harness code from coverage reports
...
Closes #1203
2016-08-16 22:05:35 +12:00
Jack Grigg
71442d31cf
Add gtest coverage to folders deleted by "make clean"
2016-08-16 20:30:24 +12:00
Jack Grigg
873625bc85
Add gtest coverage intermediates to list of files deleted by make
2016-08-16 18:38:42 +12:00
Jack Grigg
6ecb05dd2f
Enable branch coverage in coverage reports
...
Closes #892
2016-08-16 18:32:56 +12:00
Jack Grigg
5be6abbf84
Store the Equihash solution in minimal representation in the block header
...
The genesis blocks and miner tests have been regenerated, because changing the
block header serialisation format changes the block hash, and thus validity.
The Equihash solutions have been removed from the bloom test inputs for
simplicity (block validity is not checked there; only a valid serialisation is
necessary).
2016-08-16 16:02:39 +12:00
Jack Grigg
20abe2083c
Extend byte array expansion and compression methods with optional padding
2016-08-16 11:02:04 +12:00
Jack Grigg
caa0348f04
Update Equihash hash generation to match the Zcash spec
...
Changes:
- floor(512/n)*n/8 bytes of BLAKE2b output is split between floor(512/n)
adjacent indices, instead of using one hash call per index.
- Parameters with n/(k+1) mod 8 != 0 will expand the BLAKE2b output to byte
boundaries for colliding, instead of using a longer output and clearing bits.
- The genesis blocks have been regenerated.
- The test vectors have been regenerated.
- The Equihash inputs for the cancellation tests were modified to ensure that
valid solutions were available to exercise the full solver.
2016-08-16 11:02:04 +12:00