Commit Graph

13453 Commits

Author SHA1 Message Date
Alex Morcos
5b95a190e8 Make pcoinsTip memory calculations consistent
Since we are more accurately measuring pcoinsTip peak usage at twice the current in dynamic usage, it makes sense to double the default (this will lead to the same effective usage and peak usage as previously).
We should also double the buffer used to avoid flushing if above 90% but still sufficient space remaining.
2017-03-31 13:15:39 -04:00
Wladimir J. van der Laan
4aa07fa735
Merge #10095: refactor: Move GetDifficulty out of rpc/server.h
f885b67 refactor: Make rest.cpp dependency on `*toJSON` in `blockchain.cpp` explicit (Wladimir J. van der Laan)
8d8f28d refactor: Move RPCNotifyBlockChange out of `rpc/server.h` (Wladimir J. van der Laan)
e6dcfee refactor: Move GetDifficulty out of `rpc/server.h` (Wladimir J. van der Laan)

Tree-SHA512: fc2656611d18442f2fddba5ac1554d958151f6785c2039afdfc36735d7e71592d9686ff6cc7b2ad95180071d7514470e62c52d697c5a1e88f851bddaf5942edb
2017-03-31 12:57:30 +02:00
Wladimir J. van der Laan
9ab26bf7e4
Merge #10126: Compensate for memory peak at flush time
7228ce8 Compensate for memory peak at flush time (Pieter Wuille)

Tree-SHA512: 97e9848410fab061402c85d8440c54a50dd8a0203b2ea194013ea116700a6dc1b4b26b8c5f9c9c68c1f5c6b935c5d6c737437c1911b003d9ff5445c570cd449d
2017-03-31 12:06:14 +02:00
Wladimir J. van der Laan
ba12b3a844
Merge #10120: util: Work around (virtual) memory exhaustion on 32-bit w/ glibc
625488a util: Work around (virtual) memory exhaustion on 32-bit w/ glibc (Wladimir J. van der Laan)

Tree-SHA512: 99b610a8cf9561998af90e16fc19320fddd30c987e8f33325d63df0f56d70235b94d9482e80f28154d4b33a3ecf4961686380c444ec18d1da5e8804a8b6f4de1
2017-03-31 11:30:59 +02:00
Wladimir J. van der Laan
de301b0488
Merge #10130: bitcoin-tx input verification (awemany, jnewbery)
19ecd1e Add tests for bitcoin-tx input checking (John Newbery)
21704f6 Check stderr when testing bitcoin-tx (John Newbery)
eb66bf9 bitcoin-tx: Fix missing range check (Awemany)

Tree-SHA512: 08c6153cf7dd5e0ecd23e24d81af4c0f17534d484179dd91dcd78d42df14c91284341d31cc695469a64c507bce72c34231748b7cabb7df8f1051d228fb0a62c5
2017-03-31 10:21:38 +02:00
MarcoFalke
8e4f7e7241
Merge #10090: Update bitcoin.conf with example for pruning
c0651cc Update bitcoin.conf with example for pruning (Kyle Honeycutt)

Tree-SHA512: f27180ac5d5a4bd32c7a63de156ca14eb8068509e64d386ca84ee16d0dacfa8e1bab9a8e7b88175fae12c8d823f71f8705d413f224a15d5aa7cf059f416fa023
2017-03-31 09:26:52 +02:00
John Newbery
19ecd1e2e1 Add tests for bitcoin-tx input checking 2017-03-30 16:37:53 -04:00
John Newbery
21704f6334 Check stderr when testing bitcoin-tx 2017-03-30 16:37:53 -04:00
Awemany
eb66bf9bdd bitcoin-tx: Fix missing range check
The number of arguments is not checked MutateTxAddOutAddr(..), meaning
that

> ./bitcoin-tx -create outaddr=

accessed the vStrInputParts vector beyond its bounds.

This also includes work by jnewbery to check the inputs for
MutateTxAddPubKey()
2017-03-30 15:35:24 -04:00
Wladimir J. van der Laan
edc62c959a
Merge #10114: [tests] sync_with_ping should assert that ping hasn't timed out
6a18bb9 [tests] sync_with_ping should assert that ping hasn't timed out (John Newbery)
6426716 Add send_await_disconnect() method to p2p-compactblocks.py (John Newbery)

Tree-SHA512: d0eeb066ed3f6aef594caaa693280d10abedac9b719e795c9659e52ddae315085eb2845131644793007e30a16e3e0bf3e3925b40ca2ae023cad923c5ab32df25
2017-03-30 21:27:22 +02:00
Pieter Wuille
7228ce853d Compensate for memory peak at flush time 2017-03-30 12:05:05 -07:00
Wladimir J. van der Laan
cde9b1a864
Merge #9959: Mining: Prevent slowdown in CreateNewBlock on large mempools
011124a Update benchmarking with package statistics (Suhas Daftuar)
42cd8c8 Add benchmarking for CreateNewBlock (Suhas Daftuar)
eed816a Mining: return early when block is almost full (Suhas Daftuar)

Tree-SHA512: c0d8f71e4e0441acf3f4ca12f8705e413b59b323659346a447145653def71710537fb4c6d80cad8e36d68b0aabf19c92e9eab7135a8897b053ed58720856cdda
2017-03-30 20:55:29 +02:00
John Newbery
6a18bb9a36 [tests] sync_with_ping should assert that ping hasn't timed out
sync_with_ping currently returns false if the timeout expires, and it is
the caller's responsibility to fail the test. However, none of the tests
currently assert on sync_with_ping()'s return code. This commit adds an
assert to sync_with_ping so the test will fail if the timeout expires.

This commit also removes all the duplicate implementations of
sync_with_ping() from the individual tests.
2017-03-30 08:39:12 -04:00
John Newbery
6426716a99 Add send_await_disconnect() method to p2p-compactblocks.py
p2p-compactblocks was incorrectly using sync_with_ping() when sending in
invalid block. The node would disconnect us and never respond to the
ping, so the sync_with_ping would just time out after 30 seconds and
continue with the test.

This commit adds a send_await_disconnect() method that sends the
message, and then waits for the node to disconnect us. In this commit
I've added the method to p2p-compactblocks.py, but a future commit could
move it to mininode since it could be useful more generally.

This commit reduces the p2p-compactblock runtime by 30 seconds.
2017-03-30 08:39:12 -04:00
Wladimir J. van der Laan
625488ace5 util: Work around (virtual) memory exhaustion on 32-bit w/ glibc
glibc-specific: On 32-bit systems set the number of arenas to 1. By
default, since glibc 2.10, the C library will create up to two heap
arenas per core. This is known to cause excessive virtual address space
usage in our usage. Work around it by setting the maximum number of
arenas to 1.
2017-03-30 09:45:41 +02:00
MarcoFalke
8ac8041286
Merge #10109: Remove SingleNodeConnCB
159fe88 Remove SingleNodeConnCB (John Newbery)

Tree-SHA512: 2fc3d060f4ac9445e657134919a871c46987d53eb98d23a858ee9515fc997be7a81923f08f2a37d07d123b55b912ae82ffa0f820d16297b044ab24dcf0788a8a
2017-03-30 09:23:15 +02:00
Kyle Honeycutt
c0651cca49 Update bitcoin.conf with example for pruning
This option is becoming more popular recently, and I propose an example to be shown in the bitcoin.conf.

pruning comments

updated and corrected pruning comments

Revised details on pruning in bitcoin.conf

Revised details on pruning in bitcoin.conf

spelling and space

spelling and space

add details on pruning in bitcoin.conf
2017-03-29 19:09:43 -07:00
Suhas Daftuar
011124a2b2 Update benchmarking with package statistics 2017-03-29 13:57:52 -04:00
Suhas Daftuar
42cd8c890f Add benchmarking for CreateNewBlock 2017-03-29 13:57:52 -04:00
Suhas Daftuar
eed816af6c Mining: return early when block is almost full 2017-03-29 13:57:52 -04:00
Wladimir J. van der Laan
f34cdcbd80
Merge #9294: Use internal HD chain for change outputs (hd split)
4115af7 Fix rebase issue where pwalletMain was used instead of pwallet Ser./Deser. nInternalChainCounter as last element (Jonas Schnelli)
9382f04 Do not break backward compatibility during wallet encryption (Jonas Schnelli)
1df08d1 Add assertion for CanSupportFeature(FEATURE_HD_SPLIT) (Jonas Schnelli)
cd468d0 Define CWallet::DeriveNewChildKey() as private (Jonas Schnelli)
ed79e4f Optimize GetOldestKeyPoolTime(), return as soon as we have both oldest keys (Jonas Schnelli)
771a304 Make sure we set the wallets min version to FEATURE_HD_SPLIT at the very first point (Jonas Schnelli)
1b3b5c6 Slightly modify fundrawtransaction.py test (change getnewaddress() into getrawchangeaddress()) (Jonas Schnelli)
003e197 Remove FEATURE_HD_SPLIT bump TODO (Jonas Schnelli)
d9638e5 Overhaul the internal/external key derive switch (Jonas Schnelli)
1090502 Fix superfluous cast and code style nits in RPC wallet-hd.py test (Jonas Schnelli)
58e1483 CKeyPool avoid "catch (...)" in SerializationOp (Jonas Schnelli)
e138876 Only show keypoolsize_hd_internal if HD split is enabled (Jonas Schnelli)
add38d9 GetOldestKeyPoolTime: if HD & HD Chain Split is enabled, response max(oldest-internal-key, oldest-external-key) (Jonas Schnelli)
dd526c2 Don't switch to HD-chain-split during wallet encryption of non HD-chain-split wallets (Jonas Schnelli)
79df9df Switch to 100% for the HD internal keypool size (Jonas Schnelli)
bcafca1 Make sure we always generate one keypool key at minimum (Jonas Schnelli)
d0a627a Fix issue where CDataStream->nVersion was taken a CKeyPool record version (Jonas Schnelli)
9af8f00 Make sure we hand out keypool keys if HD_SPLIT is not enabled (Jonas Schnelli)
469a47b Make sure ReserveKeyFromKeyPool only hands out internal keys if HD_SPLIT is supported (Jonas Schnelli)
05a9b49 Fix wrong keypool internal size in RPC getwalletinfo help (Jonas Schnelli)
01de822 Removed redundant IsLocked() check in NewKeyPool() (Jonas Schnelli)
d59531d Immediately return setKeyPool's size if HD or HD_SPLIT is disabled or not supported (Jonas Schnelli)
02592f4 [Wallet] split the keypool in an internal and external part (Jonas Schnelli)

Tree-SHA512: 80d355d5e844b48c3163b56c788ab8b5b5285db0ceeb19858a3ef517d5a702afeca21dbae526d7b8fb4101c2a745af1d92bf557c40cf516780f17992bf678c1a
2017-03-29 12:51:06 +02:00
MarcoFalke
f2734c2828
Merge #10107: Remove unused variable. Remove accidental trailing semicolons in Python code
85de9d4 Remove call to gettransaction(...) where the result is unused (practicalswift)
bd02422 Remove accidental trailing semicolons in Python code (practicalswift)

Tree-SHA512: 23ffb1ccc29bf73b334d62b274ab614cb40e2969147adccacbaecc69a410a661a9f2dd9e9cbc8a70bd2c7f345095efc68743f288eb866315e0e8731441ba01d0
2017-03-29 11:16:48 +02:00
Wladimir J. van der Laan
9692be4a9a
Merge #10084: rpc: Rename first named arg of createrawtransaction
fa55853 rpc: Rename first named arg of createrawtransaction (MarcoFalke)

Tree-SHA512: f2e07183f2503344e676e08fe0fd73e995d7c6fda3fc11c64116208dec8e445f0627583dfba85014129b6f2dc7e253b9d760e57e66811272db89e9ba25ce6dbc
2017-03-29 10:44:47 +02:00
Wladimir J. van der Laan
f885b67029 refactor: Make rest.cpp dependency on *toJSON in blockchain.cpp explicit 2017-03-29 09:56:47 +02:00
Pieter Wuille
4bd0e9b90a
Merge #10088: Trivial: move several relay options into the relay help group
0fb2887 Move several relay options into the Relay help group (Jameson Lopp)

Tree-SHA512: 31fdfd8c741adb6fe6806a28955f0fbbc9360b1d8c3d8a28684794822f1b3231fffab93357357d986b81a4532c9eeabb79e5ede9378ff3ad8930ceb6588d9eb6
2017-03-29 00:31:34 -07:00
Pieter Wuille
7438ceac71
Merge #10086: Trivial: move rpcserialversion into RPC option group
1403b1a move rpcserialversion into RPC option group (Jameson Lopp)

Tree-SHA512: c56cc318ea09ac27a8e12b8b9a1006992dcb969e6112df5046975b548aad30f729a4204f4893c8fe9bf5b50442eba6c75b5f8dd6d1261cf83c938474e93e9a7e
2017-03-29 00:28:51 -07:00
Pieter Wuille
4e3efd47e0
Merge #10108: ApproximateBestSubset should take inputs by reference, not value
5335132 ApproximateBestSubset should take inputs by reference, not value (Ryan Havar)

Tree-SHA512: 0990de7efbeba8ef9b70ccee45298c2fb982459a64e44b6395f7d28808740315d2d26e87103d4848677fc519cdf3247c1bde498ecb2e239e18134cb933e6b661
2017-03-28 18:21:52 -07:00
John Newbery
159fe88abf Remove SingleNodeConnCB
This commit merges the NodeConnCB and SingleNodeConnCB into a single
class (called NodeConnCB). The original intent for the NodeConnCB was to
be able to have a python 'mininode' connect to multiple running
bitcoinds. This has never been used and can be achieved more easily by
having multiple NodeConns backed by a common datastore if it is ever
needed.

The changes in mininode.py are just code moves (and merging the two
classes into a single class). The code changes in the individual test
cases are changing the subclasses to subclass from NodeConnCB instead of
SingleNodeConnCB. There is a lot of duplicate code in the subclasses
that can be removed in future commits.
2017-03-28 14:16:21 -04:00
Ryan Havar
53351321c4 ApproximateBestSubset should take inputs by reference, not value 2017-03-28 12:11:44 -06:00
practicalswift
85de9d474b Remove call to gettransaction(...) where the result is unused 2017-03-28 15:19:52 +02:00
practicalswift
bd02422332 Remove accidental trailing semicolons in Python code 2017-03-28 15:19:19 +02:00
MarcoFalke
0b9fb68289
Merge #10105: [tests] fixup - make all Travis test runs quiet, non just cron job runs
91f1f19 Make all Travis test runs quiet, non just cron job runs (John Newbery)

Tree-SHA512: 747cca83c836b25d8dad85c5d3643002c8cbe2d37dcd3bb8bb95049c487a02910a4fa0823003770ab94c11f289635722b194de18a167edb5cf3c7352a860067c
2017-03-28 15:09:30 +02:00
John Newbery
91f1f19674 Make all Travis test runs quiet, non just cron job runs 2017-03-28 08:47:18 -04:00
MarcoFalke
5b029aaedb
Merge #10076: [qa] combine_logs: Use ordered list for logfiles
fa4535d [qa] combine_logs: Use ordered list for logfiles (MarcoFalke)

Tree-SHA512: 66da6f2659018d24b1cac1f6d2ee8603c2c6f15ce5aff456e8e4b208874e97c7046b97112046d5b45bfd777b405771a3ad0a55036c4f4cdeec06842563af2c4d
2017-03-28 14:45:07 +02:00
MarcoFalke
79af9fbd8c
Merge #10096: Check that all test scripts in test/functional are being run
29d6634 Check that all test scripts in test/functional are being run (John Newbery)

Tree-SHA512: 9231d3a119632be031c51c4f7e95a8adae58489a8ec36fc967d499c0708bae2941a3bf28f11dcd4efd59141eb54c3c920f2629f5cd8a0139d30397a19591666d
2017-03-28 11:36:42 +02:00
MarcoFalke
c412fd805d
Merge #9780: Suppress noisy output from qa tests in Travis
8c7288c Print out the final 1000 lines of test_framework.log if test fails (John Newbery)
6d780b1 Update travis config to run rpc-tests.py in quiet mode (John Newbery)
55992f1 Add --quiet option to suppress rpc-tests.py output (John Newbery)

Tree-SHA512: ab080458a07a9346d3b3cbc8ab59b73cea3d4010b1cb0206bb5fade0aaac7562c623475d0a02993f001b22ae9d1ba68e2d0d1a3645cea7e79cc1045b42e2ce3a
2017-03-28 11:24:50 +02:00
Jonas Schnelli
4115af7ac7
Fix rebase issue where pwalletMain was used instead of pwallet
Ser./Deser. nInternalChainCounter as last element
2017-03-28 09:18:20 +02:00
John Newbery
8c7288c06b Print out the final 1000 lines of test_framework.log if test fails 2017-03-27 19:34:25 -04:00
John Newbery
6d780b1b0c Update travis config to run rpc-tests.py in quiet mode 2017-03-27 11:55:52 -04:00
John Newbery
55992f1302 Add --quiet option to suppress rpc-tests.py output
rpt-tests.py outputs progress information as it runs tests. This commit
adds a --quiet option that suppresses that progress output and only
prints a summary of results (and logs from failed tests).
2017-03-27 11:55:48 -04:00
John Newbery
29d6634a69 Check that all test scripts in test/functional are being run
This commit checks that all of the python files in the test/functional
directory are listed in test_runner.py.
2017-03-27 11:33:00 -04:00
Wladimir J. van der Laan
8d8f28dd52 refactor: Move RPCNotifyBlockChange out of rpc/server.h 2017-03-27 16:23:22 +02:00
Wladimir J. van der Laan
e6dcfeec05 refactor: Move GetDifficulty out of rpc/server.h
It has no business in `rpcserver.h`. Define it in the interface header
of the implementation unit `rpcblockchain` where it is defined.

Also modernize the signature to:

    double GetDifficulty(const CBlockIndex* blockindex = nullptr);

(remove `extern`, replace `NULL` with `nullptr`)
2017-03-27 12:21:35 +02:00
MarcoFalke
fa4535df57 [qa] combine_logs: Use ordered list for logfiles 2017-03-27 11:26:31 +02:00
Wladimir J. van der Laan
5114f81136
Merge #10057: [init] Deduplicated sigaction() boilerplate
81a3857 Deduplicated sigaction() boilerplate (Thomas Snider)

Tree-SHA512: 705b73f285a3d76504ba01476e072fdce67731b65f309bb04e4bbd765556c37e127cb769b475de2d68b33f50d7737fb136aefa0fa7c725a11ad16a47b9d0365f
2017-03-27 10:36:57 +02:00
Wladimir J. van der Laan
e6156a0aa3
Merge #10056: [zmq] Call va_end() on va_start()ed args.
5ba61f0 [zmq] Call va_end() on va_start()ed args. (Karl-Johan Alm)

Tree-SHA512: fbd3a0c29308ca9607f362f14fa7ea9c949a3f25dc09a349fe3b3ffd316b573c86778e29d3b9d55c684571eacae50aca90bb872e2e5489818d0af8310511fe79
2017-03-27 10:34:18 +02:00
Jonas Schnelli
0ddea4430d
Merge #10060: [Qt] Ensure an item exists on the rpcconsole stack before adding
4df76e2 Ensure an item exists on the rpcconsole stack before adding (Andrew Chow)

Tree-SHA512: f3fd5e70da186949aff794f6e2ba122da2145331212dcc5e0595285bee9dc3aa6b400b15e8eeec4476099965b74f46c4ef80f8ed1e05d490580167b002b9a5e7
2017-03-27 09:55:17 +02:00
Jonas Schnelli
9382f0425e
Do not break backward compatibility during wallet encryption 2017-03-27 09:51:55 +02:00
Wladimir J. van der Laan
b1a4f27576
Merge #10073: Actually run assumevalid.py
717ad13 Actually run assumevalid.py. (John Newbery)

Tree-SHA512: 6fd55789be43e26347f8f5456194aa5e7beeeba3db85411dc75581b98059ca3a85485494fca36848f21c0f48096004906a0409fd76309951b5f977bab9f45b91
2017-03-27 09:50:42 +02:00
Wladimir J. van der Laan
db1ae5470b
Merge #10085: Docs: remove 'noconnect' option
d5690f1 remove 'noconnect' option from documentation (Jameson Lopp)

Tree-SHA512: 9c61df5ee7b2b9a8188cbf44fced05c41ded3454758dbc1b1ae641cea0301a65169381f20c045027e571ebe211a42e680a66daed47090f91766403cc60147e89
2017-03-27 09:35:00 +02:00