aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-04-16wallet: compare address returned by displayaddressSjors Provoost
Update external signer documentation to reflect this requirement, which HWI already implements.
2024-04-16test: use h marker for external signer mockSjors Provoost
Consistent with #26076
2024-04-16Merge bitcoin/bitcoin#29886: doc: archive 27.0 release notesmerge-script
c08754971d207bd2b60ba9c4faf34396a97bbc26 doc: archive 27.0 release notes (fanquake) Pull request description: ACKs for top commit: laanwj: ACK c08754971d207bd2b60ba9c4faf34396a97bbc26 stickies-v: ACK c08754971d207bd2b60ba9c4faf34396a97bbc26 Tree-SHA512: ee910a35f0e74e02e8297ed655766995fbf5dc03ce3a9efd90986c22fea3693dedd0d2941fbcc94007cd77548985ac1c1d202644e822d1408f72faccb1472d80
2024-04-16doc: archive 27.0 release notesfanquake
2024-04-15Merge bitcoin/bitcoin#29869: rpc, bugfix: Enforce maximum value for setmocktimeglozow
c2e0489b7125cceaeef355fc274dd8988822fff4 [rpc, bugfix] Enforce maximum value for setmocktime (dergoegge) Pull request description: The maximum value for our mocktime must be representable in nanoseconds, otherwise we end up with negative values returned from `NodeClock::now()`. Found through fuzzing: ``` $ echo "c2V0bW9ja3RpbWVcZTptYf9w/3NldG3///////////////9p////ZP///ymL//////89////Nv9L////////LXkBAABpAA==" | base64 --decode > rpc-8cab9148ab4418ebd1923c213e9d3fe9c9b49b39.crash $ FUZZ=rpc ./src/test/fuzz/fuzz rpc-8cab9148ab4418ebd1923c213e9d3fe9c9b49b39.crash fuzz_libfuzzer: util/time.cpp:28: static NodeClock::time_point NodeClock::now(): Assertion `ret > 0s' failed. ``` ACKs for top commit: maflcko: re-ACK c2e0489b7125cceaeef355fc274dd8988822fff4 brunoerg: crACK c2e0489b7125cceaeef355fc274dd8988822fff4 glozow: ACK c2e0489b7125cceaeef355fc274dd8988822fff4 Tree-SHA512: d7e237ca37bedd74a6b085fb6e726a142705371044c77488f593f35afe70aeca756fdba86920294b1d322c7a9b2cde9ce4e1b7d410a6ccc1fd7c6f3a6e77200a
2024-04-15Merge bitcoin/bitcoin#29699: test: check disconnection when sending ↵glozow
sendaddrv2 after verack b4c9ace6ff36c54755e4b12f204212c1b938f509 test: check disconnection when sending sendaddrv2 after verack (brunoerg) Pull request description: This PR adds test coverage for: https://github.com/bitcoin/bitcoin/blob/71b63195b30b2fa0dff20ebb262ce7566dd5d673/src/net_processing.cpp#L3796-L3807 ACKs for top commit: maflcko: lgtm ACK b4c9ace6ff36c54755e4b12f204212c1b938f509 byaye: Tested ACK b4c9ace6ff36c54755e4b12f204212c1b938f509 Tree-SHA512: 2ad49a269cb64794b8d626941cf532acafdbe6e97f3da5ccb52f3201a6773d2f5e3d7d62ce4289334b85d578790d4dd5833f6b8ba54bd49a8418a20aee0c3e5f
2024-04-15Merge bitcoin/bitcoin#29848: ci: use Clang 16 for Valgrindmerge-script
ad21f2294821d7c436e58a8f199fb555b11a56ad ci: use clang-16 for Valgrind (fanquake) Pull request description: Switch to Ubuntu Noble. Valgrind 3.19 -> 3.22 Clang 14 -> Clang 16 ACKs for top commit: maflcko: lgtm ACK ad21f2294821d7c436e58a8f199fb555b11a56ad Tree-SHA512: ec79ef9faaec97e34529ae36fff7798f859daca6a1e3563bc50e5d56a56ee4525c736976158a6e950c5b9f810c498d54ab128df984f42441e706033906c2ea3e
2024-04-15Merge bitcoin/bitcoin#28874: doc: fixup help output for -upnp and -natpmpmerge-script
92f88a962908c49dde99c03a4608e63e4a6eec71 doc: fixup NAT-PMP help doc (fanquake) 02395edca9e99454388ae9b91ee174fbccc38021 init: remove redundant upnp #ifdef (fanquake) Pull request description: This is a very belated followup to #26896 (which removed the configure options for setting the upnp and natpmp runtime default) and corrects the `-help` docs for `-upnp` and `-natpmp`. ACKs for top commit: davidgumberg: ACK https://github.com/bitcoin/bitcoin/commit/92f88a962908c49dde99c03a4608e63e4a6eec71 hernanmarino: ACK 92f88a962908c49dde99c03a4608e63e4a6eec71 Tree-SHA512: 795dc8a8703bf322b5831d845de85f2428ee0dd45d3064b48ff47d147147381af26c0a9d00c596db12009b254763844b209989daf4e7470d20e8a1753b640966
2024-04-15Merge bitcoin/bitcoin#29856: ci: Bump s390x to ubuntu:24.04merge-script
fadf7e90dc10e212e59bb294209bab2e73c47800 ci: Bump s390x to ubuntu:24.04 (MarcoFalke) Pull request description: Now that most other CI tasks are rolled to 24.04, roll this one as well. Also, re-enable feature_init. ACKs for top commit: fanquake: ACK fadf7e90dc10e212e59bb294209bab2e73c47800 - finished running after ~5 hours. Tree-SHA512: d69f40227ba982eaaccc1e144ba05d3c8c4a096ac401077df3db5cf3276d1e146a438e4e0237dda876b3644fc7f0accd724a19e3c1cdb94c30c679899137280e
2024-04-15Merge bitcoin/bitcoin#29823: minisketch: update subtree to ↵merge-script
3472e2f5ec75ace39ce9243af6b3fee233a67492 4722b7c7154e6130d4de66f7aed0fffe3c7c19a4 build: remove minisketch clz check (fanquake) 1eea10a6d25fd8225560347cda2b1cfdc267910d Squashed 'src/minisketch/' changes from a571ba20f9..3472e2f5ec (fanquake) Pull request description: https://github.com/sipa/minisketch/pull/81 will fix #29799. Minor build cleanups after https://github.com/sipa/minisketch/pull/80. ACKs for top commit: dergoegge: utACK 4722b7c7154e6130d4de66f7aed0fffe3c7c19a4 hebasto: ACK 4722b7c7154e6130d4de66f7aed0fffe3c7c19a4, I have verified the subtree update and reviewed the build system changes. Both look OK. Tree-SHA512: eabd82e5a13cc4f32155319df97368f2e8c93320a4265b6c372efcb1ea4e756f6693df7c02498c8ea989ccd376a20277fa110c66d0754cb9bca5e54d18e0a965
2024-04-15[rpc, bugfix] Enforce maximum value for setmocktimedergoegge
2024-04-14ci: use clang-16 for Valgrindfanquake
Switch to Ubuntu Noble.
2024-04-12ci: Bump s390x to ubuntu:24.04MarcoFalke
Re-enable feature_init
2024-04-12build: remove minisketch clz checkfanquake
2024-04-12Update minisketch subtree to latest masterfanquake
2024-04-12Squashed 'src/minisketch/' changes from a571ba20f9..3472e2f5ecfanquake
3472e2f5ec Merge sipa/minisketch#81: Avoid overflowing shift by special casing inverse of 1 653d8b2e26 Avoid overflowing shift by special casing inverse of 1 33b7c200b9 Merge sipa/minisketch#80: Add c++20 version of CountBits 4a48f31a37 Merge sipa/minisketch#83: ci: Fix "s390x (big-endian)" task 82b6488acb Add c++20 version of CountBits 0498084d31 ci: Fix "s390x (big-endian)" task 71709dca9e Merge sipa/minisketch#82: ci: Fix `x86_64-w64-mingw32` task 9e6127fa98 Merge sipa/minisketch#74: Avoid >> above type width in BitWriter ed420bc170 ci: Fix `x86_64-w64-mingw32` task fe1040f227 Drop -Wno-shift-count-overflow compile flag 154bcd43bd Avoid >> above type width in BitWriter 67b87acdb6 Merge sipa/minisketch#78: ci: Update macOS image for CI 7de7250416 ci: Update macOS image for CI 83d812ea9f Merge sipa/minisketch#73: ci: Use correct variable to designate C++ compiler e051a7d690 ci: Install wine32 package for Windows tests 2d2c695d78 build: Drop unused `CC` variable 1810fcbd11 ci: Use correct variable to designate C++ compiler 022b959049 Merge sipa/minisketch#77: Add missing include 08443c4892 Add missing include git-subtree-dir: src/minisketch git-subtree-split: 3472e2f5ec75ace39ce9243af6b3fee233a67492
2024-04-11Merge bitcoin/bitcoin#29849: Fix typos in `subprocess.hpp`merge-script
13f5391bbb45cd8aebc6ae70cad08aff632ebd55 Fix typos in `subprocess.hpp` (Hennadii Stepanov) Pull request description: Resolves one item in the https://github.com/bitcoin/bitcoin/pull/28981#pullrequestreview-1991272752: > - Remove linter exclusions and fix all issues. Based on upstream https://github.com/arun11299/cpp-subprocess/pull/101. ACKs for top commit: fanquake: ACK 13f5391bbb45cd8aebc6ae70cad08aff632ebd55 Tree-SHA512: 2ee27a5b7d1ba6f47a5148add155c918eadaaffb94a4b5dd3edea00e63440b87291c559361bf25a8db1567debff78cf7e9466dc34f14331ca1d426994837df93
2024-04-11Merge bitcoin/bitcoin#29735: AcceptMultipleTransactions: Fix workspace not ↵glozow
being set as client_maxfeerate failure 4ba1d0b55339c3ea90e2bcd64662a06f0f90dd46 fuzz: Add coverage for client_maxfeerate (Greg Sanders) 91d7d8f22a1c528db14fa743c66cd861ea00e84b AcceptMultipleTransactions: Fix workspace client_maxfeerate (Greg Sanders) f3aa5bd5eb6d1088f98a4dc7daaab0e17a7d5529 fill_mempool: assertions and docsctring update (Greg Sanders) a3da63e8febe475f2250f6432bca237d31fa9107 Move fill_mempool to util function (Greg Sanders) 73b68bd8b4f9447e30091c7f8c3dc91a086bd93b fill_mempool: remove subtest-specific comment (Greg Sanders) Pull request description: Bug causes an `Assume()` failure due to the expectation that the individual result should be invalid when done over `submitpackage` via rpc. Bug introduced by https://github.com/bitcoin/bitcoin/pull/28950 , and I discovered it rebasing https://github.com/bitcoin/bitcoin/pull/28984 since it's easier to hit in that test scenario. Tests in place were only checking `AcceptSingleTransaction`-level checks due to package evaluation only triggering when minfee is too high for the parent transaction. Added test along with fix, moving the fill_mempool utility into a common area for re-use. ACKs for top commit: glozow: reACK 4ba1d0b55339c3ea90e2bcd64662a06f0f90dd46 theStack: ACK 4ba1d0b55339c3ea90e2bcd64662a06f0f90dd46 ismaelsadeeq: re-ACK https://github.com/bitcoin/bitcoin/commit/4ba1d0b55339c3ea90e2bcd64662a06f0f90dd46 via [diff](https://github.com/bitcoin/bitcoin/compare/4fe7d150eb3c85a6597d8fc910fe1490358197ad..4ba1d0b55339c3ea90e2bcd64662a06f0f90dd46) Tree-SHA512: 3729bdf7f25d04e232f173ccee04ddbb2afdaafa3d04292a01cecf58fb11b3b2bc133e8490277f1a67622b62d17929c242dc980f9bb647896beea4332ee35306
2024-04-11Fix typos in `subprocess.hpp`Hennadii Stepanov
2024-04-10Merge bitcoin/bitcoin#29844: depends: remove no longer needed patch for ↵merge-script
Boost::Process 95c594f4e9ea3cb57aa03b75d4d70fe0e1742065 depends: remove no longer needed patch for Boost::Process (Sebastian Falbesoner) Pull request description: As Boost::Process has been replaced by cpp-subprocess (PR #28981), this patch touches an unused code part and is hence not needed anymore. ACKs for top commit: hebasto: ACK 95c594f4e9ea3cb57aa03b75d4d70fe0e1742065, I have reviewed the code and it looks OK. fanquake: ACK 95c594f4e9ea3cb57aa03b75d4d70fe0e1742065 Tree-SHA512: 0309b826f8c260e4180624f17302e51329fc4bd7a5431997d6d27d468dd5f7dbcd9db6a742efaba33ba30dbe361830eb1446fdbec927505ccf42412f9211934e
2024-04-10depends: remove no longer needed patch for Boost::ProcessSebastian Falbesoner
As Boost::Process has been replaced by cpp-subprocess (PR #28981), this patch touches an unused code part and is hence not needed anymore.
2024-04-10Merge bitcoin/bitcoin#28981: Replace Boost.Process with cpp-subprocessmerge-script
d5a715536e497c160a2520f81334aab6c7490213 build: remove boost::process dependency for building external signer support (Sebastian Falbesoner) 70434b1c443d9251a880d0193af771f574c40617 external_signer: replace boost::process with cpp-subprocess (Sebastian Falbesoner) cc8b9875b104c31f0a5b5e4195a8278ec55f35f7 Add `cpp-subprocess` header-only library (Hennadii Stepanov) Pull request description: Closes https://github.com/bitcoin/bitcoin/issues/24907. This PR is based on **theStack**'s [work](https://github.com/bitcoin/bitcoin/issues/24907#issuecomment-1466087049). The `subprocess.hpp` header has been sourced from the [upstream repo](https://github.com/arun11299/cpp-subprocess) with the only modification being the removal of convenience functions, which are not utilized in our codebase. Windows-related changes will be addressed in subsequent follow-ups. ACKs for top commit: achow101: reACK d5a715536e497c160a2520f81334aab6c7490213 Sjors: re-tACK d5a715536e497c160a2520f81334aab6c7490213 theStack: Light re-ACK d5a715536e497c160a2520f81334aab6c7490213 fanquake: ACK d5a715536e497c160a2520f81334aab6c7490213 - with the expectation that this code is going to be maintained as our own. Next PRs should: Tree-SHA512: d7fb6fecc3f5792496204190afb7d85b3e207b858fb1a75efe483c05260843b81b27d14b299323bb667c990e87a07197059afea3796cf218ed8b614086bd3611
2024-04-09Merge bitcoin/bitcoin#29820: refactor, bench, fuzz: Drop unneeded ↵merge-script
`UCharCast` calls 56e1e5dd10cbe51d3abc3fbf532b6b41bf62a889 refactor, bench, fuzz: Drop unneeded `UCharCast` calls (Hennadii Stepanov) Pull request description: The `CKey::Set()` template function handles `std::byte` just fine: https://github.com/bitcoin/bitcoin/blob/b5d21182e5a66110ce2796c2c99da39c8ebf0d72/src/key.h#L105 Noticed in https://github.com/bitcoin/bitcoin/pull/29774#discussion_r1546288181. ACKs for top commit: maflcko: lgtm ACK 56e1e5dd10cbe51d3abc3fbf532b6b41bf62a889 laanwj: Seems fine, code review ACK 56e1e5dd10cbe51d3abc3fbf532b6b41bf62a889 hernanmarino: ACK 56e1e5dd10cbe51d3abc3fbf532b6b41bf62a889 Tree-SHA512: 0f6b6e66692e70e083c7768aa4859c7db11aa034f555d19df0e5d33b18c0367ba1c886bcb6be3fdea78248a3cf8285576120812da55b995ef5e6c94a9dbd9f7c
2024-04-09Merge bitcoin/bitcoin#29834: build: Change MAC_OSX macro to __APPLE__ in cryptomerge-script
a71eadf66bed8d3ea4282c8499f533a8eeed9900 Change MAC_OSX macro to __APPLE__ in crypto package (Lőrinc) Pull request description: Split out from https://github.com/bitcoin/bitcoin/pull/29450#issuecomment-2044405345 to avoid the uncertainties and simplify review. ACKs for top commit: theuni: ACK a71eadf66bed8d3ea4282c8499f533a8eeed9900 fanquake: ACK a71eadf66bed8d3ea4282c8499f533a8eeed9900 Tree-SHA512: b6a7bd7ca95585dd9110cefe7c1213f4a1a72bdfc88670abf4a0d9a8bbc12e093544524adce46aa9ca714c472d417f74ca4a678af682ed2488053059434eaa02
2024-04-09fuzz: Add coverage for client_maxfeerateGreg Sanders
2024-04-09AcceptMultipleTransactions: Fix workspace client_maxfeerateGreg Sanders
If we do not set the Failure for the workspace when there is a client_maxfeerate related error, we hit an Assume() to the contrary. Properly set it.
2024-04-09fill_mempool: assertions and docsctring updateGreg Sanders
2024-04-09Move fill_mempool to util functionGreg Sanders
2024-04-09Merge bitcoin/bitcoin#29752: refactor: Use typesafe Wtxid in compact block ↵glozow
encodings a8203e94123b6ea6e4f4a6320e3ad20457f44a28 refactor: Simplify `extra_txn` to be a vec of CTransactionRef instead of a vec of pair<Wtxid, CTransactionRef> (AngusP) c3c18433ae1d5b024d4cb92c762f5ca0ec7849c8 refactor: Use typesafe Wtxid in compact block encoding message, instead of ambiguous uint256. (AngusP) Pull request description: The first commit replaces `uint256` with typesafe `Wtxid` (or `Txid`) types introduced in #28107. The second commit then simplifies the extra tx `vector` to just be of `CTransactionRef`s instead of a `std::pair<Wtxid, CTransactionRef>`, as it's easy to get a `Wtxid` from a transaction ref. ACKs for top commit: glozow: ACK a8203e94123b6ea6e4f4a6320e3ad20457f44a28 dergoegge: ACK a8203e94123b6ea6e4f4a6320e3ad20457f44a28 Tree-SHA512: b4ba1423a8059f9fc118782bd8a668213d229c822f22b01267de74d6ea97fe4f2aad46b5da7c0178ecc9905293e9a0eafba1d75330297c055e27fd53c8c8ebfd
2024-04-09Change MAC_OSX macro to __APPLE__ in crypto packageLőrinc
2024-04-09Merge bitcoin/bitcoin#29821: fuzz: Some `test/fuzz/test_runner.py` improvementsfanquake
47cedee776c6253232beb6039ea708c578211327 fuzz: Introduce `BITCOINFUZZ` environment variable (Hennadii Stepanov) 1573e9a11e7a204a51f815a4c48c4b7054303ca9 fuzz, refactor: Deduplicate fuzz binary path creation (Hennadii Stepanov) Pull request description: These changes are split from https://github.com/bitcoin/bitcoin/pull/29774 and can be beneficial on their own. The new `BITCOINFUZZ` environment variable complements the already existing set of variables used by tests: https://github.com/bitcoin/bitcoin/blob/b5d21182e5a66110ce2796c2c99da39c8ebf0d72/test/functional/test_framework/test_framework.py#L238-L243 ACKs for top commit: maflcko: lgtm ACK 47cedee776c6253232beb6039ea708c578211327 davidgumberg: utACK https://github.com/bitcoin/bitcoin/pull/29821/commits/47cedee776c6253232beb6039ea708c578211327 Tree-SHA512: 45809cfd13dc4a45c44cc433184352e84726cb95bea80fd8f581c59a0b8b0a5495260ff66922f9c57c38adbdbdd102439238f370fd49d6ea27a241a5e6249895
2024-04-09Merge bitcoin/bitcoin#29832: Revert "ci: Temporarily disable bpfcc-tools"fanquake
c15170c27d96a66422cb86c6653c931aa204bbb0 Revert "ci: Temporarily disable bpfcc-tools" (fanquake) Pull request description: This reverts commit fac012c7262f036e9b6f5800e57dcd63870a871c. Closes #29804. ACKs for top commit: maflcko: lgtm ACK c15170c27d96a66422cb86c6653c931aa204bbb0 hebasto: ACK c15170c27d96a66422cb86c6653c931aa204bbb0. Tree-SHA512: df7fc92175d8509481ef3afe26c7ac993af1bd0a5489d985e59a591d1ad4e580930691fda1768c2caa5a35d538d7cfa38ceba0f581c2ed95c1f7477012de9f26
2024-04-09Merge bitcoin/bitcoin#29786: Drop Windows Socket dependency for `randomenv.cpp`fanquake
03b87a3e64305ba651e22a730e35271dea8fea64 Drop Windows Socket dependency for `randomenv.cpp` (Hennadii Stepanov) Pull request description: This change drops a dependency on the ws2_32 library for our libbitcoinkernel by switching to [`GetComputerName`](https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-getcomputernamew) function. ACKs for top commit: sipsorcery: utACK 03b87a3e64305ba651e22a730e35271dea8fea64. laanwj: Code review ACK 03b87a3e64305ba651e22a730e35271dea8fea64. fanquake: ACK 03b87a3e64305ba651e22a730e35271dea8fea64 Tree-SHA512: a4abd5499176634d5f3fbf4e794a7504c40232fb73bd7f41955fbfb2cc7c44bc7ea4518c5203836e52f552c30414c6c3e1b24f0922641dbf1c8377981c0ffaf0
2024-04-09Merge bitcoin/bitcoin#29498: test: Update --tmpdir doc string to say ↵fanquake
directory must not exist d4e36ae80d4b3f03647fd9057461edf7ecd794a3 test: Update --tmpdir doc string to say directory must not exist (kevkevin) Pull request description: The error message given if passing an existing dir to --tmpdir is confusing so this makes it clear that the directory must not already exist This change is motivated by this comment https://github.com/bitcoin/bitcoin/pull/29335#issuecomment-1960913020 ACKs for top commit: maflcko: lgtm ACK d4e36ae80d4b3f03647fd9057461edf7ecd794a3 davidgumberg: ACK https://github.com/bitcoin/bitcoin/pull/29498/commits/d4e36ae80d4b3f03647fd9057461edf7ecd794a3 Tree-SHA512: fb31fd079767abbf94076615817943f35f5c9262fc97e65c631a18d33b3a343fe6a2d151613256e632d2b372ab2de0435f4712309b4a77ed3c663fd93a7dcdd1
2024-04-09Merge bitcoin/bitcoin#29781: depends: add new LLVM debug macrofanquake
5efebc0edbb479d2041b3fb2d43be3a77e817b3e depends: add the new LLVM debug macro (fanquake) Pull request description: `LIBCXX_HARDENING_MODE` is the new macro, the previous one was removed in LLVM 18. See https://libcxx.llvm.org/Hardening.html. Required before https://github.com/google/oss-fuzz/pull/11725 will do anything (with the bump to 18.x). Seems reasonable to do now that almost all our test infra is using LLVM 18. ACKs for top commit: theuni: ACK 5efebc0edbb479d2041b3fb2d43be3a77e817b3e Tree-SHA512: 43078eeb5940c55ef4f95c72682f8a372dcd3eb97956b3114149c16d9f59b067a999b2aab7f34ffb57eab191524514408e2bba154ff4a6ea0cd6ec4d119c5d18
2024-04-09Revert "ci: Temporarily disable bpfcc-tools"fanquake
This reverts commit fac012c7262f036e9b6f5800e57dcd63870a871c.
2024-04-08Merge bitcoin/bitcoin#29691: Change Luke Dashjr seed to ↵fanquake
dashjr-list-of-p2p-nodes.us 4f273ab4360c9aa72c2feb78787e1811ab58dc16 Change Luke Dashjr seed to dashjr-list-of-p2p-nodes.us (Luke Dashjr) Pull request description: To avoid issues with DNS blacklisting, I've setup a separate domain for my DNS seed. (This time, without a potentially alarming name) ACKs for top commit: kevkevinpal: Concept ACK [4f273ab](https://github.com/bitcoin/bitcoin/pull/29691/commits/4f273ab4360c9aa72c2feb78787e1811ab58dc16), name looks good to me petertodd: ACK https://github.com/bitcoin/bitcoin/pull/29691/commits/4f273ab4360c9aa72c2feb78787e1811ab58dc16 mzumsande: ACK 4f273ab4360c9aa72c2feb78787e1811ab58dc16 fanquake: ACK 4f273ab4360c9aa72c2feb78787e1811ab58dc16 Tree-SHA512: 689698e3c735df3ed0c2756a9d4adb5644bb9d8a6954e23d66bfa9d94ee10954f77fb241d9593f750054d731aa1532368a0fc8277884f6c2a98ac47cd0bdeeb7
2024-04-08Merge bitcoin/bitcoin#29690: clang-tidy: Enable misc-no-recursionfanquake
78407b99ed6dd17f687fcbfb0486ecc433302287 [clang-tidy] Enable the misc-no-recursion check (dergoegge) Pull request description: Recursion is a frequent source of stack overflow bugs. Secondly, introduction of recursion can be non-obvious. This PR proposes to use the clang-tidy `misc-no-recursion` check to make introduction of new recursion obvious. We don't make use of recursion a lot in our code base but there are a few places that need suppressions anyway (mostly the descriptor and univalue/rpc code). ACKs for top commit: stickies-v: ACK 78407b99ed6dd17f687fcbfb0486ecc433302287 TheCharlatan: Re-ACK 78407b99ed6dd17f687fcbfb0486ecc433302287 fanquake: ACK 78407b99ed6dd17f687fcbfb0486ecc433302287 Tree-SHA512: 34126d704c46086fe7371906ca852c25ced1dbd5fcfd85bf623810cd171a797569a92a33c7e26b8dc01c30c7bbf81aa326718926e8354585091411989a4edb14
2024-04-08Merge bitcoin/bitcoin#29830: doc: 25.2 historical release notesfanquake
93bd2e2f6c9672fbf1120d1e25349f6edd29cfef doc: 25.2 historical release notes (Ava Chow) Pull request description: ACKs for top commit: laanwj: ACK 93bd2e2f6c9672fbf1120d1e25349f6edd29cfef ismaelsadeeq: ACK 93bd2e2f6c9672fbf1120d1e25349f6edd29cfef Tree-SHA512: da4b6950b812cbc9b379de1d04ef4111e0b1336d943e41efed53ebe754cb3a2a54fa4dda39629535cc1521c56a87d1169d34db8041066cda00dcb5e6fa71638b
2024-04-08fill_mempool: remove subtest-specific commentGreg Sanders
2024-04-08doc: 25.2 historical release notesAva Chow
2024-04-07[clang-tidy] Enable the misc-no-recursion checkdergoegge
Co-authored-by: stickies-v <stickies-v@protonmail.com> Co-authored-by: Gloria Zhao <gloriajzhao@gmail.com>
2024-04-07Merge bitcoin/bitcoin#29822: test: remove immediate tx relay workaround in ↵fanquake
wallet_groups.py 93fae5ae7c31fa1b1095770f00adeac1cfeda4b9 test: remove immediate tx relay workaround in wallet_groups.py (Sebastian Falbesoner) Pull request description: Reverts commit ab4efad51b9ba276ffeb6871931e13772493f7cc (PR #26970). This workaround is not needed anymore, as since #27114 the test sets the noban permission for both in- and outbound connections via the `noban_tx_relay` setting, and we don't have to rely on this topology hack anymore. See commit c985eb854cc86deb747caea5283c17cf51b6a983 (kudos to brunoerg!). Can be tested by executing `$ time ./test/functional/wallet_groups.py` both on master and PR and verifying that the execution time is roughly equal. ACKs for top commit: maflcko: lgtm ACK 93fae5ae7c31fa1b1095770f00adeac1cfeda4b9 brunoerg: utACK 93fae5ae7c31fa1b1095770f00adeac1cfeda4b9 Tree-SHA512: b949fd05b4308815ba02d0ee4d1318f642b930288dd03223f46db7db745177af1c070bc7058743ac27963c5ad90564089867cc12f31fee94812a16919c353bab
2024-04-07depends: add the new LLVM debug macrofanquake
`LIBCPP_HARDENING_MODE` is the new macro, the previous one was removed in LLVM 18. See https://libcxx.llvm.org/Hardening.html.
2024-04-07Merge bitcoin/bitcoin#29742: ci: remove --with-asm=no (secp256k1) from MSAN jobsfanquake
61641e2466768e128fef995e9fcb24cad90e527d ci: remove --with-asm usage (secp256k1) (fanquake) c7efee591a27720757504f3ebf7dbeaef0185931 ci: use LLVM 18.1.3 in MSAN jobs (fanquake) Pull request description: Bumps LLVM to `18.1.3`: * Includes https://github.com/llvm/llvm-project/pull/86201, which is useful as it removes the need to (possibly) apply a work around when running the CI locally. Drops `--with-asm=no` (only being passed to secp256k1) from the MSAN CI. New MSAN annotations were pulled in as part of #29803. ACKs for top commit: maflcko: lgtm ACK 61641e2466768e128fef995e9fcb24cad90e527d hebasto: ACK 61641e2466768e128fef995e9fcb24cad90e527d. Tree-SHA512: da51c9f08a9aacb9dd936c47ef47777a8c84234e4df5b9776647ac94ebe88084b5e7b8182af90cfa01ae183072f6ce5915b73825f66b2567214ab270b2ff7837
2024-04-07Merge bitcoin/bitcoin#29791: test: Bump timeouts in feature_index_prune and ↵fanquake
wallet_importdescriptors 49c0b8b2288e60ae22fcac5d03811cf36ecec058 test: Bump timeouts in feature_index_prune and wallet_importdescriptors (Christopher Bergqvist) Pull request description: Timeout issues where encountered when running functional tests with `--jobs=16 --extended`. Note that running `--extended` without `--jobs=16` does not trigger the issues. Tested under NixOS on a Xeon CPU with 16 logical cores. (A few tests are skipped locally as I haven't enabled BPF and a few other things). ## Measurements Line in `feature_index_prune.py` took 101.6s, 96.6s, 103.0s across 3 runs on my machine. Default limit is 60, suggested to increase limit to 150 seconds. Line in the `wallet_importdescriptors.py --descriptors` took 5.4s, 5.7s, 6.0s across 3 runs. Suggested to increase from 5 to 10 seconds. ## Logs Output slightly modified by separate change that lets code run past given timeouts and the provides more information - "Took 101.6 seconds to complete, 69.4% over the given limit.". <details> <summary> Click to expand. </summary> ### feature_index_prune.py ``` 52/305 - feature_index_prune.py failed, Duration: 250 s stdout: 2024-04-01T22:25:24.010000Z TestFramework (INFO): PRNG seed is: 990421162716295219 2024-04-01T22:25:24.014000Z TestFramework (INFO): Initializing test directory /mnt/tmp/test_runner_₿_🏃_20240402_002516/feature_index_prune_302 2024-04-01T22:25:24.913000Z TestFramework (INFO): check if we can access blockfilters and coinstats when pruning is enabled but no blocks are actually pruned 2024-04-01T22:26:48.417000Z TestFramework (INFO): prune some blocks 2024-04-01T22:26:48.460000Z TestFramework (INFO): check if we can access the tips blockfilter and coinstats when we have pruned some blocks 2024-04-01T22:26:48.483000Z TestFramework (INFO): check if we can access the blockfilter and coinstats of a pruned block 2024-04-01T22:26:59.175000Z TestFramework (INFO): make sure trying to access the indices throws errors 2024-04-01T22:27:50.422000Z TestFramework (INFO): prune exactly up to the indices best blocks while the indices are disabled 2024-04-01T22:27:52.596000Z TestFramework (INFO): make sure that we can continue with the partially synced indices after having pruned up to the index height 2024-04-01T22:29:34.242000Z TestFramework.utils (ERROR): wait_until() failed. Predicate: ''' self.wait_until(lambda: self.nodes[1].getindexinfo() == expected_stats)#, timeout=150) ''' 2024-04-01T22:29:34.244000Z TestFramework (ERROR): Assertion failed Traceback (most recent call last): File "/home/chris/Documents/Code/bitcoin-core/test/functional/test_framework/test_framework.py", line 132, in main self.run_test() File "/home/chris/Documents/Code/bitcoin-core/test/functional/feature_index_prune.py", line 117, in run_test self.sync_index(height=1500) File "/home/chris/Documents/Code/bitcoin-core/test/functional/feature_index_prune.py", line 34, in sync_index self.wait_until(lambda: self.nodes[1].getindexinfo() == expected_stats)#, timeout=150) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/chris/Documents/Code/bitcoin-core/test/functional/test_framework/test_framework.py", line 780, in wait_until return wait_until_helper_internal(test_function, timeout=timeout, timeout_factor=self.options.timeout_factor) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/chris/Documents/Code/bitcoin-core/test/functional/test_framework/util.py", line 305, in wait_until_helper_internal raise AssertionError(m) AssertionError: Predicate ''' self.wait_until(lambda: self.nodes[1].getindexinfo() == expected_stats)#, timeout=150) ''' not true after 60 seconds. Took 101.6 seconds to complete, 69.4% over the given limit. 2024-04-01T22:29:34.298000Z TestFramework (INFO): Stopping nodes 2024-04-01T22:29:34.511000Z TestFramework (WARNING): Not cleaning up dir /mnt/tmp/test_runner_₿_🏃_20240402_002516/feature_index_prune_302 2024-04-01T22:29:34.511000Z TestFramework (ERROR): Test failed. Test logging available at /mnt/tmp/test_runner_₿_🏃_20240402_002516/feature_index_prune_302/test_framework.log 2024-04-01T22:29:34.511000Z TestFramework (ERROR): 2024-04-01T22:29:34.512000Z TestFramework (ERROR): Hint: Call /home/chris/Documents/Code/bitcoin-core/test/functional/combine_logs.py '/mnt/tmp/test_runner_₿_🏃_20240402_002516/feature_index_prune_302' to consolidate all logs 2024-04-01T22:29:34.512000Z TestFramework (ERROR): 2024-04-01T22:29:34.512000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log. 2024-04-01T22:29:34.512000Z TestFramework (ERROR): https://github.com/bitcoin/bitcoin/issues 2024-04-01T22:29:34.512000Z TestFramework (ERROR): stderr: 53/305 - p2p_blockfilters.py passed, Duration: 130 s ``` ### wallet_importdescriptors.py --descriptors ``` 297/305 - wallet_importdescriptors.py --descriptors failed, Duration: 76 s stdout: 2024-04-01T22:48:27.663000Z TestFramework (INFO): PRNG seed is: 8528678505617325332 2024-04-01T22:48:27.664000Z TestFramework (INFO): Initializing test directory /mnt/tmp/test_runner_₿_🏃_20240402_004231/wallet_importdescriptors_98 2024-04-01T22:48:28.021000Z TestFramework (INFO): Setting up wallets 2024-04-01T22:48:28.100000Z TestFramework (INFO): Mining coins 2024-04-01T22:48:29.714000Z TestFramework (INFO): Import should fail if a descriptor is not provided 2024-04-01T22:48:29.725000Z TestFramework (INFO): Should import a p2pkh descriptor 2024-04-01T22:48:29.740000Z TestFramework (INFO): Test can import same descriptor with public key twice 2024-04-01T22:48:29.760000Z TestFramework (INFO): Test can update descriptor label 2024-04-01T22:48:29.785000Z TestFramework (INFO): Internal addresses cannot have labels 2024-04-01T22:48:29.788000Z TestFramework (INFO): Internal addresses should be detected as such 2024-04-01T22:48:29.854000Z TestFramework (INFO): Should not import a p2sh-p2wpkh descriptor without checksum 2024-04-01T22:48:29.855000Z TestFramework (INFO): Should not import a p2sh-p2wpkh descriptor that has range specified 2024-04-01T22:48:29.858000Z TestFramework (INFO): Should not import a p2sh-p2wpkh descriptor and have it set to active 2024-04-01T22:48:29.860000Z TestFramework (INFO): Should import a (non-active) p2sh-p2wpkh descriptor 2024-04-01T22:48:29.984000Z TestFramework (INFO): Should import a 1-of-2 bare multisig from descriptor 2024-04-01T22:48:30.002000Z TestFramework (INFO): Should not treat individual keys from the imported bare multisig as watchonly 2024-04-01T22:48:30.005000Z TestFramework (INFO): Ranged descriptors cannot have labels 2024-04-01T22:48:30.014000Z TestFramework (INFO): Private keys required for private keys enabled wallet 2024-04-01T22:48:30.027000Z TestFramework (INFO): Ranged descriptor import should warn without a specified range 2024-04-01T22:48:30.065000Z TestFramework (INFO): Should not import a ranged descriptor that includes xpriv into a watch-only wallet 2024-04-01T22:48:30.070000Z TestFramework (INFO): Should not import a descriptor with hardened derivations when private keys are disabled 2024-04-01T22:48:30.108000Z TestFramework (INFO): Verify we can only extend descriptor's range 2024-04-01T22:48:30.364000Z TestFramework (INFO): Check we can change descriptor internal flag 2024-04-01T22:48:30.536000Z TestFramework (INFO): Key ranges should be imported in order 2024-04-01T22:48:30.708000Z TestFramework (INFO): Check we can change next_index 2024-04-01T22:48:30.838000Z TestFramework (INFO): Check imported descriptors are not active by default 2024-04-01T22:48:30.870000Z TestFramework (INFO): Check can activate inactive descriptor 2024-04-01T22:48:30.903000Z TestFramework (INFO): Check can deactivate active descriptor 2024-04-01T22:48:30.924000Z TestFramework (INFO): Verify activation state is persistent 2024-04-01T22:48:30.973000Z TestFramework (INFO): Should import a descriptor with a WIF private key as spendable 2024-04-01T22:48:30.987000Z TestFramework (INFO): Test can import same descriptor with private key twice 2024-04-01T22:48:32.173000Z TestFramework (INFO): Test that multisigs can be imported, signed for, and getnewaddress'd 2024-04-01T22:48:43.803000Z TestFramework (INFO): Multisig with distributed keys 2024-04-01T22:48:48.895000Z TestFramework (INFO): We can create and use a huge multisig under P2WSH 2024-04-01T22:49:05.628000Z TestFramework (INFO): Under P2SH, multisig are standard with up to 15 compressed keys 2024-04-01T22:49:20.258000Z TestFramework (INFO): Amending multisig with new private keys 2024-04-01T22:49:23.306000Z TestFramework (INFO): Combo descriptors cannot be active 2024-04-01T22:49:23.313000Z TestFramework (INFO): Descriptors with no type cannot be active 2024-04-01T22:49:23.348000Z TestFramework (INFO): Test importing a descriptor to an encrypted wallet 2024-04-01T22:49:43.957000Z TestFramework (ERROR): Assertion failed Traceback (most recent call last): File "/home/chris/Documents/Code/bitcoin-core/test/functional/test_framework/test_framework.py", line 132, in main self.run_test() File "/home/chris/Documents/Code/bitcoin-core/test/functional/wallet_importdescriptors.py", line 691, in run_test with self.nodes[0].assert_debug_log(expected_msgs=["Rescan started from block 0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206... (slow variant inspecting all blocks)"], timeout=5):#10): File "/nix/store/rac8pxbi1vapwrlqzbrkycbyg521djzw-python3-3.11.6/lib/python3.11/contextlib.py", line 144, in __exit__ next(self.gen) File "/home/chris/Documents/Code/bitcoin-core/test/functional/test_framework/test_node.py", line 493, in assert_debug_log self._raise_assertion_error(f'Expected messages "{expected_msgs}" found too late, took {now - start:.1f} seconds, {((now - start) / (time_end - start)) - 1:.1%} over the given limit. Log:\n\n{print_log}\n\n') File "/home/chris/Documents/Code/bitcoin-core/test/functional/test_framework/test_node.py", line 188, in _raise_assertion_error raise AssertionError(self._node_msg(msg)) AssertionError: [node 0] Expected messages "['Rescan started from block 0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206... (slow variant inspecting all blocks)']" found too late, took 5.4 seconds, 8.9% over the given limit. Log: - 2024-04-01T22:49:33.066512Z [http] [httpserver.cpp:306] [http_request_cb] [http] Received a POST request for /wallet/encrypted_wallet from 127.0.0.1:47658 - 2024-04-01T22:49:33.066668Z [httpworker.0] [rpc/request.cpp:187] [parse] [rpc] ThreadRPCServer method=importdescriptors user=__cookie__ - 2024-04-01T22:49:33.070999Z [httpworker.0] [wallet/sqlite.cpp:57] [TraceSqlCallback] [/mnt/tmp/test_runner_₿_🏃_20240402_004231/wallet_importdescriptors_98/node0/regtest/wallets/encrypted_wallet/wallet.dat] SQLite Statement: INSERT INTO main VALUES(?, ?) - 2024-04-01T22:49:33.071061Z [httpworker.0] [wallet/sqlite.cpp:57] [TraceSqlCallback] [/mnt/tmp/test_runner_₿_🏃_20240402_004231/wallet_importdescriptors_98/node0/regtest/wallets/encrypted_wallet/wallet.dat] SQLite Statement: DELETE FROM main WHERE key = ? - 2024-04-01T22:49:33.071137Z [httpworker.0] [wallet/sqlite.cpp:57] [TraceSqlCallback] [/mnt/tmp/test_runner_₿_🏃_20240402_004231/wallet_importdescriptors_98/node0/regtest/wallets/encrypted_wallet/wallet.dat] SQLite Statement: BEGIN TRANSACTION - 2024-04-01T22:49:33.074190Z [httpworker.0] [wallet/sqlite.cpp:57] [TraceSqlCallback] [/mnt/tmp/test_runner_₿_🏃_20240402_004231/wallet_importdescriptors_98/node0/regtest/wallets/encrypted_wallet/wallet.dat] SQLite Statement: INSERT or REPLACE into main values(?, ?) - 2024-04-01T22:49:33.075564Z [httpworker.0] [wallet/sqlite.cpp:57] [TraceSqlCallback] [/mnt/tmp/test_runner_₿_🏃_20240402_004231/wallet_importdescriptors_98/node0/regtest/wallets/encrypted_wallet/wallet.dat] SQLite Statement: INSERT or REPLACE into main values(?, ?) ...<thousands of almost identical lines>... - 2024-04-01T22:49:38.416139Z [httpworker.0] [wallet/sqlite.cpp:57] [TraceSqlCallback] [/mnt/tmp/test_runner_₿_🏃_20240402_004231/wallet_importdescriptors_98/node0/regtest/wallets/encrypted_wallet/wallet.dat] SQLite Statement: INSERT or REPLACE into main values(?, ?) - 2024-04-01T22:49:38.416528Z [httpworker.0] [wallet/sqlite.cpp:57] [TraceSqlCallback] [/mnt/tmp/test_runner_₿_🏃_20240402_004231/wallet_importdescriptors_98/node0/regtest/wallets/encrypted_wallet/wallet.dat] SQLite Statement: INSERT or REPLACE into main values(?, ?) - 2024-04-01T22:49:38.427946Z [httpworker.0] [wallet/sqlite.cpp:57] [TraceSqlCallback] [/mnt/tmp/test_runner_₿_🏃_20240402_004231/wallet_importdescriptors_98/node0/regtest/wallets/encrypted_wallet/wallet.dat] SQLite Statement: COMMIT TRANSACTION - 2024-04-01T22:49:38.429778Z [httpworker.0] [wallet/sqlite.cpp:57] [TraceSqlCallback] [/mnt/tmp/test_runner_₿_🏃_20240402_004231/wallet_importdescriptors_98/node0/regtest/wallets/encrypted_wallet/wallet.dat] SQLite Statement: INSERT or REPLACE into main values(?, ?) - 2024-04-01T22:49:38.429916Z [httpworker.0] [wallet/sqlite.cpp:57] [TraceSqlCallback] [/mnt/tmp/test_runner_₿_🏃_20240402_004231/wallet_importdescriptors_98/node0/regtest/wallets/encrypted_wallet/wallet.dat] SQLite Statement: INSERT or REPLACE into main values(?, ?) - 2024-04-01T22:49:38.430001Z [httpworker.0] [wallet/wallet.h:933] [WalletLogPrintf] [encrypted_wallet] Setting spkMan to active: id = c6149b35399517457b0b1d8ccdd7efda25a2f20fc7f8167adda8e79b10e260b7, type = legacy, internal = false - 2024-04-01T22:49:38.430134Z [httpworker.0] [wallet/wallet.h:933] [WalletLogPrintf] [encrypted_wallet] RescanFromTime: Rescanning last 329 blocks - 2024-04-01T22:49:38.430170Z [httpworker.0] [wallet/wallet.h:933] [WalletLogPrintf] [encrypted_wallet] Rescan started from block 0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206... (slow variant inspecting all blocks) - 2024-04-01T22:49:38.441914Z [httpworker.0] [wallet/scriptpubkeyman.h:258] [WalletLogPrintf] [encrypted_wallet] MarkUnusedAddresses: Detected a used keypool item at index 4000, mark all keypool items up to this item as used 2024-04-01T22:49:44.029000Z TestFramework (INFO): Stopping nodes 2024-04-01T22:49:44.132000Z TestFramework (WARNING): Not cleaning up dir /mnt/tmp/test_runner_₿_🏃_20240402_004231/wallet_importdescriptors_98 2024-04-01T22:49:44.132000Z TestFramework (ERROR): Test failed. Test logging available at /mnt/tmp/test_runner_₿_🏃_20240402_004231/wallet_importdescriptors_98/test_framework.log 2024-04-01T22:49:44.132000Z TestFramework (ERROR): 2024-04-01T22:49:44.133000Z TestFramework (ERROR): Hint: Call /home/chris/Documents/Code/bitcoin-core/test/functional/combine_logs.py '/mnt/tmp/test_runner_₿_🏃_20240402_004231/wallet_importdescriptors_98' to consolidate all logs 2024-04-01T22:49:44.133000Z TestFramework (ERROR): 2024-04-01T22:49:44.133000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log. 2024-04-01T22:49:44.133000Z TestFramework (ERROR): https://github.com/bitcoin/bitcoin/issues 2024-04-01T22:49:44.133000Z TestFramework (ERROR): stderr: Remaining jobs: [feature_pruning.py, feature_dbcrash.py, feature_assumeutxo.py, rpc_scantxoutset.py, feature_coinstatsindex.py, p2p_node_network_limited.py --v1transport, p2p_node_network_limited.py --v2transport, feature_config_args.py] 298/305 - p2p_node_network_limited.py --v1transport passed, Duration: 24 s ``` </details> ## Related Almost identical timeout in `feature_index_prune.py` in #27091 on MacOS, and for `wallet_importdescriptors.py --descriptors` in #27282 on Alpine & CI. ACKs for top commit: maflcko: lgtm ACK 49c0b8b2288e60ae22fcac5d03811cf36ecec058 tdb3: ACK for 49c0b8b2288e60ae22fcac5d03811cf36ecec058 itornaza: approach ACK 49c0b8b2288e60ae22fcac5d03811cf36ecec058 BrandonOdiwuor: crACK 49c0b8b2288e60ae22fcac5d03811cf36ecec058 Tree-SHA512: f62ade74701588d76bfe838b7e7bbda1db38fd98688fd5d13c2c008064027add2ee9d053dee602d84919fab4c9bf53183c31819d94a6174066f237d0f6a62086
2024-04-06Merge bitcoin/bitcoin#29815: crypto: chacha20: always use our fallback ↵fanquake
timingsafe_bcmp rather than libc's 2d1819455cb4c516f6cdf81c11e869a23dee3e6b crypto: chacha20: always use our fallback timingsafe_bcmp rather than libc's (Cory Fields) Pull request description: Looking at libc sources, apple and openbsd implementations match our naive fallback. Only FreeBSD (and only x86_64) seems to [implement an optimized version](https://github.com/freebsd/freebsd-src/blob/main/lib/libc/amd64/string/timingsafe_bcmp.S). It's not worth the hassle of using a platform-specific function for such little gain. Additionally, as mentioned below, this is the only case outside of sha2 that requires an autoconf check, and I have upcoming PRs to remove the sha2 ones. Apple's [impl is unoptimized](https://opensource.apple.com/source/Libc/Libc-1244.1.7/string/FreeBSD/timingsafe_bcmp.c.auto.html). As-is [OpenBSD's impl](https://github.com/openbsd/src/blob/master/lib/libc/string/timingsafe_bcmp.c). Relevant IRC conversation with sipa: > \<cfields\> sipa: chacha20poly1305.cpp uses libc's timingsafe_bcmp when possible. But looking around at apple/freebsd/openbsd, I don't see any impl that doesn't use the naive implementation that matches our fallback... > \<cfields\> is there any reason to belive there's an optimized impl somewhere that we're actually hitting? > \<cfields\> asking because after cleaning up sha2, timingsafe_bcmp is the last autoconf check that remains in all of crypto. It'd make life easy if we could just always use our internal one. > \<cfields\> *all of crypto/ > \<sipa\> cfields: let's get rid of the dependency then > \<sipa\> it's a trivial function > \<sipa\> and if we need it for some platforms, no real reason not to use it on all After the above discusstion, I did end up finding the x86_64-optimized FreeBSD impl, but I don't think that's all that significant. ACKs for top commit: sipa: utACK 2d1819455cb4c516f6cdf81c11e869a23dee3e6b fanquake: ACK 2d1819455cb4c516f6cdf81c11e869a23dee3e6b TheCharlatan: ACK 2d1819455cb4c516f6cdf81c11e869a23dee3e6b theStack: ACK 2d1819455cb4c516f6cdf81c11e869a23dee3e6b Tree-SHA512: b9583e19ac2f77c5d572aa5b95bc4b53669d5717e5708babef930644980de7c5d06a9c7decd5c2b559d70b8597328ecfe513375e3d8c3ef523db80012dfe9266
2024-04-06refactor: Simplify `extra_txn` to be a vec of CTransactionRef instead of a ↵AngusP
vec of pair<Wtxid, CTransactionRef> All `CTransactionRef` have `.GetWitnessHash()` that returns a cached `const Wtxid` (since fac1223a568fa1ad6dd602350598eed278d115e8), so we don't need to pass transaction refs around with their IDs as they're easy to get from a ref.
2024-04-06test: remove immediate tx relay workaround in wallet_groups.pySebastian Falbesoner
Reverts commit ab4efad51b9ba276ffeb6871931e13772493f7cc (PR #26970). This workaround is not needed anymore, as since #27114 the test sets the noban permission for both in- and outbound connections via the `noban_tx_relay` setting, and we don't have to rely on these topology hacks anymore. See commit c985eb854cc86deb747caea5283c17cf51b6a983.
2024-04-06fuzz: Introduce `BITCOINFUZZ` environment variableHennadii Stepanov
The `BITCOINFUZZ` environment variable allows to override the default path to the fuzz binary. It complements the already existing set of variables used by tests: - BITCOIND - BITCOINCLI - BITCOINUTIL - BITCOINWALLET