aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2019-05-01[docs] Add doxygen comment for CKeyPoolJohn Newbery
2019-05-01rpc: Serialize in getblock without cs_mainMarcoFalke
2019-05-01rpc: Use IsValidNumArgs in getblockMarcoFalke
2019-05-01wallet: Use IsValidNumArgs in getwalletinfo rpcMarcoFalke
2019-05-01Merge #15323: rpc: Expose g_is_mempool_loaded via getmempoolinfoMarcoFalke
effe81f750 Move g_is_mempool_loaded into CTxMemPool::m_is_loaded (Ben Woosley) bb8ae2c419 rpc: Expose g_is_mempool_loaded via getmempoolinfo and /rest/mempool/info.json (Ben Woosley) Pull request description: And use it to fix a race condition in mempool_persist.py: https://travis-ci.org/Empact/bitcoin/jobs/487577243 Since e.g. getrawmempool returns errors based on this status, this enables users to test it for readiness. Fixes #12863 ACKs for commit effe81: MarcoFalke: utACK effe81f750 jnewbery: utACK effe81f7503d2ca3c88cfdea687f9f997f353e0d Tree-SHA512: 74328b0c17a97efb8a000d4ee49b9a673c2b6dde7ea30c43a6a2eff961a233351c9471f9a42344412135786c02bdf2ee1b2526651bb8fed68bd94d2120c4ef86
2019-05-01GUI: Refactor actual QR code rendering into new QRImageWidget::setQRLuke Dashjr
2019-04-30Merge #15849: Thread names in logs and deadlock debug toolsMarcoFalke
8722e54e56 threads: add thread names to deadlock debugging message (James O'Beirne) 383b186c28 threads: prefix log messages with thread names (James O'Beirne) ddd95ccb80 tests: add threadutil tests (James O'Beirne) ae5f2b6a6c threads: introduce util/threadnames, refactor thread naming (James O'Beirne) 188ca75e5f disable HAVE_THREAD_LOCAL on unreliable platforms (James O'Beirne) Pull request description: I'm resurrecting this one (from #13168) because I need it to make progress on #15735. It's now off by default and can be turned on with `-logthreadnames=1`. Ran some benchmarks (IBD from local peer from 500_000 -> 504_000) and it's within spitting distance either on or off: ### threadnames off (default) #### 2018-05-threadnames.3 vs. master (absolute) | name | iterations | 2018-05-threadnames.3 | master | |------------------------------------------------|-----------:|----------------------------|----------------------------| | ibd.local.500000.504000.dbcache=2048 | 3 | 376.1584 (± 9.2944) | 392.3414 (± 13.4238) | | ibd.local.500000.504000.dbcache=2048.mem-usage | 3 | 2236117.3333 (± 1845.9623) | 2238690.6667 (± 2669.3487) | #### 2018-05-threadnames.3 vs. master (relative) | name | iterations | 2018-05-threadnames.3 | master | |------------------------------------------------|-----------:|----------------------:|-------:| | ibd.local.500000.504000.dbcache=2048 | 3 | 1 | 1.043 | | ibd.local.500000.504000.dbcache=2048.mem-usage | 3 | 1 | 1.001 | ### threadnames on #### 2018-05-threadnames-take-2 vs. master (absolute) | name | iterations | 2018-05-threadnames-take-2 | master | |------------------------------------------------|-----------:|----------------------------|----------------------------| | ibd.local.500000.504000.dbcache=2048 | 3 | 367.6861 (± 0.3941) | 364.1667 (± 0.9776) | | ibd.local.500000.504000.dbcache=2048.mem-usage | 3 | 2238461.3333 (± 3697.8730) | 2237014.6667 (± 3307.6966) | #### 2018-05-threadnames-take-2 vs. master (relative) | name | iterations | 2018-05-threadnames-take-2 | master | |------------------------------------------------|-----------:|---------------------------:|-------:| | ibd.local.500000.504000.dbcache=2048 | 3 | 1.010 | 1.00 | | ibd.local.500000.504000.dbcache=2048.mem-usage | 3 | 1.001 | 1.00 | ``` ACKs for commit 8722e5: Empact: utACK https://github.com/bitcoin/bitcoin/pull/15849/commits/8722e54e56fd959fd4ff2321b36a7640dee440c5 jnewbery: utACK 8722e54e56fd959fd4ff2321b36a7640dee440c5 MarcoFalke: re-utACK 8722e54e56fd959fd4ff2321b36a7640dee440c5 (Only change since my previous review is DEFAULT_LOGTHREADNAMES=false and stylistic updates Tree-SHA512: 50af992708295b8d680cf10025262dd964e599a356bdfc1dfc84fb18c00afabcb34d3d12d551b0677ff81f8fccad0e17c1d5b24dfecb953a913bc77fdd1a4577
2019-04-30Merge #15869: Add settings merge test to prevent regresssionsMarcoFalke
151f3e9cf1 Add settings merge test to prevent regresssions (Russell Yanofsky) Pull request description: Test-only change. Motivation: I'm trying to clean up settings code and add support for read/write settings without changing existing behavior, but current tests are very scattershot and don't actually cover a lot of current behavior. ACKs for commit 151f3e: jonasschnelli: utACK 151f3e9cf1bbcf30a4fc7749682e66b4a73ddfc2. MarcoFalke: utACK 151f3e9cf1bbcf30a4fc7749682e66b4a73ddfc2 Tree-SHA512: f9062f078da02855cdbdcae37d0cea5684e82adbe5c701a8eb042ee4a57d899f0ffb6a9db3bcf58b639dff22b2b2d8a75f9a7917402df58904036753d65a1e3e
2019-04-30Replace deprecated Boost Filesystem functionHennadii Stepanov
Boost Filesystem basename() function is deprecated since v1.36.0. Also, defining BOOST_FILESYSTEM_NO_DEPRECATED before including filesystem headers is strongly recommended. This prevents inadvertent use of old features, particularly legacy function names, that have been replaced and are going to go away in the future.
2019-04-30Remove dead code for walletFile checkHennadii Stepanov
SplitWalletPath() garanties the walletFile is a plain filename without a directory.
2019-04-29threads: add thread names to deadlock debugging messageJames O'Beirne
Also refactor CLockLocation to use an initialization list.
2019-04-29threads: prefix log messages with thread namesJames O'Beirne
Introduce a new flag (`-logthreadnames`) which allows toggling of this behavior.
2019-04-29tests: add threadutil testsJames O'Beirne
2019-04-29threads: introduce util/threadnames, refactor thread namingJames O'Beirne
This work is prerequisite to attaching thread names to log lines and deadlock debug utilities. This code allows setting of an "internal" threadname per thread on platforms where thread_local is available. This commit also moves RenameThread() out of a more general module and adds a numeric suffix to disambiguate between threads with the same name. It explicitly names a few main threads using the new util::ThreadRename().
2019-04-29GetKeyBirthTimes should return key ids, not destinationsGregory Sanders
2019-04-29Replace CScriptID and CKeyID in CTxDestination with dedicated typesGregory Sanders
2019-04-29Merge #15877: doc: Fix -dustrelayfee= argument docs grammarMarcoFalke
64491cb376 doc: Fix -dustrelayfee= argument docs grammar (keepkeyjon) Pull request description: ACKs for commit 64491c: fanquake: utACK 64491cb Tree-SHA512: 562180e5bb065c71cda89555afd1cd5a54a98b058ab9006af3a6437fbbde46c7f3930b3fe98900bbb18f329057e00da81bc8290bdf6160d7eccc97d255b30e4b
2019-04-29Merge #15919: Remove unused OpenSSL includes to make it more clear where ↵MarcoFalke
OpenSSL is used a34081b7c3 Remove unused OpenSSL includes to make it more clear where OpenSSL is used (practicalswift) Pull request description: Remove unused OpenSSL includes to make it more clear where OpenSSL is used. Before this patch: ``` $ git grep '#include <openssl/' -- "*.cpp" "*.h" src/init.cpp:#include <openssl/crypto.h> src/qt/paymentrequestplus.cpp:#include <openssl/x509_vfy.h> src/qt/paymentrequestplus.h:#include <openssl/x509.h> src/qt/paymentserver.cpp:#include <openssl/x509_vfy.h> src/qt/rpcconsole.cpp:#include <openssl/crypto.h> src/qt/test/paymentservertests.cpp:#include <openssl/x509.h> src/qt/test/paymentservertests.cpp:#include <openssl/x509_vfy.h> src/qt/test/test_main.cpp:#include <openssl/ssl.h> src/qt/winshutdownmonitor.cpp:#include <openssl/rand.h> src/random.cpp:#include <openssl/err.h> src/random.cpp:#include <openssl/rand.h> src/random.cpp:#include <openssl/conf.h> src/test/crypto_tests.cpp:#include <openssl/aes.h> src/test/crypto_tests.cpp:#include <openssl/evp.h> ``` After this patch: ``` $ git grep '#include <openssl/' -- "*.cpp" "*.h" src/qt/paymentrequestplus.cpp:#include <openssl/x509_vfy.h> src/qt/paymentrequestplus.h:#include <openssl/x509.h> src/qt/paymentserver.cpp:#include <openssl/x509_vfy.h> src/qt/test/paymentservertests.cpp:#include <openssl/x509.h> src/qt/test/paymentservertests.cpp:#include <openssl/x509_vfy.h> src/qt/test/test_main.cpp:#include <openssl/ssl.h> src/qt/winshutdownmonitor.cpp:#include <openssl/rand.h> src/random.cpp:#include <openssl/err.h> src/random.cpp:#include <openssl/rand.h> src/random.cpp:#include <openssl/conf.h> ``` Removed: * `src/init.cpp:#include <openssl/crypto.h>` (unused since 5ecfa36fd01fc27475abbfcd53b4efb9da4a7398 (2016)) * `src/qt/rpcconsole.cpp:#include <openssl/crypto.h>` (unused since 5ecfa36fd01fc27475abbfcd53b4efb9da4a7398 (2016)) * `src/test/crypto_tests.cpp:#include <openssl/aes.h>` (introduced unused in daa384120a63542257d4ca73047d775f16fac654 (2015)) * `src/test/crypto_tests.cpp:#include <openssl/evp.h>` (introduced unused in daa384120a63542257d4ca73047d775f16fac654 (2015)) ACKs for commit a34081: MarcoFalke: utACK a34081b7c398847c37a587029c7ad7f3a3396c8e real-or-random: utACK a34081b fanquake: utACK a34081b Tree-SHA512: 8ab9699c063f2d0ed2d71738f20ac5c21336585f7f62fd3a4b23199a125ea3224725591d64171347465762181788fac1bc4ce13d8824090bf1a5ac71a66d6538
2019-04-29Merge #15913: Bugfix: dummywallet: Add -ignorepartialspends to list of ↵MarcoFalke
ignored wallet options 765d5890be Bugfix: dummywallet: Add -ignorepartialspends to list of ignored wallet options (Luke Dashjr) 0f09eb779d dummywallet: Reformat ignored wallet options list (Luke Dashjr) Pull request description: When building w/o wallet support, we add all the wallet options as hidden options to avoid throwing errors/warnings that they're unknown. `-ignorepartialspends` is missing from this list. This PR adds it. (This seems like a good candidate for a linter? Or maybe we can autogenerate it?) Also reformats the dummywallet options list across multiple lines to make conflicts less often. ACKs for commit 765d58: meshcollider: utACK https://github.com/bitcoin/bitcoin/pull/15913/commits/765d5890be46ed5f5557c1d2b3cb931e6b8eb3b0 MarcoFalke: utACK 765d5890be46ed5f5557c1d2b3cb931e6b8eb3b0 promag: utACK 765d589. practicalswift: utACK 765d5890be46ed5f5557c1d2b3cb931e6b8eb3b0 fanquake: utACK 765d589 Tree-SHA512: 37c8037148bdc1b7a8bde201eff51ee6a64c042c17eb8b6c68faef490d16575348c2f22ab81f48302b8ad80a5559222af23b721a8b5acc1d89c0757fb88796a6
2019-04-29Merge #15917: wallet: Avoid logging no_such_file_or_directory errorMarcoFalke
70c1cf8c1c wallet: Avoid logging no_such_file_or_directory error (João Barbosa) Pull request description: Avoid logging `IsBerkeleyBtree: No such file or directory ...`. The result of `IsBerkeleyBtree` is the same since `fs::file_size()` returns 0 for non existent files. Fix #15912. ACKs for commit 70c1cf: practicalswift: utACK 70c1cf8c1c07091544d060191715027282e87b57 jonasschnelli: utACK 70c1cf8c1c07091544d060191715027282e87b57 Empact: utACK https://github.com/bitcoin/bitcoin/pull/15917/commits/70c1cf8c1c07091544d060191715027282e87b57 Tree-SHA512: 964a64fff9a17b805a1570884cdb2beb82283498f790b0464e011791803ae7f37dba213320c76a920dd92b2b972a7640e6277ecf470400734149dc8f9f9f1d6d
2019-04-29Remove unused OpenSSL includes to make it more clear where OpenSSL is usedpracticalswift
2019-04-29Merge #15371: gui: Uppercase bech32 addresses in qr codesJonas Schnelli
3407b446c gui: Uppercase bech32 addresses in qr codes (Ben Carman) Pull request description: Closes #12191 ACKs for commit 3407b4: meshcollider: utACK https://github.com/bitcoin/bitcoin/pull/15371/commits/3407b446cc5ec0725c0505e3b933f43d86286ad5 jonasschnelli: Re utACK 3407b446cc5ec0725c0505e3b933f43d86286ad5 Tree-SHA512: d63ecf8e9805c46c9f554cc929661a37837bc3ba9b7b931331c2a5c2b81468742e1819c9add73966083011709cc15ae1870a454348af8591b3d75d3765dca568
2019-04-29wallet: Avoid logging no_such_file_or_directory errorJoão Barbosa
2019-04-28wallet: Track scanning durationJoão Barbosa
2019-04-28Bugfix: dummywallet: Add -ignorepartialspends to list of ignored wallet optionsLuke Dashjr
2019-04-28dummywallet: Reformat ignored wallet options listLuke Dashjr
2019-04-27remove extraneous scopeandrewtoth
2019-04-27wallet: log on rescan completionandrewtoth
2019-04-27Merge #15778: [wallet] Move maxtxfee from node to walletMarcoFalke
5c759c73b2 [wallet] Move maxTxFee to wallet (John Newbery) Pull request description: Closes #15355 Moves the `-maxtxfee` from the node to the wallet. See discussion in issue for details. This is a cleanup. There is no change in behaviour. Completes #15620 ACKs for commit 5c759c: MarcoFalke: utACK 5c759c73b2602c7fde1c50dbafe5525904c1b64c ryanofsky: utACK 5c759c73b2602c7fde1c50dbafe5525904c1b64c. Changes since last review: updated commit message and an error message and method name. meshcollider: utACK https://github.com/bitcoin/bitcoin/pull/15778/commits/5c759c73b2602c7fde1c50dbafe5525904c1b64c Tree-SHA512: 2f9b2729da3940a5cda994d3f3bc11ee1a52fcc1c5e9842ea0ea63e4eb0300e8416853046776311298bc449ba07554aa46f0f245ce28598a5b0bd7347c12e752
2019-04-27Merge #15846: [POLICY] Make sending to future native witness outputs standardMeshCollider
c634b1e20 [POLICY] Make sending to future native witness outputs standard (Pieter Wuille) Pull request description: As discussed in the April 18 2019 IRC meeting. This makes sending to future Segwit versions via native outputs (bech32) standard for relay, mempool acceptance, and mining. The reasons are: * This may interfere with smooth adoption of future segwit versions, if they're defined (by the sender wallet/node). * It violates BIP173 ("Version 0 witness addresses are always 42 or 62 characters, but implementations MUST allow the use of any version."), though admittedly this code was written before BIP173. * It doesn't protect much, as P2SH-embedded segwit cannot be filtered in this way. * As a general policy, the sender shouldn't care what the receiver likes his outputs to be. Note that _spending_ such outputs (including P2SH-embedded ones) remains nonstandard, as that is actually required for softfork safety. ACKs for commit c634b1: MarcoFalke: utACK c634b1e2076d8e15a8284638475e26c691d4e100 harding: Tested ACK c634b1e2076d8e15a8284638475e26c691d4e100 meshcollider: utACK https://github.com/bitcoin/bitcoin/pull/15846/commits/c634b1e2076d8e15a8284638475e26c691d4e100 Tree-SHA512: e37168a1be9f445a04d4280593f0a92bdae33eee00ecd803d5eb16acb5c9cfc0f1f0a1dfbd5a0cc73da2c9928ec11cbdac7911513a78f85b789ae0d00e1b5962
2019-04-27Merge #15784: rpc: Remove dependency on interfaces::Chain in SignTransactionMeshCollider
99e88a372 rpc: Remove dependency on interfaces::Chain in SignTransaction (Antoine Riard) Pull request description: Assuming wallet RPCs and node RPCs will go into different processes, signrawtransactionwithkey doesn't need to access Coins via interfaces::Chain, it may use directly utility in node/coins.cpp Obviously will need rebase after #15638 Tree-SHA512: 42ee8fcbcd38643bbd82210db6f68249bed5ee036a4c930a1db534d0469a133e287b8869c977bf0cc79a7296dde04f72adb74d24e1cd20f4a280f4c2b7fceb74
2019-04-26Merge #15267: doc: explain AcceptToMemoryPoolWorker's coins_to_uncacheMarcoFalke
5d26205272 doc: explain AcceptToMemoryPoolWorker's coins_to_uncache (James O'Beirne) Pull request description: I found ATMPW's `coins_to_uncache` a little hard to understand (see #15264). This adds some doc for posterity. ACKs for commit 5d2620: jnewbery: ACK 5d262052728acdaa2d108a35ba9921a23b3d761a Tree-SHA512: 088508fa78012fab8680663c4e30f5cee29768416c2ca8b8b2abc29b6ac7067c5a589674f0254474a7ccc95477889d41719760f5796792bf492f51b3dd499c6c
2019-04-26doc: explain AcceptToMemoryPoolWorker's coins_to_uncacheJames O'Beirne
2019-04-26Remove NOTFOUND transactions from in-flight data structuresSuhas Daftuar
This prevents a bug where the in-flight queue for our peers will not be drained, resulting in not downloading any new transactions from our peers. Thanks to ajtowns for reporting this bug.
2019-04-26Add an explicit memory bound to m_tx_process_timeSuhas Daftuar
Previously there was an implicit bound based on the handling of m_tx_announced, but that approach is error-prone (particularly if we start automatically removing things from that set).
2019-04-26Improve NOTFOUND commentSuhas Daftuar
2019-04-25Merge #14039: Disallow extended encoding for non-witness transactionsMarcoFalke
bb530efa18 Disallow extended encoding for non-witness transactions (Pieter Wuille) Pull request description: BIP144 specifies that transactions without witness should use the legacy encoding, which is currently not enforced. This rule was present in the original SegWit implementation (https://github.com/bitcoin/bitcoin/pull/8149), but was subsequently dropped (https://github.com/bitcoin/bitcoin/pull/8589). As all hashes, txids, and weights are always computed over a reserialized version of a transaction, it is mostly harmless to permit extended encoding for non-segwit transactions, but I'd rather strictly follow the BIP. ACKs for commit bb530e: instagibbs: utACK https://github.com/bitcoin/bitcoin/pull/14039/commits/bb530efa1872ec963417f61da9a95185c7a7a7d6 stevenroose: utACK bb530efa1872ec963417f61da9a95185c7a7a7d6 Tree-SHA512: 1aeccd6a555f43784fefb076ce2e8ad2f5ba7be49840544a50050d0390f82373f87201bf56cf8bb30841b4f9cd893b382261a080da875d4e11ab7051f8640dbe
2019-04-25Doc: remove text about txes always relayed from -whitelistDavid A. Harding
Updates text since -whitelistforcerelay was set to false by default in PR #15193.
2019-04-24Show recipient list as detailedText of QMessageBoxHennadii Stepanov
2019-04-24Make SendConfirmationDialog fully fledgedHennadii Stepanov
The property-based API has been used. Added support for the `informativeText` and `detailedText` properties.
2019-04-23doc: Fix -dustrelayfee= argument docs grammarkeepkeyjon
2019-04-23refactor: replace isPotentialtip/waitForNotifications by higher methodAntoine Riard
Add GUARDED_BY(cs_wallet) annotation to m_last_block_processed, given that its now guarded by cs_wallet instead of cs_main
2019-04-23Merge #15699: Remove no-op CClientUIInterface::[signal_name]_disconnect. ↵MarcoFalke
Disconnect BlockNotifyGenesisWait and RPCNotifyBlockChange properly. 6dd469a3be Disconnect BlockNotifyGenesisWait and RPCNotifyBlockChange properly. Remove no-op CClientUIInterface::[signal_name]_disconnect. (practicalswift) Pull request description: Resolves #15698. Changes: * Remove no-op `CClientUIInterface::[signal_name]_disconnect`. * Disconnect `BlockNotifyGenesisWait` and `RPCNotifyBlockChange` properly. ACKs for commit 6dd469: MarcoFalke: utACK 6dd469a3bea60d8857ec0be625c2ef8a7716c148 Tree-SHA512: 0b50d658fa72261332bc57ddea379fd08f4bc1de392c10c628e20142d6fd244b606c39fd0665d6bc39324c1aa8c8814ac942b4659106279e33b90206aaf37411
2019-04-23Merge #15874: Resolve the qt/guiutil <-> qt/optionsmodel CDJonas Schnelli
fa1c8e297 Resolve the qt/guiutil <-> qt/optionsmodal CD (251) Pull request description: This pull request attempts to resolve the `qt/guiutil` <-> `qt/optionsmodel` circular dependency. The `Intro` class in `qt/intro` has a static member function `getDefaultDataDirectory` which is used by `qt/optionsmodel` and creates the circular dependency `qt/guiutil -> qt/walletmodel -> qt/optionsmodel -> qt/intro -> qt/guiutil`. This circular dependency is resolved by moving `Intro::getDefaultDataDirectory` to `GUIUtil::getDefaultDataDirectory` without modifying the implementation. ACKs for commit fa1c8e: MarcoFalke: utACK fa1c8e297825fbaeda049c8bf36f39de919a9989 promag: utACK fa1c8e2. hebasto: utACK fa1c8e297825fbaeda049c8bf36f39de919a9989 practicalswift: utACK fa1c8e297825fbaeda049c8bf36f39de919a9989 jonasschnelli: utACK fa1c8e297825fbaeda049c8bf36f39de919a9989 Tree-SHA512: 58cc4aee937c943d8de9dc97ef1789decfddb0287308f44e7e3a3b497c19e51da184988e17207544fff410168ec98dd49a3e62c47e84ad1f0cf6ef7247a80fb5
2019-04-23Merge #15463: rpc: Speedup getaddressesbylabelMarcoFalke
710a7136f9 rpc: Speedup getaddressesbylabel (João Barbosa) Pull request description: Fixes #15447. Same approach of #14984, this change avoids duplicate key check when building the JSON response in memory. ACKs for commit 710a71: MarcoFalke: utACK 710a7136f93133bf256d37dc8c8faf5a6b9ba89d ryanofsky: utACK 710a7136f93133bf256d37dc8c8faf5a6b9ba89d. Just new comments and assert since last review. Tree-SHA512: 77c95df9ff3793e348619aa070e6fd36df9da1b461d708ab146652cb3699f1a472ef6eb38dafdb8374375cbc97daef07635fcb0501961f167a023309513742e2
2019-04-23Merge #15780: wallet: add cachable amounts for caching credit/debit valuesWladimir J. van der Laan
c9e6e7ed7 wallet: add cachable amounts for caching credit/debit values (Karl-Johan Alm) Pull request description: This is a refactoring that will make #13756 a lot cleaner and straight-forward, since it adds another combination to the pile (watch-only * spendable * reused). It's also a nice change in general. Tree-SHA512: 6c876d58bbffd5cb85ef632dea4fd6afed163904bbde5efdb307fa119af178ed3cb5df047255da7e9a9136fed876922f1116fce61a3710f308c72275f9b7d18b
2019-04-23Resolve the qt/guiutil <-> qt/optionsmodal CD251
This pull request attempts to resolve the `qt/guiutil` <-> `qt/optionsmodel` circular dependency. The circular dependency is resolved by moving the `Intro::getDefaultDataDirectory` member function to `GUIUtil::getDefaultDataDirectory`.
2019-04-23wallet: add cachable amounts for caching credit/debit valuesKarl-Johan Alm
2019-04-22Add settings merge test to prevent regresssionsRussell Yanofsky
2019-04-22rpc: Speedup getaddressesbylabelJoão Barbosa