Commit Graph
100 Commits
Author SHA1 Message Date
Jack Grigg 6a7acc29a1 Set CBlockIndex.hashAnchor correctly in ConnectBlock 2016-10-17 11:09:24 -05:00
Jack Grigg 85457ddec1 Add clear error message for upgrading users 2016-10-17 09:55:02 -05:00
Jack Grigg b6961fc112 Increment witnesses for new transactions on rescan
Closes #1400
2016-10-17 09:55:02 -05:00
Jack Grigg 83d7b5b67b Add more asserts to track down the bug 2016-10-17 05:09:27 +01:00
Jack Grigg 6e263a5fd3 Address review comments 2016-10-16 16:26:51 -05:00
Jack Grigg de064bab95 Update libsnark to include determinism fix 2016-10-16 12:27:01 -05:00
Jack Grigg 6fe11af7b5 Render full version correctly in configure.ac
Required in order for "make dist" to generate the correct filename
2016-10-15 15:57:11 -05:00
Jack Grigg c06664fb8f Fix Makefiles so "make dist" will run 2016-10-15 15:57:11 -05:00
Jack Grigg 7d1c2d0b72 [gitian] Don't call "make check-symbols"
Currently it does not recognise any of the C++11 symbols. We can re-enable this
when either we update it, or upstream migrates to C++11 and does so.
2016-10-15 15:55:28 -05:00
Jack Grigg 85fe644139 Remaining changes from bitcoin/bitcoin#6854
Add a check to symbol-check.py that checks that only the subset of
allowed libraries is imported (to avoid incompatibilities).

See 56734f4b27 for the earlier changes.
2016-10-15 13:47:10 -05:00
Jack Grigg a581fe2aae Only ignore runtime errors caused by failed note decryption 2016-10-14 17:16:09 -05:00
Jack Grigg ddea44a27e Update comments 2016-10-14 17:16:09 -05:00
Jack Grigg 1a62587e9a Delay caching of nullifiers when wallet is locked
Closes #1502
2016-10-14 17:16:09 -05:00
Jack Grigg 8f445ee774 Break the RPC test by encrypting the mirroring wallet 2016-10-14 17:14:13 -05:00
Jack Grigg 52fdce985f Add RPC test showing correct handling of JS txns from blockchain
For unencrypted wallets, the wallet correctly tracks JoinSplits made for their
zkey in a different wallet.
2016-10-14 17:14:13 -05:00
Jack Grigg fb2653ed0e Add unit test that fails when calling FindMyNotes on a locked wallet 2016-10-14 17:14:13 -05:00
Jack Grigg 6da46b692a Refactor test to clarify expectations 2016-10-14 09:31:26 -05:00
Jack Grigg e492d98632 Document CWalletTx::FindMyNotes
Part of #1447
2016-10-13 18:27:58 -05:00
Jack Grigg 82c2d97c60 Add unit tests for WriteWitnessCache
Requires moving implementation into header
2016-10-11 09:33:47 -05:00
Jack Grigg 715e5bbefd Correct docstring 2016-10-10 10:47:38 -05:00
Jack Grigg 7b3351ff0e Deprecated -> Unsupported in RPC error 2016-10-10 10:47:36 -05:00
Jack Grigg b6f100cf86 Update tests for account deprecation 2016-10-10 10:47:30 -05:00
Jack Grigg 3c31eb24d3 Throw an RPC error for all accounts except the default 2016-10-05 15:16:47 -05:00
Jack Grigg 6216b4b2dc WriteWitnessCache: Catch errors and abort transaction
Closes #1456
2016-10-05 09:49:43 -05:00
Jack Grigg ece30654a8 Update release process to sign release tags 2016-10-04 23:07:13 -05:00
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