aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-03-14wallet: Pass FastRandomContext& to DiscourageFeeSnipingMarcoFalke
2022-03-14Merge bitcoin/bitcoin#24225: wallet: Add sanity checks to DiscourageFeeSnipingAndrew Chow
fa8e76bb9002a126b3645bd9533c282f5dfff111 wallet: Add sanity checks to AntiFeeSnipe (MarcoFalke) Pull request description: I added those sanity checks as part of implementing BIP 326, but I think they make sense on their own. The checks require the transaction to be passed in to `DiscourageFeeSniping`. Also, replace `(int)locktime` cast with the equivalent `int(locktime)` cast. ACKs for top commit: chris-belcher: ACK https://github.com/bitcoin/bitcoin/pull/24225/commits/fa8e76bb9002a126b3645bd9533c282f5dfff111 S3RK: Code review ACK fa8e76bb9002a126b3645bd9533c282f5dfff111 achow101: ACK fa8e76bb9002a126b3645bd9533c282f5dfff111 w0xlt: Code Review ACK https://github.com/bitcoin/bitcoin/pull/24225/commits/fa8e76bb9002a126b3645bd9533c282f5dfff111 Tree-SHA512: 6fe37c85f074851ef09cae8addcb836257089290fecec515c129c3180e9ccb64740aaac76043af10ce7c213e5001568ca6b4b62ae9631f0994ed676b07118074
2022-03-14Merge bitcoin/bitcoin#24505: wallet: Add a deprecation warning for newly ↵MarcoFalke
created legacy wallets 61152183ab18960c8b42cf22ff7168762946678e wallet: Add a deprecation warning for newly created legacy wallets (Andrew Chow) Pull request description: As we slowly deprecate legacy wallets, we need to warn users that are making new legacy wallets that their wallet type is going to be unsupported in the future. ACKs for top commit: jonatack: ACK 61152183ab18960c8b42cf22ff7168762946678e S3RK: reACK 61152183ab18960c8b42cf22ff7168762946678e theStack: ACK 61152183ab18960c8b42cf22ff7168762946678e Tree-SHA512: e89bfb8168869542498958f0c9a2ab302dfd43287f8a49e7d9e09f60438a567bb8b7219a4e569797ee819b30b624f532fcc0b70c6aa0edcb392a301b8ce8b541
2022-03-13Merge bitcoin/bitcoin#24528: rpc: rename getdeploymentinfo status-next to ↵MarcoFalke
status_next 5d7c69b8871aad747969247c7a047b439c5ca59e rpc: rename getdeploymentinfo status-next to status_next (Jon Atack) Pull request description: Rename the `status-next` field to `status_next` in getdeploymentinfo before the RPC is released in v23. Before ``` Result: { (json object) "hash" : "str", (string) requested block hash (or tip) "height" : n, (numeric) requested block height (or tip) "deployments" : { (json object) "xxxx" : { (json object) name of the deployment "type" : "str", (string) one of "buried", "bip9" "height" : n, (numeric, optional) height of the first block which the rules are or will be enforced (only for "buried" type, or "bip9" type with "active" status) "active" : true|false, (boolean) true if the rules are enforced for the mempool and the next block "bip9" : { (json object, optional) status of bip9 softforks (only for "bip9" type) "bit" : n, (numeric, optional) the bit (0-28) in the block version field used to signal this softfork (only for "started" and "locked_in" status) "start_time" : xxx, (numeric) the minimum median time past of a block at which the bit gains its meaning "timeout" : xxx, (numeric) the median time past of a block at which the deployment is considered failed if not yet locked in "min_activation_height" : n, (numeric) minimum height of blocks for which the rules may be enforced "status" : "str", (string) status of deployment at specified block (one of "defined", "started", "locked_in", "active", "failed") "since" : n, (numeric) height of the first block to which the status applies "status-next" : "str", (string) status of deployment at the next block "statistics" : { (json object, optional) numeric statistics about signalling for a softfork (only for "started" and "locked_in" status) "period" : n, (numeric) the length in blocks of the signalling period "threshold" : n, (numeric, optional) the number of blocks with the version bit set required to activate the feature (only for "started" status) "elapsed" : n, (numeric) the number of blocks elapsed since the beginning of the current period "count" : n, (numeric) the number of blocks with the version bit set in the current period "possible" : true|false (boolean, optional) returns false if there are not enough blocks left in this period to pass activation threshold (only for "started" status) }, "signalling" : "str" (string) indicates blocks that signalled with a # and blocks that did not with a - } } } } ``` After ``` Result: { (json object) "hash" : "str", (string) requested block hash (or tip) "height" : n, (numeric) requested block height (or tip) "deployments" : { (json object) "xxxx" : { (json object) name of the deployment "type" : "str", (string) one of "buried", "bip9" "height" : n, (numeric, optional) height of the first block which the rules are or will be enforced (only for "buried" type, or "bip9" type with "active" status) "active" : true|false, (boolean) true if the rules are enforced for the mempool and the next block "bip9" : { (json object, optional) status of bip9 softforks (only for "bip9" type) "bit" : n, (numeric, optional) the bit (0-28) in the block version field used to signal this softfork (only for "started" and "locked_in" status) "start_time" : xxx, (numeric) the minimum median time past of a block at which the bit gains its meaning "timeout" : xxx, (numeric) the median time past of a block at which the deployment is considered failed if not yet locked in "min_activation_height" : n, (numeric) minimum height of blocks for which the rules may be enforced "status" : "str", (string) status of deployment at specified block (one of "defined", "started", "locked_in", "active", "failed") "since" : n, (numeric) height of the first block to which the status applies "status_next" : "str", (string) status of deployment at the next block "statistics" : { (json object, optional) numeric statistics about signalling for a softfork (only for "started" and "locked_in" status) "period" : n, (numeric) the length in blocks of the signalling period "threshold" : n, (numeric, optional) the number of blocks with the version bit set required to activate the feature (only for "started" status) "elapsed" : n, (numeric) the number of blocks elapsed since the beginning of the current period "count" : n, (numeric) the number of blocks with the version bit set in the current period "possible" : true|false (boolean, optional) returns false if there are not enough blocks left in this period to pass activation threshold (only for "started" status) }, "signalling" : "str" (string) indicates blocks that signalled with a # and blocks that did not with a - } } } } ``` Top commit has no ACKs. Tree-SHA512: 4facfd7af3cfb7b6f5495758c4387602802f5e39d9270b162d17350a7f954eab0b74d895f17f0d8dfbc7814d36db7cff56d08c42728432885ea6f4e37aea4aa8
2022-03-13Merge bitcoin/bitcoin#24527: test: set segwit height back to 0 on regtestMarcoFalke
5ce3057c8e8f192921fd5e4bdb95bb15e3f7dbad test: set segwit height back to 0 on regtest (Martin Zumsande) Pull request description: The change of `consensus.SegwitHeight` from 0 to 1 for regtest in #22818 had the effect that if I create a regtest enviroment with current master (or 23.x), and then try to load this chain with an older version (22.x), I get an InitError `Witness data for blocks after height 0 requires validation. Please restart with -reindex` and have to reindex because `BLOCK_OPT_WITNESS` is no longer set for the Genesis block and `NeedsRedownload()` in validation returns `true` with an older version. That might be a bit annoying for tests that use a shared regtest dir with different versions. If people think this is enough of an issue to be worth fixing, I think it should also make it into 23.x ACKs for top commit: theStack: Concept and code-review ACK 5ce3057c8e8f192921fd5e4bdb95bb15e3f7dbad Tree-SHA512: b0e89ff7fc953bc0ae929d2da44cde7149321d987fb4763934f6c9635d00d807129a50b459cc5e69e86bb1819e4b063b969486e8016a1cb8db8f905fa315653d
2022-03-13Merge bitcoin/bitcoin#24533: test: use MiniWallet for feature_maxuploadtarget.pyMarcoFalke
aab552fa3073f27bcedee1d5890e7e8d9e67ffb4 test: use MiniWallet for feature_maxuploadtarget.py (Sebastian Falbesoner) Pull request description: This PR enables one more of the non-wallet functional tests (feature_maxuploadtarget.py) to be run even with the Bitcoin Core wallet disabled by using the MiniWallet instead, as proposed in https://github.com/bitcoin/bitcoin/issues/20078. Note that the adapted helper function `mine_large_block` is currently only is used in this test, i.e. there was no need to change any others. ACKs for top commit: brunoerg: crACK aab552fa3073f27bcedee1d5890e7e8d9e67ffb4 Tree-SHA512: 82fb962ae40e3717419b063af295fc03ac5d5dfe4266dee8ba7f6c86800ede1d32f8fa632c189c30e982badf0c6083fcf6eca4798221f6e284c5e01a8b1a1ed9
2022-03-13Merge bitcoin/bitcoin#24491: contrib: fix implicit function decleration in ↵laanwj
win symbol check e4e9dd3a287f134356044f636e189da704de8ed4 contrib: fix implicit function decleration in win symbol check (fanquake) Pull request description: ```bash test3.c: In function 'main': test3.c:6:21: warning: implicit declaration of function 'CoFreeUnusedLibrariesEx' [-Wimplicit-function-declaration] 6 | CoFreeUnusedLibrariesEx(0,0); ``` ```bash bash-5.1# find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum 1907745369f13b0b01583795e395b7e8ecda174a8a3b6309184b14609bfdcb20 guix-build-e4e9dd3a287f/output/dist-archive/bitcoin-e4e9dd3a287f.tar.gz 6973025bd46acdbc327118541f26d36885434305d20a7fa33e0db61f66f8b930 guix-build-e4e9dd3a287f/output/x86_64-w64-mingw32/SHA256SUMS.part 4cdc4efc0d27b3fcfb8f36244dfd956d19ae5df0414dcc23e733c88188f1f93a guix-build-e4e9dd3a287f/output/x86_64-w64-mingw32/bitcoin-e4e9dd3a287f-win-unsigned.tar.gz 022e9743b13f5366cd0f4b52ff8350b42d8c6a506c98363071501a6c4ac735f1 guix-build-e4e9dd3a287f/output/x86_64-w64-mingw32/bitcoin-e4e9dd3a287f-win64-debug.zip 62e65f04fdcacb3d3fbcffbea5204f723f2b27a5f9a62a77abaf0b7ee7de3744 guix-build-e4e9dd3a287f/output/x86_64-w64-mingw32/bitcoin-e4e9dd3a287f-win64-setup-unsigned.exe d773f5ba6afe456b7b5286f0cf98bcb711da8087b96a31f2e38f9c43af44fe96 guix-build-e4e9dd3a287f/output/x86_64-w64-mingw32/bitcoin-e4e9dd3a287f-win64.zip ``` ACKs for top commit: laanwj: Code review ACK e4e9dd3a287f134356044f636e189da704de8ed4 hebasto: ACK e4e9dd3a287f134356044f636e189da704de8ed4, tested on Ubuntu 22.04. Tree-SHA512: e075b052f848a654ed11fb8bc29e2a7b015ab2b44878535d84ac61ecec507410d68e866526c5e0acd1b1b99e65c9d738231208cbb676c8d3f73691317c94c9e0
2022-03-12Merge bitcoin/bitcoin#24526: build: don't install deprecated libevent headersfanquake
339b4a51f6d3558c3489b14efe0c8c195295cf86 build: don't install deprecated libevent headers (fanquake) Pull request description: We don't use the deprecated headers now, and never should do in the future, so there is no need for them to exist in depends. The headers themselves are just full of includes for the newer headers. ACKs for top commit: hebasto: ACK 339b4a51f6d3558c3489b14efe0c8c195295cf86 Tree-SHA512: 736fd9e3b22212da462cc05203dd253806dc59f973090357b705f2742ed4a3b8c3cc44b3173d706527f60ad93e95cf4143ec6b7db4233a489890a98f8e5c8f07
2022-03-12Merge bitcoin/bitcoin#24164: build: Bump minimum required clang/libc++ to 8.0MarcoFalke
fae20e6b50306f91c74037e915aa0ab75a0a6b3b Revert "Avoid the use of P0083R3 std::set::merge" (MarcoFalke) fab53b5fd45cf55a1d4d313e46ffce7396c9590e ci/doc: Set minimum required clang/libc++ version to 8.0 (MarcoFalke) Pull request description: This is not for 23.0, but for 24.0. It comes with the following benefits: * Can use C++17 P0083R3 std::set::merge from libc++ 8.0 * No longer need to provide support for clang-7, which already fails to compile on some architectures (https://github.com/bitcoin/bitcoin/issues/21294#issuecomment-998098483) This should be fine, given that all supported operating systems ship with at least clang-10: * CentOS 8: clang-12 * Stretch: https://packages.debian.org/stretch/clang-11 * Buster: https://packages.debian.org/buster-backports/clang-11 * Bionic: https://packages.ubuntu.com/bionic-updates/clang-10 * Focal: https://packages.ubuntu.com/focal/clang-10 ACKs for top commit: fanquake: ACK fae20e6b50306f91c74037e915aa0ab75a0a6b3b - I think this is fine to do. I would be surprised if in another 6 months time someone was stuck on a system we supported, needing to compile Core, and only had access to Clang 7 or older. As mentioned in the PR description, all systems we currently support, already support multiple newer versions of Clang. hebasto: ACK fae20e6b50306f91c74037e915aa0ab75a0a6b3b, I have reviewed the code and it looks OK, I agree it can be merged. Tree-SHA512: 3b4c6c130ff40dd7e84934af076863415e5dd661d823c72e3e3832566c65be6e877a7ef9164bbcf394bcea4b897fc29a48db0f231c22ace0e2c9b5638659a628
2022-03-11Merge bitcoin/bitcoin#24530: wallet: assert BnB's internally calculated ↵Andrew Chow
waste is the same as GetSelectionWaste ec7d73628a6397fca3b5b852d4e97ff918b6d3a6 [wallet] assert BnB internally calculated waste is the same as GetSelectionWaste() (glozow) Pull request description: #22009 introduced a `GetSelectionWaste()` function to determine how much "waste" a coin selection solution has, and is a mirror of the waste calculated inside of `SelectCoinsBnB()`. It would be bad for these two waste metrics to deviate, since it could negatively affect how often we select the BnB solution. Add an assertion to help tests catch a potential accidental change. ACKs for top commit: achow101: ACK ec7d73628a6397fca3b5b852d4e97ff918b6d3a6 Xekyo: ACK ec7d73628a6397fca3b5b852d4e97ff918b6d3a6 Tree-SHA512: 3ab7ad45ae92e7ce3f21824fb975105b6be8382edf47c252df5d13d973a3abdcb675132d223b42fcbb669cca879672c904b8a58d0676e12bf381a9219f4db37c
2022-03-11test: use MiniWallet for feature_maxuploadtarget.pySebastian Falbesoner
This test can now be run even with the Bitcoin Core wallet disabled.
2022-03-11Merge bitcoin/bitcoin#24453: Bugfix: doc: Correct ↵MarcoFalke
change_address/changeAddress in wallet RPC help e8272024ab6ed0817fe5027d8d800acbb87bc9ff doc: Use human-friendly DefaultHint for change_address/changeAddress in wallet RPC help (Luke Dashjr) 9d5e693c9de57ec9ef7e96cdd2f47fdc45431748 Bugfix: doc: Correct type of change_address/changeAddress in wallet RPC help (STR, not STR_HEX) (Luke Dashjr) Pull request description: ACKs for top commit: achow101: ACK e8272024ab6ed0817fe5027d8d800acbb87bc9ff Tree-SHA512: da4db2b241160c93ea66f8c572c69d4688f52a5fd8c32b66b1192925fcb360baf91be9771eaca178f5b08e1920559174260ed57caddcffade48156ec0c83c0bc
2022-03-11Merge bitcoin/bitcoin#24421: miner: always assume we can build witness blocksfanquake
40e871d9b4e55f5b5f7ce2a89157cd3d9f152037 [miner] always assume we can create witness blocks (glozow) Pull request description: Given the low possibility of a reorg reverting the segwit soft fork, there is no longer a need to check whether segwit is active to see if it's okay to add to the block template (see also #23512, #21009, etc). `TestBlockValidity()` is also run on the block template at the end of `CreateNewBlock()`, so any invalid block would be caught there. ACKs for top commit: gruve-p: ACK https://github.com/bitcoin/bitcoin/pull/24421/commits/40e871d9b4e55f5b5f7ce2a89157cd3d9f152037 jnewbery: utACK 40e871d9b4, although I disagree about changing the test for segwit transaction in mempool before activagtion, instead of just removing it: https://github.com/bitcoin/bitcoin/pull/24421#discussion_r822933721. achow101: ACK 40e871d9b4e55f5b5f7ce2a89157cd3d9f152037 theStack: Code-review ACK 40e871d9b4e55f5b5f7ce2a89157cd3d9f152037 Tree-SHA512: bf4860bf2bed8339622d05228d11d60286edb0c32a9a3c434b8d154913c07ea56e50649f4af7009c2a1c6a58a81d2299ab43b41a6f16dee7d08cc89cc1603019
2022-03-11[wallet] assert BnB internally calculated waste is the same as ↵glozow
GetSelectionWaste() These two implementations of waste calculation should never deviate. Still keep the SelectCoinsBnB internal calculation because incremental calculate-as-you-go is much more performant than calling GetSelectionWaste() over and over again.
2022-03-11Merge bitcoin/bitcoin#24524: doc: remove Boost LDFLAGS from netBSD build docsfanquake
8336a06dbdc772b6ee1581fb88d480842fe604db doc: remove Boost LDFLAGS from netBSD build docs (fanquake) Pull request description: We no-longer link against any Boost libs, so we shouldn't need to use any Boost linker flags. ACKs for top commit: hebasto: ACK 8336a06dbdc772b6ee1581fb88d480842fe604db, I have reviewed the code and it looks OK, I agree it can be merged. Also verified that there is no other usage of `BOOST_LDFLAGS` in our codebase or documentation. Tree-SHA512: b7814d10cee789903cb3c613631e184a72f5766cda85261b5f99f9ac207348a2a49c92494c8c1d50163494f6b755c503cf51bf083b31f564dae1b0f493c54c2e
2022-03-11Merge bitcoin/bitcoin#24509: doc: Add `guix` prefix for changes to ↵fanquake
reproducible builds f1f994a122b135160216b6fc56c095b83eeaf812 doc: Add `guix` prefix for changes to reproducible builds (Hennadii Stepanov) Pull request description: Most of contributors already use the `guix:` prefix for changes to `contrib/guix`. Also `guix` is shorter than `build`, and it is more focused/specific. ACKs for top commit: fanquake: ACK f1f994a122b135160216b6fc56c095b83eeaf812 Tree-SHA512: 3f754e80802ec4e871b099ce1f0877e34ecc4816fbe9c49bfd2a7368ef79fed9edf6c65f38eedef2a87367fdc911dc548e0def422d80b66a91ce2e5f35826032
2022-03-11Merge bitcoin/bitcoin#24521: build: Fix Boost.Process detection on macOS arm64fanquake
1d4157a42b77411579eb721b5c6fb533a357959d build: Fix Boost.Process detection on macOS arm64 (Hennadii Stepanov) Pull request description: Could be tested as follows: ``` % brew install boost@1.76 % ./autogen.sh % ./configure --with-boost='/opt/homebrew/opt/boost@1.76' ``` ACKs for top commit: promag: Tested ACK on 1d4157a42b77411579eb721b5c6fb533a357959d with boost 1.76 on macOS arm64. #24523 is required for boost 1.78. Tree-SHA512: 7abd39a78e970ecc051e53b5923dfc31d3f0576cf4ff7fcfb9c8708c857c46a7a595ec36238def83f41158970eeee209980da4b8b70f0ff68f940a38ac9a0471
2022-03-11rpc: rename getdeploymentinfo status-next to status_nextJon Atack
2022-03-10test: set segwit height back to 0 on regtestMartin Zumsande
This was changed in #22818 from 0 to 1. Since it changes BLOCK_OPT_WIT of the genesis block, older versions of bitcoin core would not read regtest directories created with newer versions without a reindex.
2022-03-10build: don't install deprecated libevent headersfanquake
We don't use the deprecated headers now, and never should do in the future, so there is no need for them to exist in depends. The headers themselves are just full of includes for the newer headers.
2022-03-10Merge bitcoin-core/gui#563: qt: Remove network detection based on address in ↵Hennadii Stepanov
BIP21 b7dbc83f23f67048cd6f66f5587381d73fad4894 qt: Remove network detection based on address in BIP21 (laanwj) Pull request description: This is removes some ugly and brittle code that switches the global network to testnet based on a provided address. I think in practice it's very unlikely for testnet BIP21 payment URIs to be used, and if so it's for testing so it's easy enough to manually copy it. Or to specify `-testnet` explicitly. There is already no such case for `-regtest` or `-signet`. After this change it will only accept addresses for the explicitly selected network. Others will result in a "wrong network" popup. There is also a possibility for refactor after this as the initialization order of `PaymentServer::ipcParseCommandLine` isn't important anymore (well, it still has to be before `PaymentServer::ipcSendCommandLine`, maybe even merged with it), but I have not done so here. ACKs for top commit: jonatack: ACK b7dbc83f23f67048cd6f66f5587381d73fad4894 achow101: ACK b7dbc83f23f67048cd6f66f5587381d73fad4894 Tree-SHA512: ebc77c0e5c98f53fe254bcd0f94c9d1c06937b794346e95b14158860d5c607515e71d73b782d2726674dce86d6d4001085d473c6d1bc11c5e6c25ff3fb3cfa22
2022-03-10doc: remove Boost LDFLAGS from netBSD build docsfanquake
We no-longer link against any Boost libs, so we shouldn't need to use any Boost linker flags.
2022-03-10Merge bitcoin/bitcoin#24522: ci: remove compiled-but-unused BDB from MSAN jobMarcoFalke
3566353c5e8c699f5da80cb3f8081e407f1b5813 ci: remove compiled-but-unused BDB from MSAN job (fanquake) Pull request description: Self-compiled BDB was added to this job as opposed to using depends BDB [due to linking issues](https://github.com/bitcoin/bitcoin/pull/18288#discussion_r433189350), however the compiled BDB is not actually used. Remove it for now, given we don't actually lose any coverage (note that BDB is also not currently used in the naitve MSAN fuzz job or for [OSS Fuzz](https://github.com/google/oss-fuzz/blob/master/projects/bitcoin-core/build.sh#L32) builds). In future, we can use depends BDB, however introducing it now will cause false positives, which can be fixed by upgrading the versions of Clang / LLVM we use, however upgrading to those newer versions causes other issues, which appear in standard library code, and require more involved suppressing, which can be solved in a follow up or another PR i.e #23008. Top commit has no ACKs. Tree-SHA512: 9e8fdd95246cafa27cda7bcf0641b428d4573f6748ecdf07cc6205a64351db22ba383ec943e88a69df3694ccb9f125d994b64345a4e44fb6fea4a014504760d1
2022-03-10Merge bitcoin/bitcoin#24404: refactor: Remove confusing P1008R1 violation in ↵fanquake
ATMPArgs faa1aec26b3f354c832e6b995323c9429b178931 Remove confusing P1008R1 violation in ATMPArgs (MarcoFalke) Pull request description: The `= delete` doesn't achieve the stated goal and it is also redundant, since it is not possible to default construct the `ATMPArgs` type. This can be tested with: ```diff diff --git a/src/validation.cpp b/src/validation.cpp index 2813b62462..1c939c0b8a 100644 --- a/src/validation.cpp +++ b/src/validation.cpp @@ -519,6 +519,7 @@ public: /** Parameters for child-with-unconfirmed-parents package validation. */ static ATMPArgs PackageChildWithParents(const CChainParams& chainparams, int64_t accept_time, std::vector<COutPoint>& coins_to_uncache) { + ATMPArgs{}; return ATMPArgs{/* m_chainparams */ chainparams, /* m_accept_time */ accept_time, /* m_bypass_limits */ false, ``` Which fails on current master *and* this pull with the following error: ``` validation.cpp:525:22: error: reference member of type 'const CChainParams &' uninitialized ATMPArgs{}; ~^ validation.cpp:470:29: note: uninitialized reference member is here const CChainParams& m_chainparams; ^ 1 error generated. ``` Further reading (optional): * http://open-std.org/JTC1/SC22/WG21/docs/papers/2018/p1008r1.pdf ACKs for top commit: achow101: ACK faa1aec26b3f354c832e6b995323c9429b178931 glozow: code review ACK faa1aec26b3f354c832e6b995323c9429b178931 Tree-SHA512: 16db2c9959a1996eafbfa533dc4d1483761b9d28295aed5a82b86abd7268da37c51c59ddc67c205165ecb415dbe637b12a0e1b3234d50ab0b3b79de66d7bd73e
2022-03-10ci: remove compiled-but-unused BDB from MSAN jobfanquake
Self-compiled BDB was added to this job as opposed to using depends BDB due to linking issues, however the compiled BDB is not actually used. Remove it for now, given we don't actually lose any coverage (note that BDB is also no used the MSAN fuzz job), and in future, we can use depends BDB.
2022-03-10Merge bitcoin/bitcoin#24486: wallet: refactor: dedup sqlite blob bindingfanquake
8ea6167099ddfe9a42464c3c8ae2acd895329d4f wallet: refactor: dedup sqlite blob binding (Sebastian Falbesoner) Pull request description: This refactoring PR deduplicates repeated SQLite blob binding to a statement with a newly introduced helper function `BindBlobToStatement`, abstracting away the calls to `sqlite3_bind_blob(...)`. This should be more readable and less error-prone, e.g. in case that the error handling has to be adapted. As a slight drawback, the function where the binding happens is not printed anymore (`__func__`), i.e. one could argue this is not strictly a refactoring, but IMHO the advantages of deduplication outweigh this; binding errors are purely internal logic errors (wrong use of the sqlite API) rather than something that is dependend on external data like DB content. ACKs for top commit: laanwj: Code review ACK 8ea6167099ddfe9a42464c3c8ae2acd895329d4f achow101: ACK 8ea6167099ddfe9a42464c3c8ae2acd895329d4f klementtan: ACK 8ea6167099ddfe9a42464c3c8ae2acd895329d4f Tree-SHA512: 1de0d214f836bc405a01e98a3a2d71f2deaddc7d23c31cad80219d1614bec92619c06d9a4a091dd563d3e95ffb879649c29745d8f89669b2a5330552c212af3f
2022-03-10wallet: Add a deprecation warning for newly created legacy walletsAndrew Chow
2022-03-10build: Fix Boost.Process detection on macOS arm64Hennadii Stepanov
Could be tested as follows: ``` % brew install boost@1.76 % ./autogen.sh % ./configure --with-boost='/opt/homebrew/opt/boost@1.76' ```
2022-03-10qt: Remove network detection based on address in BIP21laanwj
This is some very ugly and brittle code that switches the global network based on a provided address, remove it. I think in practice it's very unlikely for testnet BIP21 payment URIs to be used, and if so it's for testing so it's easy enough to manually copy it. Or to specify `-testnet` explicitly. There is already no case for `-regtest` or `-signet`.
2022-03-10Merge bitcoin/bitcoin#24469: test: Correctly decode UTF-8 literal string pathsMarcoFalke
2f5fd3cf9225aed439d1de767312bb340972d665 test: Correctly decode UTF-8 literal string paths (Ryan Ofsky) Pull request description: Call `fs::u8path()` to convert some UTF-8 string literals to paths, instead of relying on the implicit conversion. Fake Macro pointed out in https://github.com/bitcoin/bitcoin/pull/24306#discussion_r818566106 that `fs_tests` are incorrectly decoding some literal UTF-8 paths using the current windows codepage, instead of treating them as UTF-8. This could cause test failures depending what environment windows tests are run under. The `fs::path` class exists to avoid problems like this, but because it is lenient with `const char*` conversions, under assumption that they are ["safe as long as the literals are ASCII"](https://github.com/bitcoin/bitcoin/blob/727b0cb59259ac63c627b09b503faada1a89bfb8/src/fs.h#L39), bugs like this are still possible. If we think this is a concern, followup options to try to prevent this bug in the future are: 0. Do nothing 1. Improve the "safe as long as the literals are ASCII" comment. Make it clear that non-ASCII strings are invalid. 2. Drop the implicit `const char*` conversion functions. This would be nice because it would simplifify the `fs::path` class a little, while making it safer. Drawback is that it would require some more verbosity from callers. For example, instead of `GetDataDirNet() / "mempool.dat"` they would have to write `GetDataDirNet() / fs::u8path("mempool.dat")` 3. Keep the implicit `const char*` conversion functions, but make them call `fs::u8path()` internally. Change the "safe as long as the literals are *ASCII*" comment to "safe as long as the literals are *UTF-8*". I'd be happy with 0, 1, or 2. I'd be a little resistant to 3 even though it was would add more safety, because it would slightly increase complexity, and because I think it would encourage representing paths as strings, when I think there are so many footguns associated with paths as strings, that it's best to convert strings to paths at the earliest point possible, and convert paths to strings at the latest point possible. ACKs for top commit: laanwj: Code review ACK 2f5fd3cf9225aed439d1de767312bb340972d665 w0xlt: crACK 2f5fd3c Tree-SHA512: 9c56714744592094d873b79843b526d20f31ed05eff957d698368d66025764eae8bfd5305d5f7b6cc38803f0d85fa5552003e5c6cacf1e076ea6d313bcbc960c
2022-03-10Merge bitcoin/bitcoin#24520: guix: only check for the macOS SDK onceAndrew Chow
e8023100be7ab2e32addfff75a133fb429b8492b guix: only check for the macOS SDK once (fanquake) Pull request description: If we are building for both macOS HOSTS, there's no need to check and print that the SDK exists two times. Currently a Guix build for both HOSTS will print: ```bash ./contrib/guix/guix-build Found macOS SDK at '/SDKs/Xcode-12.2-12B45b-extracted-SDK-with-libcxx-headers', using... Found macOS SDK at '/SDKs/Xcode-12.2-12B45b-extracted-SDK-with-libcxx-headers', using... Checking that we can connect to the guix-daemon... ``` ACKs for top commit: laanwj: Code review ACK e8023100be7ab2e32addfff75a133fb429b8492b achow101: ACK e8023100be7ab2e32addfff75a133fb429b8492b Tree-SHA512: 7e9ee7793c5dc1eb485806ca3d613742397d2cc62525203a168cad1ec96aabfd4e63dc3f2e8d205bdb2f3c2079f731d75c5d162d55ff0d42a7e6f3d01d3a7db1
2022-03-10guix: only check for the macOS SDK oncefanquake
If we are building for both macOS HOSTS, there's no need to check and print that the SDK exists two times.
2022-03-10Merge bitcoin/bitcoin#24516: build, ci: Fix MSVC builds and other improvementsMarcoFalke
c3296b21e40be3a5cb7060ceb8f1b6db1fd79e65 build: Drop `double-conversion` from MSVC dependencies (Hennadii Stepanov) 7ff43e5372c4606ecb75d6892b4bb0ccb4165b80 ci: Invalidate vcpkg binary cache if dependencies changed (Hennadii Stepanov) 20b6c871178f20661b849ad5677bd8ecae55cf19 build: Specify `zeromq` port explicitly for MSVC builds (Hennadii Stepanov) Pull request description: The current MSVC builds are broken due to the bug in the `zeromq` [port](https://github.com/microsoft/vcpkg/pull/22681#issuecomment-1061312320). From [IRC](https://bitcoin-irc.chaincode.com/bitcoin-core-dev/2022-03-08#787145): > \<sipsorcery> Looks like it's a problem downloading the zeromq dependency from https://patch-diff.githubusercontent.com/raw/zeromq/libzmq/pull/4311.diff > \<dhruv> sipsorcery: I'm definitely misunderstanding, i actually have no clue which file the CI is failing to download. I'll DM you more details. > \<sipsorcery> It's saying the hash of the patch file has changed. > \<dhruv> so we'd need to verify that the change is not malicious and then commit the new hash? > \<sipsorcery> No that dependency is managed by the vcpkg repo. Seems they might be working on it https://github.com/microsoft/vcpkg/pull/22681#issuecomment-1061312320 > \<dhruv> ok, thanks This PR fixes this issue with specifying the previous port version [explicitly](https://github.com/microsoft/vcpkg/blob/master/docs/users/versioning.md). The current CI task does not fail due to the cached binaries. --- The second commit makes vcpkg binary cache invalid if dependencies changed. The third commit drops `double-conversion` from dependencies as Qt is configured as follows: ``` Configure summary: Build type: win32-msvc (x86_64, CPU features: sse sse2) Compiler: msvc 193131104 Configuration: sse2 aesni sse3 ssse3 sse4_1 sse4_2 avx avx2 avx512f avx512bw avx512cd avx512dq avx512er avx512ifma avx512pf avx512vbmi avx512vl compile_examples f16c largefile msvc_mp precompile_header rdrnd rdseed shani silent x86SimdAlways release c++11 c++14 c++17 c++1z concurrent no-pkg-config static static_runtime stl Build options: ... Qt Core: DoubleConversion ....................... yes Using system DoubleConversion ........ no ... ``` ACKs for top commit: sipsorcery: tACK c3296b21e40be3a5cb7060ceb8f1b6db1fd79e65. Tree-SHA512: 4d694a7d0930889a53eb6ee7a09929f6ffa3f078122b34abe6d75430769bb87c353f7c11146da53c3804e51d4bbfcbb7bc8453f525bcc432928d98eeb66ee35e
2022-03-10Merge bitcoin/bitcoin#24371: util: Fix `ReadBinaryFile` reading beyond maxsizeMarcoFalke
a84650ebd5ac2cbb49f14eb7c98736a3f8215bf1 util: Fix ReadBinaryFile reading beyond maxsize (klementtan) Pull request description: Currently `ReadBinaryFile` will read beyond `maxsize` if `maxsize` is not a multiple of `128` (size of buffer) This is due to `fread` being called with `count = 128` instead of `count = min(128, maxsize - retval.size()` at every iteration The following unit test will fail: ```cpp BOOST_AUTO_TEST_CASE(util_ReadWriteFile) { fs::path tmpfolder = m_args.GetDataDirBase(); fs::path tmpfile = tmpfolder / "read_binary.dat"; std::string expected_text(300,'c'); { std::ofstream file{tmpfile}; file << expected_text; } { // read half the contents in file auto [valid, text] = ReadBinaryFile(tmpfile, expected_text.size() / 2); BOOST_CHECK_EQUAL(text.size(), 150); } } ``` Error: ``` test/util_tests.cpp:2593: error: in "util_tests/util_ReadWriteFile": check text.size() == 150 has failed [256 != 150] ``` ACKs for top commit: laanwj: Code review ACK a84650ebd5ac2cbb49f14eb7c98736a3f8215bf1 theStack: Code-review ACK a84650ebd5ac2cbb49f14eb7c98736a3f8215bf1 Tree-SHA512: 752eebe58bc2102dec199b6775f8c3304d899f0ce36d6a022a58e27b076ba945ccd572858b19137b769effd8c6de73a9277f641be24dfb17657fb7173ea0eda0
2022-03-10build: Drop `double-conversion` from MSVC dependenciesHennadii Stepanov
Qt uses its own `double-conversion`.
2022-03-10ci: Invalidate vcpkg binary cache if dependencies changedHennadii Stepanov
2022-03-10build: Specify `zeromq` port explicitly for MSVC buildsHennadii Stepanov
Current port 4 is broken: - https://github.com/microsoft/vcpkg/pull/22681#issuecomment-1061312320
2022-03-09Merge bitcoin/bitcoin#24506: build, mac: Include arch in codesignature tarballfanquake
0189df1d3171082caf743ef3b0968f43c71303f5 build, mac: Include arch in codesignature tarball (Andrew Chow) 6e9308c6d4ed9fbf909c7234ae31245747183be3 guix: use latest signapple (Andrew Chow) Pull request description: Since we have two architectures for Mac binaries, having the architecture in the code signature tarball generated by `detached-sig-create.sh` allows us to avoid accidentally overwriting an existing code signature tarball during the code signing process. ACKs for top commit: fanquake: ACK 0189df1d3171082caf743ef3b0968f43c71303f5 Tree-SHA512: 7e0d282e4ced1094f36f1d26ff6e18d53449561ab3a1a95ac69eb5ff3d7b33ee4bd8fad004884806064a29541c47f9e5879c2a1fd0f54453413245bdcf53c4c7
2022-03-09Merge bitcoin/bitcoin#24498: qt: Avoid crash on startup if int specified in ↵Andrew Chow
settings.json 5b1aae12ca4a99c6b09349981a4902717a6a5d3e qt: Avoid crash on startup if int specified in settings.json (Ryan Ofsky) 84b0973e35dae63cd1b60199b481e24d54e58c97 test: Add tests for GetArg methods / settings.json type coercion (Ryan Ofsky) Pull request description: Should probably add this change to 23.x as suggested by Luke https://github.com/bitcoin/bitcoin/issues/24457#issuecomment-1059825678. If settings like `prune` are added to `settings.json` in the future, it would be preferable for 23.x releases to respect the setting instead of crash. --- Fix GUI startup crash reported by Rspigler in https://github.com/bitcoin/bitcoin/issues/24457 that happens if `settings.json` contains an integer value for any of the configuration options which GUI settings can currently clash with (-dbcache, -par, -spendzeroconfchange, -signer, -upnp, -natpmp, -listen, -server, -proxy, -proxy, -onion, -onion, -lang, and -prune). The fix is a one-line change in `ArgsManager::GetArg`. The rest of the PR just adds a regression test for the GUI and unit tests for ArgsManager::GetArg methods. ACKs for top commit: laanwj: Code review ACK 5b1aae12ca4a99c6b09349981a4902717a6a5d3e achow101: ACK 5b1aae12ca4a99c6b09349981a4902717a6a5d3e jonatack: Code review ACK 5b1aae12ca4a99c6b09349981a4902717a6a5d3e Tree-SHA512: 958991b4bead9b82a3879fdca0f8d6405e2a212b7c46cf356f078843a4f156e27fd75fc46e2013aa5159582ead06d343c1ed248d678b3e5bbd312f247e37894c
2022-03-09build, mac: Include arch in codesignature tarballAndrew Chow
2022-03-09guix: use latest signappleAndrew Chow
2022-03-09Merge bitcoin/bitcoin#24138: index: Commit MuHash and best block together ↵MarcoFalke
for coinstatsindex 691d45fdc83ec14f87a400f548553168ac70263f Add coinstatsindex_unclean_shutdown test (Ryan Ofsky) eb6cc05da32c5bde122725a0bc907d3767a791cd index: Commit DB_MUHASH and DB_BEST_BLOCK to disk together (Martin Zumsande) Pull request description: Fixes #24076 Coinstatsindex currently writes the MuHash (`DB_MUHASH`) to disk in `CoinStatsIndex::WriteBlock()` and `CoinStatsIndex::ReverseBlock()`, but the best synced block is written in `BaseIndex::Commit()`. These are called at different points in time, both during the ThreadSync phase, and also after the initial sync is finished and validation callbacks (`BlockConnected()` vs `ChainStateFlushed()`) perform the syncing. As a result, the index DB is temporarily in an inconsistent state, and if bitcoind is terminated uncleanly (so that there is no time to call `Commit()` by receiving an interrupt or by flushing the chainstate) this leads to problems: On the next startup, `Init()` will read the best block and a MuHash that corresponds to a different (higher) block. Indexing will be picked up at the the best block processing some blocks again, but since MuHash is a rolling hash, it will process some utxos twice and the muhashes for all future blocks will be wrong, as was observed in #24076. Fix this by always committing `DB_MUHASH` together with `DB_BEST_BLOCK`. Note that the block data for the index is still written at different times, but this does not corrupt the index - at worst, these entries will be processed another time and overwritten after an unclean shutdown and restart. ACKs for top commit: ryanofsky: Code review ACK 691d45fdc83ec14f87a400f548553168ac70263f. Only change since last review is adding test fjahr: ACK 691d45fdc83ec14f87a400f548553168ac70263f Tree-SHA512: e1c3b5f06fa4baacd1b070abb0f8111fe2ea4a001ca8b8bf892e96597cf8b5d5ea10fa8fb837cfbf46648f052c742d912add4ce26d4406294fc5fc20809a0e1b
2022-03-09doc: Add `guix` prefix for changes to reproducible buildsHennadii Stepanov
2022-03-09Merge bitcoin/bitcoin#24490: tests: Ensure sorted/multi_a descriptors always ↵MarcoFalke
generate different addrs db27ac935480aeec40a1cfc9d5f10a48be55d61b tests: Ensure sorted/multi_a descriptors always generate different addrs (Andrew Chow) Pull request description: Sometimes the multi_a and sortedmulti_a descriptors will produce some of the same addresses in the tests. This causes the wallets to start generating addresses at a different index as they detect that one of the addresses is used. This subsequently causes a test failure. To avoid this problem, use descriptors that will produce unique addresses by putting one of the multi_a in a different branch. ACKs for top commit: ajtowns: ACK db27ac935480aeec40a1cfc9d5f10a48be55d61b theStack: Tested ACK db27ac935480aeec40a1cfc9d5f10a48be55d61b Tree-SHA512: 0f57822bf4c7c79da304f092d7d43d6118e78a087cbeb0766fbbf634dc27911ae723d5d41350884d3b63a24d3b3817944f7e5fa534afb849161dd008a1e4a62f
2022-03-09Merge bitcoin/bitcoin#24495: guix: only use native GCC 7 toolchain for Linux ↵fanquake
builds bb12870bac230960bbe2df35f579570e465d8ea4 guix: only use native GCC 7 toolchain for Linux builds (fanquake) Pull request description: The macOS and Windows builds do not require a GCC 7 toolchain, and this is actually causing build issues, i.e #24211. So switch to using a GCC 10 native toolchain for both. We can't switch to using a GCC 7+ native toolchain for Linux without patching around glibc build issues (something to look at for a future change). Fixes #24211. Guix Builds (on x86_64): ```bash bash-5.1# find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum 6fece1c8ed69bd724c76dfd768f03b1d43c9dfb1767f0fad743fb3e068ce8f7f guix-build-bb12870bac23/output/aarch64-linux-gnu/SHA256SUMS.part 555c1245581eff3013a2b56a3c7acb2923de9117dd5d108d4b7954e22f386dd1 guix-build-bb12870bac23/output/aarch64-linux-gnu/bitcoin-bb12870bac23-aarch64-linux-gnu-debug.tar.gz e8f10a3791a4245566dab8253b76dcac3354bdfad9b9575743e937b52e364494 guix-build-bb12870bac23/output/aarch64-linux-gnu/bitcoin-bb12870bac23-aarch64-linux-gnu.tar.gz c4339db89259e5a8e5666fc807c198a49162d500c2143f8a1dc86e6e7ca32bbc guix-build-bb12870bac23/output/arm-linux-gnueabihf/SHA256SUMS.part 6123682411cbb16bfa41d31cb4a9673744ad8c09b6f8586a4dfda08bc5f7a682 guix-build-bb12870bac23/output/arm-linux-gnueabihf/bitcoin-bb12870bac23-arm-linux-gnueabihf-debug.tar.gz 3dcd70f65dd3dfd7385ac6715244fb6c696257e622220310abae7279cbd2a3a4 guix-build-bb12870bac23/output/arm-linux-gnueabihf/bitcoin-bb12870bac23-arm-linux-gnueabihf.tar.gz 47c5235cce1e3e2e88a461e48e54a29dffb7ac0d8b57955f4e6977273af113f3 guix-build-bb12870bac23/output/arm64-apple-darwin/SHA256SUMS.part 3584eec693b82b1b4e81094132a9a5e3ebf4a72a3c3cfe9914f24da62c2e2014 guix-build-bb12870bac23/output/arm64-apple-darwin/bitcoin-bb12870bac23-arm64-apple-darwin.tar.gz 4a6e561abfc3f69e57a05fc278d75b6f58f82dec50b9b3acbf9745706be91d60 guix-build-bb12870bac23/output/arm64-apple-darwin/bitcoin-bb12870bac23-osx-unsigned.dmg 36a88bc090927493ed31635e1412dc01a81fb034d612c21ebb8b8602b7529ad2 guix-build-bb12870bac23/output/arm64-apple-darwin/bitcoin-bb12870bac23-osx-unsigned.tar.gz d77871d97198c521fc54cf4ea547c0ee723bfe94036bf40987837e529a59b4e9 guix-build-bb12870bac23/output/dist-archive/bitcoin-bb12870bac23.tar.gz b676ae5d37fdac267c82bcc57d76e25694f2ee2292f4d012648a0e496104f48d guix-build-bb12870bac23/output/powerpc64-linux-gnu/SHA256SUMS.part 00cad11e137030b1165437a91d4e9f2827b1abe54b5ff14709abeab0a33711b8 guix-build-bb12870bac23/output/powerpc64-linux-gnu/bitcoin-bb12870bac23-powerpc64-linux-gnu-debug.tar.gz e715686469924452e1d35b93a64aa1fe1a85f5592757e8c24feda03db821fc48 guix-build-bb12870bac23/output/powerpc64-linux-gnu/bitcoin-bb12870bac23-powerpc64-linux-gnu.tar.gz 20547e405ab88d84a228563ec7aaa965515b2714f65cc16f3288f8c885fe39db guix-build-bb12870bac23/output/powerpc64le-linux-gnu/SHA256SUMS.part 707d2f14a7b73cc73710297d4d8f1773864c27a5e44ef45a97c0437ce4b291e0 guix-build-bb12870bac23/output/powerpc64le-linux-gnu/bitcoin-bb12870bac23-powerpc64le-linux-gnu-debug.tar.gz 6930ddbb6d5aebfd901ec30ad68749338265d43b73ad11015a320af37620d6e9 guix-build-bb12870bac23/output/powerpc64le-linux-gnu/bitcoin-bb12870bac23-powerpc64le-linux-gnu.tar.gz 2af7a3a50622ed1b2b271b655b8319f1b34f605f97381a66ee4625c1864cc3e2 guix-build-bb12870bac23/output/riscv64-linux-gnu/SHA256SUMS.part 0e9e0878e446af7cd33782cf6d8a0cfb163b1ade7c87d5a6c6d7c315436bbb31 guix-build-bb12870bac23/output/riscv64-linux-gnu/bitcoin-bb12870bac23-riscv64-linux-gnu-debug.tar.gz 6c8994f11fadbfda8fc9c57deeaf67568b8368084c7959a56aabde89c99033d1 guix-build-bb12870bac23/output/riscv64-linux-gnu/bitcoin-bb12870bac23-riscv64-linux-gnu.tar.gz 5214d7276030ea9721b2f8ed715308d2e3bf46158ddc030c7aa6f40098e3bc9b guix-build-bb12870bac23/output/x86_64-apple-darwin/SHA256SUMS.part 5783948617c4b0f7b47642b0045d5c648318bfc454a5d93db1a7ccb066ed17e2 guix-build-bb12870bac23/output/x86_64-apple-darwin/bitcoin-bb12870bac23-osx-unsigned.dmg 3a26d5e127fd2a723601fe14855b49cdb39c6fe6f407ca0d84a833eac6e4f47d guix-build-bb12870bac23/output/x86_64-apple-darwin/bitcoin-bb12870bac23-osx-unsigned.tar.gz 92e341ec48c74a5a0a9b7af6665a400bb12f6b35b983f2c9f8fd1819e390b57e guix-build-bb12870bac23/output/x86_64-apple-darwin/bitcoin-bb12870bac23-osx64.tar.gz 056a78e9f0aaed10aa7d734746d3adb27bb8ea0856829e7fedd2cb02f1234c62 guix-build-bb12870bac23/output/x86_64-linux-gnu/SHA256SUMS.part 77a493b1e5409d422b2006d46bf9de1e151485fc65680e4d4dd07c28a0264c51 guix-build-bb12870bac23/output/x86_64-linux-gnu/bitcoin-bb12870bac23-x86_64-linux-gnu-debug.tar.gz ccef5699e8a6153dbf35deb35f9d63439a5ef19234b9923840fe23780d41a983 guix-build-bb12870bac23/output/x86_64-linux-gnu/bitcoin-bb12870bac23-x86_64-linux-gnu.tar.gz 0d64b0f1797f2b25eb7be65045f25b0297409250e8cc298a711a790b69534066 guix-build-bb12870bac23/output/x86_64-w64-mingw32/SHA256SUMS.part 471d48dd50c7f3a3ebffd68aceb7537613e581acc55ad5dd3c15e8095027c322 guix-build-bb12870bac23/output/x86_64-w64-mingw32/bitcoin-bb12870bac23-win-unsigned.tar.gz be7af6c54a52b58f696a9cabda21ec9c9748150b5874b21d4377199db7d70b7b guix-build-bb12870bac23/output/x86_64-w64-mingw32/bitcoin-bb12870bac23-win64-debug.zip d522c2b27638f99b6faacb7f478e4908cfc01ca86c71f17c34cbc395d47c4504 guix-build-bb12870bac23/output/x86_64-w64-mingw32/bitcoin-bb12870bac23-win64-setup-unsigned.exe 43a038525f2383fdb9ed7f0d0d709d7f353933f3bf066779bc27503282acc0c5 guix-build-bb12870bac23/output/x86_64-w64-mingw32/bitcoin-bb12870bac23-win64.zip ``` Guix Builds (on arm64 [skipping aarch64 HOST](https://github.com/bitcoin/bitcoin/issues/22458)): ```bash root@3b26b9608b88:/bitcoin# find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum 9da540efe1e32ea74c1da5b9d17436d4de75f5d2b370d09cfdb06b044b3c816a guix-build-bb12870bac23/output/arm-linux-gnueabihf/SHA256SUMS.part ade319778d571de3727600d2bbbccbdb35cdaa138f2a941e0be58d94899b2ce5 guix-build-bb12870bac23/output/arm-linux-gnueabihf/bitcoin-bb12870bac23-arm-linux-gnueabihf-debug.tar.gz 1bd1790c002a40b6db1378f5344e7e34df0cd0fd7f29dbe98db5397b52b9dde9 guix-build-bb12870bac23/output/arm-linux-gnueabihf/bitcoin-bb12870bac23-arm-linux-gnueabihf.tar.gz e457b5f6a30d713faa521969d2f8b56e3176f63c3e116c4d149b63f9fa0de80f guix-build-bb12870bac23/output/arm64-apple-darwin/SHA256SUMS.part 13f1b769c6af61ee4ef057f36715d63390c42ae29fae301f6cf65bdf644c6adf guix-build-bb12870bac23/output/arm64-apple-darwin/bitcoin-bb12870bac23-arm64-apple-darwin.tar.gz 278c0c1134aed42e575d8af2c328a26e88765f0b0686e06cea1c884bd821cd28 guix-build-bb12870bac23/output/arm64-apple-darwin/bitcoin-bb12870bac23-osx-unsigned.dmg 6b5602fe63b9fb546ba0897bf5563714fad83e4c3a0cb285ed4961ec1a5e488d guix-build-bb12870bac23/output/arm64-apple-darwin/bitcoin-bb12870bac23-osx-unsigned.tar.gz d77871d97198c521fc54cf4ea547c0ee723bfe94036bf40987837e529a59b4e9 guix-build-bb12870bac23/output/dist-archive/bitcoin-bb12870bac23.tar.gz 0292906278db266a67f5c780af12a2c91ec62007c6a72e6c8b37463701d838cb guix-build-bb12870bac23/output/powerpc64-linux-gnu/SHA256SUMS.part 83362d3d84b00674359df9300729e1a2b3cf14cf2b9b71b9bb46fe9610ab0e6d guix-build-bb12870bac23/output/powerpc64-linux-gnu/bitcoin-bb12870bac23-powerpc64-linux-gnu-debug.tar.gz 3d5a538d28ccb97a239da358d1390add1d20e4c4d89e873a29aed3f92728e532 guix-build-bb12870bac23/output/powerpc64-linux-gnu/bitcoin-bb12870bac23-powerpc64-linux-gnu.tar.gz 8eb7194b2019b5ddb12f88fee8a76d8923bd0883de817c3bf396ea16e5b0543e guix-build-bb12870bac23/output/powerpc64le-linux-gnu/SHA256SUMS.part 3ec4a6cff3c974a1603276e5d75bc398522d543b6f9770a74c9a7acf6dc79c82 guix-build-bb12870bac23/output/powerpc64le-linux-gnu/bitcoin-bb12870bac23-powerpc64le-linux-gnu-debug.tar.gz 5b5eeb539362d6664a007d4856b5779a55ab714a96134749b5cfe870a4b5a7f9 guix-build-bb12870bac23/output/powerpc64le-linux-gnu/bitcoin-bb12870bac23-powerpc64le-linux-gnu.tar.gz 3201f796777a9fc029dddc085489afcf14b68cf77b0511d3b52cc336fb58baad guix-build-bb12870bac23/output/riscv64-linux-gnu/SHA256SUMS.part a46286b4d94de7189c93682d37c8bd3910f5ca2f612fc939b6e8ff3e56a4feff guix-build-bb12870bac23/output/riscv64-linux-gnu/bitcoin-bb12870bac23-riscv64-linux-gnu-debug.tar.gz e88fd7b312879fd7dc254674532535a05efaeb7167145541440289d45ec9ba17 guix-build-bb12870bac23/output/riscv64-linux-gnu/bitcoin-bb12870bac23-riscv64-linux-gnu.tar.gz 31659aa39146ad25631cc2030b415bec6892fa9cffebfd8c6da2d9b0c552773b guix-build-bb12870bac23/output/x86_64-apple-darwin/SHA256SUMS.part 5783948617c4b0f7b47642b0045d5c648318bfc454a5d93db1a7ccb066ed17e2 guix-build-bb12870bac23/output/x86_64-apple-darwin/bitcoin-bb12870bac23-osx-unsigned.dmg 7a75daff1427fa8839f35ce84fda19c95a6c82365937dc67f988bc8853fc1948 guix-build-bb12870bac23/output/x86_64-apple-darwin/bitcoin-bb12870bac23-osx-unsigned.tar.gz 92e341ec48c74a5a0a9b7af6665a400bb12f6b35b983f2c9f8fd1819e390b57e guix-build-bb12870bac23/output/x86_64-apple-darwin/bitcoin-bb12870bac23-osx64.tar.gz bbc0c2fc3b142191ea5403095b9da1691073375b178e06eea68736c3a4b8477f guix-build-bb12870bac23/output/x86_64-linux-gnu/SHA256SUMS.part 121fc43297b045af7fbe3904a1df94ff55e4908344eb97d48e50091216ecfdc2 guix-build-bb12870bac23/output/x86_64-linux-gnu/bitcoin-bb12870bac23-x86_64-linux-gnu-debug.tar.gz b2fbab5153a52f82390c67e6a14187eb791a3f052cedca0183b81e939932618f guix-build-bb12870bac23/output/x86_64-linux-gnu/bitcoin-bb12870bac23-x86_64-linux-gnu.tar.gz 4ffca23b6d93ed888b7ac5a54eb1c06bd04f304f336361655033796f3117d145 guix-build-bb12870bac23/output/x86_64-w64-mingw32/SHA256SUMS.part 471d48dd50c7f3a3ebffd68aceb7537613e581acc55ad5dd3c15e8095027c322 guix-build-bb12870bac23/output/x86_64-w64-mingw32/bitcoin-bb12870bac23-win-unsigned.tar.gz b226fe0f139bc2c4773e67784fc928874cba2ec0322d5da9a60fe5e6fd440f95 guix-build-bb12870bac23/output/x86_64-w64-mingw32/bitcoin-bb12870bac23-win64-debug.zip d522c2b27638f99b6faacb7f478e4908cfc01ca86c71f17c34cbc395d47c4504 guix-build-bb12870bac23/output/x86_64-w64-mingw32/bitcoin-bb12870bac23-win64-setup-unsigned.exe a435f9e1637281a8c6b174ec5dbc729ae35cca64928a42e435d57fb3292b9f3f guix-build-bb12870bac23/output/x86_64-w64-mingw32/bitcoin-bb12870bac23-win64.zip ``` ACKs for top commit: dongcarl: Code Review ACK bb12870bac230960bbe2df35f579570e465d8ea4 hebasto: ACK bb12870bac230960bbe2df35f579570e465d8ea4, I have reviewed the code and it looks OK, I agree it can be merged. Tree-SHA512: 304d1e76b5e74e4f5a946ae29208d695f558891eca6e711c0cb528133896ceca2147f1cdc4c39e5155ef90652555c1e6de52efcb93f1124bf2dde8d9201b630d
2022-03-09Merge bitcoin/bitcoin#24507: fix CI: bitcoin-chainstate: Lock `cs_main` to ↵laanwj
`UnloadBlockIndex` 7a68fe4831787a66986a76306180c7876ecba37f bitcoin-chainstate: Lock cs_main to UnloadBlockIndex (Carl Dong) Pull request description: This was introduced because of a silent merge conflict. ACKs for top commit: promag: ACK 7a68fe4831787a66986a76306180c7876ecba37f jonatack: ACK 7a68fe4831787a66986a76306180c7876ecba37f Tree-SHA512: 4c135efd68604452485a129e731675ff5917c157a70c77dd702211d9902c21b3b29380a881723f43ecba4762bc864b036881bb502b3b792e581565dcaa7a7ed4
2022-03-09Merge bitcoin/bitcoin#24503: guix: use the latest version of signapplefanquake
40894f6771682b242b3f4c8ca2839513cb6f0eed guix: use latest upstream signapple (fanquake) cbc3f63f4184336521b981087840f3f16a1cd11d guix: use latest upstream python-certvalidator (fanquake) Pull request description: Update our signapple and python-certvalidator dependencies to the latest available versions. The latest signapple includes [improvements for signing M1 binaries](https://github.com/achow101/signapple/commit/bf4d906220a23f905ea8c371a50b1178796327ba) and [better error output](https://github.com/achow101/signapple/commit/9f42f3c8295d4107ee7a22e523ec17449a936f43) when applying signatures (i.e applying the wrong signature type to a binary). Guix Build (x86_64): ```bash bash-5.1# find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum 53d4207c9aaa3fd1a596796566d88e9d77bbf4bc85a1772e2f6cc5c5ebd9eca8 guix-build-40894f677168/output/aarch64-linux-gnu/SHA256SUMS.part 4a472d63838e6b27317cb3d2bea72a9b4e5c6ee70b4b0e5191b343e3daad73cf guix-build-40894f677168/output/aarch64-linux-gnu/bitcoin-40894f677168-aarch64-linux-gnu-debug.tar.gz 45307531316cc4b7915cff2764af1e713711f0ac1dbce55f5a5c9434a080a29d guix-build-40894f677168/output/aarch64-linux-gnu/bitcoin-40894f677168-aarch64-linux-gnu.tar.gz 57fbc2a5ccb4ac77ce6bfba073d0bc4d561cdbe552abd0d322dbd52bce7f9392 guix-build-40894f677168/output/arm-linux-gnueabihf/SHA256SUMS.part d30b9a815a87af37814a7b8ccb39551fafe9f9d587182a154e14597393417e41 guix-build-40894f677168/output/arm-linux-gnueabihf/bitcoin-40894f677168-arm-linux-gnueabihf-debug.tar.gz 7b103a83aa181374941785427a96a15063ae757f15913b7a7b1401d70da781a3 guix-build-40894f677168/output/arm-linux-gnueabihf/bitcoin-40894f677168-arm-linux-gnueabihf.tar.gz b5c9eed6a1b9e728217c1e9d96af6d11332f4d6b74f5482d972fccb2e6c35a2b guix-build-40894f677168/output/arm64-apple-darwin/SHA256SUMS.part 81915be1d32a6fb81b45f0f128ecc68e0bba75c5c719d5bf3d5e4f512f436631 guix-build-40894f677168/output/arm64-apple-darwin/bitcoin-40894f677168-arm64-apple-darwin.tar.gz 185643a4bdf915c3968c1265c3aedb3f8865904cddaaee1bf02c8ce08cb7d8cc guix-build-40894f677168/output/arm64-apple-darwin/bitcoin-40894f677168-osx-unsigned.dmg d9de7d15ebca380ec65e39f362a051994d515944665e535929fead0c1b6d6b56 guix-build-40894f677168/output/arm64-apple-darwin/bitcoin-40894f677168-osx-unsigned.tar.gz ca94146ac95f623ba5b63d52dfc8b5909fd9a1a406fff447cad83b059b191a49 guix-build-40894f677168/output/dist-archive/bitcoin-40894f677168.tar.gz e1637718b3d605896c9cfb8c309207acc8ac406acb2d9a3b6d8c83edba196c7c guix-build-40894f677168/output/powerpc64-linux-gnu/SHA256SUMS.part 559f5376dd7a5c59b620f2e64290c265ef1a70c0cdc94c5d7468e3d51b418c12 guix-build-40894f677168/output/powerpc64-linux-gnu/bitcoin-40894f677168-powerpc64-linux-gnu-debug.tar.gz 44f34dfc2fddeabfbb75b301d7cd9282283aa4c1b1f60815536eaa40c8faf136 guix-build-40894f677168/output/powerpc64-linux-gnu/bitcoin-40894f677168-powerpc64-linux-gnu.tar.gz d4904f60f22656abaf1b1e933cf321207dbf1902149f68a4857909c38b0d861c guix-build-40894f677168/output/powerpc64le-linux-gnu/SHA256SUMS.part 76e76b99721cec1d382a190d3fd5315e8b70e07686681f30ace13f7f252ac2b7 guix-build-40894f677168/output/powerpc64le-linux-gnu/bitcoin-40894f677168-powerpc64le-linux-gnu-debug.tar.gz 4c3e5d1f62c21fe2dc47ceba3fa067ef7d3c1fa1914a6d37a8ba1262a82c54f1 guix-build-40894f677168/output/powerpc64le-linux-gnu/bitcoin-40894f677168-powerpc64le-linux-gnu.tar.gz 816f2d6b0705ec5e07a408ed3a97a07066189b9a89489e7ce67b4cb73a503bb9 guix-build-40894f677168/output/riscv64-linux-gnu/SHA256SUMS.part 42a9b52da8829a77cde4bae92b81f914c1da81cc39c6312b17dcdc13b2ea5273 guix-build-40894f677168/output/riscv64-linux-gnu/bitcoin-40894f677168-riscv64-linux-gnu-debug.tar.gz b8e1ee469c77860998d4eb71166f22d83ad2487573b4b59600f42f25926431ed guix-build-40894f677168/output/riscv64-linux-gnu/bitcoin-40894f677168-riscv64-linux-gnu.tar.gz bd5b059d432b7f387f47feff4feaf6730d13cfed68298cdcf7282fb1a4e5a9e7 guix-build-40894f677168/output/x86_64-apple-darwin/SHA256SUMS.part ff7a2b16ea40cf60c9ddb88eef60c36354b72f3ea1e9cac2609d876ad3d85149 guix-build-40894f677168/output/x86_64-apple-darwin/bitcoin-40894f677168-osx-unsigned.dmg 71416640e454374a2165992c4e9caf11ffc2129ef1e7fa15c26bf8d712e4c20c guix-build-40894f677168/output/x86_64-apple-darwin/bitcoin-40894f677168-osx-unsigned.tar.gz 82755c00fd33f1c5afa40ef3148e3d802c387b4b64593215f54362167d43eb95 guix-build-40894f677168/output/x86_64-apple-darwin/bitcoin-40894f677168-osx64.tar.gz 824c65decc1169c94d68eaf2c91fec9d76a14521daffcf0ef4cf952c0ca2f27e guix-build-40894f677168/output/x86_64-linux-gnu/SHA256SUMS.part dbff4685658ab2e26bb90ed3a454559a41bb579730f13012335f52fd8e7f664c guix-build-40894f677168/output/x86_64-linux-gnu/bitcoin-40894f677168-x86_64-linux-gnu-debug.tar.gz 32e9f8988b7e6f663d38f84160e00580adeb1915367afefed0a44c76ffcc4ab8 guix-build-40894f677168/output/x86_64-linux-gnu/bitcoin-40894f677168-x86_64-linux-gnu.tar.gz e3d09fa9e5054f4801ec1ebb530f0990b9675a3e99ffee6bb36b524f37acca13 guix-build-40894f677168/output/x86_64-w64-mingw32/SHA256SUMS.part 3ed8d3f5d9d935d015429962d305781cefcc7bd2616fda105f4f14a088f5e9a4 guix-build-40894f677168/output/x86_64-w64-mingw32/bitcoin-40894f677168-win-unsigned.tar.gz bf55846641b6877c5d8415ecbd172a061c7dc822b119247a0f6594d4bd1a8d90 guix-build-40894f677168/output/x86_64-w64-mingw32/bitcoin-40894f677168-win64-debug.zip 70a10d7d0843bb4b2dde80a0d0d1543e26d9eb7a38185adf3b51001e107f414e guix-build-40894f677168/output/x86_64-w64-mingw32/bitcoin-40894f677168-win64-setup-unsigned.exe 264a12164944ec803e330248365704b7ca47b9ed81882f73c3c6ec71a65806e0 guix-build-40894f677168/output/x86_64-w64-mingw32/bitcoin-40894f677168-win64.zip ``` ACKs for top commit: achow101: ACK 40894f6771682b242b3f4c8ca2839513cb6f0eed Tree-SHA512: 0d2e49829bb70fba0abd96288a922c945474ef071eefc7c35c2713046016ca95e154a2f9fb9ba73a49a9cc7ef42d74e94aad111164103fa65e464a8cbeadac73
2022-03-08bitcoin-chainstate: Lock cs_main to UnloadBlockIndexCarl Dong
This was introduced because of a silent merge conflict.
2022-03-08Merge bitcoin/bitcoin#24198: wallet, rpc: add wtxid in WalletTxToJSONAndrew Chow
7abd8b21ba34f6a42db2cd2d59a4c0e08561f609 doc: include wtxid in TransactionDescriptionString (brunoerg) 2d596bce6fefeff6033b21b391e81f1dda846937 doc: add wtxid info in release-notes (brunoerg) a5b66738f19a0ad46d7bc287e0db08552c5a1fec test: add wtxid in expected_fields for wallet_basic (brunoerg) e8c659a2970ec8855de3e1dbf91c6b614b8e5644 wallet: add wtxid in WalletTxToJSON (brunoerg) 7482b6f89500d9783cc6af0dccab7a08d0128206 wallet: add GetWitnessHash() (brunoerg) Pull request description: This PR add `wtxid` in `WalletTxToJSON` which allows to return this field in `listsinceblock`, `listtransactions` and `gettransaction` (RPCs). ACKs for top commit: achow101: re-ACK 7abd8b21ba34f6a42db2cd2d59a4c0e08561f609 w0xlt: crACK 7abd8b2 luke-jr: re-utACK 7abd8b21ba34f6a42db2cd2d59a4c0e08561f609 Tree-SHA512: f86f2dbb5e38e7b19932006121802f47b759d31bdbffe3263d1db464f6a3a30fddd68416f886a44f6d3a9fd570f7bd4f8d999737ad95c189e7ae5e8ec1ffbdaa
2022-03-08guix: use latest upstream signapplefanquake
This should improve support for signing for M1 binaries.