Commit graph

14927 commits

Author SHA1 Message Date
Wladimir J. van der Laan
e7f125562f
Merge #11237: qt: Fixing division by zero in time remaining
c8d38abd6 Refactor tipUpdate as per style guide (MeshCollider)
3b69a08c5 Fix division by zero in time remaining (MeshCollider)

Pull request description:

  Fixes https://github.com/bitcoin/bitcoin/issues/10291, https://github.com/bitcoin/bitcoin/issues/11265

  progressDelta may be 0 (or even negative according to 11265), this checks for that and prints unknown if it is, because we cannot calculate an estimate for the time remaining (would be infinite or negative).

Tree-SHA512: bc5708e5ed6e4670d008219558c5fbb25709bd99a32c98ec39bb74f94a0b7fa058f3d03389ccdd39e6723e6b5b48e34b13ceee7c051c2db631e51d8ec3e1d68c
2017-09-07 21:05:47 +02:00
Jonas Schnelli
a3624ddb1a
Merge #11156: Fix memory leaks in qt/guiutil.cpp
9b348ff9e Fix memory leaks in qt/guiutil.cpp (Dan Raviv)

Pull request description:

  on macOS:
  `listSnapshot` was leaking in `findStartupItemInList()`
  `bitcoinAppUrl` was leaking in `[Get|Set]StartOnSystemStartup()`

Tree-SHA512: dd49e1166336cf4f20035d21930f2f99f21f1d9f91a1101b1434a23dd0b92d402ac7efb177473c758d8af1dbab8d8750485583231c5b5854203d2493f0b43e73
2017-09-07 10:02:27 -07:00
Jonas Schnelli
ea729d55b4
Merge #10770: Drop upgrade-cancel callback registration for a generic "cancelable"
ee4d1493e Drop upgrade-cancel callback registration for a generic "resumeable" (Matt Corallo)

Pull request description:

  Instead of passing a StartShutdown reference all the way up from
  txdb, give ShowProgress a "cancelable" boolean, as StartShutdown
  is pretty much always what you'll want to use to cancel. Use the
  same boolean to allow cancel during initial block verification.

Tree-SHA512: 515817aaa4b9e3e856200e00be9c2d44ecfa2d4f288fe3e02116105fe85de2650c13076ee7e45396ec1ce6ab45e53b0477cddda7cfdee5b3bd0589cb81a4c346
2017-09-07 09:21:04 -07:00
Jonas Schnelli
9c8f3655cc
Merge #10911: [qt] Fix typo and access key in optionsdialog.ui
d2be7b25b Typo in optionsdialog.ui Tooltip displayed ampersand incorrectly, & should be in text. (James Evans)

Pull request description:

  Tooltip displayed ampersand incorrectly, & should be in text property rather than tooltip so that access key is correctly displayed for accessibility.

Tree-SHA512: 331848207317d37d4d9db40119d0b7ae9a276d06cd1b057cd0e87d508e1aa769b785246ca30ca9156db632798ec9f68ba8bf78cf42904267b4187bd27cfced35
2017-09-07 09:01:23 -07:00
James Evans
d2be7b25b5
Typo in optionsdialog.ui
Tooltip displayed ampersand incorrectly, & should be in text.
2017-09-07 08:55:58 -07:00
MarcoFalke
2a56baf395
Merge #10682: Trivial: Move the AreInputsStandard documentation next to its implementation
ca67ddf0b Move the AreInputsStandard documentation next to its implementation (esneider)

Pull request description:

  The documentation (and rationale) for `AreInputsStandard` somehow got separated from its implementation, and creates a bit of confusion: it's in the middle of the file, next to the implementation of `IsStandard`, which actually checks the "standardness" of outputs, not inputs.

Tree-SHA512: 71281cbcbc5a5701cc11e812a3e90669dda3d92dc2176b512b7832d79b08b34307999c984516bb0c56b01db9b03a12ee4755f662efc1158f4e126de5ca421999
2017-09-06 18:12:53 -07:00
Wladimir J. van der Laan
f65614726d
Merge #10779: Create dependencies.md
e91b96192 Create dependencies.md, and link dependencies file from README & build docs (flack)

Pull request description:

  As @fanquake mentioned in #8639, this should probably be a file in `doc/`, so I went ahead and pulled the issue text via the github API and dumped it into a file. No modifications made, except one spelling fix. This makes the info easier to find, and it will get a proper version history, too.

Tree-SHA512: 6ba4c37c97200972a74724e0e346d6ad5947c01ad18638e15250f2b4cd747dd744aba16e306c98d59f35736542a5eded7a17b6a5ce6aebc63c0a9dc969b365ef
2017-09-07 02:49:14 +02:00
Wladimir J. van der Laan
645a7ecc0b
Merge #11125: Add bitcoin-cli -stdin and -stdinrpcpass functional tests
29e1dfbd9 [test] Add bitcoin-cli -stdin and -stdinrpcpass functional tests (João Barbosa)
ce379b47b [test] Replace check_output with low level version (João Barbosa)
232e3e847 [test] Add assert_raises_process_error to assert process errors (João Barbosa)
5c18a84b9 [test] Add support for custom arguments to TestNodeCLI (João Barbosa)
e1274947d [test] Improve assert_raises_jsonrpc docstring (João Barbosa)
769684132 Fix style in -stdin and -stdinrpcpass handling (João Barbosa)

Pull request description:

  This patch adds tests for `bitcoin-cli` options `-stdin` (#7550) and `-stdinrpcpass` #10997.

Tree-SHA512: fd8133f44876f2b5b41dfd3762b1988598f6b7bf13fb2385ad95876825d9c0b2b896ce4ea6eeb21012158e1f276907f155d37bb967198b609d2d3dddbfa334c1
2017-09-07 01:46:24 +02:00
João Barbosa
29e1dfbd97 [test] Add bitcoin-cli -stdin and -stdinrpcpass functional tests 2017-09-07 00:38:13 +01:00
João Barbosa
ce379b47b9 [test] Replace check_output with low level version 2017-09-07 00:35:28 +01:00
João Barbosa
232e3e8471 [test] Add assert_raises_process_error to assert process errors 2017-09-07 00:35:28 +01:00
João Barbosa
5c18a84b9a [test] Add support for custom arguments to TestNodeCLI 2017-09-07 00:35:28 +01:00
João Barbosa
e1274947d4 [test] Improve assert_raises_jsonrpc docstring 2017-09-07 00:35:28 +01:00
João Barbosa
7696841329 Fix style in -stdin and -stdinrpcpass handling 2017-09-07 00:35:28 +01:00
Wladimir J. van der Laan
66a5b419ef
Merge #10838: (finally) remove getinfo
aece8a463 (finally) remove getinfo in favor of more module-specific infos (Matt Corallo)

Pull request description:

  I see no reason not to have done this in 0.13, let alone for 0.15.

Tree-SHA512: ed3e36f99e9cb90304089e5957ddfbf74141e3e77d850e498e9e45dd8bc1deb9fe36b3fec4c43243023268670a45808de3c23d660df76fa27db6688814c464a5
2017-09-07 01:31:52 +02:00
Wladimir J. van der Laan
089b742a21
Merge #11259: Remove duplicate destination decoding
86e6dd4b6 Remove duplicate destination decoding (João Barbosa)
8d0041e60 Remove unused GetKeyID and IsScript methods from CBitcoinAddress (João Barbosa)

Pull request description:

  Follow up of #11117, this patch removes an extra unnecessary destination decoding that was identified while reviewing #11117. It is also the only case where `IsValidDestinationString` is called before `DecodeDestination`.

  For reference see [comment](https://github.com/bitcoin/bitcoin/pull/11117#discussion_r137145517).

Tree-SHA512: f5ff5cb28a576ccd819a058f102188bde55654f30618520cc680c91d2f6e536fe038fc7220dd2d2dd64c6175fcb23f89b94b48444521e11ddec0b2f8ef2c05dd
2017-09-07 01:22:24 +02:00
Matt Corallo
aece8a4637 (finally) remove getinfo in favor of more module-specific infos 2017-09-06 16:10:04 -07:00
João Barbosa
86e6dd4b63 Remove duplicate destination decoding 2017-09-06 23:48:35 +01:00
João Barbosa
8d0041e607 Remove unused GetKeyID and IsScript methods from CBitcoinAddress 2017-09-06 23:48:35 +01:00
Wladimir J. van der Laan
bcc8a620ea
Merge #11219: [docs] explain how to recompile a modified unit test
478d4fb79 [docs] explain how to recompile only what bitcoind tests need (Sjors Provoost)

Pull request description:

  It was not obvious to me to run `make` inside the test directory, especially because `make src/test` and `make src/test/test_bitcoin` result in `make: Nothing to be done for ...`.

Tree-SHA512: 5fe66c45c50af42d4fed42e3008b1dc4de7ea448f5265a34f4b2f355aa4a48a8187918a49fc9f82e8dd9706bc72c59d0fd67d86057fd816eb317832e46ada7ba
2017-09-07 00:44:20 +02:00
flack
e91b961923 Create dependencies.md, and link dependencies file from README & build docs 2017-09-07 00:34:27 +02:00
Wladimir J. van der Laan
6acdb1fab7
Merge #11238: Add assertions before potential null deferences
c00199244 Fix potential null dereferences (MeshCollider)

Pull request description:

  Picked up by the static analyzer [Facebook Infer](http://fbinfer.com/) which I was playing around with for another research project. Just adding some asserts before dereferencing potentially null pointers.

Tree-SHA512: 9c01dab2d21bce75c7c7ef867236654ab538318a1fb39f96f09cdd2382a05be1a6b2db0a1169a94168864e82ffeae0686a383db6eba799742bdd89c37ac74397
2017-09-06 23:54:06 +02:00
MarcoFalke
bc561b4b7d
Merge #11099: [RPC][mempool]: Add savemempool RPC
1aa97ee08 Add savemempool RPC (Lawrence Nahum)
467cbbcbf Add return value to DumpMempool (Lawrence Nahum)

Pull request description:

  Adds a simple parameterless rpc command to dump the mempool.

  Rationale:

  Sometimes there can be a crash for whatever reason (bug, power loss, etc) causing the mempool.dat file to not be saved.

  This change allows to script/cron the rpc call to have more regular saves to the file as well as cli/ad-hoc.

  This should solve issue https://github.com/bitcoin/bitcoin/issues/11086

Tree-SHA512: e856ae9777425a4521279c9b58e69285d8e374790bebefd3284cf91931eac0e456f86224f427a087a01bf70440bf6e439fa02c8a34940eb1046ae473e98b6aaa
2017-09-06 13:49:25 -07:00
Wladimir J. van der Laan
961901f77e
Merge #11117: Prepare for non-Base58 addresses
864cd2787 Move CBitcoinAddress to base58.cpp (Pieter Wuille)
5c8ff0d44 Introduce wrappers around CBitcoinAddress (Pieter Wuille)

Pull request description:

  This patch removes the need for the intermediary Base58 type `CBitcoinAddress`, by providing {`Encode`,`Decode`,`IsValid`}`Destination` functions that directly operate on the conversion between `std::string`s and `CTxDestination`.

  As a side, it also fixes a number of indentation issues, and removes probably several unnecessary implicit `CTxDestination`<->`CBitcoinAddress` conversions.

  This change is far from complete. In follow-ups I'd like to:
  * Split off the specific address and key encoding logic from base58.h, and move it to a address.h or so.
  * Replace `CTxDestination` with a non-`boost::variant` version (which can be more efficient as `boost::variant` allocates everything on the heap, and remove the need for `boost::get<...>` and `IsValidDestination` calls everywhere).
  * Do the same for `CBitcoinSecret`, `CBitcoinExtKey`, and `CBitcoinExtPubKey`.

  However, I've tried to keep this patch to be minimally invasive, but still enough to support non-Base58 addresses. Perhaps a smaller patch is possible to hack Bech32 support into `CBitcoinAddress`, but I would consider that a move in the wrong direction.

Tree-SHA512: c2c77ffb57caeadf2429b1c2562ce60e8c7be8aa9f8e51b591f354b6b441162625b2efe14c023a1ae485cf2ed417263afa35c892891dfaa7844e7fbabccab85e
2017-09-06 22:31:02 +02:00
Pieter Wuille
864cd27874 Move CBitcoinAddress to base58.cpp 2017-09-06 13:07:45 -07:00
Pieter Wuille
5c8ff0d448 Introduce wrappers around CBitcoinAddress
This patch removes the need for the intermediary Base58 type
CBitcoinAddress, by providing {Encode,Decode,IsValid}Destination
function that directly operate on the conversion between strings
and CTxDestination.
2017-09-06 13:07:45 -07:00
Wladimir J. van der Laan
39ae41389a
Merge #10845: Remove unreachable code
41bf1598f Remove unreachable code (practicalswift)

Pull request description:

  Remove unreachable code.

Tree-SHA512: 2ae94035f693b1ac73b1587eafcc646602a185f6d2b8a24a05939b43235b331c9e6f369ad2e8208624a47c920e989413c6a89ab9b608add5b7be4ebefae2a796
2017-09-06 21:44:18 +02:00
Wladimir J. van der Laan
d745b4cf7b
Merge #11203: rpc: add wtxid to mempool entry output
617c459c6 qa: rpc test for wtxid in mempool entry (Suhas Daftuar)
7e5d5965d RPC: add wtxid to mempool entry output (Suhas Daftuar)

Pull request description:

  We already cache this information in the mempool, so including it in the output of rpc calls is basically free.

Tree-SHA512: 2757e1bfca028103937e4b76ce1a5d805846bad5d3d9dd631dcc5f87721bcc0e9d19e437e02053ef1dd3b38b503f0fca8c0b8492cac37dfbd70256a3665f704c
2017-09-06 20:57:18 +02:00
Wladimir J. van der Laan
59e17899a7
Merge #8330: Structure Packing Optimizations in C{,Mutable}Transaction
37495e0d8 Reorder C{,Mutable}Transaction for better packing (Jeremy Rubin)

Pull request description:

  These commits revise the layout of a few key classes to eliminate padding, eliminating useless memory overhead.

  -This reduces CTransaction from 96 bytes to 88 bytes

Tree-SHA512: 91d1fec363edebbb1f1a5b98142c767511e99d3be857148a76e31cc512c9ab3d153083fa6b46b6407974d3b88de984b436c33e8606fbb2b273d74c825195aa17
2017-09-06 20:14:52 +02:00
MarcoFalke
31809d6f85
Merge #11067: [qa] TestNode: Add wait_until_stopped helper method
faa8d9581 [qa] TestNode: Add wait_until_stopped helper method (MarcoFalke)

Pull request description:

  This adds a helper method `wait_until_stopped` to the `TestNode` class. This should prevent numerous `time.sleep()` over all places.

  Additionally, the timeout behavior is restored. (Was removed by the introduction of `TestNode`.)
  This should prevent tests from running indefinitely by accident.

Tree-SHA512: 7133fc64d55711869c4e372e9d30625c98f1237fb3578c24a26900d9319831f10eb95592d7b08e536fa706158dffb0abf9197f11c5d9ef605c880628e1a6533f
2017-09-06 11:02:22 -07:00
Wladimir J. van der Laan
21e2f2f799
Merge #11135: Update developer notes with RPC response guidelines
62ecce75e [doc] Add RPC response notes (João Barbosa)

Pull request description:

Tree-SHA512: 795969813eefab47ac03050bd70762fc36d86edb00bdfe1ba76837a810370d61dc88749c51153bd3949eb3885f084b4ba8736b4bbf90dfef65e3fe1939304bd8
2017-09-06 19:39:00 +02:00
Wladimir J. van der Laan
5368614aa1
Merge #11210: Stop test_bitcoin-qt touching ~/.bitcoin
dea086f49 Stop test_bitcoin-qt touching ~/.bitcoin (MeshCollider)

Pull request description:

  Fixes https://github.com/bitcoin/bitcoin/issues/11192

  The directory remains unused, but this stops the tests touching ~/.bitcoin at all (namely creating it if it doesn't exist)

Tree-SHA512: e59ad6b83dbc5ea2fb2761994c09933721d29668b0eef09b9d938a4ee1c67871c5125c57483ee0ea25f2385e308d275d86bcb9087dd4d502923013b4f3dbac82
2017-09-06 19:19:01 +02:00
Wladimir J. van der Laan
815fe62421
Merge #10357: Allow setting nMinimumChainWork on command line
eac64bb7a [qa] Test nMinimumChainWork (Suhas Daftuar)
0311836f6 Allow setting nMinimumChainWork on command line (Suhas Daftuar)

Pull request description:

  As discussed briefly here: https://botbot.me/freenode/bitcoin-core-dev/2017-02-28/?msg=81712308&page=4

  This adds a hidden command line option for setting `nMinimumChainWork`, which allows us to test this parameter in our functional tests, as well as allowing for niche use cases like syncing nodes that are otherwise disconnected from the network.

  See also #10345, which proposes a new use of `nMinimumChainWork`.

Tree-SHA512: fe4d8f4f289697615c98d8760f1cc74c076110310ea0b5b875fcab78c127da9195b4eb84148aebacc7606c246e5773d3f13bd5d9559d0a8bffac20a3a28c62df
2017-09-06 19:00:57 +02:00
MarcoFalke
faa8d9581a [qa] TestNode: Add wait_until_stopped helper method 2017-09-06 09:41:21 -07:00
Sjors Provoost
478d4fb79c [docs] explain how to recompile only what bitcoind tests need
`make` rebuilds the entire project. This is quite slow if e.g. you're making changes to one file and only wish to run the bitcoind tests.

This commit adds an instruction to run `make -C src/test` (as opposed to `make src/test` and `make src/test/test_bitcoin`).
2017-09-06 10:07:31 +02:00
Lawrence Nahum
1aa97ee088
Add savemempool RPC 2017-09-06 09:44:36 +02:00
Lawrence Nahum
467cbbcbfc
Add return value to DumpMempool 2017-09-06 09:25:00 +02:00
Wladimir J. van der Laan
6866b4912b
Merge #10596: Add vConnect to CConnman::Options
352d582ba Add vConnect to CConnman::Options (Marko Bencun)

Pull request description:

  Split the "-connect" argument parsing out of CConnman and put it into
  AppInitMain().

Tree-SHA512: f2d3efc4e2c5808ff98696ea20dd96df599bc472ed5afc9c3eea305d94c36a6ab50c632aa05396c7c34d1917d91b1e7ccd725656ff2631e2a36d9eac477455dc
2017-09-06 02:03:48 +02:00
Wladimir J. van der Laan
28485c783d
Merge #10825: net: set regtest JSON-RPC port to 18443 to avoid conflict with testnet 18332
ce3baa193 changed regtest RPCport to 18443 to avoid conflict with testnet 18332 (Ferdinando M. Ametrano)

Pull request description:

  using the same JSON-RPC default port for both testnet and regtest prevents running both at the same time on the same machine. Since RPCport=P2Pport-1 for both mainnet and testnet, and regtest P2Pport being 18444, 18443 is proposed for regtest RPCport

  Documentation has been updated (or created where missing); manpages doc/man/bitcoin*.1 could include information for regtest too

Tree-SHA512: d42185f7ef54dc918ece19b543c8681d08bb9c5a971394e21f2d9a1091734b091b08df69fab622c207b46f402cf9323ded5b7a33fbd0af722388930169124e7f
2017-09-06 01:18:35 +02:00
MarcoFalke
a31e9ad4f0
Merge #11247: qt: Use IsMine to validate custom change address
a1ea1cfbd qt: Use IsMine to validate custom change address (Chris Moore)

Pull request description:

  Fixes #11137
  Closes #11184 (which was accidentally opened against 0.15 branch)

Tree-SHA512: a20a59b4f36c1471a9c84bcc7c69048576d1f413104c299a7ed9ba221f28eddf93d727fca2926420ea5d0dd9aba582924f26a5acd44d995039b7202c73eb53bc
2017-09-05 16:00:37 -07:00
MeshCollider
c8d38abd65 Refactor tipUpdate as per style guide 2017-09-06 10:50:05 +12:00
MeshCollider
3b69a08c53 Fix division by zero in time remaining 2017-09-06 10:49:36 +12:00
Chris Moore
a1ea1cfbd8 qt: Use IsMine to validate custom change address
(cherry picked from commit c41224dfd51c896341bbf2fa23e160bf5ffe27c3)
2017-09-05 15:22:28 -07:00
MarcoFalke
777519bd96
Merge #11246: github-merge: Coalesce git fetches
dabee00ef github-merge: Coalesce git fetches (Wladimir J. van der Laan)

Pull request description:

  Fetch the destination branch as well as PR in one go. Saves a few seconds (as well as one ssh authentication, when using a yubikey) when using github-merge.py.

Tree-SHA512: 618fcc07f60b63de3b7818094c5a307933324b76418aa02c509209bb7b540b3da0abe312bbfd0ca843469ed82228b2c43c2361180ba81bee13038aafac4a14b3
2017-09-05 14:51:26 -07:00
MarcoFalke
4eb1f39d42
Merge #11173: RPC: Fix currency unit string in the help text
47ba2c312 Fix currency/fee-rate unit string in the help text (Akio Nakamura)

Pull request description:

  1. The RPC help text should use the constant `CURRENCY_UNIT` defined in `policy/feerate.cpp` instead of the literal `'BTC'`.
    In the following 2 RPC commands, `'BTC'` is written directly in the help text.
    This commit changes them to use that constant.
       1) `estimatesmartfee`
       2) `estimaterawfee`

  2. Some RPC command use `'satoshis'` as the unit.
    It should be written as `'satoshis'` instead of `'Satoshis'` in the RPC help text.
    So, this commit fixes this typo in `getblocktemplate`.

Tree-SHA512: d0bd1cd90560e59bf456b076b958a2a1c998f85a7e65aeb6b2abcaba18919a3ae62f7c3909210461084c1a3275a35b6ba3ea3ec8f5cce33702ffe383c9e84bce
2017-09-05 14:46:05 -07:00
Wladimir J. van der Laan
dabee00ef1 github-merge: Coalesce git fetches
Fetch the destination branch as well as PR in one go. Saves a few
seconds (as well as one ssh authentication, when using a yubikey) when
using github-merge.py.
2017-09-05 23:32:09 +02:00
Wladimir J. van der Laan
001041df81
Merge #11234: Remove redundant testutil.cpp|h files
d1138e362 Remove redundant testutil files (MeshCollider)

Pull request description:

  The only function in testutil.cpp, `GetTempPath()` simply called `fs::temp_directory_path()` directly. This just tidies things up by removing that redundant function and the file containing it

  I can understand wanting a general util file for tests to use, but if there's nothing in it, we might as well remove it, it can always be added back later when it's put to use.

Tree-SHA512: b923f99acf33328743755368a1aa90f5da4a7d5f61b163a4b0b894275c98db80a91edf8f051fbfb4893d970fda5a9078aae78a2672867ff521c4ca4b653c71c0
2017-09-05 23:21:19 +02:00
Wladimir J. van der Laan
3aa60b7ff9
Merge #11143: Fix include path for bitcoin-config.h
5abb93f0e Fix include path for bitcoin-config.h in crypto/common.h (danra)

Pull request description:

  All the other files in the repo which include bitcoin-config.h do so with the appropriate subfolder prefixed: config/bitcoin-config.h
  The header should be included with the appropriate subfolder here as well.

Tree-SHA512: abda23a9cf251553f90afe0ee1866de46ed579471f4139737239a4f9334ca817d985deac6336740898718775d1264c0b80cb348668b10a9cae970895f2de37b8
2017-09-05 23:15:55 +02:00
Wladimir J. van der Laan
14eae78188
Merge #11241: [tests] Improve signmessages functional test
b3d6fc654 Improve signmessages functional test (Cristian Mircea Messel)

Pull request description:

  This patch improves branch coverage of the test, making sure a message can not be verified with the wrong address or signature.

Tree-SHA512: 984eb66af8ba1caaccfb8ce2c5cc89c634a50d2fa587bfaf6e196aaf5b89e77accd76522ac33105621ead795521ec6d90f0afcb3b6064d22e53b54d2b41c7991
2017-09-05 23:02:21 +02:00
Wladimir J. van der Laan
38a54a50fa
Merge #11164: Fix boost headers included as user instead of system headers
5ac072caa Fix boost headers included as user instead of system headers (Dan Raviv)

Pull request description:

  In most of the project, boost headers are included as system headers.
  Fix the few inconsistent places where they aren't.

Tree-SHA512: 280af33a7bdc9d68a15b729fa88e1e7627e20a054b8d52a12cc5350c1ac9e9c90fb09f0aa97a00960969f75bcf3403dc52b834c94448b814efa63bfaf3b82663
2017-09-05 22:27:17 +02:00