Commit Graph

348 Commits

Author SHA1 Message Date
Homu 59de56eeca Auto merge of #2342 - bitcartel:1081__mempoolpatch, r=str4d
Add ability for node to reject tx from mempool by number of tx inputs

Implement short-term solution described in #2343 so that users can respond promptly to critical short-term problems caused by quadratic validation scaling, such as the getblocktemplate latency, block propagation latency, and mempool size inflation issues described in #2333.
2017-06-21 14:42:13 -07:00
Jack Grigg 6ea58d1531
Use sendfrom for both t-addr calls 2017-06-22 09:34:10 +12:00
Simon 99f6d5da6c Fix #b1eb4f2 so test checks sendfrom as originally intended.
Also reduce number of z_sendmany calls made so test runs quicker.
2017-06-20 22:49:47 +00:00
Daira Hopwood 193b3e8b28 Delete test that is redundant and inapplicable to Zcash.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2017-06-20 10:03:17 +01:00
Jack Grigg b1eb4f251a
Fix comment 2017-06-20 19:54:11 +12:00
Jack Grigg 4ef014151d
Additional testing of -mempooltxinputlimit 2017-06-20 15:58:46 +12:00
Daira Hopwood 4a785b0a5b Repair tests for strict DER signatures.
While we're at it, repair a similar test for CLTV, and make the repaired RPC tests run by default.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2017-06-19 16:32:15 +01:00
Homu 73676ce6d6 Auto merge of #2200 - str4d:1884-tx-priority-test, r=nathan-at-least
Fix prioritisetransaction RPC test

Part of #1884.
2017-05-16 11:54:49 -07:00
zkbot ab3c2fe7b0 Auto merge of #2265 - daira:2263.fix-rpc-error-reporting, r=daira
Fix an error reporting bug due to BrokenPipeError and ConnectionResetError not existing in Python 2

refs #2263

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2017-04-16 16:56:16 +00:00
zkbot f7f764e0b2 Auto merge of #2189 - bitcartel:1.0.7_with_apache_qpid, r=bitcartel
Add AMQP 1.0 support via Apache Qpid Proton C++ API 0.17.0

Closes #2188
2017-04-16 15:09:19 +00:00
Jay Graber 0a56135336 Poll on getblocktemplate result rather than use bare sleep to avoid race condition. 2017-04-14 17:31:35 -07:00
Daira Hopwood 80cbdbc749 Fix an error reporting bug due to BrokenPipeError and ConnectionResetError not existing in Python 2.
refs #2263

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2017-04-14 21:40:30 +01:00
Simon 99eb947a98 Add AMQP 1.0 support via Apache Qpid Proton C++ API 0.17.0 2017-03-25 08:51:40 -07:00
Wladimir J. van der Laan f3e1770cfb
tests: Disable Tor interaction
This is unnecessary during the current tests (any test for Tor
interaction can explicitly enable it) and interferes with the proxy
test.
2017-03-25 20:25:38 +13:00
zkbot f9f48667be Auto merge of #2176 - str4d:1593-libevent, r=bitcartel
libevent-based http server

Cherry-picked from the following upstream PRs:

- bitcoin/bitcoin#5677
- bitcoin/bitcoin#6695
- bitcoin/bitcoin#6899
- bitcoin/bitcoin#7016
- bitcoin/bitcoin#7964
- bitcoin/bitcoin#8722
- bitcoin/bitcoin#8730
- bitcoin/bitcoin#9073
- bitcoin/bitcoin#9265
- bitcoin/bitcoin#9387
- bitcoin/bitcoin#9471
- bitcoin/bitcoin#9647
- bitcoin/bitcoin#9903
- bitcoin/bitcoin#6640
- bitcoin/bitcoin#8139
- bitcoin/bitcoin#8839

Closes #1593 and #1856.
2017-03-25 04:52:16 +00:00
Wladimir J. van der Laan e93a3e1945
test: Avoid ConnectionResetErrors during RPC tests
This is necessary on FreeBSD and MacOSX, at least.

See https://github.com/bitcoin/bitcoin/pull/8834#issuecomment-250450213
2017-03-24 18:43:40 +13:00
Pieter Wuille 2edad86b2d
Fix interrupted HTTP RPC connection workaround for Python 3.5+ 2017-03-24 18:43:21 +13:00
zkbot 6344719817 Auto merge of #2052 - str4d:2032-z_importkey-partial-rescan, r=bitcartel
Usability improvements for z_importkey

- Add height parameter to z_importkey to reduce rescan range
- Change semantics of rescan parameter, so users can explicitly force a rescan
  for existing keys.

Closes #2032
2017-03-24 03:47:11 +00:00
Jack Grigg 53c96bfa6c
Test boolean fallback in z_importkey 2017-03-24 09:23:11 +13:00
Wladimir J. van der Laan 7b41e725d0
Make RPC tests cope with server-side timeout between requests
Python's httplib does not graciously handle disconnections from the http server, resulting in BadStatusLine errors.
See https://bugs.python.org/issue3566 "httplib persistent connections violate MUST in RFC2616 sec 8.1.4."

This was fixed in Python 3.5.

Work around it for now.
2017-03-24 09:03:59 +13:00
Wladimir J. van der Laan cc14ac45f4
tests: GET requests cannot have request body, use POST in rest.py
Sending a request body with GET request is not valid in HTTP spec, and
not compatible with evhttpd.
2017-03-24 09:03:59 +13:00
Wladimir J. van der Laan 14dcc6ab96
qa: Remove -rpckeepalive tests from httpbasics
This option was a temporary workaround, and is no longer necessary
with the new web server.
2017-03-24 09:03:59 +13:00
Jack Grigg bec25c91cb
Revert "Closes #1680, temporary fix for rpc deadlock inherited from upstream."
This reverts commit f4404d7b5b.
2017-03-24 09:03:59 +13:00
Jack Grigg dec148f498
Fix prioritisetransaction RPC test
Part of #1884.
2017-03-23 18:57:46 +13:00
Jack Grigg b7e5b7d5ee
Simplify z_importkey by making rescan a string
Transparently handles older boolean values as well.
2017-03-23 15:57:11 +13:00
Jack Grigg a31ba7a0cb
Usability improvements for z_importkey
- Add height parameter to z_importkey to reduce rescan range
- Change semantics of rescan parameter, so users can explicitly force a rescan
  for existing keys.

Closes #2032
2017-03-16 19:34:41 +13:00
Jack Grigg 542a7a40f1
Add tests for getmempoolinfo 2017-03-16 14:30:16 +13:00
Pavel Janík 30c163d99d
Implement REST mempool API, add test and documentation. 2017-03-14 13:52:06 +13:00
zkbot a7cf698873 Auto merge of #2100 - str4d:2074-rpc, r=arcalinea
Bitcoin 0.12 RPC PRs 1

Cherry-picked from the following upstream PRs:

- bitcoin/bitcoin#6266
- bitcoin/bitcoin#6257
- bitcoin/bitcoin#6271
- bitcoin/bitcoin#6158
- bitcoin/bitcoin#6307
- bitcoin/bitcoin#6290
- bitcoin/bitcoin#6262
- bitcoin/bitcoin#6088
- bitcoin/bitcoin#6339
- bitcoin/bitcoin#6299 (partial, remainder in #2099)
- bitcoin/bitcoin#6350
- bitcoin/bitcoin#6247
- bitcoin/bitcoin#6362
- bitcoin/bitcoin#5486
- bitcoin/bitcoin#6417
- bitcoin/bitcoin#6398 (partial, remainder was included in #1950)
- bitcoin/bitcoin#6444
- bitcoin/bitcoin#6456 (partial, remainder was included in #2082)
- bitcoin/bitcoin#6380
- bitcoin/bitcoin#6970

Part of #2074.
2017-03-04 02:57:46 +00:00
zkbot dadb1ab74c Auto merge of #2101 - str4d:2074-tests, r=arcalinea
Bitcoin 0.12 test PRs 1

Cherry-picked from the following upstream PRs:

- bitcoin/bitcoin#6337
- bitcoin/bitcoin#6390
- bitcoin/bitcoin#5515
- bitcoin/bitcoin#6287 (partial, remainder included in bitcoin/bitcoin#6703)
- bitcoin/bitcoin#6465

Part of #2074.
2017-03-03 21:25:03 +00:00
Casey Rodarmor df8f8095b6
Don't share objects between TestInstances 2017-03-03 11:47:12 -08:00
Wladimir J. van der Laan 7cc6648341
tests: Extend RPC proxy tests
Also test -noonion
2017-03-03 10:57:13 -08:00
Jack Grigg 25b8f796ff
Re-encode t-addrs in disablewallet.py with Zcash prefixes 2017-03-02 13:26:34 -08:00
Jack Grigg 5329495fe4
Adjust fundrawtransaction RPC test for Zcash
- Enable wallet encryption
- Correct block reward
2017-03-02 13:26:34 -08:00
Wladimir J. van der Laan 56215c77d8
Fix crash in validateaddress with -disablewallet
Fix a null pointer dereference in validateaddress with -disablewallet. Also add a regression testcase.
2017-03-02 13:26:34 -08:00
Jonas Schnelli c2616abb3c
[QA] add testcases for parsing strings as values 2017-03-02 13:26:34 -08:00
Wladimir J. van der Laan d101d7b8e6
univalue: Avoid unnecessary roundtrip through double for numbers
JSON makes no distinction between numbers and reals, and our code
doesn't need to do so either.

This removes VREAL, as well as its specific post-processing in
`UniValue::write`. Non-monetary amounts do not need to be forcibly
formatted with 8 decimals, so the extra roundtrip was unnecessary
(and potentially loses precision).

Zcash: cherry-picked from commit 7650449a6777710cf818d41862626164da0cd412
Left over from 2aee461930
2017-03-02 13:26:34 -08:00
zathras-crypto a11c4bbd26
Exempt unspendable transaction outputs from dust checks
Since unspendable outputs can't be spent, there is no threshold at which it would be uneconomic to spend them.

This primarily targets transaction outputs with `OP_RETURN`.

---

Initially based on:

commit 9cf0ae26350033d43d5dd3c95054c0d1b1641eda
Author: zathras-crypto <zathrasc@gmail.com>
Date:   Wed Mar 25 02:04:02 2015 -0700

Changes:

- cherry-picked on top of bitcoin:master
- added RPC test for fundrawtransaction
2017-03-02 13:26:34 -08:00
Jonas Schnelli 5bfd954fc6
[QA] remove rawtransactions.py from the extended test list
rawtransactions.py is already in the standard test list
2017-03-02 13:23:03 -08:00
Jonas Schnelli 897a370c39
[QA] fix possible reorg issue in rawtransaction.py/fundrawtransaction.py RPC test
- added missing mempool sync between block generations
2017-03-02 13:23:03 -08:00
Jonas Schnelli 81eb80d841
[REST] add JSON support for /rest/headers/ 2017-03-02 13:23:03 -08:00
mruddy 81ae51c883
add tests for the decodescript rpc. add mention of the rpc regression tests to the testing seciton of the main readme. 2017-03-02 13:23:03 -08:00
Jonas Schnelli 788d8e6a6f
fundrawtransaction tests 2017-03-02 13:23:03 -08:00
Jonas Schnelli 2ab237a088
add RPC tests for setban & disconnectnode 2017-03-02 13:23:03 -08:00
Jonas Schnelli e521939942
[RPC] extend setban to allow subnets 2017-03-02 13:23:03 -08:00
Jonas Schnelli 962ec4b5e4
[QA] add setban/listbanned/clearbanned tests 2017-03-02 13:23:03 -08:00
Stephen 6699b42518
Add paytxfee to getwalletinfo, warnings to getnetworkinfo 2017-03-02 13:23:03 -08:00
zkbot 6ee75b3b7b Auto merge of #2014 - arcalinea:test-prioritisetransaction, r=arcalinea
Test prioritisetransaction

After talking with @str4d about #1884 , I wrote a test for prioritisetransaction. It uses small blocks (11kb), and checks whether a transaction makes it into the next block after being prioritized by that node.

Should this be improved with a larger number of txs in the mempool, or by testing over multiple runs?

As for getblocktemplate(), it seems to return the prioritized transaction within the block size set by the node (about 50 txs fit in an 11kb block), but the block "sizelimit" it displays is set at 2 MB in `rpcmining.cpp` line 690:
```
result.push_back(Pair("sizelimit", (int64_t)MAX_BLOCK_SIZE));
```

This was quite confusing, I didn't think the `-blockmaxsize` parameter I was setting was working for awhile.
2017-03-02 06:47:04 +00:00
Simon 85c9ecb846 Part of #1969. Update tests to avoid error 'absurdly high fee' from change in min fee calc. 2017-02-28 11:44:51 -08:00
Simon ebe750a882 Part of #1969. Changing min fee calculation also changes the dust threshold. 2017-02-28 11:44:07 -08:00
Jay Graber 8d2dac6e3f Inc num of txs in test mempool 2017-02-27 14:11:09 -08:00
Jay Graber cc64e2ccc8 Add rpc test for prioritisetransaction 2017-02-12 11:01:45 -08:00
Simon 238fec642d Update test to check for updated error messages in AmountFromValue(). 2017-02-09 23:32:15 -08:00
zkbot 7d4ced95ed Auto merge of #2056 - str4d:2035-experimental-mode, r=bitcartel
Add a flag for enabling experimental features

Closes #2035.
2017-02-09 23:39:02 +00:00
zkbot d32511c72c Auto merge of #2054 - str4d:2030-decoderawtransaction-joinsplit-fields, r=bitcartel
Show all JoinSplit components in getrawtransaction and decoderawtransaction

Closes #2030.
2017-02-09 22:56:01 +00:00
Simon 91270dcfbc Update test to check for more joinsplit related fields in getrawtransaction 2017-02-09 14:48:58 -08:00
Jack Grigg b8eb37757b
Require -experimentalmode for wallet encryption 2017-02-09 22:10:58 +00:00
zkbot 253c610783 Auto merge of #2050 - str4d:2020-zmq, r=bitcartel
Add ZeroMQ notifications

Cherry-picked from the following upstream PRs:

- bitcoin/bitcoin#6103
- bitcoin/bitcoin#6684
- bitcoin/bitcoin#6686
- bitcoin/bitcoin#6736
- bitcoin/bitcoin#6739
- bitcoin/bitcoin#6743
- bitcoin/bitcoin#6768
- bitcoin/bitcoin#6779
- bitcoin/bitcoin#6810
- bitcoin/bitcoin#6927
- bitcoin/bitcoin#6980 (only upgrading zeromq)
- bitcoin/bitcoin#6680
- bitcoin/bitcoin#7058
- bitcoin/bitcoin#7621
- bitcoin/bitcoin#7335 (only parts affecting `zmq_test.py`)
- bitcoin/bitcoin#7853 (only parts affecting `zmq_test.py`)
- bitcoin/bitcoin#7762
- bitcoin/bitcoin#7993 (only upgrading zeromq)
- bitcoin/bitcoin#8238
- bitcoin/bitcoin#8701
- bitcoin/bitcoin#6685

Closes #2020.
2017-02-09 20:08:15 +00:00
zkbot b2e2dccc64 Auto merge of #2068 - bitcartel:2045_sendmany_fee_zero, r=bitcartel
Closes #2045 by allowing z_sendmany with 0 fee
2017-02-09 18:56:44 +00:00
Jack Grigg 8db0dd93e4
Add test to check for presence of vpub_old & vpub_new in getrawtransaction 2017-02-09 16:38:01 +00:00
Simon 75bb764bb8 Add test for z_sendmany with fee of 0 2017-02-08 15:26:33 -08:00
Jonas Schnelli 3ba2e19e2b
[ZMQ] append a message sequence number to every ZMQ notification 2017-02-08 22:11:53 +00:00
Jack Grigg c7cb3c13ea
[qa] py2: Unfiddle strings into bytes explicitly in ZMQ RPC test
Extracted from bitcoin/bitcoin#7853
commit faa41ee204124da19dcf1e5b8a3aef1e216bf5e6
2017-02-08 22:11:53 +00:00
Jack Grigg a9445db62f
Fix python syntax in ZMQ RPC test
Extracted from bitcoin/bitcoin#7335
commit 7777994846cdb9b9cf69e391a33eeed30393bbcf
2017-02-08 22:11:53 +00:00
Cory Fields 5088de4bb8
travis: install a recent libzmq and pyzmq for tests 2017-02-08 22:10:42 +00:00
Jonas Schnelli 5c7f84cf26
[travis] add zmq python module 2017-02-08 22:10:42 +00:00
Jonas Schnelli da0e7aa1d7
QA: Add ZeroMQ RPC test 2017-02-08 22:10:42 +00:00
Simon aa0ab69a15 Closes #2024 by documenting and testing method field in z_getoperationstatus 2017-02-06 14:53:56 -08:00
Simon a45d2ec79c Update test to verify order of zrpcunsafe log messages 2017-02-01 14:41:35 -08:00
Simon a1477f6fac Add test to verify z_sendmany logging 2017-02-01 11:02:03 -08:00
zkbot 0edb3c0f16 Auto merge of #1978 - str4d:1941-scan-whole-chain-on-zkey-import, r=ebfull
Scan the whole chain whenever a z-key is imported

Closes #1941.
2017-01-20 00:02:12 +00:00
Sean Bowe 620c0e2845 Add test for z_importkey rescanning from beginning of chain. 2017-01-19 16:59:29 -07:00
zkbot 78674ca79e Auto merge of #2007 - bitcartel:1097_copyright_notice_and_date, r=bitcartel
Closes #1097 so that zcash-cli displays license info like zcashd.

LicenseInfo is refactored from init.cpp to util.cpp so that the
bitcoin-cli makefile target does not need to be modified.
2017-01-19 00:56:47 +00:00
Simon 774489569a Increase timeout for z_sendmany transaction in wallet.py qa test 2017-01-18 16:54:39 -08:00
zkbot 63e0e895a5 Auto merge of #2006 - bitcartel:1497_destination_path_validation_when_exporting, r=bitcartel
Fixes #1497 ZCA-009 by restricting export to a user defined folder and sanitizing filenames
2017-01-18 18:19:50 +00:00
Simon bab89e35c7 Update walletbackup.py qa test to use -exportdir option 2017-01-18 10:05:49 -08:00
Simon 8aa7937d44 Fixes #1960: z_getoperationstatus/result now includes operation details. 2017-01-16 16:45:27 -08:00
zkbot 02bb4df58d Auto merge of #1918 - bitcartel:timeout_cpu_throttling, r=str4d
Increase timeout as laptops on battery power have cpu throttling.

Merge this last as other PRs also update the test file `wallet_protectcoinbase.py`.
2016-12-09 09:03:37 +00:00
zkbot 0617e428e2 Auto merge of #1895 - bitcartel:1857_tx_priority, r=str4d
Closes #1857. Fixes bug where a transaction sending from a zaddr would have a priority of zero.

Transactions sent from a zaddr should now be mined sooner as they no longer have a priority of zero
2016-12-09 08:10:21 +00:00
zkbot e68e26c208 Auto merge of #1911 - bitcartel:1823_witness_does_not_have_same_anchor_as_change_input, r=str4d
With chained joinsplits, witness anchors for input notes no longer cross block boundaries

Closes #1823
2016-12-08 01:23:40 +00:00
Simon f3c4919027 Increase timeout as laptops on battery power have cpu throttling. 2016-12-05 10:46:12 -08:00
Simon 2d931e905b Fixes #1823. Witness anchors for input notes no longer cross block boundaries. 2016-12-03 00:22:42 -08:00
Simon af53da0225 Closes #1903. Add fee parameter to z_sendmany. 2016-11-30 14:23:35 -08:00
Simon 520ced1405 Closes #1857. Fixes bug where tx spending only notes had priority of 0. 2016-11-28 22:54:49 -08:00
Simon 0afd3687c8 Closes #1854. z_sendmany selects more utxos to avoid dust change output. 2016-11-15 17:12:37 -08:00
Simon 9ddb6ad028 Mempool will accept tx with joinsplits and the default z_sendmany fee.
Issue #1851 shows that a zaddr->taddr can be rejected from mempools
due to not meeting fee requirements given the size of the transaction.
Fee calculation for joinsplit txs has not yet been agreed upon, so
during this interim period, this patch ensures  joinsplit txs using
the default fee are not rejected due to an insufficient fee.
2016-11-15 11:32:59 -08:00
zkbot 4e72614fb0 Auto merge of #1847 - bitcartel:1680_rpckeepalive_deadlock, r=ebfull
Closes #1680, temporary fix for rpc deadlock inherited from upstream.
2016-11-15 10:25:24 +00:00
Simon f4404d7b5b Closes #1680, temporary fix for rpc deadlock inherited from upstream. 2016-11-15 00:31:24 -08:00
Simon 9384e74c50 Closes #1833. Format currency amounts in z_sendmany error message.
Improve coverage of possible error states from z_sendmany.
Refactor qa test for z_sendmany operations.
2016-11-10 16:57:36 -08:00
Simon 3920292b43 Add transaction size and zaddr output limit checks to z_sendmany. 2016-11-07 09:29:56 -08:00
Simon 7c463780cf Fixes #1779 so that sending to multiple zaddrs no longer fails.
Commit 2eeb6b randomized the order of input and output notes,
but this is now known to prevent the chaining of multiple joinsplits
in a single transaction.  The root cause has yet to be determined.

This patch is a temporary fix and disables the shuffling of input
and output notes.  It also adds a chained joinsplit test to the
python qa test suite.
2016-11-04 23:23:48 -07:00
Sean Bowe 52676958d1 Test that a pure joinsplit will mine if other transactions are in the mempool. 2016-11-02 14:25:07 -06:00
Simon db026807b8 Add z_sendmany rule that when sending coinbase utxos to a zaddr
they must be consumed entirely, without any change, since there
is currently no way to specify a change address in z_sendmany.
2016-10-24 21:34:16 -07:00
zkbot a294b26db7 Auto merge of #1375 - str4d:1331-node-metrics, r=daira
Add node metrics screen

Continuation of #1336
Closes #1331
2016-10-22 20:21:11 -04:00
Daira Hopwood 02a4ace02c Disable metrics screen in RPC tests
Author: Jack Grigg <jack@z.cash>
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-10-23 01:05:57 +01:00
zkbot 026c3f784f Auto merge of #1602 - str4d:1424-minimal-getblocktemplate, r=daira
Minimal modifications to getblocktemplate

A simpler alternative to #1435 that ensures Zcash GBT will remain compatible with BIP 22.

Closes #1424
2016-10-22 16:40:59 -04:00
Jack Grigg bc54cf06cc
Fix RPC test 2016-10-22 15:36:38 -05:00
Jack Grigg 07064ea2d1
GBT: Add RPC tests 2016-10-21 23:38:37 -05:00
Jack Grigg 1628efedaf
GBT: Correct block header in proposals RPC test 2016-10-21 23:36:35 -05:00
zkbot 48888b67c9 Auto merge of #1599 - daira:1597.fix-other-potential-race-conditions, r=daira
Fix other potential race conditions similar to ref #1597 in RPC tests.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-10-22 00:15:32 -04:00