aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-07-11init: Use InitError for all errors in bitcoind/qtMarcoFalke
Also, remove unused <boost/thread.hpp> include (and others)
2019-07-08Merge #16291: gui: Stop translating PACKAGE_NAMEMarcoFalke
fa64b947bb3075ff8737656706b941af691908ab util: No translation of `Bitcoin Core` in the copyright (MarcoFalke) fab85208f678ba1be53bdb73a73ce3c5c937d448 qt: Run «make translate» in ./src/ (MarcoFalke) fabe87d2c923ab3a70b8cde2666a4d1cda8b22fb scripted-diff: Avoid passing PACKAGE_NAME for translation (MarcoFalke) fa5e9f157e568b7fbbea1482b393181f0733f2ba build: Stop translating PACKAGE_NAME (MarcoFalke) Pull request description: Generally the package name is not translated, but the package description is. E.g. `GIMP` or `Firefox` are always called that way regardless of the system language. However, "`Firefox` webbrowser" or "`GIMP` image manipulation program" are translated. ACKs for top commit: hebasto: ACK fa64b947bb3075ff8737656706b941af691908ab, I have not tested the code, but I have reviewed it and it looks OK, I agree it can be merged. Tree-SHA512: 626f811531182d0ba0ef1044930d32726773349bcb49b10261288a86ee6b80a183db30a87d817d5b0d501fad058ac22d6272311716b4f5a154f17c6f391a5a1a
2019-07-08Merge #16106: gui: Sort wallets in open wallet menuWladimir J. van der Laan
fa90fe6440301edba71a6f0b1ba3ef1c78d5eae4 refactor: Rename getWallets to getOpenWallets in WalletController (João Barbosa) 224eb9534a8d2b0f140ecb0cc00c61af8ba1da4e gui: Sort wallets in open wallet menu (João Barbosa) Pull request description: Ensure wallets are sorted by name in the open wallet menu. This also improves the change done in #15957, since it avoids a second call to `listWalletDir`. ACKs for top commit: laanwj: code review ACK fa90fe6440301edba71a6f0b1ba3ef1c78d5eae4 Tree-SHA512: 349ea195021e56760dea3551126d1b9dc4821faab44aaf2858229db4fddaf0ce0b5eb0a8fa5025f47c77134b003067a77e8c340f9655a99e1305d430ccecced8
2019-07-08refactor: Rename getWallets to getOpenWallets in WalletControllerJoão Barbosa
2019-07-08gui: Sort wallets in open wallet menuJoão Barbosa
2019-07-08Merge #15687: test: tool wallet test coverage for unexpected writes to walletWladimir J. van der Laan
7195fa792fcc19e9c064c4e38814c3b46a210b34 test: Tool wallet test coverage for unexpected writes to wallet (Jon Atack) 3bf2b3a37bbd550491d124b77fd7c1b2a7969f66 test: Split tool_wallet.py test into subtests (Jon Atack) 1eb13f09a9d8c2c7dc69f4cdf1b1ccf632543aa0 test: Add log messages to test/functional/tool_wallet.py (Jon Atack) Pull request description: This pull request adds test coverage in `test/functional/tool_wallet.py` to reproduce unexpected writes to the wallet as described in https://github.com/bitcoin/bitcoin/issues/15608 and serve as a benchmark for fixing the issue: - Wallet tool `info` unexpectedly writes to the wallet file if the wallet file permissions are read/write. - Wallet tool `info` raises with "Error loading . Is wallet being used by another process?" if the wallet file permissions are read-only. Goals: 1. Reproduce the reported issue, define the current unexpected behavior, and add test coverage to guide a future fix. Add debug-level logging for sanity checking and commented-out assertions to be uncommented when fixing the issue. Add the same coverage to the wallet tool create test and the getwalletinfo test as regression tests while fixing the issue. 2. Add info log messages as there are currently none in the test file. 3. Split the tests out to separate functions as per review feedback. Thanks to Marco Falke for pointing me in the right direction. ACKs for top commit: laanwj: code review ACK 7195fa792fcc19e9c064c4e38814c3b46a210b34 Tree-SHA512: 16a41cce989c8f819cf5b02c6cf8ea84653ede2738fb402f6c36cf4dc075b424dff3e2c73a1cfa1ec9c75f614675baecc71e588845a2596db06ba0957db2df7b
2019-07-08Merge #16352: build: prune dbus from dependsWladimir J. van der Laan
e8fabd9253400a7c3fe45b34bc572eb00ff5522d build: prune dbus from depends (fanquake) Pull request description: Since #8210 (59d063d07660d6e8d53ed8aa1eb8b0747ea6767c), we've been passing `-dbus-runtime` when configuring Qt. ``` qtbase-opensource-src-5.9.7 $ ./configure -h | grep -i dbus -no-dbus ............. Do not build the Qt D-Bus module -dbus-linked ......... Build Qt D-Bus and link to libdbus-1 [auto] -dbus-runtime ........ Build Qt D-Bus and dynamically load libdbus-1 [no] ``` This means we don't actually seem to be using the `D-Bus` we build in depends. This was pointed out by theuni at the time, [here](https://github.com/bitcoin/bitcoin/pull/7993#issuecomment-223114395) and [here](https://github.com/bitcoin/bitcoin/pull/8210#issuecomment-226930545), but was never followed up. dongcarl also bought it up as part of #16150. I've tested building and running `bitcoin-qt` using depends on Debian. Needs further testing. ACKs for top commit: laanwj: code review ACK e8fabd9253400a7c3fe45b34bc572eb00ff5522d Tree-SHA512: 164e6e52b6f97c04aef42bd185e2a157bc1a42103840f9404c5a795749f45a8c2c35f35873395a3a56398b3cd5955496b90d9c885d929b434c9bc871695abe20
2019-07-08test: Tool wallet test coverage for unexpected writes to walletJon Atack
This commit adds test coverage in `test/functional/tool_wallet.py` to reproduce unexpected writes to the wallet as described in https://github.com/bitcoin/bitcoin/issues/15608: - wallet tool `info` unexpectedly writes to the wallet file if the wallet file permissions are read/write. - wallet tool `info` raises with "Error loading . Is wallet being used by another process?" if the wallet file permissions are read-only. 1. Reproduce the reported issue, define the current unexpected behavior, and add test coverage to guide a future fix in the form of commented-out assertions to be uncommented when testing/fixing. 2. Provisionally extend the same coverage to the wallet tool create test and the getwalletinfo test as regression tests while fixing the issue. 3. Add some logging for sanity checking. ------ Changes after rebase: 5. Make wallet_path an instance method instead of a function in tool_wallet.py as per Marco Falke review suggestion. 6. Assert wallet permissions instead of logging them in tool_wallet.py. This ran into an issue with Appveyor keeping permissions at 666 so allowed for 666 as a workaround. 7. Change the added logging from info to debug level. 8. More helpful assertions order in tool_wallet.py#assert_tool_output. This change makes #assert_tool_output raise "Error loading wallet.dat. Is wallet being used by another process?" rather than a less-helpful message when debugging the read-only wallet permissions issue.
2019-07-08test: Split tool_wallet.py test into subtestsJon Atack
as per Marco Falke review suggestion.
2019-07-08Merge #16332: rpc: Add logpath description for getrpcinfoWladimir J. van der Laan
a30bd0945427f310640d8515c11a3d1b70762e69 Add logpath description for getrpcinfo (Gregory Sanders) Pull request description: Introduced in https://github.com/bitcoin/bitcoin/pull/15483 ACKs for top commit: fanquake: ACK a30bd0945427f310640d8515c11a3d1b70762e69 Tree-SHA512: f561af675d1184412b9e426debab6269f80a65098fc7226ee93581f4075dfc93846dd4b226bd4842eb43e1649d3291c7d18558bfeb851970728b64b8a0e6df0f
2019-07-08test: Add log messages to test/functional/tool_wallet.pyJon Atack
and update code comments as per Python PEP 8 style guide.
2019-07-08Merge #16347: doc: Include static members in DoxygenWladimir J. van der Laan
84ad4d2b9d80dcbfa9780984bc7c9cbe1f7b3f60 doc: Include static members in Doxygen (Carl Dong) Pull request description: This makes our Doxygen output more useful by generating them for static members. ACKs for top commit: practicalswift: ACK 84ad4d2b9d80dcbfa9780984bc7c9cbe1f7b3f60 laanwj: ACK https://github.com/bitcoin/bitcoin/pull/16347/commits/84ad4d2b9d80dcbfa9780984bc7c9cbe1f7b3f60 fanquake: ACK 84ad4d2b9d80dcbfa9780984bc7c9cbe1f7b3f60 Tree-SHA512: f47fe6f36739ba8d7978169b28a29ad3d0796d7535052e447740077f4827c9bf5082d14c9cac2fbaf91f01bb2bffc25d9d7c3f702c0848c79a48a311ebd3344f
2019-07-08Merge #16339: doc: add reduce-memory.mdfanquake
64b27c46e4c21fc7902a69d8ddb6791ef417c4af docs: add reduce-memory.md (fanquake) Pull request description: Following some discussion in https://github.com/bitcoin-core/docs/issues/50, this adds Wladimir's [reducing bitcoind memory usage gist](https://gist.github.com/laanwj/efe29c7661ce9b6620a7) to `/doc`. The conclusion seemed to be that if the main repo already has [reduce-traffic.md](https://github.com/bitcoin/bitcoin/blob/master/doc/reduce-traffic.md), then we could also add `reduce-memory.md`. ACKs for top commit: practicalswift: ACK 64b27c46e4c21fc7902a69d8ddb6791ef417c4af hebasto: ACK 64b27c46e4c21fc7902a69d8ddb6791ef417c4af, I have reviewed the changes and they look OK, I agree they can be merged. Also a link from `/doc/README.md` has been tested. jonasschnelli: ACK 64b27c46e4c21fc7902a69d8ddb6791ef417c4af Tree-SHA512: 0ab3035403e5145cfe33c29990a8d082df834ac6602b4ad6bfa821523d57e8451f0cde3017fbf3c2c4e0b34941b6374909d11d27f9598e211bbc14accd487be1
2019-07-08Merge #16350: qt: Remove unused guardfanquake
d003110351568f0f8e69bec445f4ddc3a56396ff Remove unused guard (Hennadii Stepanov) Pull request description: `BITCOIN_QT_TEST` is no longer used since switching to autotools build system. Some historical refs: - #807 - #4241 ACKs for top commit: practicalswift: utACK d003110351568f0f8e69bec445f4ddc3a56396ff promag: ACK d003110351568f0f8e69bec445f4ddc3a56396ff. jonasschnelli: Verified ACK d003110351568f0f8e69bec445f4ddc3a56396ff Tree-SHA512: 1242ef7927d2dbd2e47cdb50de6ebb20e4ac427a66a37b4d4de8ca1b50581d34f818cb576fc9fdfb3e7dd7259d11812e3807da33b3357850d67548b837d5549b
2019-07-07build: prune dbus from dependsfanquake
2019-07-07Remove unused guardHennadii Stepanov
It is no longer used since switching to autotools build system.
2019-07-07Merge #16344: build: use #if HAVE_SYSTEM instead of defined(HAVE_SYSTEM)fanquake
976b034b13d28877aee641833d5ee28a8cc5d83f [build]: use #if HAVE_SYSTEM instead of defined(HAVE_SYSTEM) (Sjors Provoost) Pull request description: It seems that `AC_DEFINE([HAVE_SYSTEM], [HAVE_STD__SYSTEM || HAVE_WSYSTEM]` causes `HAVE_SYSTEM` to always be defined, so we need to use `#if HAVE_SYSTEM` instead of `#if defined(HAVE_SYSTEM)`. Followup for #15457, can be tested with #12557. ACKs for top commit: dongcarl: ACK https://github.com/bitcoin/bitcoin/pull/16344/commits/976b034b13d28877aee641833d5ee28a8cc5d83f. promag: ACK 976b034b13d28877aee641833d5ee28a8cc5d83f. fanquake: ACK 976b034b13d28877aee641833d5ee28a8cc5d83f Tree-SHA512: b8cdd04c2ec399fd15638aef5d75ea0886ec1572d3cf4fcea27c193e1e6390344315908262cad8981a9b0a905ab9520619ce2ffe9a717f4ee6bfa8b028ebbdc6
2019-07-07Merge #16326: [RPC] add new utxoupdatepsbt arguments to the CRPCCommand and ↵fanquake
CPRCCvertParam tables 91cc18f602fe2ff7fe47335a8e1e7734895a19d9 [docs] Add release notes for PR 15427 (John Newbery) 3b11420b3c91f731b03805a39e48ee32e54484a2 [RPC] add new utxoupdatepsbt arguments to the CRPCCommand and CPRCConvertParam tables (John Newbery) Pull request description: The new `descriptors` argument was not added to the CRPCCommand and CPRCCvertParam tables, meaning that it couldn't be used with bitcoin-cli or named arguments. Before this PR: ``` > bitcoin-cli utxoupdatepsbt 'cHNidP8BAFMCAAAAAYCdwVRx2X3o4KHx5tAMsN1ddp51MbfWsietjfMbl5HtAAAAAAD/////AQDh9QUAAAAAF6kUW+rtEOi4nk9rpw2F5XZl1dd8ehGHAAAAAAAAAA==' "[{\"desc\":\"sh(wpkh([bd50871a/0h/0h/0h]03895c66337b38699bfafff1084ad35bc347fac4f4e5e5fe5eb7dd81155280db53))\"}]" error code: -3 error message: Expected type array, got string > bitcoin-cli --named utxoupdatepsbt psbt='cHNidP8BAFMCAAAAAYCdwVRx2X3o4KHx5tAMsN1ddp51MbfWsietjfMbl5HtAAAAAAD/////AQDh9QUAAAAAF6kUW+rtEOi4nk9rpw2F5XZl1dd8ehGHAAAAAAAAAA==' descriptors="[{\"desc\":\"sh(wpkh([bd50871a/0h/0h/0h]03895c66337b38699bfafff1084ad35bc347fac4f4e5e5fe5eb7dd81155280db53))\"}]" error code: -8 error message: Unknown named parameter descriptors ``` After this PR: ``` bitcoin-cli utxoupdatepsbt 'cHNidP8BAFMCAAAAAYCdwVRx2X3o4KHx5tAMsN1ddp51MbfWsietjfMbl5HtAAAAAAD/////AQDh9QUAAAAAF6kUW+rtEOi4nk9rpw2F5XZl1dd8ehGHAAAAAAAAAA==' "[{\"desc\":\"sh(wpkh([bd50871a/0h/0h/0h]03895c66337b38699bfafff1084ad35bc347fac4f4e5e5fe5eb7dd81155280db53))\"}]" cHNidP8BAFMCAAAAAYCdwVRx2X3o4KHx5tAMsN1ddp51MbfWsietjfMbl5HtAAAAAAD/////AQDh9QUAAAAAF6kUW+rtEOi4nk9rpw2F5XZl1dd8ehGHAAAAAAAAAA== bitcoin-cli --named utxoupdatepsbt psbt='cHNidP8BAFMCAAAAAYCdwVRx2X3o4KHx5tAMsN1ddp51MbfWsietjfMbl5HtAAAAAAD/////AQDh9QUAAAAAF6kUW+rtEOi4nk9rpw2F5XZl1dd8ehGHAAAAAAAAAA==' descriptors="[{\"desc\":\"sh(wpkh([bd50871a/0h/0h/0h]03895c66337b38699bfafff1084ad35bc347fac4f4e5e5fe5eb7dd81155280db53))\"}]" cHNidP8BAFMCAAAAAYCdwVRx2X3o4KHx5tAMsN1ddp51MbfWsietjfMbl5HtAAAAAAD/////AQDh9QUAAAAAF6kUW+rtEOi4nk9rpw2F5XZl1dd8ehGHAAAAAAAAAA== ``` ACKs for top commit: promag: ACK 91cc18f. fanquake: re-ACK 91cc18f602fe2ff7fe47335a8e1e7734895a19d9 Tree-SHA512: 279b2339a5cac17e363002e4ab743e251d6757c904c89f1970575bdce18d4f63d5e13507e171bf2bdc1bf6dd457db345a4b11b15d4ff71b96c2fedc4ffe52b23
2019-07-06doc: Include static members in DoxygenCarl Dong
2019-07-06docs: add reduce-memory.mdfanquake
Co-Authored-By: Wladimir J. van der Laan <laanwj@gmail.com>
2019-07-05[build]: use #if HAVE_SYSTEM instead of defined(HAVE_SYSTEM)Sjors Provoost
2019-07-05Merge #15457: Check std::system for -[alert|block|wallet]notifyWladimir J. van der Laan
f874e14cd3c84cd412bd3fb42b3ee1706ca6a267 [build]: check std::system for -[alert|block|wallet]notify (Sjors Provoost) cc3ad56ff2bc2583fe68c4a9e0b41072a47c0b07 [build] MSVC: set HAVE_SYSTEM for desktop apps (Sjors Provoost) c1c91bb78d7267f01ee3a3c156c218b46a92cd39 [build] detect std::system or ::wsystem (Sjors Provoost) Pull request description: Platforms such as iOs and Universal Windows Platform do not support launching a process through system(). ACKs for top commit: laanwj: code review ACK f874e14cd3c84cd412bd3fb42b3ee1706ca6a267 Tree-SHA512: 16bb4a8fa1896046ccb22a46c8985e1aa45f5b11ecf5539eb2299e9a58f1a5b085c0c12cb6939c7493d93abce7e84fadcbfc73374c887db63da6d00c08aa476d
2019-07-05[docs] Add release notes for PR 15427John Newbery
2019-07-05Merge #16308: [MSVC] Copy build output to src/ automatically after buildfanquake
08c721dab2b6d33f11ecf5ed089841d1fc9d8d15 [MSVC] Copy build output to src/ automatically after build (nicolas.dorier) Pull request description: I got frustrated many time that I run functional tests on an outdated binary. This make sure that files are properly copied (and debuggable) for functional tests after a build. This PR add a `common.vcxproj` which can be used to extend the build steps. I can't move it in `common.init`, because build step customization must always come at the end of a project file. ACKs for top commit: sipsorcery: tACK 08c721dab2b6d33f11ecf5ed089841d1fc9d8d15. fanquake: ACK 08c721dab2b6d33f11ecf5ed089841d1fc9d8d15 Tree-SHA512: 7c033552a7bbbd3bb51a72d13bf4254e3b779c59ec93629c85f17745a1b17a8c1d6c87bb5e50eb5f4e5486e767929c0126e555b185608fd666aa39729b5068e1
2019-07-05Merge #16327: scripts and tools: Update ShellCheck linterfanquake
1ac454a3844b9b8389de0f660fa9455c0efa7140 Enable ShellCheck rules (Hennadii Stepanov) Pull request description: Enable some simple ShellCheck rules. Note for reviewers: `bash` and `shellcheck` on macOS are different from ones on Ubuntu. For local tests the latest `shellcheck` version 0.6.0 should be used (see #15166). ACKs for top commit: practicalswift: utACK 1ac454a3844b9b8389de0f660fa9455c0efa7140 dongcarl: utACK 1ac454a fanquake: ACK 1ac454a3844b9b8389de0f660fa9455c0efa7140 Tree-SHA512: 8d0a3a5c09fe1a0c22120178f5e6b80f81f746f8c3356b7701ff301c117acb2edea8fe08f08fb54ed73f94b1617515fb239fa28e7ab4121f74872e6494b6f20e
2019-07-04Enable ShellCheck rulesHennadii Stepanov
Enabled ShellCheck rules: SC1087 SC2001 SC2004 SC2005 SC2006 SC2016 SC2028 SC2048 SC2066 (note that IFS already contains only a line feed) SC2116 SC2166 SC2181 SC2206 SC2207 SC2230 SC2236
2019-07-04[RPC] add new utxoupdatepsbt arguments to the CRPCCommand and ↵John Newbery
CPRCConvertParam tables The new `descriptors` argument needs to be added to the Command and ConvertParams tables to by usable as a named argument and by bitcoin-cli. Also update the test to use named arguments to test this.
2019-07-04Merge #16330: docs: Use placeholder instead of key expiration datefanquake
88fd556a969d1120a0ff633bc384336388a11709 Use placeholder instead of key expiration date (Hennadii Stepanov) Pull request description: Use a placeholder instead of the actual expiration date, so that the documentation doesn't require updating every time an expiry date changes. ACKs for top commit: fanquake: ACK 88fd556a969d1120a0ff633bc384336388a11709 Tree-SHA512: 391707833cc0e701cf560ec82fd91368468c90a95f85e4ce2a211b20d12463c85775142f28a3536b57c5f6950b9e6e0785632f6f071fa2180bc8aab53008603b
2019-07-03Merge #16329: test: Add tests for getblockchaininfo.softforksMarcoFalke
faf6caf4daa33b9179f4f02c09e184245ea53fa1 test: Add tests for getblockchaininfo.softforks (MarcoFalke) Pull request description: ACKs for top commit: laanwj: Code review ACK faf6caf4daa33b9179f4f02c09e184245ea53fa1 Tree-SHA512: 8a0bb3b648f18fdba7a36a960d70c6217fd7312cf2ef52b3b911be0d7f1d27c5c50856946d7e6cb81d96c081913b7308cc5f9d89af34518439ff4ada024441da
2019-07-03Merge #16299: bench: Move generated data to a dedicated translation unitMarcoFalke
3d60a03a7cfb2d46b5f10633e9f6a9a36b8cb76f bench: Move generated data to a dedicated translation unit (João Barbosa) Pull request description: With this change multiple benchmarks can use the same data without incurring in a bigger binary. ACKs for top commit: laanwj: code review ACK 3d60a03a7cfb2d46b5f10633e9f6a9a36b8cb76f Tree-SHA512: 8903bb09e4327c88e585a09bc7df1cbdfc18ebdc5d9c86bf3d6d9252a05eaf18b14ecd2bafdacd82f05a659e4b35ecd301c36011c97f7bf89302793165b00fdc
2019-07-03Use placeholder instead of key expiration dateHennadii Stepanov
2019-07-03Add logpath description for getrpcinfoGregory Sanders
2019-07-03Merge #16325: rpc: Clarify that block count means height excl genesisWladimir J. van der Laan
fab0c820fa4c0c3227eec85c64310a3bf938a149 rpc: Clarify that block count means height excl genesis (MarcoFalke) Pull request description: There is a common misconception that the block count returned by the blockchain rpcs includes the genesis block. See for example the discussion in https://github.com/bitcoin/bitcoin/pull/16292#issuecomment-506303256. However, it really returns the height, which is `0` for the genesis block. So clarify that and also remove the misleading "longest blockchain" comment. Finally, fix the wallet test that incorrectly used this rpc. ACKs for top commit: instagibbs: utACK https://github.com/bitcoin/bitcoin/pull/16325/commits/fab0c820fa4c0c3227eec85c64310a3bf938a149 promag: ACK fab0c82, sorry for the misconception. Tree-SHA512: 0d087cbb628d3866352bca6420402f392e6a997e579941701a408a7fca355d84645045661f39b022e4479cc07f85a6cddaa9095b6fd9911b245692482420a5e4
2019-07-03Merge #15483: rpc: Adding a 'logpath' entry to getrpcinfoWladimir J. van der Laan
8a6810d0d2759c69f63b53c48aa79e0cfdd88ffb Add a 'logpath' field to getrpcinfo (darosior) Pull request description: as discussed in #15438 ACKs for top commit: laanwj: Tested ACK 8a6810d0d2759c69f63b53c48aa79e0cfdd88ffb Tree-SHA512: 752c7d90f670677c8144efb338c5c97c2264f85f1e65e031fd5a44f04230b6eafbabd0f634db263eb42c25642ecc1c4b1b602d4735e3fab07ec00b566134ddab
2019-07-03Merge #14734: fix an undefined behavior in uint::SetHexWladimir J. van der Laan
0f459d868d85053f1cc066ea9099793f88cbd655 fix an undefined behavior in uint::SetHex (Kaz Wesley) Pull request description: Decrementing psz beyond the beginning of the string is UB, even though the out-of-bounds pointer is never dereferenced. I don't think any clang sanitizer covers this, so I don't see any way a test could catch the original behavior. ACKs for top commit: promag: utACK 0f459d8. l2a5b1: utACK 0f459d868d85053f1cc066ea9099793f88cbd655 Tree-SHA512: 388223254ea6e955f643d2ebdf74d15a3d494e9f0597d9f05987ebb708d7a1cc06ce64bd25d447d75b5f5561bdae9630dcf25adb7bd75f7a382298b95d127162
2019-07-03Merge #16294: qt: test: Create at most one testing setupWladimir J. van der Laan
faa1e0fb1712b1f94334e42794163f79988270fd qt: test: Create at most one testing setup (MarcoFalke) Pull request description: It is assumed that ideally only one BasicTestingSetup exists at any point in time for each process (due to use of globals). This assumption is violated in the GUI tests, as a testing setup is created as the first step of the `main` function and then (sometimes) another one for the following test cases. So, the gui tests create two testing setups: * `BasicTestingSetup` in `main` (added in fa4a04a5a942d582c62773d815c7e1e9897975d0) * a testing setup for individual test cases Avoid that by destructing the testing setup in main after creation and then move the explicit `ECC_Stop` to the only places where it is needed (before and after `apptests`). ACKs for top commit: laanwj: code review ACK faa1e0fb1712b1f94334e42794163f79988270fd Tree-SHA512: b8edceb7e2a8749e1de3ea80bc20b6fb7d4390bf366bb9817206ada3dc8669a91416f4803c22a0e6c636c514e0c858dcfe04523221f8851b10deaf472f107d82
2019-07-03Merge #16158: Fix logic of memory_cleanse() on MSVC and clean up docsWladimir J. van der Laan
f53a70ce95231d34bb14cd6c58503927e8d7ff59 Improve documentation of memory_cleanse() (Tim Ruffing) cac30a436cab3641bba3b774d3d3ddbc426e7908 Clean up logic in memory_cleanse() for MSVC (Tim Ruffing) Pull request description: When working on https://github.com/bitcoin-core/secp256k1/issues/185, I noticed that the logic in memory_cleanse(), which is supposed to clear memory securely, is weird on MSVC. While it's correct, it's at least a code smell because the code clears the memory twice on MSVC. This weirdness was introduced by #11558. This PR fixes the logic on MSVC and also improves the docs around this function. Best reviewed in individual commits, see the commit messages for more rationale. The second commit touches only comments. ACKs for top commit: practicalswift: utACK f53a70ce95231d34bb14cd6c58503927e8d7ff59 :-) laanwj: code review ACK f53a70ce95231d34bb14cd6c58503927e8d7ff59 Tree-SHA512: 1c2fd98ae62b34b3e6e59d1178b293af969a9e06cbb7df02a699ce8802f145a336f72edb178c520e3ecec81f7e8083828f90a5ba6367d966a2c7d7c0dd6c0475
2019-07-03Merge #16262: rpc: Allow shutdown while in generateblocksWladimir J. van der Laan
3b9bf0eb0e0d69f112ce905078018d8351c73e26 rpc: Allow shutdown while in generateblocks (Patrick Strateman) Pull request description: By checking the shutdown flag every loop we can use the entire 32 bit nonce space instead of breaking every 16 bits to check the flag. This is possible now because the shutdown flag is an atomic where before it was controlled by a condition variable and lock. ACKs for top commit: kallewoof: Re-ACK 3b9bf0e Tree-SHA512: d0664201a55215130c2e9199a31fb81361daf4102a65cb3418984fd61cb98bfb9136d9ee8d23a85d57e50051f9bb0059bd71fe0488a17f63c38ea5caa6004504
2019-07-02Merge #16250: signrawtransactionwithkey: report error when missing ↵MarcoFalke
redeemScript/witnessScript 01174596e69568c434198a86f54cb9ea6740e6c2 signrawtransactionwithkey: report error when missing redeemScript/witnessScript param (Anthony Towns) Pull request description: Adding support for "witnessScript" as an alternative to "redeemScript" when using "signrawtransactionwithkey" meant that the `RPCTypeCheckObj()` call in `SignTransaction` can't error out just because either parameter is missing -- it's only a problem if both are missing, which isn't a state `RPCTypeCheckObj()` tests for. This results in the regression described in #16249. This patch adds some code to test for this case and give a similar error, namely: error code: -8 error message: Missing redeemScript/witnessScript Fixes: #16249 ACKs for top commit: meshcollider: utACK https://github.com/bitcoin/bitcoin/pull/16250/commits/01174596e69568c434198a86f54cb9ea6740e6c2 promag: ACK 01174596e. Could also write test without `dict`/`del`: Tree-SHA512: cf51346b7dea551b7f18f2a93c2a336a293b2535c62c03a5263cd2be8c58cf0cc302891da659c167e88ad1a68a756472c3c07e99f71627c61d32886fc5a3a353
2019-07-02test: Add tests for getblockchaininfo.softforksMarcoFalke
2019-07-02bench: Move generated data to a dedicated translation unitJoão Barbosa
2019-07-02Merge #16153: Qt: Add antialiasing to traffic graph widgetWladimir J. van der Laan
db26e8e22822c65a3817b16805f5ba9ad2235f93 Add antialiasing to traffic graph widget (Josu Goñi) Pull request description: Before: ![image](https://user-images.githubusercontent.com/25986871/58974389-92559c00-87c2-11e9-9673-0c47ac71de2e.png) After: ![image](https://user-images.githubusercontent.com/25986871/58974280-56223b80-87c2-11e9-8fcc-1e5d299dd1e2.png) ACKs for top commit: laanwj: ACK db26e8e22822c65a3817b16805f5ba9ad2235f93 Tree-SHA512: d795809458522a1ec19e236de30c2c5070960544162323324f0d4e2f49c3590fe7756e924f1021056106b4c52dcb564e690c15f85a15ea35342badf72653d534
2019-07-02rpc: Clarify that block count means height excl genesisMarcoFalke
2019-07-02Merge #16314: scripts and tools: Update copyright_header.py scriptMarcoFalke
ca11606858a787c133983dcb1e0fea2ac54fc530 Fix: "Bitcoin Core" -> "The Bitcoin Core" (Hennadii Stepanov) 621463d7df0c644f4bf45550d3a75e134876480a Drop no-longer-relevant copyright holder name (Hennadii Stepanov) 01fafe55a1ab20870749dae01b437049ad4ce6e6 Include Objective-C source files (Hennadii Stepanov) Pull request description: Now the `copyright_header.py` script handles Objective-C source files `*.mm`: ``` src/qt/macdockiconhandler.mm src/qt/macnotificationhandler.mm src/qt/macos_appnap.mm ``` Also the only occurrence of `Bitcoin Core Developers` replaced with ubiquitous `The Bitcoin Core developers`. EDITED: The reason to remove "Sam Rushing" is (on master): ``` $ git grep "Sam Rushing" contrib/devtools/copyright_header.py: "Sam Rushing\n", ``` ACKs for top commit: laanwj: code review ACK ca11606858a787c133983dcb1e0fea2ac54fc530 Tree-SHA512: 446c8fc569f732a6758e765f64110d9faeeffabb69088dd081d7bb730255c87196da96cea51081f4bd49280049fa4ed2ae22091059cb0f89bdc4ef8dd5e63cf0
2019-07-02Merge #15427: Add support for descriptors to utxoupdatepsbtWladimir J. van der Laan
26fe9b990995f9cb5eee21d40b4daaad19f7181f Add support for descriptors to utxoupdatepsbt (Pieter Wuille) 3135c1a2d2e2fb31bc362c848bd2456d576e408b Abstract out UpdatePSBTOutput from FillPSBT (Pieter Wuille) fb90ec3c33e824f5abb6a68452c683d6ce8b3e4a Abstract out EvalDescriptorStringOrObject from scantxoutset (Pieter Wuille) eaf4f887348a08c620732125ad4430e1a133d434 Abstract out IsSegWitOutput from utxoupdatepsbt (Pieter Wuille) Pull request description: This adds a descriptors argument to the `utxoupdatepsbt` RPC. This means: * Input and output scripts and keys will be filled in when known. * P2SH-witness inputs will be filled in from the UTXO set when a descriptor is provided that shows they're spending segwit outputs. This also moves some (newly) shared code to separate functions: `UpdatePSBTOutput` (an analogue to `SignPSBTInput`), `IsSegWitOutput`, and `EvalDescriptorStringOrObject` (implementing the string or object notation parsing used in `scantxoutset`). ACKs for top commit: jnewbery: utACK 26fe9b990995f9cb5eee21d40b4daaad19f7181f laanwj: utACK 26fe9b990995f9cb5eee21d40b4daaad19f7181f (will hold merging until response to promag's comments) promag: ACK 26fe9b9, checked refactors and tests look comprehensive. Still missing a release note but can be added later. Tree-SHA512: 1d833b7351b59d6c5ded6da399ff371a8a2a6ad04c0a8f90e6e46105dc737fa6f2740b1e5340280d59e01f42896c40b720c042f44417e38dfbee6477b894b245
2019-07-02Merge #14193: validation: Add missing mempool locksWladimir J. van der Laan
fa2b083c3feb0522baf652045efa6b73458761a3 [test] Add test to check mempool consistency in case of reorgs (MarcoFalke) fabeb1f613653a8c1560e4a093a9b6b7a069b60b validation: Add missing mempool locks (MarcoFalke) fa0c9dbf9156d64a4b9bff858da97825369a9134 txpool: Make nTransactionsUpdated atomic (MarcoFalke) Pull request description: Take the mempool read lock during reorgs, so that we don't accidentally read an inconsistent mempool. ACKs for top commit: laanwj: code review ACK fa2b083c3feb0522baf652045efa6b73458761a3 ryanofsky: utACK fa2b083c3feb0522baf652045efa6b73458761a3 [EDIT: was ~e284e422e75189794e24fe482819d8b1407857c3~, from bad copy and paste]. Changes since last review: rebase after #15976, adding vTxHashes lock annotation, adding new commit dropping mempool lock for nTransactionsUpdated and making it atomic to avoid deadlock between mempool lock and g_best_block_mutex Tree-SHA512: cfe7777993589087753e000e3736d79d320dca412383fb77b56bef8946a04049722bf888c11b6f722adf677165185c7e58b4a269f7c5fa25e84dda375f6c8a7d
2019-07-02Merge #15538: wallet_bumpfee.py: Make sure coin selection produces changeWladimir J. van der Laan
276972cb95ba944a7a4b1858a08d333962261396 wallet_bumpfee.py: Make sure coin selection produces change (Gregory Sanders) Pull request description: I was hitting the case where change-less transactions were being made. ACKs for top commit: ryanofsky: utACK 276972cb95ba944a7a4b1858a08d333962261396 Tree-SHA512: e2b7a50363daddd3ee749cacfc9d3d685a6c0c7e3e48118bb60131d205bf83ea06cdd66b69dfa3bd4dbb3bbf2b5b673d7225171486ae72fc762e5dabe2c01ef5
2019-07-02Merge #16212: addrdb: Avoid eating inodes - remove temporary files created ↵Wladimir J. van der Laan
by SerializeFileDB in case of errors d9753383b9e1b61d19d98bcd1d66607f398c7e9f addrdb: Remove temporary files created in SerializeFileDB. Fixes non-determinism in unit tests. (practicalswift) Pull request description: Remove temporary files created in `SerializeFileDB` in case of errors. _Edit: Previously this was hit non-deterministically from the tests: that is no longer the case but the cleanup issue remains :-)_ ACKs for top commit: laanwj: code-review ACK d9753383b9e1b61d19d98bcd1d66607f398c7e9f Tree-SHA512: e72b74b8de411f433bd8bb354cacae07ab75a240db6232bc6a37802ccd8086bff5275ce3d196ddde033d8ab9e2794bb8f60eb83554af7ec2e9f91d6186cb4647
2019-07-02Add antialiasing to traffic graph widgetJosu Goñi
2019-07-01Merge #16257: [wallet] abort when attempting to fund a transaction above ↵Wladimir J. van der Laan
-maxtxfee 806b0052c3b45415862f74f20ba5f389e5b673de [wallet] abort when attempting to fund a transaction above maxtxfee (Sjors Provoost) Pull request description: `FundTransaction` calls `GetMinimumFee` which, when the fee rate is absurdly high, quietly reduces the fee to `-maxtxfee`. Becaue an absurdly high fee rate is usually the result of a fat finger, aborting seems safer behavior. Before: ``` bitcoin-cli walletcreatefundedpsbt '[]' '[{"tb1q...": 0.01}]' 0 '{"feeRate": 10}' true { "psbt": "cHNidP8...gAA=", "fee": 0.10000000, "changepos": 1 } ``` After: ``` bitcoin-cli walletcreatefundedpsbt '[]' '[{"tb1q...": 0.01}]' 0 '{"feeRate": 10}' true error code: -25 error message: Fee exceeds maximum configured by -maxtxfee ``` QT still checks the max fee rate as expected: <img width="566" alt="Schermafbeelding 2019-06-20 om 19 52 00" src="https://user-images.githubusercontent.com/10217/59888424-a2aa7100-9395-11e9-8ae6-8a3c1f7de585.png"> ACKs for top commit: laanwj: Code review ACK 806b0052c3b45415862f74f20ba5f389e5b673de Tree-SHA512: bee95811711cdab100b614d2347921407af3b400aea613ca156953ed3f60b924ad29a1d335bd0e240c0b7c0fbb360226bab03294d226a5560cdf2a3f21e6d406