aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-05-20fuzz: Remove useless GetUTXOStats fuzz caseCarl Dong
In the GetUTXOStats fuzz case, GetUTXOStats is always called with a CCoinsViewCache. Which is guaranteed to throw a std::logic_error when its ::Cursor() method is called on the first line of GetUTXOStats. In the fuzz case, we basically catch this logic error and declare victory if we caught it. There is no point to fuzzing this deterministic logic. Confirmed with IWYU that the node/coinstats.h #include is no longer necessary.
2022-05-20kernel: Remove unnecessary blockfilter{index,}.cppCarl Dong
It is no longer necessary to link in blockfilter.cpp and index/blockfilterindex.cpp after merge of PR#21726 since validation has been decouple from the blockfilterindex.
2022-05-20Merge bitcoin/bitcoin#25064: [kernel 2b/n] Add ↵MacroFake
`ChainstateManager::m_adjusted_time_callback` 53494bc7392591336e09d095f1fc38d63d566abf validation: Have ChainstateManager own m_chainparams (Carl Dong) 04c31c1295eb4ecd42afd54b8e353cbda93d83f0 Add ChainstateManager::m_adjusted_time_callback (Carl Dong) dbe45c34f8b4fd7d615f7e05ef1454798ef0c8ca Add ChainstateManagerOpts, using as ::Options (Carl Dong) Pull request description: ``` This decouples validation.cpp from netaddress.cpp (transitively, timedata.cpp, and asmap.cpp). This is important for libbitcoinkernel as: - There is no reason for the consensus engine to be coupled with netaddress, timedata, and asmap - Users of libbitcoinkernel can now easily supply their own std::function that provides the adjusted time. See the src/Makefile.am changes for some satisfying removals. ``` Top commit has no ACKs. Tree-SHA512: a093ec6ecacdc659d656574f05bd31ade6a6cdb64d5a97684f94ae7e55c0e360b78177553d4d1ef40280192674464d029a0d68e96caf8711d9274011172f1330
2022-05-20Merge bitcoin/bitcoin#25175: refactor: Improve thread safety analysis by ↵MacroFake
propagating some negative capabilities 2b3373c1520aa0b41277cd89956224e08cbd79dd refactor: Propagate negative `!m_tx_relay_mutex` capability (Hennadii Stepanov) 5a6e3c1db3e9d8ee2ecb0f0fe2fba073a442ad76 refactor: Propagate negative `!m_most_recent_block_mutex` capability (Hennadii Stepanov) Pull request description: This PR is a follow-up for bitcoin/bitcoin#22778 and bitcoin/bitcoin#24062, and it seems [required](https://github.com/bitcoin/bitcoin/pull/24931#issuecomment-1132800173) for bitcoin/bitcoin#24931. See details in the commit messages. ACKs for top commit: ajtowns: ACK 2b3373c1520aa0b41277cd89956224e08cbd79dd w0xlt: ACK https://github.com/bitcoin/bitcoin/pull/25175/commits/2b3373c1520aa0b41277cd89956224e08cbd79dd Tree-SHA512: 8a4bb9641af8d79824ec12e2d6bfce0e09524094b298a2edcdb2ab115fbaa21215b9c97a6b059f8aa023551071fd5798eca66ab8d262a3f97246a91d960850d0
2022-05-20Merge bitcoin/bitcoin#24820: test: 3 new tests for SelectCoins functionAndrew Chow
3f8def51d53a078a5ee71ec675b5e06b784147de add 3 new test cases for SelectCoins() (akankshakashyap) Pull request description: Three new tests have been added. 1. More coins should be selected when effective fee < long term fee. 2. Less coin should be selected when effective fee > long term fee. 3. If a coin is preselected, it should be selected even if disadvantageous. ACKs for top commit: achow101: ACK 3f8def51d53a078a5ee71ec675b5e06b784147de brunoerg: ACK 3f8def51d53a078a5ee71ec675b5e06b784147de Tree-SHA512: 8db6dd942b02a38c99953b801605f98c4c17729768fdfcf7605c5bbdb17509500a39d0a78a4b19aab37812d2994ec7630d2b4e78d1d348f1c27b67588d74e155
2022-05-20validation: Have ChainstateManager own m_chainparamsCarl Dong
We want m_chainparams to be alive for the duration of ChainstateManager's lifetime since ChainstateManager's behaviour depends on m_chainparams. We could allow for a std::shared_ptr to be passed in as m_chainparams, but that complicates things further. Given that CChainParams is not an entity class or struct, we can just copy it and have ChainstateManager own it.
2022-05-20Add ChainstateManager::m_adjusted_time_callbackCarl Dong
This decouples validation.cpp from netaddress.cpp (transitively, timedata.cpp, and asmap.cpp). This is important for libbitcoinkernel as: - There is no reason for the consensus engine to be coupled with netaddress, timedata, and asmap - Users of libbitcoinkernel can now easily supply their own std::function that provides the adjusted time. See the src/Makefile.am changes for some satisfying removals.
2022-05-20Add ChainstateManagerOpts, using as ::OptionsCarl Dong
[META] Although it seems like we don't need it for just one option, we're going to introduce another member to this struct *in the next commit*. In future patchsets for libbitcoinkernel decoupling it from ArgsManager, even more members will be added here.
2022-05-20Merge bitcoin/bitcoin#25168: refactor: Avoid passing params where not neededMacroFake
fa1b76aeb064b315a3767a8f59836ca18aeb117e Do not call global Params() when chainman is in scope (MacroFake) fa30234be81b6f49ae8150478a9255daa1611083 Do not pass CChainParams& to PeerManager::make (MacroFake) fafe5c0ca2927642cbcec63ac73994737e1653d6 Do not pass CChainParams& to BlockAssembler constructor (MacroFake) faf012b438b451dced785e7f031e07c0c55665e1 Do not pass Consensus::Params& to Chainstate helpers (MacroFake) fa4ee53dca5ccf1b87f019f372ffc10528add943 Do not pass time getter to Chainstate helpers (MacroFake) Pull request description: It seems confusing to pass chain params, consensus params, or a time function around when it is not needed. Fix this by: * Inlining the passed time getter function. I don't see a use case why this should be mockable. * Using `chainman.GetConsensus()` or `chainman.GetParams()`, where possible. ACKs for top commit: promag: Code review ACK fa1b76aeb064b315a3767a8f59836ca18aeb117e. vincenzopalazzo: ACK https://github.com/bitcoin/bitcoin/pull/25168/commits/fa1b76aeb064b315a3767a8f59836ca18aeb117e Tree-SHA512: 1abff5cba4b4871d97f17dbcdf67bc9255ff21fa4150a79a74e39b28f0610eab3e7dee24d56872dd6e111f003b55e288958cdd467e6218368d896f191e4ec9cd
2022-05-20refactor: Propagate negative `!m_tx_relay_mutex` capabilityHennadii Stepanov
Could be verified with $ ./configure CC=clang CXX=clang++ CXXFLAGS='-Wthread-safety -Wthread-safety-negative' $ make clean $ make 2>&1 | grep m_tx_relay_mutex
2022-05-20refactor: Propagate negative `!m_most_recent_block_mutex` capabilityHennadii Stepanov
Could be verified with $ ./configure CC=clang CXX=clang++ CXXFLAGS='-Wthread-safety -Wthread-safety-negative' $ make clean $ make 2>&1 | grep m_most_recent_block_mutex
2022-05-20Merge bitcoin-core/gui#581: refactor: Revamp `ClientModel` code to handle ↵Hennadii Stepanov
core signals bcbf982553aba8107fdb0db413d4b9fe8adc8f17 qt, doc: Remove unneeded comments (Hennadii Stepanov) 9bd1565f6501c81291b286cdfaecd0daf8981c75 qt: Revamp ClientModel code to handle {Block|Header}Tip core signals (Hennadii Stepanov) 48f6d39659e40f44907a7c09f839df988e6c6206 qt: Revamp ClientModel code to handle BannedListChanged core signal (Hennadii Stepanov) 36b12af7eeb571efccd972b2f732a81ae7310066 qt: Revamp ClientModel code to handle AlertChanged core signal (Hennadii Stepanov) bfe5140c50d16cc995c7da458d38759b68e9cbe6 qt: Revamp ClientModel code to handle NetworkActiveChanged core signal (Hennadii Stepanov) 639563d7fea6b4d65840625dc466eede32d893cf qt: Revamp ClientModel code to handle NumConnectionsChanged core signal (Hennadii Stepanov) 508e2dca5e91c1ff921f01d260fc62f629f1dc9e qt: Revamp ClientModel code to handle ShowProgress core signal (Hennadii Stepanov) Pull request description: This PR: - is a pure refactoring with no behavior change - gets rid of `QMetaObject::invokeMethod()` "dynamic" calls, i.e., without compile-time checks of a called function name and its parameters - replaces `std::bind`s with lambdas, making parameter permutation (including parameter omitting) explicit - makes code simpler, more concise, and easier to reason about Additionally, debug messages have been unified. ACKs for top commit: promag: Code review ACK bcbf982553aba8107fdb0db413d4b9fe8adc8f17 w0xlt: tACK https://github.com/bitcoin-core/gui/pull/581/commits/bcbf982553aba8107fdb0db413d4b9fe8adc8f17 on Ubuntu 21.10, Qt 5.15.2. Tree-SHA512: 35f62b84f916b3ad7442f0fea945d344b3c448878b33506ac7b81fdf5e49bd2a82e12a6927dc91f62c335487bf2305cc45e2f08985303eef31c3ed2dd39e1037
2022-05-20Merge bitcoin-core/gui#594: scripted-diff: replace deprecated Q_OS_MAC with ↵Hennadii Stepanov
Q_OS_MACOS e3daecae0333e5474b54f64619ae6f512b683787 scripted-diff: replace deprecated Q_OS_MAC with Q_OS_MACOS (João Barbosa) Pull request description: `Q_OS_MAC` is deprecated but it is also defined when Qt is configured with `-xplatform macx-ios-clang`, and currently it guards some features not available on iOS, like `QProcess`. ACKs for top commit: jarolrod: tACK e3daecae0333e5474b54f64619ae6f512b683787 hebasto: ACK e3daecae0333e5474b54f64619ae6f512b683787. Tree-SHA512: 17b4b891c70f027f6a420be830e61bd87fde5297a4473a5b122e4e34bdf83141635bd5cf5143efe95a0dd6f8cf50bc67a2de6cbfed7956952369587c74ece225
2022-05-20Merge bitcoin/bitcoin#23595: util: Add ParseHex<std::byte>() helperlaanwj
facd1fb911abfc595a3484ee53397eff515d4c40 refactor: Use Span of std::byte in CExtKey::SetSeed (MarcoFalke) fae1006019188700e0c497a63fc1550fe00ca8bb util: Add ParseHex<std::byte>() helper (MarcoFalke) fabdf81983e2542d60542b80fb94ccb1acdd204a test: Add test for embedded null in hex string (MarcoFalke) Pull request description: This adds the hex->`std::byte` helper after the `std::byte`->hex helper was added in commit 9394964f6b9d1cf1220a4eca17ba18dc49ae876d ACKs for top commit: pk-b2: ACK https://github.com/bitcoin/bitcoin/pull/23595/commits/facd1fb911abfc595a3484ee53397eff515d4c40 laanwj: Code review ACK facd1fb911abfc595a3484ee53397eff515d4c40 Tree-SHA512: e2329fbdea2e580bd1618caab31f5d0e59c245a028e1236662858e621929818870b76ab6834f7ac6a46d7874dfec63f498380ad99da6efe4218f720a60e859be
2022-05-20Merge bitcoin/bitcoin#25171: rpc: wallet: remove ↵MacroFake
`-deprecatedrpc=exclude_coinbase` logic a4703ce9d79855ac0bd7dc07b71a51245f9aa5f8 doc: add release notes about removal of the `deprecatedrpc=exclude_coinbase` (Sebastian Falbesoner) ef0aa74836c4339aa7f14fc1c9583d86dd5c388a rpc: wallet: remove `-deprecatedrpc=exclude_coinbase` logic (Sebastian Falbesoner) Pull request description: Including coinbase transactions in `receivedby` RPCs and adding the `-deprecatedrpc=exclude_coinbase` was done in PR #14707 (released in v23.0). For the next release v24.0, this configuration option can be removed. ACKs for top commit: fanquake: ACK a4703ce9d79855ac0bd7dc07b71a51245f9aa5f8 Tree-SHA512: 97cd4e78501e64f678c78d2ebb5be5376688c023e34fced71dd24e432d27aa31a74b5483545f49ba0bdf48656d8b8b7bee74e3db26cf6daf112613f1caa4dfa4
2022-05-20Merge bitcoin/bitcoin#25170: build: Enable RPC_DOC_CHECK on --enable-debugfanquake
fafae678f6cd8aaca2be8ece501b258160f7fbfa build: Enable RPC_DOC_CHECK on --enable-debug (MacroFake) Pull request description: This probably makes no large difference, as the setting is already enabled by default in the functional tests. However, I think it is nice to also enable it in debug builds by default to catch issues while manually testing without the runtime flags specified. See also https://github.com/bitcoin/bitcoin/issues/24709 ACKs for top commit: vincenzopalazzo: utACK https://github.com/bitcoin/bitcoin/pull/25170/commits/fafae678f6cd8aaca2be8ece501b258160f7fbfa Tree-SHA512: cea3276fc9b5a3bc0f6d9819be9a50b19ecf762729d3e3975abdf00da06beaa3f664b18a826fbab1fedd9143bc0624a95a490bfe40c4b5b0a0f94dbc565ce738
2022-05-20Merge bitcoin/bitcoin#24830: init: Allow -proxy="" setting valuesMacroFake
1d4122dfefcb0a33c3d5bf7bbe2c7cd7e09d3764 init: Allow -proxy="" setting values (Ryan Ofsky) Pull request description: This drops the `No proxy server specified. Use -proxy=<ip> or -proxy=<ip:port>` error when a empty `-proxy=` command line argument, `bitcoin.conf` value, or `settings.json` value is specified, and just makes bitcoin connect and listen normally in these cases. The error was originally added in https://github.com/bitcoin/bitcoin/pull/20003 to prevent a bare `-proxy` command line argument with no assignment from clearing proxy settings. But it was implemented in an overbroad way breaking empty `-proxy=` assignments as well. The motivation for this change is to prevent a GUI bug that happens with https://github.com/bitcoin/bitcoin/pull/15936, reported in https://github.com/bitcoin/bitcoin/pull/15936#pullrequestreview-937685759 by vasild, that happens after a proxy setting is enabled and disabled in the GUI. But this change also makes sense on its own to remove a potentially confusing error message. ACKs for top commit: hebasto: re-ACK 1d4122dfefcb0a33c3d5bf7bbe2c7cd7e09d3764, only rebased since my recent [review](https://github.com/bitcoin/bitcoin/pull/24830#pullrequestreview-941255672). Tree-SHA512: 753adfce199ed078a6cd9e0ea78e76c0b14070f8fcfe2a4632cd0c6dfe6b4e135ddffbe11a97e5e30520ea9e5bda00bad1493cbaef74cf425aa8613249167f53
2022-05-20Merge bitcoin/bitcoin#25173: test: add coverage for unknown network in -onlynetMacroFake
055d94d1ab4937ed0080459fbe63568dc47b6786 test: add coverage for unknown network in -onlynet (brunoerg) Pull request description: This PR adds test coverage for the following init error by passing an unknown network in -onlynet https://github.com/bitcoin/bitcoin/blob/0de36941eca1bff91420dd878eb097db2b1a596c/src/init.cpp#L1311 ACKs for top commit: MarcoFalke: rACK 055d94d1ab4937ed0080459fbe63568dc47b6786 Tree-SHA512: 01bbb297afff371f6345889fa04117ff195b68f0bbf934878ba446049791fdbd7d2ce119ee4f9b3616cc0a81330d7055507dc81151acf68532c077f3575258e9
2022-05-20Merge bitcoin/bitcoin#25101: Add mockable clock typefanquake
fa305fd92c0a5a91831be3ccec0a5ef962a5fbcb Add mockable clock type and TicksSinceEpoch helper (MarcoFalke) Pull request description: This will be used primarily by the addr time refactor (https://github.com/bitcoin/bitcoin/pull/24697) to make addr relay time type safe. However, it can also be used in other places, and can be reviewed independently, so I split it up. ACKs for top commit: jonatack: ACK fa305fd92c0a5a91831be3ccec0a5ef962a5fbcb per `git range-diff 7b3343f fa20781 fa305fd` ajtowns: ACK fa305fd92c0a5a91831be3ccec0a5ef962a5fbcb Tree-SHA512: da00200126833c1f55b1b1e68f596eab5c9254e82b188ad17779c08ffd685e198a7c5270791b4b69a858dc6ba4e051fe0c8b445d203d356d0c884f6365ee1cfe
2022-05-19test: add coverage for unknown network in -onlynetbrunoerg
2022-05-19Merge bitcoin/bitcoin#25153: scripted-diff: Use getInt<T> over get_int/get_int64fanquake
fa9af218780b7960d756db80c57222e5bf2137b1 scripted-diff: Use getInt<T> over get_int/get_int64 (MacroFake) Pull request description: Seems better to see the return type directly and be able to modify it easier, as the return type is used for exceptions (in-range checking and parsing feedback). ACKs for top commit: fanquake: ACK fa9af218780b7960d756db80c57222e5bf2137b1 Tree-SHA512: 284aa2527d0f663ca01550115025c9c64c787531d595f866c718f6ad09b9b0cac1e683a7d77f8009b75de990fd37166b44063ffa83fba8a04e9a31600b4c2725
2022-05-19doc: add release notes about removal of the `deprecatedrpc=exclude_coinbase`Sebastian Falbesoner
2022-05-19rpc: wallet: remove `-deprecatedrpc=exclude_coinbase` logicSebastian Falbesoner
2022-05-19Merge bitcoin/bitcoin#25074: index: During sync, commit best block after ↵fanquake
indexing 7171ebc7cbd911fa7ccad732ea7f73bce30928ee index: Don't commit a best block before indexing it during sync (Martin Zumsande) Pull request description: This changes the periodic commit of the best block during the index sync phase to use the already indexed predecessor of the current block index, instead of committing the current one that will only be indexed (by calling `WriteBlock()`) after committing the best block. The previous code would leave the index database in an inconsistent state until the block is actually indexed - if an unclean shutdown happened at just this point in time, the index could get corrupted because at next startup, we'd assume that we have already indexed this block. ACKs for top commit: ryanofsky: Code review ACK 7171ebc7cbd911fa7ccad732ea7f73bce30928ee. Looks great! Just commit message changes since last review Tree-SHA512: a008de511dd6a1731b7fdf6a90add48d1e53f7f7d6402672adb83e362677fc5b9f5cd021d3111728cb41d73f1b9c2140db79d7e183df0ab359cda8c01b0ef928
2022-05-19index: Don't commit a best block before indexing it during syncMartin Zumsande
Committing a block prior to indexing would leave the index database in an inconsistent state until it is indexed, which could corrupt the index in case of a unclean shutdown. Thus commit its predecessor. Co-authored-by: Luke Dashjr <luke-jr+git@utopios.org>
2022-05-19Merge bitcoin/bitcoin#25166: doc: Add link to NetBSD releasefanquake
174f58c1857468252a8b9214abd187fa296e883c Add link to NetBSD release (Marnix) Pull request description: For consistency with other Build Guides, like `doc/build-freebsd.md` & `doc/build-openbsd.md` ACKs for top commit: theStack: Code-review ACK 174f58c1857468252a8b9214abd187fa296e883c vincenzopalazzo: ACK https://github.com/bitcoin/bitcoin/pull/25166/commits/174f58c1857468252a8b9214abd187fa296e883c Tree-SHA512: 08297aac82ee8fab2bbcb486b13b9c6ca12fb4fba573e9979e94204bd7340c2d13f1e54e07b314498603c291c25e29f2e89141ee150478951f699772538b709c
2022-05-19Merge bitcoin/bitcoin#25147: Net processing: follow ups to #20799 (removing ↵fanquake
support for v1 compact blocks) bf6526f4a0ab30f77952ecdee90cd77dd9ba06f6 [test] Remove segwit argument from build_block_on_tip() (John Newbery) c65bf50b44a38bc55224d8967e0df7af60ea4f1b Remove fUseWTXID parameter from CBlockHeaderAndShortTxIDs constructor (John Newbery) Pull request description: This implements two of the suggestions from code reviews of PR 20799: - Remove fUseWTXID parameter from CBlockHeaderAndShortTxIDs constructor - Remove segwit argument from build_block_on_tip() ACKs for top commit: dergoegge: Code review ACK bf6526f4a0ab30f77952ecdee90cd77dd9ba06f6 naumenkogs: ACK bf6526f4a0ab30f77952ecdee90cd77dd9ba06f6 Tree-SHA512: d553791d1364b9e655183755e829b195c9b47f59c62371dbae49d9c0f8d84fec58cf18f4dde89591672ef5658e18c9cf0206c2efd70606980f87e506bc3bd4e5
2022-05-19Merge bitcoin/bitcoin#22778: net processing: Reduce resource usage for ↵fanquake
inbound block-relay-only connections 9db82f1bca0bb51c2180ca4a4ad63ba490e79da4 [net processing] Don't initialize TxRelay for non-tx-relay peers. (John Newbery) b0a4ac9c26f60fd4993d89f45cafffaa389db2d4 [net processing] Add m_tx_relay_mutex to protect m_tx_relay ptr (John Newbery) 290a8dab0288344fa5731ec2ffd09478e9420a2f [net processing] Comment all TxRelay members (John Newbery) 42e3250497b03478d61cd6bfe6cd904de73d57b1 [net processing] [refactor] Move m_next_send_feefilter and m_fee_filter_sent (John Newbery) Pull request description: block-relay-only connections are additional outbound connections that bitcoind makes since v0.19. They participate in block relay, but do not propagate transactions or addresses. They were introduced in #15759. When creating an outbound block-relay-only connection, since we know that we're never going to announce transactions over that connection, we can save on memory usage by not a `TxRelay` data structure for that connection. When receiving an inbound connection, we don't know whether the connection was opened by the peer as block-relay-only or not, and therefore we always construct a `TxRelay` data structure for inbound connections. However, it is possible to tell whether an inbound connection will ever request that we start announcing transactions to it. The `fRelay` field in the `version` message may be set to `0` to indicate that the peer does not wish to receive transaction announcements. The peer may later request that we start announcing transactions to it by sending a `filterload` or `filterclear` message, **but only if we have offered `NODE_BLOOM` services to that peer**. `NODE_BLOOM` services are disabled by default, and it has been recommended for some time that users not enable `NODE_BLOOM` services on public connections, for privacy and anti-DoS reasons. Therefore, if we have not offered `NODE_BLOOM` to the peer _and_ it has set `fRelay` to `0`, then we know that it will never request transaction announcements, and that we can save resources by not initializing the `TxRelay` data structure. ACKs for top commit: MarcoFalke: review ACK 9db82f1bca0bb51c2180ca4a4ad63ba490e79da4 🖖 dergoegge: Code review ACK 9db82f1bca0bb51c2180ca4a4ad63ba490e79da4 naumenkogs: ACK 9db82f1bca0bb51c2180ca4a4ad63ba490e79da4 Tree-SHA512: 83a449a56cd6bf6ad05369f5ab91516e51b8c471c07ae38c886d51461e942d492ca34ae63d329c46e56d96d0baf59a3e34233e4289868f911db3b567072bdc41
2022-05-19build: Enable RPC_DOC_CHECK on --enable-debugMacroFake
2022-05-19Merge bitcoin/bitcoin#25161: rpc: Put undocumented JSON failure mode behind ↵MacroFake
a runtime flag b953ea6cc691ba61bf08eb186e76e7e8b7ba8120 rpc: Put undocumented JSON failure mode behind a runtime flag (Suhail Saqan) Pull request description: Fixes #24695 (Put undocumented JSON failure mode behind a runtime flag) ACKs for top commit: luke-jr: utACK b953ea6cc691ba61bf08eb186e76e7e8b7ba8120 vincenzopalazzo: ACK https://github.com/bitcoin/bitcoin/pull/25161/commits/b953ea6cc691ba61bf08eb186e76e7e8b7ba8120 Tree-SHA512: 2005ee1b1f3b637918390b2ecd4166f2fd8c86e3c59fba3da8a0cbd5b1dffd03190c92f6dca3c489ecce4276eaf3108b2edcf9cd6224b713adb52f5bb848163b
2022-05-18rpc: Put undocumented JSON failure mode behind a runtime flagSuhail Saqan
rpc: Put undocumented JSON failure mode behind a runtime flag
2022-05-18Merge bitcoin/bitcoin#25108: tidy: add modernize-use-default-member-initMacroFake
ac6fbf2c83578129a0397d0d0dc9b1c6bdb30701 tidy: use modernize-use-default-member-init (fanquake) 7aa40f55636be565441a9e0af8de0a346bfa4da2 refactor: use C++11 default initializers (fanquake) Pull request description: Refactor and then enable [`modernize-use-default-member-init`](https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-default-member-init.html) in our `clang-tidy` job. Top commit has no ACKs. Tree-SHA512: 536b406f20639f8c588fe9e96175ec60c7bb825506b2670b562370b2f572801c24203c483443be3c199e1b958c0765d4532e57c57a4e78689162a1dd422d844f
2022-05-18scripted-diff: Use getInt<T> over get_int/get_int64MacroFake
-BEGIN VERIFY SCRIPT- sed -i 's|\<get_int64\>|getInt<int64_t>|g' $(git grep -l get_int ':(exclude)src/univalue') sed -i 's|\<get_int\>|getInt<int>|g' $(git grep -l get_int ':(exclude)src/univalue') -END VERIFY SCRIPT-
2022-05-18Merge bitcoin/bitcoin#25126: test: add BIP157 message parsing support (via ↵MacroFake
MESSAGEMAP) 5dc6d9207778c51c10c16fac4b3663bc7905bafc test: make BIP157 messages default-constructible (MESSAGEMAP compatibility) (Sebastian Falbesoner) 71e4cfefe765c58937b3fd3125782ca8407315d2 test: p2p: add missing BIP157 message types to MESSAGEMAP (Sebastian Falbesoner) Pull request description: The script [message-capture-parser.py](https://github.com/bitcoin/bitcoin/blob/master/contrib/message-capture/message-capture-parser.py) currently doesn't support parsing the BIP157 messages `getcfilters`, `getcfheaders` and `getcfcheckpt`, e.g. ``` $ ./contrib/message-capture/message-capture-parser.py msgs_recv.dat ... WARNING - Unrecognized message type b'getcfcheckpt' in /home/thestack/bitcoin/msgs_recv.dat ... ``` This PR fixes this by adding the missing message type mappings to the [`MESSAGEMAP`](https://github.com/bitcoin/bitcoin/blob/225e5b57b2ee2bc1acd7f09c89ccccc15ef8c85f/test/functional/test_framework/p2p.py#L95-L127) in the test framework and add default-constructors for the corresponding `msg_`... classes. Without the second commit, the following error message would occur: ``` File "/home/thestack/bitcoin/./contrib/message-capture/message-capture-parser.py", line 141, in process_file msg = MESSAGEMAP[msgtype]() TypeError: __init__() missing 2 required positional arguments: 'filter_type' and 'stop_hash' ``` ACKs for top commit: dunxen: tACK [5dc6d92](https://github.com/bitcoin/bitcoin/pull/25126/commits/5dc6d9207778c51c10c16fac4b3663bc7905bafc) Tree-SHA512: d656c4d38a856373f01d7c293ae7d2b27378a9fc248048ebf2a64725ef8b498b3ddf4f420704abdb20d0c68ca548f1777602c5e73b66821a20c97ae618f1d63f
2022-05-18Add mockable clock type and TicksSinceEpoch helperMarcoFalke
2022-05-18Do not call global Params() when chainman is in scopeMacroFake
2022-05-18Do not pass CChainParams& to PeerManager::makeMacroFake
2022-05-18Do not pass CChainParams& to BlockAssembler constructorMacroFake
2022-05-18Do not pass Consensus::Params& to Chainstate helpersMacroFake
2022-05-18Do not pass time getter to Chainstate helpersMacroFake
2022-05-18[net processing] Don't initialize TxRelay for non-tx-relay peers.John Newbery
Delay initializing the TxRelay data structure for a peer until we receive a version message from that peer. At that point we'll know whether it will ever relay transactions. We only initialize the m_tx_relay data structure if: - this isn't an outbound block-relay-only connection; AND - fRelay=true OR we're offering NODE_BLOOM to this peer (NODE_BLOOM means that the peer may turn on tx relay later)
2022-05-18[net processing] Add m_tx_relay_mutex to protect m_tx_relay ptrJohn Newbery
2022-05-18[net processing] Comment all TxRelay membersJohn Newbery
This fully comments all the TxRelay members. The only significant change is to the comment for m_relay_txs. Previously the comment stated that one of the purposes of the field was that "We don't relay tx invs before receiving the peer's version message". However, even without the m_relay_txs flag, we would not send transactions to the peer before receiving the `version` message, since SendMessages() returns immediately if fSuccessfullyConnected is not set to true, which only happens once a `version` and `verack` message have been received.
2022-05-18[net processing] [refactor] Move m_next_send_feefilter and m_fee_filter_sentJohn Newbery
Move m_next_send_feefilter and m_fee_filter_sent out of the `TxRelay` data structure. All of the other members of `TxRelay` are related to sending transactions _to_ the peer, whereas m_fee_filter_sent and m_next_send_feefilter are both related to receiving transactions _from_ the peer. A node's tx relay behaviour is not always symmetrical (eg a blocksonly node will ignore incoming transactions, but may still send out its own transactions), so it doesn't make sense to group the feefilter sending data with the TxRelay data in a single structure. This does not change behaviour, since IsBlockOnlyConn() is always equal to !peer.m_tx_relay. We still don't send feefilter messages to outbound block-relay-only peers (tested in p2p_feefilter.py).
2022-05-18Merge bitcoin/bitcoin#25157: Fix -rpcwait with -netinfo returning negative ↵MacroFake
time durations 3a998d2e37bf76667b08cd947807ada1305520d7 Use steady_clock in ConnectAndCallRPC and inline time call in loop conditional (Jon Atack) 3799d2dcdd736dd24850b192e1b264bee1cd5e5a Fix -rpcwait with -netinfo printing negative time durations (Jon Atack) Pull request description: - Fix `bitcoin-cli -rpcwait -netinfo 1` returning negative time durations on its first invocation after node startup in the "send", "recv", and "age" columns (potentially the "txn" and "blk" columns also). To reproduce, start bitcoind on mainnet (for a longer startup time) and run `bitcoin-cli -rpcwait -netinfo <n>` where n is 1 or larger. The negative time durations are larger with a slower CPU speed or e.g. higher `checkblocks`/`checklevel` config option settings. Examples: ``` <-> type net mping ping send recv txn blk hb addrp addrl age id out manual onion -126 -126 -2 0 ms ms sec sec min min min ``` ``` <-> type net mping ping send recv txn blk hb addrp addrl age id out manual cjdns -64 -64 -1 0 ms ms sec sec min min min ``` ``` <-> type net mping ping send recv txn blk hb addrp addrl age id out manual ipv4 -89 -89 * . -1 0 ms ms sec sec min min min ``` ``` <-> type net mping ping send recv txn blk hb addrp addrl age id out manual ipv6 -133 * . -2 0 ms ms sec sec min min min ``` - Use `steady_clock` in ConnectAndCallRPC and inline the time call in the loop conditional to avoid unnecessary invocations and an unneeded local variable allocation. ACKs for top commit: MarcoFalke: cr ACK 3a998d2e37bf76667b08cd947807ada1305520d7 Tree-SHA512: 141430d47189ad9f646ce8e51cb31c21b395f6294bb27ba9f7ae4c1e1505a63209a4a19662a0b462806437a9cfd07f1ea114e775adc2872d87397fe823f8b8dc
2022-05-18Merge bitcoin/bitcoin#25148: refactor: Remove `NO_THREAD_SAFETY_ANALYSIS` ↵MacroFake
from non-test/benchmarking code a55db4ea1cf10e0ab4a6eb5cd1dd3bd95626fba0 Add more proper thread safety annotations (Hennadii Stepanov) 8cfe93e3fcf263bf059f738d5e7d9c94901a7c5a Add proper thread safety annotation to `CWallet::GetTxConflicts()` (Hennadii Stepanov) ca446f2c59720c1575aeeab9c9d636d98ce8528c Add proper thread safety annotation to `CachedTxGetAvailableCredit()` (Hennadii Stepanov) Pull request description: In non-test/benchmarking code, there are three cases of the `NO_THREAD_SAFETY_ANALYSIS` annotation which are accompanied with `TODO` comments. This PR adds proper thread safety annotations instead of `NO_THREAD_SAFETY_ANALYSIS`. ACKs for top commit: laanwj: Code review ACK a55db4ea1cf10e0ab4a6eb5cd1dd3bd95626fba0 Tree-SHA512: 806d72eebc1edf088bfa435c8cd11465be0de6789798dd92abd008425516768acb864a73d834a49d412bb10f7fccfb47473f998cb72739dab6caeef6bcfaf191
2022-05-18Merge bitcoin/bitcoin#25124: test: Fix intermittent race in ↵MacroFake
p2p_unrequested_blocks.py faac67cab02a755b0ce67716c5e5889432b13b83 test: Fix intermittent race in p2p_unrequested_blocks.py (MacroFake) Pull request description: Disconnect may also result in an `OSError`, not only an `AssertionError`. Instead of maintaining a dead code path and enumerating disconnect reasons, just assume disconnection happens every time. ACKs for top commit: jamesob: Code review ACK https://github.com/bitcoin/bitcoin/pull/25124/commits/faac67cab02a755b0ce67716c5e5889432b13b83 Tree-SHA512: d2cec003168e421a5faed275cb2e1ef9fc63f9e8514f41d21da17e8964c79e5b453ccd72cd7ec62805f45293cf877be5bc8124ae98a515c0aa42d6e053409653
2022-05-18Add link to NetBSD releaseMarnix
2022-05-18[test] Remove segwit argument from build_block_on_tip()John Newbery
The only place that segwit=True is for a block that contains only the coinbase transaction. Since the witness commitment is optional if none of the transactions have a witness, we can leave it out. This doesn't change the test coverage, which is testing p2p compact block logic. Suggested in https://github.com/bitcoin/bitcoin/pull/20799#discussion_r867782119
2022-05-18Merge bitcoin/bitcoin#25076: guix: native GCC 10 toolchain for Linux buildsfanquake
6b9d53e1ff0099a8d9abb3c389df96fa75eac3f5 guix: native GCC 10 toolchain for Linux builds (fanquake) 88fd3f81ec626c363a5846089d99305a9a9b343d guix: use -fcommon when building glibc 2.24 (fanquake) 0e51913595c4fbe32ce9811e3ff5bcf1ed5f9ddc guix: fix glibc 2.27 multiple definition warnings with GCC 10 (fanquake) 508bd4d35720fd611a7bdfed559f46e7dbc70272 guix: adjust RISC-V __has_include() patch to work with GCC 10 (fanquake) c9c5b3060d2edb47ebfa7974fdde3154036717c2 guix: compile glibc without -werror (fanquake) Pull request description: Completes the migration to using a native GCC 10 toolchain for all HOSTS. This change means we'll now use GCC 10 when compiling glibc and friends (currently we use GCC 7), which is the same as our release compiler, except for macOS (Clang 10). See each commit for more details. Guix build (x86_64): ```bash 9f7ef2dc4421aded7f594c272c4feb1fe04f70b6c3f1ab85ed40242851cc6193 guix-build-6b9d53e1ff00/output/aarch64-linux-gnu/SHA256SUMS.part 216fde83c860a59d14a03c0a5f27c1d11ba40388da280dd42843d7c24b652a47 guix-build-6b9d53e1ff00/output/aarch64-linux-gnu/bitcoin-6b9d53e1ff00-aarch64-linux-gnu-debug.tar.gz 55b8bef29285dcd066156c2eaccd99f7d6956c3d9691363ac7482ad459856fdc guix-build-6b9d53e1ff00/output/aarch64-linux-gnu/bitcoin-6b9d53e1ff00-aarch64-linux-gnu.tar.gz f190e12f5d2fe8bfd891421752c8f31f728c7db66736ca46f97c1c2f3a346583 guix-build-6b9d53e1ff00/output/arm-linux-gnueabihf/SHA256SUMS.part ac4abd22b115896ba870a3f2149c66b3ce9bd25b401a75cf560681276bacc99d guix-build-6b9d53e1ff00/output/arm-linux-gnueabihf/bitcoin-6b9d53e1ff00-arm-linux-gnueabihf-debug.tar.gz 9a9a26f15b90ca5e22687272b7c9487863106f358f54b4a4cd9bcc844e96259f guix-build-6b9d53e1ff00/output/arm-linux-gnueabihf/bitcoin-6b9d53e1ff00-arm-linux-gnueabihf.tar.gz 96f73e9f17e19720e3517ebfed06a4b5295759906186770627fb8c0beb18508a guix-build-6b9d53e1ff00/output/arm64-apple-darwin/SHA256SUMS.part 4c9937e7221c56373808feacff38492f4530a4db986a07da3e56d1a293a59569 guix-build-6b9d53e1ff00/output/arm64-apple-darwin/bitcoin-6b9d53e1ff00-arm64-apple-darwin-unsigned.dmg f7c447fb40fa0d1382db0ec6b20a45c6dbc8660c004d41fa7418e40cc684200f guix-build-6b9d53e1ff00/output/arm64-apple-darwin/bitcoin-6b9d53e1ff00-arm64-apple-darwin-unsigned.tar.gz 067bbc0f7a50be93e469af855ab8bbb9dd598ee970db9ccfc99621a93d725348 guix-build-6b9d53e1ff00/output/arm64-apple-darwin/bitcoin-6b9d53e1ff00-arm64-apple-darwin.tar.gz d8ac116bec19dde955c5d19c85d41e3899a75def3e1c27bc047aa17906d094af guix-build-6b9d53e1ff00/output/dist-archive/bitcoin-6b9d53e1ff00.tar.gz 822085203ae9a64de3443141cd0a5f222a344451a7fdc69820efd0aeee8eca5e guix-build-6b9d53e1ff00/output/powerpc64-linux-gnu/SHA256SUMS.part 78a488dad3acf22d99f97d7874c5bf0fc0bd83bd33d27af8f1a723cd949df1d9 guix-build-6b9d53e1ff00/output/powerpc64-linux-gnu/bitcoin-6b9d53e1ff00-powerpc64-linux-gnu-debug.tar.gz 918477bee628771f3b927dba0e0e0ca0d0708cfe60a0cb47c10b98c403c9b266 guix-build-6b9d53e1ff00/output/powerpc64-linux-gnu/bitcoin-6b9d53e1ff00-powerpc64-linux-gnu.tar.gz 738e2771d4a6141cd69838bb65f54d853032075c077e428c6daf1eabc9046fc0 guix-build-6b9d53e1ff00/output/powerpc64le-linux-gnu/SHA256SUMS.part 5e7ce848931c790780154f276fae9d2b8dc03c0e995bb123d950e432a54803bb guix-build-6b9d53e1ff00/output/powerpc64le-linux-gnu/bitcoin-6b9d53e1ff00-powerpc64le-linux-gnu-debug.tar.gz 8caaf8bdc5e0a13a2e1c7242940d505c28a5fd2f2727c592b18f55530558f8c3 guix-build-6b9d53e1ff00/output/powerpc64le-linux-gnu/bitcoin-6b9d53e1ff00-powerpc64le-linux-gnu.tar.gz 8aeed7814f839aa0624752090ae75dc77f6098d2ac2b4d526945e42efeff16b8 guix-build-6b9d53e1ff00/output/riscv64-linux-gnu/SHA256SUMS.part e694fa6a3ca56fd121afe3cbf26cf9c17d0b4bac424e1b9086a095d63fc6f0fb guix-build-6b9d53e1ff00/output/riscv64-linux-gnu/bitcoin-6b9d53e1ff00-riscv64-linux-gnu-debug.tar.gz 8241e6c1f1a669ca5144b90796235d2a4b9c08bf75d6d2bf1b2862df8da626b3 guix-build-6b9d53e1ff00/output/riscv64-linux-gnu/bitcoin-6b9d53e1ff00-riscv64-linux-gnu.tar.gz 84d0d1391e07ac55684e107492def79fa0a6e404f2ec10f3130bd0734d031ad9 guix-build-6b9d53e1ff00/output/x86_64-apple-darwin/SHA256SUMS.part cde5bf4c3b1880b81b887b1b13293c1e91aac3f4ca9895aba515675e3dc69d1a guix-build-6b9d53e1ff00/output/x86_64-apple-darwin/bitcoin-6b9d53e1ff00-x86_64-apple-darwin-unsigned.dmg 906cebff955e514202a0d93fcf0782441f42c7592ade3205c908554086322440 guix-build-6b9d53e1ff00/output/x86_64-apple-darwin/bitcoin-6b9d53e1ff00-x86_64-apple-darwin-unsigned.tar.gz c8a4522380d5ff22c800d73968b4758ed5edde346fc6720558285ce02251dec0 guix-build-6b9d53e1ff00/output/x86_64-apple-darwin/bitcoin-6b9d53e1ff00-x86_64-apple-darwin.tar.gz de2e24dfe08f31bfeca03aff70f3e38b2671272f357b430ce8a3d3879020745f guix-build-6b9d53e1ff00/output/x86_64-linux-gnu/SHA256SUMS.part 32c01add177f3a1c7fb85f1c687b502105a98919a0fa9e8675917c68cb651dfb guix-build-6b9d53e1ff00/output/x86_64-linux-gnu/bitcoin-6b9d53e1ff00-x86_64-linux-gnu-debug.tar.gz c2af2390d8232463c824756ba4d88194f6fc3bfd0f71286237f2d3067d67ff25 guix-build-6b9d53e1ff00/output/x86_64-linux-gnu/bitcoin-6b9d53e1ff00-x86_64-linux-gnu.tar.gz b3fa5cc4dbe908274f84ca4ee4bd8fad7b0d0678b5e47ca8e0134b8872d1262c guix-build-6b9d53e1ff00/output/x86_64-w64-mingw32/SHA256SUMS.part 69cff7bfa42918434f7aee4a5c1f87c824bfe387d5a40bea502437e320703b68 guix-build-6b9d53e1ff00/output/x86_64-w64-mingw32/bitcoin-6b9d53e1ff00-win64-debug.zip 6c4ce699bdc9cd0fd5b3626b7c740b0d9f381f126a6581b38d481bddca74c25d guix-build-6b9d53e1ff00/output/x86_64-w64-mingw32/bitcoin-6b9d53e1ff00-win64-setup-unsigned.exe f5ca2fc6988e9a90ed7c47bd05c120a8d5a2c2a0bc0abcc076739d27869779b7 guix-build-6b9d53e1ff00/output/x86_64-w64-mingw32/bitcoin-6b9d53e1ff00-win64-unsigned.tar.gz 73862bfc4c6a614e467b0b4f07a7264e4a758bacbf75c0ac49b76d253385dcec guix-build-6b9d53e1ff00/output/x86_64-w64-mingw32/bitcoin-6b9d53e1ff00-win64.zip ``` Guix build (arm64): ```bash 63fd172e3bf01fe47e845c7b5af76b56b40ecd26f77363c9e5782c12997a1f3b guix-build-6b9d53e1ff00/output/arm-linux-gnueabihf/SHA256SUMS.part 6007a3ab95315a9e7206f32f13b6fc574833afd3e3d1ea0ed905800016fbf786 guix-build-6b9d53e1ff00/output/arm-linux-gnueabihf/bitcoin-6b9d53e1ff00-arm-linux-gnueabihf-debug.tar.gz a172a098403a29cc6c2fdb8fdd388fab10e0e2477f78cb8c7ee0d8112442c5f4 guix-build-6b9d53e1ff00/output/arm-linux-gnueabihf/bitcoin-6b9d53e1ff00-arm-linux-gnueabihf.tar.gz e07565d39160db87a857edc8ea4dc4444476837fc9d85fb17245efaa68b4ec41 guix-build-6b9d53e1ff00/output/arm64-apple-darwin/SHA256SUMS.part b9cc419a750afd5688c5f2dbfb717fccb5f177fb60b07bfede792336f7a4c563 guix-build-6b9d53e1ff00/output/arm64-apple-darwin/bitcoin-6b9d53e1ff00-arm64-apple-darwin-unsigned.dmg d9105b702f6756645efba5a4e47fc1efbca178e0a76b30c46dd6333f2362c1a2 guix-build-6b9d53e1ff00/output/arm64-apple-darwin/bitcoin-6b9d53e1ff00-arm64-apple-darwin-unsigned.tar.gz d46ecdc6f485d78d8afe4e6d679e97844dc6f817cd470226290843b9e0a5c677 guix-build-6b9d53e1ff00/output/arm64-apple-darwin/bitcoin-6b9d53e1ff00-arm64-apple-darwin.tar.gz d8ac116bec19dde955c5d19c85d41e3899a75def3e1c27bc047aa17906d094af guix-build-6b9d53e1ff00/output/dist-archive/bitcoin-6b9d53e1ff00.tar.gz 8f35311efd75f1a2a27c5090a3134648a3e58d40692d363f1fe0afce08925bcb guix-build-6b9d53e1ff00/output/powerpc64-linux-gnu/SHA256SUMS.part b012ce67aa18f54ea688961a01de30f9b4127fee7184d1292ac8f664449972f5 guix-build-6b9d53e1ff00/output/powerpc64-linux-gnu/bitcoin-6b9d53e1ff00-powerpc64-linux-gnu-debug.tar.gz 3ebd59090b02a295965923a1d74a2ce0aa23774d59116f62668e2a246343d971 guix-build-6b9d53e1ff00/output/powerpc64-linux-gnu/bitcoin-6b9d53e1ff00-powerpc64-linux-gnu.tar.gz 2017c04652d18a29107e06a1efee44d93d01607f12f7af626e687a72eca06a7c guix-build-6b9d53e1ff00/output/powerpc64le-linux-gnu/SHA256SUMS.part 4520225674157af40168813a2497a2f79df8131b0a73251a3d44dbe67cb002d2 guix-build-6b9d53e1ff00/output/powerpc64le-linux-gnu/bitcoin-6b9d53e1ff00-powerpc64le-linux-gnu-debug.tar.gz 9e7660470d56573c9c08470383d745910f2834586182a51b661eb10cc41fbf1d guix-build-6b9d53e1ff00/output/powerpc64le-linux-gnu/bitcoin-6b9d53e1ff00-powerpc64le-linux-gnu.tar.gz 2015b8d13798746e4d7e3a75250a2b83bb8cb9289410a1576f0e9892732e1931 guix-build-6b9d53e1ff00/output/riscv64-linux-gnu/SHA256SUMS.part 735c1a285933499406a4f6c396a12b13fcf79188100b541d532055c06092741c guix-build-6b9d53e1ff00/output/riscv64-linux-gnu/bitcoin-6b9d53e1ff00-riscv64-linux-gnu-debug.tar.gz f541d5397e28558dea1976a79f6bfdb01f12d7b4031925247cb32ace2360782e guix-build-6b9d53e1ff00/output/riscv64-linux-gnu/bitcoin-6b9d53e1ff00-riscv64-linux-gnu.tar.gz 84d0d1391e07ac55684e107492def79fa0a6e404f2ec10f3130bd0734d031ad9 guix-build-6b9d53e1ff00/output/x86_64-apple-darwin/SHA256SUMS.part cde5bf4c3b1880b81b887b1b13293c1e91aac3f4ca9895aba515675e3dc69d1a guix-build-6b9d53e1ff00/output/x86_64-apple-darwin/bitcoin-6b9d53e1ff00-x86_64-apple-darwin-unsigned.dmg 906cebff955e514202a0d93fcf0782441f42c7592ade3205c908554086322440 guix-build-6b9d53e1ff00/output/x86_64-apple-darwin/bitcoin-6b9d53e1ff00-x86_64-apple-darwin-unsigned.tar.gz c8a4522380d5ff22c800d73968b4758ed5edde346fc6720558285ce02251dec0 guix-build-6b9d53e1ff00/output/x86_64-apple-darwin/bitcoin-6b9d53e1ff00-x86_64-apple-darwin.tar.gz 51c1c6f683896a23767af2a7c6afe07030b6d5ad5a136b65f31b7e1f685c0f28 guix-build-6b9d53e1ff00/output/x86_64-linux-gnu/SHA256SUMS.part 6276d1ee54575b16386866f4898033d4dce9ea5a4e4635f7ae65d5bddecba35b guix-build-6b9d53e1ff00/output/x86_64-linux-gnu/bitcoin-6b9d53e1ff00-x86_64-linux-gnu-debug.tar.gz c553c0dfdd85f9af8e41741557c9eb5a6ee48a9f4a025df84eed21330927be89 guix-build-6b9d53e1ff00/output/x86_64-linux-gnu/bitcoin-6b9d53e1ff00-x86_64-linux-gnu.tar.gz 3dc586f08f454cfba3e8f66588a1017490fc6014bcd2aee0b0c5f557267aa961 guix-build-6b9d53e1ff00/output/x86_64-w64-mingw32/SHA256SUMS.part bc5ed4302603fe2f574e83a0e5612cff306081f65c74d817bb0f977bef01fb7a guix-build-6b9d53e1ff00/output/x86_64-w64-mingw32/bitcoin-6b9d53e1ff00-win64-debug.zip 6c4ce699bdc9cd0fd5b3626b7c740b0d9f381f126a6581b38d481bddca74c25d guix-build-6b9d53e1ff00/output/x86_64-w64-mingw32/bitcoin-6b9d53e1ff00-win64-setup-unsigned.exe f5ca2fc6988e9a90ed7c47bd05c120a8d5a2c2a0bc0abcc076739d27869779b7 guix-build-6b9d53e1ff00/output/x86_64-w64-mingw32/bitcoin-6b9d53e1ff00-win64-unsigned.tar.gz 761c97a37473f91dee8630a1409597ee400a8c8c99937f0a111e4572f084bdd9 guix-build-6b9d53e1ff00/output/x86_64-w64-mingw32/bitcoin-6b9d53e1ff00-win64.zip ``` Closes #24701. ACKs for top commit: hebasto: ACK 6b9d53e1ff0099a8d9abb3c389df96fa75eac3f5 Tree-SHA512: 128981d6ee68a9824bf9f19f90502b26e9d0fc5d55bf70b44c49fc8bdd25d4c6adf6fe2a5f6e48b35eb6e1b6ba55db59528cd53e75ddc34fc74f5d0ab0a33cb1