aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-02-19add: test that transactions expire from mempool0xb10c
This tests that a mempool transaction expires after a given timeout and its children are removed as well. Both the default expiry timeout defied by DEFAULT_MEMPOOL_EXPIRY and a user definable expiry timeout via the -mempoolexpiry=<n> command line argument (<n> is the timeout in hours) are tested.
2020-02-19Merge #18067: wallet: Improve LegacyScriptPubKeyMan::CanProvide script ↵Samuel Dobson
recognition a304a3632f0437f4d0f04589a2200e2da91624a7 Revert "Store p2sh scripts in AddAndGetDestinationForScript" (Russell Yanofsky) eb7d8a5b07e89133a5fb465ad1b793362e7439f7 [test] check for addmultisigaddress regression (Sjors Provoost) 005f8a92ccb5bc10c8daa106d75e1c21390461d3 wallet: Improve LegacyScriptPubKeyMan::CanProvide script recognition (Russell Yanofsky) Pull request description: Make `LegacyScriptPubKeyMan::CanProvide` method able to recognize p2sh scripts when the redeem script is present in the `mapScripts` map without the p2sh script also having to be added to the `mapScripts` map. This restores behavior prior to #17261, which I think broke backwards compatibility with old wallet files by no longer treating addresses created by `addmultisigaddress` calls before #17261 as solvable. The reason why tests didn't fail with the CanProvide implementation in #17261 is because of a workaround added in 4a7e43e8460127a40a7895519587399feff3b682 "Store p2sh scripts in AddAndGetDestinationForScript", which masked the problem for new `addmultisigaddress` RPC calls without fixing it for multisig addresses already created in old wallet files. This change adds a lot of comments and allows reverting commit 4a7e43e8460127a40a7895519587399feff3b682 "Store p2sh scripts in AddAndGetDestinationForScript", so the `AddAndGetDestinationForScript()` function, `CanProvide()` method, and `mapScripts` map should all be more comprehensible ACKs for top commit: Sjors: re-ACK a304a3632f0437f4d0f04589a2200e2da91624a7 (rebase, slight text changes and my test) achow101: re-ACK a304a3632f0437f4d0f04589a2200e2da91624a7 meshcollider: utACK a304a3632f0437f4d0f04589a2200e2da91624a7 Tree-SHA512: 03b625220c49684c376a8062d7646aeba0e5bfe043f977dc7dc357a6754627d594e070e4d458d12d2291888405d94c1dbe08c7787c318374cedd5755e724fb6e
2020-02-17Merge #18037: Util: Allow scheduler to be mockedMarcoFalke
8bca30ea17cd4c1dacee28eaa27e5fa3493b021d [rpc] expose ability to mock scheduler via the rpc (Amiti Uttarwar) 7c8b6e5b5206a98f86675d0107ad99ea1d080466 [lib] add scheduler to node context (Amiti Uttarwar) 930d8375421451c8c4127608c360b0f6a0a62127 [test] add chainparams property to indicate chain allows time mocking (Amiti Uttarwar) 1cd43e83c6e8d81e950aaaede7a8a51505d0a2bc [test] unit test for new MockForward scheduler method (Amiti Uttarwar) a6f63598adb880a75e1571aac58338c17fa7ad53 [util] allow scheduler to be mocked (Amiti Uttarwar) Pull request description: This PR is to support functional tests by allowing the scheduler to be mocked via the RPC. It adds a `MockForward` method to the scheduler class that iterates through the task queue and reschedules them to be `delta_seconds` sooner. This is currently used to support functional testing of the "unbroadcast" set tracking in #18038. If this patch is accepted, it would also be useful to simplify the code in #16698. ACKs for top commit: MarcoFalke: ACK 8bca30ea17cd4c1dacee28eaa27e5fa3493b021d, only change is some style fixups 🕓 Tree-SHA512: 2a97fe8ade2b7fd1fb5cdfa1dcafb3227a377d7a847e3845a228bc119eb77824b4aefa43d922a06d583939b22725e223f308cf092961048079d36f6b1d9a639b
2020-02-17[rpc] expose ability to mock scheduler via the rpcAmiti Uttarwar
2020-02-17[lib] add scheduler to node contextAmiti Uttarwar
- also update test setup & access point in denial of service test
2020-02-17Merge #17948: build: pass -fno-ident in Windows gitian descriptorWladimir J. van der Laan
530d02addbfea01ab24a2acd17af456a1e7b798a build: pass -fno-ident in Windows gitian descriptor (fanquake) Pull request description: `-fno-ident` prevents compilers from emitting compiler name and version number information that can needlessly bloat binaries. For example, in the `v0.19.0.1` Windows release binaries, there are > 1000 GCC compiler version strings embedded: ```bash # GCC: (GNU) 7.3-posix 20180312... & GCC: (GNU) 6.3.0 20170415....... strings bitcoind.exe | rg GCC | wc -l 1021 ``` They end up collected in the end of the`.rdata` section, and cannot be removed by `strip`. i.e: ```bash objdump --section=.rdata --full-contents bitcoind.exe ... cfcc00 00000000 00000000 00000000 00000000 ................ cfcc10 00000000 00000000 00000000 00000000 ................ cfcc20 4743433a 2028474e 55292036 2e332e30 GCC: (GNU) 6.3.0 cfcc30 20323031 37303431 35000000 00000000 20170415....... cfcc40 4743433a 2028474e 55292037 2e332d70 GCC: (GNU) 7.3-p cfcc50 6f736978 20323031 38303331 32000000 osix 20180312... cfcc60 4743433a 2028474e 55292037 2e332d70 GCC: (GNU) 7.3-p cfcc70 6f736978 20323031 38303331 32000000 osix 20180312... ``` The flag is available for [Clang](https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang-qn) and [GCC](https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#index-fno-ident). Relevant code in [GCC](https://github.com/gcc-mirror/gcc/blob/master/gcc/toplev.c#L565-L578): ```c /* Attach a special .ident directive to the end of the file to identify the version of GCC which compiled this code. The format of the .ident string is patterned after the ones produced by native SVR4 compilers. */ if (!flag_no_ident) { const char *pkg_version = "(GNU) "; char *ident_str; if (strcmp ("(GCC) ", pkgversion_string)) pkg_version = pkgversion_string; ident_str = ACONCAT (("GCC: ", pkg_version, version_string, NULL)); targetm.asm_out.output_ident (ident_str); } ``` ACKs for top commit: practicalswift: ACK 530d02addbfea01ab24a2acd17af456a1e7b798a laanwj: ACK 530d02addbfea01ab24a2acd17af456a1e7b798a Tree-SHA512: b3b28f43ec483dee28d1df8548fe72425bf00e750701825c256395f6aa7b23256eb27609b51779b86aed108b6eaa3912181a9d8282e23eebf9cee7784f9fabe0
2020-02-17Merge #13339: wallet: Replace %w by wallet name in -walletnotify scriptWladimir J. van der Laan
4e9efac678a9c0ea4e4c7dd956ea036ae6cf17ec test: Check wallet name in -walletnotify script (João Barbosa) 9a5b5ee81f15b1d89cb25ff3e137a672536cdc46 wallet: Replace %w by wallet name in -walletnotify script (João Barbosa) Pull request description: Fixes #13237. ACKs for top commit: laanwj: ACK 4e9efac678a9c0ea4e4c7dd956ea036ae6cf17ec Tree-SHA512: 189dd1c785485f2e974d7c12531851b2a977778b3b954aa95efd527322ba3345924cfd587fb9c90b0fa979202af0ab2d90e53d125fe266a36c94f757e4176203
2020-02-16Merge #18098: scripted-diff: Add missing spaces in RPCResult, Normalize type ↵MarcoFalke
names fad027fb0ce019f31b20861c37e802d4e29e6931 scripted-diff: Add missing spaces in RPCResult, Fix type names (MarcoFalke) Pull request description: This makes the rendered diff smaller when the RPCResult is machine generated later on (Previous attempts: #14601 and #14459) ACKs for top commit: Sjors: ACK fad027fb0ce019f31b20861c37e802d4e29e6931 Tree-SHA512: 48afd571b1cd349ca0b29bb444c1c7cda657e07dd96c610d479f931ccd938186aec98e533d0552b5b10afc9a3d7b911359260a49448e8e1106e3647b2c71f3ba
2020-02-16Merge #18159: tests: Add --valgrind option to test/fuzz/test_runner.py for ↵MarcoFalke
running fuzzing test cases under valgrind 1b068c50dd1522990cc33e1aca444741c7e5a747 tests: Add --valgrind option to test/fuzz/test_runner.py for running fuzzing test cases under valgrind (practicalswift) Pull request description: Add `--valgrind` option to `test/fuzz/test_runner.py` for running fuzzing test cases under `valgrind`. Test this PR using: ``` $ make distclean $ ./autogen.sh $ CC=clang CXX=clang++ ./configure --enable-fuzz --with-sanitizers=fuzzer $ make $ git clone https://github.com/bitcoin-core/qa-assets $ test/fuzz/test_runner.py --valgrind -l DEBUG qa-assets/fuzz_seed_corpus/ ``` ACKs for top commit: MarcoFalke: ACK 1b068c50dd1522990cc33e1aca444741c7e5a747 🌒 Tree-SHA512: e6eb99af1bceaa6f36f49092a05de415848099ccc1497cc098a62e925954c978cb37a46410b44ed5eef2c6464ca4ecb06397b75b5d35701f5a8525436e47b9fd
2020-02-16Merge #18145: build: add Wreturn-type to Werror flags, check on more Travis ↵MarcoFalke
machines c98c26ee992f204b17bf17d271512b36c40ad8c5 ci: use --enable-werror on more hosts (Sjors Provoost) 6ba617dbe2b79d13ceec7d452e44ecab3bb814e7 build: add Wreturn-type to Werror flags (Sjors Provoost) Pull request description: I overlooked a missing `return false` in https://github.com/bitcoin/bitcoin/pull/17577#discussion_r379137776 and the warning only showed up on one Travis machine (`warning: control reaches end of non-void function [-Wreturn-type]`). This PR promotes `Wreturn-type` to an error when configured with `--enable-werror`. I also added `--enable-werror` to the Travis machine that happened to catch this particular instance. ACKs for top commit: vasild: ACK c98c26e. practicalswift: ACK c98c26ee992f204b17bf17d271512b36c40ad8c5 Tree-SHA512: 64e86c67fef2c5048aab201a8400b7e4a6f27b93d626159ba0b2807b5f119d2b0a83e3372db88f692cb4b0d059722d6a642d130c74a4f991a27f3a6b21780b5f
2020-02-16tests: Add --valgrind option to test/fuzz/test_runner.py for running fuzzing ↵practicalswift
test cases under valgrind
2020-02-15Merge #18108: Fix .gitignore policy in build_msvc directoryMarcoFalke
dcb7af053da8f4ce479db7e776802cea26e84434 Ignore only auto-generated .vcxproj files (Hennadii Stepanov) 79c811ca2b922e19c4e6289bfd57481e587cd024 Specify ignored bitcoin-qt file precisely (Hennadii Stepanov) Pull request description: This PR makes `git` to ignore only auto-generated `.vcxproj` files, i.e.: https://github.com/bitcoin/bitcoin/blob/4c2578706c70148fc001f42a0918a2fb10252b43/build_msvc/msvc-autogen.py#L14-L25 Fix #17287 ACKs for top commit: sipsorcery: ACK dcb7af053da8f4ce479db7e776802cea26e84434. Tree-SHA512: 5acfc3cb50e1239655bc9715711c8a0489093ed7cc287756614740f67908f11a55976cec75b29e263d4d3579b6b8af99bb3823515d43adf204cd5935fb2e1a3f
2020-02-14ci: use --enable-werror on more hostsSjors Provoost
2020-02-14build: add Wreturn-type to Werror flagsSjors Provoost
This is supported by GCC and Clang. https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html https://clang.llvm.org/docs/DiagnosticsReference.html#wreturn-type
2020-02-13Merge #17746: refactor: rpc: Remove vector copy from listtransactionsWladimir J. van der Laan
25bc17fceb08ee9625c5e09e2579117ec6f7a1c5 refactor: rpc: Remove vector copy from listtransactions (João Barbosa) Pull request description: Current approach - copy accumulated `ret` vector to `arrTmp` - drop unnecessary elements from `arrTmp` - reverse `arrTmp` - clear `ret` - copy `arrTmp` to the `ret` New approach - create a vector from the accumulated `ret` with just the necessary elements already reversed - copy it to the result This PR doesn't change behavior. ACKs for top commit: ryanofsky: Code review ACK 25bc17fceb08ee9625c5e09e2579117ec6f7a1c5. Just comment and commit message tweaks since last review Tree-SHA512: 87906561e3accdbdb0f4a8194cbcd76ea53ae53d0ce135b90bc54a5f77e300b14ef08505e7daf1fe52426f135442a743da5a027416a769bd454922357cebe7c0
2020-02-13[test] add chainparams property to indicate chain allows time mockingAmiti Uttarwar
2020-02-13[test] unit test for new MockForward scheduler methodAmiti Uttarwar
2020-02-13[util] allow scheduler to be mockedAmiti Uttarwar
Add MockForward method to the scheduler that mimics going into the future by rescheduling all items on the taskQueue to be sooner.
2020-02-13refactor: rpc: Remove vector copy from listtransactionsJoão Barbosa
No change in behavior.
2020-02-13build: pass -fno-ident in Windows gitian descriptorfanquake
This prevents compilers from emitting compiler name and version number info that can needlessly bloat binaries. Accepted by Clang and GCC. See: https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang-qn https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#index-fno-ident
2020-02-13Merge #18121: gui: Throttle GUI update pace when -reindexJonas Schnelli
c9fe61291e9b23f37cf66194c2dad28e4d4a8954 gui: Throttle GUI update pace when -reindex (Hennadii Stepanov) Pull request description: This is grabbed from #17565. All **laanwj**'s and **ryanofsky**'s suggestions are implemented. With this PR, the GUI does not freeze when a user runs: ``` $ ./src/qt/bitcoin-qt -reindex ``` ACKs for top commit: jonasschnelli: utACK c9fe61291e9b23f37cf66194c2dad28e4d4a8954 Tree-SHA512: c7be316cb73d3d286bdf8429a960f71777d13a73d059869a64e23ad276499252b561a3a5b9613c4c1ad58cc0de26283c1ec72be745c401f604eaa05f70bf7d64
2020-02-13Merge #18123: gui: Fix race in WalletModel::pollBalanceChangedJonas Schnelli
bf36a3ccc212ad4d7c5cb8f26d7a22e279fe3cec gui: Fix race in WalletModel::pollBalanceChanged (Russell Yanofsky) Pull request description: Poll function was wrongly setting cached height to the current chain height instead of the chain height at the time of polling. This bug could cause balances to appear out of date, and was first introduced https://github.com/bitcoin/bitcoin/pull/10244/commits/a0704a8996bb950ae3c4d5b5a30e9dfe34cde1d3#diff-2e3836af182cfb375329c3463ffd91f8L117. Before that commit, there wasn't a problem because cs_main was held during the poll update. Currently, the problem should be rare. But if 8937d99ce81a27ae5e1012a28323c0e26d89c50b from #17954 were merged, the problem would get worse, because the wrong cachedNumBlocks value would be set if the wallet was polled in the interval between a block being connected and it processing the BlockConnected notification. MarcoFalke also points out that a0704a8996b could lead to GUI hangs as well, because previously the pollBalanceChanged method, which runs on the GUI thread, would only make a nonblocking TRY_LOCK(cs_main) call, but after could make blocking LOCK(cs_main) calls, potentially locking up the GUI. Thanks to John Newbery for finding this bug this while reviewing https://github.com/bitcoin/bitcoin/pull/17954. ACKs for top commit: Empact: utACK https://github.com/bitcoin/bitcoin/pull/18123/commits/bf36a3ccc212ad4d7c5cb8f26d7a22e279fe3cec jonasschnelli: utACK bf36a3c Tree-SHA512: 1f4f229fa70a6d1fcf7be3806dca3252e86bc1755168fb421258389eb95aae67f863cb1216e6dc086b596c33560d1136215a4c87b5ff890abc8baaa3333b47f4
2020-02-12gui: Throttle GUI update pace when -reindexHennadii Stepanov
Co-authored-by: Barry Deeney <mxaddict@codedmaster.com> Co-authored-by: Russell Yanofsky <russ@yanofsky.org>
2020-02-12Revert "Store p2sh scripts in AddAndGetDestinationForScript"Russell Yanofsky
This reverts commit 4a7e43e8460127a40a7895519587399feff3b682.
2020-02-12Merge #17708: prevector: avoid misaligned member accessesWladimir J. van der Laan
5f26855f109af53a336d5f98ed0ae584e7a31f84 test: Remove ubsan alignment suppressions (Wladimir J. van der Laan) 9d933ef9191417b4b7d29eaa3c3a571f814acc8e prevector: avoid misaligned member accesses (Anthony Towns) Pull request description: Ensure prevector data is appropriately aligned. Earlier discussion in #17530. **Edit laanwj**: In contrast to #17530, it does this without increase in size of any of the coin cache data structures (x86_64, clang) | Struct | (size,align) before | (size,align) after | | ------------- | ------------- | ------- | | Coin | 48, 8 | 48, 8 | | CCoinsCacheEntry | 56, 8 | 56, 8 | | CScript | 32, 1 | 32, 8 | ACKs for top commit: laanwj: ACK 5f26855f109af53a336d5f98ed0ae584e7a31f84 practicalswift: ACK 5f26855f109af53a336d5f98ed0ae584e7a31f84 jonatack: ACK 5f26855f109af53a336d5f98ed0ae584e7a31f84 Tree-SHA512: 98d112d6856f683d5b212410b73f3071d2994f1efb046a2418a35890aa1cf1aa7c96a960fc2e963fa15241e861093c1ea41951cf5b4b5431f88345eb1dd0a98a
2020-02-12[test] check for addmultisigaddress regressionSjors Provoost
2020-02-12wallet: Improve LegacyScriptPubKeyMan::CanProvide script recognitionRussell Yanofsky
Make LegacyScriptPubKeyMan::CanProvide method able to recognize p2sh scripts when the redeem script is present in the mapScripts map without the p2sh script also having to be added to the mapScripts map. This restores behavior prior to https://github.com/bitcoin/bitcoin/pull/17261, which I think broke backwards compatibility with old wallet files by no longer treating addresses created by `addmultisigaddress` calls before #17261 as solvable. The reason why tests didn't fail with the CanProvide implementation in #17261 is because of a workaround added in 4a7e43e8460127a40a7895519587399feff3b682 "Store p2sh scripts in AddAndGetDestinationForScript", which masked the problem for new `addmultisigaddress` RPC calls without fixing it for multisig addresses already created in old wallet files. This change adds a lot of comments and allows reverting commit 4a7e43e8460127a40a7895519587399feff3b682 "Store p2sh scripts in AddAndGetDestinationForScript", so the AddAndGetDestinationForScript() function, CanProvide() method, and mapScripts map should all be more comprehensible
2020-02-12Merge #18125: doc: remove PPA note from release-process.mdWladimir J. van der Laan
53234fd0c7107e8bf4dfb5d44fb8d31359c80bbc doc: remove PPA note from release-process.md (fanquake) Pull request description: The PPA is [no longer maintained](https://launchpad.net/~bitcoin/+archive/ubuntu/bitcoin) (in favour of the [snap](https://github.com/bitcoin-core/packaging/tree/master/snap)), so no need to bug the bluematt. Also fixes a link to the macdeploy instructions. ACKs for top commit: laanwj: LGTM ACK 53234fd0c7107e8bf4dfb5d44fb8d31359c80bbc practicalswift: ACK 53234fd0c7107e8bf4dfb5d44fb8d31359c80bbc Tree-SHA512: 11b32f9b8256f3250139a74522f35496af717cc611ff6de92bca13e0300c049630a61a2ce21976907f4bf8d2cabc54647e862d7ebffc07f2ef6b7d3ba24b3f32
2020-02-12Merge #12134: Build previous releases and run functional testsMarcoFalke
c456145b2c65f580683df03bf10cd39000cf24d5 [test] add 0.19 backwards compatibility tests (Sjors Provoost) b769cd142deda74fe46e231cc7b687a86514f2f1 [test] add v0.17.1 wallet upgrade test (Sjors Provoost) 9d9390dab716f07057c94e8e21f3c7dd06192f35 [tests] add wallet backwards compatility tests (Sjors Provoost) c7ca6308968b29a0e0edc485cd06e68e5edb7c7d [scripts] support release candidates of earlier releases (Sjors Provoost) 8b1460dbd1b732f06d4cebe1fa6844286c7a0056 [tests] check v0.17.1 and v0.18.1 backwards compatibility (Sjors Provoost) ae379cf7d12943fc192d58176673bcfe7d53da53 [scripts] build earlier releases (Sjors Provoost) Pull request description: This PR adds binaries for 0.17, 0.18 and 0.19 to Travis and runs a basic block propagation test. Includes test for upgrading v0.17.1 wallets and opening master wallets with older versions. Usage: ```sh contrib/devtools/previous_release.sh -f -b v0.19.0.1 v0.18.1 v0.17.1 test/functional/backwards_compatibility.py ``` Travis caches these earlier releases, so it should be able to run these tests with little performance impact. Additional scenarios where it might be useful to run tests against earlier releases: * creating a wallet with #11403's segwit implementation, copying it to an older node and making sure the user didn't lose any funds (although this PR doesn't support `v0.15.1`) * future consensus changes * P2P changes (e.g. to make sure we don't accidentally ban old nodes) ACKs for top commit: MarcoFalke: ACK c456145b2c65f580683df03bf10cd39000cf24d5 🔨 Tree-SHA512: 360bd870603f95b14dc0cd629532cc147344f632b808617c18e1b585dfb1f082b401e5d493a48196b719e0aeaee533ae0a773dfc9f217f704aae898576c19232
2020-02-12doc: remove PPA note from release-process.mdfanquake
Also fixes a link to the macdeploy instructions.
2020-02-12Merge #18004: build: don't embed a build-id when building libdmg-hfsplusfanquake
cb9e88e73a042ff4e1c83289a6f8fa1db03fb093 build: don't embed a build-id when building libdmg-hfsplus (fanquake) Pull request description: There was a [reproducibility issue (IRC logs)](http://www.erisian.com.au/bitcoin-core-dev/log-2020-01-25.html) with the osx `0.19.1rc1` gitian builds. The `build-id` embedded into the `dmg` tool was mismatching. It's possible that differing versions of binutils/ld were the cause. While it was resolved after rebuilding the base gitian image, whether an upstream package issue or fluke, we can remove the possibility of it happening in future by just not embedding a build-id into the `dmg` tool at all. Can close if it's not deemed worth it. You can test this change using the following: ```bash # build libdmg make native_libdmg-hfsplus_built -C depends/ HOST=x86_64-apple-darwin16 -j6 V=1 # master readelf --string-dump .note.gnu.build-id /bitcoin/depends/work/build/x86_64-apple-darwin16/native_libdmg-hfsplus/7ac55ec64c96f7800d9818ce64c79670e7f02b67-3830944ef98/build/dmg/dmg String dump of section '.note.gnu.build-id': [ c] GNU [ 11] CjRa?]?^V8?v?;%n?? # this pr readelf --string-dump .note.gnu.build-id /bitcoin/depends/work/build/x86_64-apple-darwin16/native_libdmg-hfsplus/7ac55ec64c96f7800d9818ce64c79670e7f02b67-a72f53ab110/build/dmg/dmg readelf: Warning: Section '.note.gnu.build-id' was not dumped because it does not exist! ``` ACKs for top commit: laanwj: tested ACK cb9e88e73a042ff4e1c83289a6f8fa1db03fb093 Tree-SHA512: 191eed32ed0a04a908f9c1b22188180b2db2f35bae0281940f0f9da2450c5c6807cd6ff5bbcce7c933a9133387b127c3478f7a39a2918c14f17be19fd9ea19b4
2020-02-11gui: Fix race in WalletModel::pollBalanceChangedRussell Yanofsky
Poll function was wrongly setting cached height to the current chain height instead of the chain height at the time of polling. This bug could cause balances to appear out of date, and was first introduced https://github.com/bitcoin/bitcoin/pull/10244/commits/a0704a8996bb950ae3c4d5b5a30e9dfe34cde1d3#r378452145 Before that commit, there wasn't a problem because cs_main was held during the poll update. Currently, the problem should be rare. But if 8937d99ce81a27ae5e1012a28323c0e26d89c50b from #17954 were merged, the problem would get worse, because the wrong cachedNumBlocks value would be set if the wallet was polled in the interval between a block being connected and it processing the BlockConnected notification. MarcoFalke <falke.marco@gmail.com> also points out that a0704a8996b could lead to GUI hangs as well, because previously the pollBalanceChanged method, which runs on the GUI thread, would only make a nonblocking TRY_LOCK(cs_main) call, but after could make blocking LOCK(cs_main) calls, potentially locking up the GUI. Thanks to John Newbery <john@johnnewbery.com> for finding this bug this while reviewing https://github.com/bitcoin/bitcoin/pull/17954.
2020-02-11[test] add 0.19 backwards compatibility testsSjors Provoost
2020-02-11[test] add v0.17.1 wallet upgrade testSjors Provoost
2020-02-11[tests] add wallet backwards compatility testsSjors Provoost
2020-02-11[scripts] support release candidates of earlier releasesSjors Provoost
2020-02-11[tests] check v0.17.1 and v0.18.1 backwards compatibilitySjors Provoost
2020-02-11[scripts] build earlier releasesSjors Provoost
2020-02-11Merge #18104: build: Skip i686 build by default in guix and gitianfanquake
fae9084ac5b10f94bdee54853d307838c4254e9c build: Skip i686 build by default in guix and gitian (MarcoFalke) fa55a2554c2661b8f2a759044d5ac85c9979d9ca depends: Remove reference to win32 (MarcoFalke) Pull request description: Closes #17504 Now that we no longer provide downloads for i686 on our website (https://bitcoincore.org/en/download/), there is no need to build them by default. i686 can still be built in depends (tested by ci/travis) and in guix/gitian by setting the appropriate `HOSTS`. ACKs for top commit: practicalswift: ACK fae9084ac5b10f94bdee54853d307838c4254e9c -- patch looks correct dongcarl: ACK fae9084ac5b10f94bdee54853d307838c4254e9c patch looks correct laanwj: Code review ACK fae9084ac5b10f94bdee54853d307838c4254e9c hebasto: ACK fae9084ac5b10f94bdee54853d307838c4254e9c, I have reviewed the code and it looks OK, I agree it can be merged. Tree-SHA512: b000c19a2cd2a596a52028fa298c4022c24cfdfc1bdb3795a90916d0a00a32e4dd22278db93790b6a11724e08ea8451f4f05c77bc40d1664518e11a8c82d6e29
2020-02-11Merge #18087: Get rid of VARINT default argumentfanquake
0e0fa27acb74b4f0075afcf59a0dff51a21baddb Get rid of VARINT default argument (Pieter Wuille) Pull request description: This removes the need for the non-strandard use of variadic macros. ACKs for top commit: ryanofsky: Code review ACK 0e0fa27acb74b4f0075afcf59a0dff51a21baddb. Only change since last review reverting outdated documentation change from earlier version of pr jonatack: ACK 0e0fa27 code review, built/ran tests/bitcoind practicalswift: ACK 0e0fa27acb74b4f0075afcf59a0dff51a21baddb -- diff looks correct MarcoFalke: ACK 0e0fa27acb74b4f0075afcf59a0dff51a21baddb 📯 Tree-SHA512: 6e335e4b586d62112b7260a12481cd949d1b3bbdb83edf8db690348f0a01852e68504336ff3e072e5131a7c8cb404ef11a2f786f842b8d08bbf6ea0e688777b1
2020-02-10Get rid of VARINT default argumentPieter Wuille
This removes the need for the GNU C++ extension of variadic macros.
2020-02-10Merge #18051: build: Fix behavior when ALLOW_HOST_PACKAGES unsetWladimir J. van der Laan
0e519fe28425b0148fe0d026bd084ecd244f5669 build: Fix behavior when ALLOW_HOST_PACKAGES unset (Hennadii Stepanov) Pull request description: On master (f05c1ac444e0c893516535bfdf07c5c8cd9bce16) during building with depends host packages are always considered by `pkg-config` regardless of `ALLOW_HOST_PACKAGES` environment variable. This causes issues like #18042. This is an alternative to #18042 and #18045. On master: ``` $ make HOST=x86_64-apple-darwin16 -C depends $ CONFIG_SITE=$PWD/depends/x86_64-apple-darwin16/share/config.site ./configure ... checking for QT_DBUS... yes ... checking whether to build GUI with support for D-Bus... yes ... ``` --- With this PR: 1) `ALLOW_HOST_PACKAGES` unset ``` $ make HOST=x86_64-apple-darwin16 -C depends $ CONFIG_SITE=$PWD/depends/x86_64-apple-darwin16/share/config.site ./configure ... checking for QT_DBUS... no ... checking whether to build GUI with support for D-Bus... no ... ``` 2) `ALLOW_HOST_PACKAGES=1` ``` $ make HOST=x86_64-apple-darwin16 ALLOW_HOST_PACKAGES=1 -C depends $ CONFIG_SITE=$PWD/depends/x86_64-apple-darwin16/share/config.site ./configure ... checking for QT_DBUS... yes ... checking whether to build GUI with support for D-Bus... yes ... ``` ACKs for top commit: jonasschnelli: Tested ACK 0e519fe28425b0148fe0d026bd084ecd244f5669 - After this PR (and after a `make clean` & `make HOST=x86_64-apple-darwin16` in depends), the macOS depends build on a Debian machine with qt as host package worked (it fails on master due to `ENABLE_DBUS=1`). Tree-SHA512: d11e1c2bc8ce8a07f3f9b465b01c9b2c814afe75b085a8b88aab74fd3a922aa98180c447457dfc4174515513181c5f4edc521978a1d3d0a112106c98b5c73c0e
2020-02-10Merge #17947: test: add unit test for non-standard txs with too large tx sizeWladimir J. van der Laan
4537ba5f21ad8afb705325cd8e15dd43877eb28f test: add unit test for non-standard txs with too large tx size (Sebastian Falbesoner) Pull request description: Approaches another missing unit test of issue #17394: Checks that the function `IsStandardTx()` returns rejection reason `"tx-size"` if the transaction weight is larger than `MAX_STANDARD_TX_WEIGHT` (=400000 vbytes). ACKs for top commit: Empact: Code Review ACK https://github.com/bitcoin/bitcoin/pull/17947/commits/4537ba5f21ad8afb705325cd8e15dd43877eb28f instagibbs: ACK https://github.com/bitcoin/bitcoin/commit/4537ba5f21ad8afb705325cd8e15dd43877eb28f Tree-SHA512: ab32e3e47e0b337253aef3da9b7c97d01f4130d00d5860588dfed02114eec3ba49473acc6419448affd63e883fd827bf308716965606eaddee242c4c5a4eb799
2020-02-10Ignore only auto-generated .vcxproj filesHennadii Stepanov
2020-02-10Specify ignored bitcoin-qt file preciselyHennadii Stepanov
This commit prevents ignoring the build_msvc/bitcoin-qt directory.
2020-02-10Merge #18021: Serialization improvements step 4 (undo.h)Wladimir J. van der Laan
3c94b0039d2ca2a8c41fd6127ff5019a2afc304e Convert undo.h to new serialization framework (Pieter Wuille) 3cd8ab9d11e4c0ea47e56be4f6f2fdd48806796c Make std::vector and prevector reuse the VectorFormatter logic (Pieter Wuille) abf86243568af380c1384ac4e0bfcdcfd4dab085 Add custom vector-element formatter (Pieter Wuille) 37d800bea016d5cba5635db036f53a486614ed30 Add a constant for the maximum vector allocation (5 Mbyte) (Pieter Wuille) Pull request description: The next step of changes from #10785. This one adds: * A meta-formatter for vectors, which serializes the vector elements using another formatter * Switch the undo.h code to the new framework, using the above (where undo entries are serialized as a vector, each of which uses a modified serializer for the UTXOs). ACKs for top commit: laanwj: code review ACK 3c94b0039d2ca2a8c41fd6127ff5019a2afc304e jonatack: Qualified ACK 3c94b0039d2c ryanofsky: Code review ACK 3c94b0039d2ca2a8c41fd6127ff5019a2afc304e. Changes since last review: renaming formatter classes, adding suggested static_assert, and removing temporary in VectorFormatter Tree-SHA512: 44eebf51a303f6adbbc1ca2b9d043e8ae7fd37e06778e026590892f8d09f8253067862a68ba8ca5d733fd2f8e7c84edd255370f5a4b6560259427a65f94632df
2020-02-10Merge #18081: test: set a name for CI Docker containersWladimir J. van der Laan
9e111db088e4137865ae068d206c769994ea0a29 test: set a name for CI Docker containers (fanquake) Pull request description: Addresses one part of #16664, by making it easier to identify CI containers that are running locally. By default Docker will generate random names, like `peaceful_rubin`, with this change, we explicitly set names for all containers. ACKs for top commit: MarcoFalke: ACK 9e111db088e4137865ae068d206c769994ea0a29 Tree-SHA512: 0a29ada0d8cf6b0e9ae7a35f4f6df7a3dcc448523ceaed01371124360d6e3d1bf351172104a5fb629488eeaa57994ba04134dcb83c261eb1dfd2f0d73edf5f60
2020-02-10Merge #18106: test: Disable s390 build on travisMarcoFalke
b0a01299ed8cc2026e91a8dcad880b700e462cee test: Disable s390 build on travis (Wladimir J. van der Laan) Pull request description: Travis is consistently failing on s390 due to out of disk space issues, which causes false positives. Disable the s390 build for now until this is fixed some other way. ACKs for top commit: MarcoFalke: ACK b0a01299ed8cc2026e91a8dcad880b700e462cee 🍠 jonasschnelli: ACK b0a01299ed8cc2026e91a8dcad880b700e462cee Tree-SHA512: ae8a78fa03bc620d802e4992d46929a0a4b801b50a6066d8f093f93fc5ebbc010d221c04787cbfc75436a2c40f9292257bf85fbb251593e21afff11756b6d8d4
2020-02-10test: set a name for CI Docker containersfanquake
2020-02-10Merge #18099: Update univalue subtreefanquake
97aa5740c0e9ef433cbedafe689b641297b50f5e Squashed 'src/univalue/' changes from 5a58a46671..98261b1e7b (MarcoFalke) Pull request description: Closes #17742 ACKs for top commit: fanquake: ACK fad9ea8fdb0a7269a3fcc472fd948669d74f7aa7 Tree-SHA512: 6316cb0e974ee6575e2a98930203dc7d155b346d2d2fe5a322e3d8b77a87d378d31fde16ea2f90ff93736429ddb89799a26945de13ce4a20132550bbcec0a48e