aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2 hoursMerge bitcoin/bitcoin#31284: ci: Skip broken Wine64 tests by defaultHEADmasterRyan Ofsky
fa5e7064597fc51366f082e3d07a4591e576db38 ci: Skip broken Wine64 tests by default (MarcoFalke) Pull request description: I don't think the unit tests run in Wine after the Windows cross-compilation have ever shown a true positive since the MSVC task was added. However, they are a source of frequent false-positives. Thus, disable them by default for now. Anyone can still enable them by setting `RUN_UNIT_TESTS=true`. A follow-up could run them on real Windows, see https://github.com/bitcoin/bitcoin/pull/31176. Conceptually there are many other nightly tasks, which rarely find issues and are not run by default, like the valgrind or s390x tasks. So putting the Wine unit tests in the same bucket should be fine. ACKs for top commit: hebasto: ACK fa5e7064597fc51366f082e3d07a4591e576db38, to avoid false-positives. willcl-ark: ACK fa5e7064597fc51366f082e3d07a4591e576db38 Tree-SHA512: 6bd54470e4d5ce18923c5d724aba0dbf475d053d7097d3f87e822a455cc537b6ce5f0dfcc8ccd0719c12c5d0c8fc7355a6c84185a6c9b5d484d98aee763d0c49
27 hoursMerge bitcoin/bitcoin#30991: test: enable running independent functional ↵Ryan Ofsky
test sub-tests 409d0d629378c3e23388ed31516376ad1ae536b5 test: enable running individual independent functional test methods (ismaelsadeeq) Pull request description: - Some test methods in the functional test framework are independent and do not require any prior context or setup in `run_test`. - This commit adds a new option for running these specific methods within a test file, allowing them to be executed individually without running the entire test suite. - Using this option reduces the time you need to wait before the test you are interested in starts executing. - The functionality added by this PR can be achieved manually by commenting out code, but having a pragmatic option to do this is more convenient. Note: Running test methods that require arguments or context will fail. **Example Usage**: ```zsh build/test/functional/feature_reindex.py --test_methods continue_reindex_after_shutdown ``` ```zsh build/test/functional/feature_config_args.py --test_methods test_log_buffer test_args_log test_connect_with_seednode ``` ACKs for top commit: maflcko: review ACK 409d0d629378c3e23388ed31516376ad1ae536b5 rkrux: reACK 409d0d629378c3e23388ed31516376ad1ae536b5 ryanofsky: Code review ACK 409d0d629378c3e23388ed31516376ad1ae536b5. This seems like a good step towards making it easy to run independent tests quickly. I think ideally there would be some naming convention or @ annotation added to test methods that can run independently, so the test framework could provide more functionality like being able to list test methods, being able to show command lines to quickly reproduce problems when tests fails, and calling test methods automatically instead of requiring individual tests to call them. But these ideas are all compatible with the new `--test_methods` option Tree-SHA512: b0daac7c3b322e6fd9b946962335d8279e8cb004ff76f502c8d597b9c4b0073840945be198a79d44c5aaa64bda421429829d5c84ceeb8c6139eb6ed079a35878
29 hoursMerge bitcoin/bitcoin#31387: doc: Use more precise anchor link to ↵merge-script
codesigning docs 19f49c7489d226e1cebc754fbbae3e4bebc360af doc: Use more precise anchor link to codesigning docs (Jeremy Rand) Pull request description: The "Codesigning" section is what users presumably are looking for when they follow this link. ACKs for top commit: fanquake: ACK 19f49c7489d226e1cebc754fbbae3e4bebc360af Tree-SHA512: 0e25cf0d7160db7d564d67d3e3ac614f9bd209b2399414f1278fa01cfc1ff827aa8311f7c1c2666924d5ac2dc23fe9bc258b80ed8025d5b8d5b11bcf1d12b28c
29 hoursMerge bitcoin/bitcoin#31396: test: simple reordering to reduce run timemerge-script
62f6d9e1a48e3b63c504996e914075cacfdcaedc test: simple ordering optimization to reduce runtime (tdb3) Pull request description: Noticed in #31371 that the position of `mempool_ephemeral_dust` within `BASE_SCRIPTS` was lengthening total test runtime. Instead of moving only that test, looked for others to move to reduce runtime. This is a quick optimization that was found to reduce overall functional test runtime of up to around 20% (depending on jobs and machine characteristics). Since it seems like test ordering could be done in many different ways, with many variables, and bike shedding could creep in, a relatively straightforward approach was taken for now that minimized changes to test_runner. ACKs for top commit: maflcko: lgtm ACK 62f6d9e1a48e3b63c504996e914075cacfdcaedc TheCharlatan: ACK 62f6d9e1a48e3b63c504996e914075cacfdcaedc Tree-SHA512: 6f93fbe4de3fce202383d9f84aa0e96961af3de3c02b8cab73589339d701f32c5e1b57a191eeebf4b06b5cd7a82617f63f24110732940be1a5a4d9237813a570
30 hoursMerge bitcoin/bitcoin#31386: doc: Use more precise anchor links to Xcode SDK ↵merge-script
extraction 8bf1b3039cb5b396e7e6d3ac075656952edd56d5 doc: Use more precise anchor links to Xcode SDK extraction (Jeremy Rand) Pull request description: The "SDK Extraction" section is what users presumably are looking for when they follow these links. ACKs for top commit: fanquake: ACK 8bf1b3039cb5b396e7e6d3ac075656952edd56d5 Tree-SHA512: 38669a6b171aa102bb80f5b3a343bd6a067c6921c454f6d18087c5add8016eea2ba8196036f9968f0a9b7df1f642c96ff6c657338c32e775beb04038497cde1f
30 hoursMerge bitcoin/bitcoin#31383: test: Add missing ↵merge-script
node.setmocktime(self.mocktime) to p2p_ibd_stalling.py faa16ed4b9edd126b5a2b0c13994f18273096efc test: Add missing node.setmocktime(self.mocktime) to p2p_ibd_stalling.py (MarcoFalke) Pull request description: This was forgotten by myself in commit fa5b58ea01fac1adb6336b8b6b5217193295c695. This time, there is a diff to test, which fails on current master and passes with this pull request. ```diff diff --git a/src/net_processing.cpp b/src/net_processing.cpp index e503a68382..16438ebd08 100644 --- a/src/net_processing.cpp +++ b/src/net_processing.cpp @@ -112,9 +112,9 @@ static_assert(MAX_BLOCKTXN_DEPTH <= MIN_BLOCKS_TO_KEEP, "MAX_BLOCKTXN_DEPTH too * want to make this a per-peer adaptive value at some point. */ static const unsigned int BLOCK_DOWNLOAD_WINDOW = 1024; /** Block download timeout base, expressed in multiples of the block interval (i.e. 10 min) */ -static constexpr double BLOCK_DOWNLOAD_TIMEOUT_BASE = 1; +static constexpr double BLOCK_DOWNLOAD_TIMEOUT_BASE = .05; // 30 sec /** Additional block download timeout per parallel downloading peer (i.e. 5 min) */ -static constexpr double BLOCK_DOWNLOAD_TIMEOUT_PER_PEER = 0.5; +static constexpr double BLOCK_DOWNLOAD_TIMEOUT_PER_PEER = 0.; /** Maximum number of headers to announce when relaying blocks with headers message.*/ static const unsigned int MAX_BLOCKS_TO_ANNOUNCE = 8; /** Minimum blocks required to signal NODE_NETWORK_LIMITED */ diff --git a/test/functional/p2p_ibd_stalling.py b/test/functional/p2p_ibd_stalling.py index fa07873929..f8cdd8998c 100755 --- a/test/functional/p2p_ibd_stalling.py +++ b/test/functional/p2p_ibd_stalling.py @@ -82,6 +82,7 @@ class P2PIBDStallingTest(BitcoinTestFramework): # Need to wait until 1023 blocks are received - the magic total bytes number is a workaround in lack of an rpc # returning the number of downloaded (but not connected) blocks. bytes_recv = 172761 if not self.options.v2transport else 169692 + time.sleep(31); self.wait_until(lambda: self.total_bytes_recv_for_blocks() == bytes_recv) self.all_sync_send_with_ping(peers) ACKs for top commit: brunoerg: ACK faa16ed4b9edd126b5a2b0c13994f18273096efc Tree-SHA512: 5a670e2dcf828ac83b721a3e20d897744cca50080b0583a8460a0d0c7bf2c2c988cf7e35f688dde6a3349f1c21cc83a16ea5242ed06a59d59a04130416690737
31 hoursMerge bitcoin/bitcoin#31395: build: Set shared linker flags in toolchain filemerge-script
a8e04704f930de168fdddbb1c040dd70fbbe8ff7 build: Set shared linker flags in toolchain file (TheCharlatan) Pull request description: These are required when cross-compiling shared libraries such as the kernel library. This was discovered after attempting to cross-compile the kernel library and running into the following error: ``` [100%] Linking CXX shared library libbitcoinkernel.dylib /usr/bin/ld: unrecognised emulation mode: llvm Supported emulations: elf_x86_64 elf32_x86_64 elf_i386 elf_iamcu i386pep i386pe clang++: error: linker command failed with exit code 1 (use -v to see invocation) gmake[3]: *** [src/kernel/CMakeFiles/bitcoinkernel.dir/build.make:1209: src/kernel/libbitcoinkernel.dylib] Error 1 gmake[2]: *** [CMakeFiles/Makefile2:1175: src/kernel/CMakeFiles/bitcoinkernel.dir/all] Error 2 gmake[1]: *** [CMakeFiles/Makefile2:1182: src/kernel/CMakeFiles/bitcoinkernel.dir/rule] Error 2 gmake: *** [Makefile:569: bitcoinkernel] Error 2 ``` ACKs for top commit: hebasto: ACK a8e04704f930de168fdddbb1c040dd70fbbe8ff7, tested on Ubuntu 24.04: tdb3: ACK a8e04704f930de168fdddbb1c040dd70fbbe8ff7 Tree-SHA512: a896f366348647888085fdbe66ff3d21484ca3b7cba0ba5390adb55bbcfe3ec09d4f81dd514ecf360cd0d31dcc8311108c4b772cecd5ea719d1c07faef285ecf
33 hoursMerge bitcoin/bitcoin#31357: cmake: Improve build script correctnessmerge-script
ab5c63edccea7957e2c7b3b9d8b04655a7f82f22 cmake: Build `secp256k1` only when required (Hennadii Stepanov) 76a3a540a4c3ff42f84c4701cb2ca6e910a24f50 cmake: Ensure script correctness when no targets are specified (Hennadii Stepanov) Pull request description: When no build targets are specified, it is reasonable to expect the configuration step to succeed and produce a build system that does not build any targets. This PR updates the code to ensure this behaviour: ``` $ cmake -B build -G "Ninja" -DBUILD_DAEMON=OFF -DBUILD_CLI=OFF -DBUILD_TX=OFF -DBUILD_UTIL=OFF -DENABLE_WALLET=OFF -DBUILD_TESTS=OFF $ cmake --build build ninja: no work to do. ``` ACKs for top commit: TheCharlatan: ACK ab5c63edccea7957e2c7b3b9d8b04655a7f82f22 tdb3: light test ACK ab5c63edccea7957e2c7b3b9d8b04655a7f82f22 Tree-SHA512: 1b13f406c58b02768d9ba831413aeae1d7e03659e7101de8e598f906ba220f479ac06707965c96a14468ce4ba49011a1ab9adee9cee34ab1e8622f690b94dad8
33 hoursMerge bitcoin/bitcoin#31402: doc: correct libfuzzer-nosan preset flagmerge-script
16b140f225a24b9075ef6e4cf6f0788bf96ace5f doc: correct libfuzzer-nosan preset flag (Niklas Gögge) Pull request description: `--prefix` is not the correct option for using a preset (it's not an option at all). ACKs for top commit: maflcko: lgtm ACK 16b140f225a24b9075ef6e4cf6f0788bf96ace5f Tree-SHA512: 8c5fad4f8573bd9ef972447b2847ede61a3b6af9650a599f6ff7e90a2c009e4422715164261b424c08170c9e179cce241a3ca31ddc234f446316f24fc2c353b1
33 hoursMerge bitcoin/bitcoin#31361: cmake, qt: Use absolute paths for includes in ↵merge-script
MOC-generated files 6f4128e3a838d03f46d397c15bc5333287e14863 cmake, qt: Use absolute paths for includes in MOC-generated files (Hennadii Stepanov) Pull request description: Fixes https://github.com/bitcoin/bitcoin/issues/31145. From the `moc --help` output: ``` -p <path> Path prefix for included file. ``` ACKs for top commit: laanwj: Tested ACK 6f4128e3a838d03f46d397c15bc5333287e14863 willcl-ark: tACK 6f4128e3a838d03f46d397c15bc5333287e14863 TheCharlatan: ACK 6f4128e3a838d03f46d397c15bc5333287e14863 BrandonOdiwuor: ACK 6f4128e3a838d03f46d397c15bc5333287e14863 Tree-SHA512: f313698dec8976a7e0b3f26e6fd34ec041c253ccd75bdc0d7b272c3f786d77e83c35bc4607112960c65a378ec139f30a5187ce74498dce8b99a7349994846dee
33 hoursdoc: correct libfuzzer-nosan preset flagNiklas Gögge
33 hoursMerge bitcoin/bitcoin#30039: dbwrapper: Bump LevelDB max file size to 32 MiB ↵merge-script
to avoid system slowdown from high disk cache flush rate b73d3319377a4c9d7e2dd279c3d106002585bc36 dbwrapper: Bump max file size to 32 MiB (Maciej S. Szmigiero) Pull request description: The default max file size for LevelDB is 2 MiB, which results in the LevelDB compaction code generating ~4 disk cache flushes per second when syncing with the Bitcoin network. These disk cache flushes are triggered by `fdatasync()` syscall issued by the LevelDB compaction code when reaching the max file size. If the database is on a HDD this flush rate brings the whole system to a crawl. It also results in very slow throughput since 2 MiB * 4 flushes per second is about 8 MiB / second max throughput, while even an old HDD can pull 100 - 200 MiB / second streaming throughput. Increase the max file size for LevelDB to 128 MiB instead so the flush rate drops to about 1 flush / 2 seconds and the system no longer gets so sluggish. The max file size value chosen also matches the `MAX_BLOCKFILE_SIZE` file size setting already used by the block storage. ACKs for top commit: l0rinc: ACK b73d3319377a4c9d7e2dd279c3d106002585bc36 davidgumberg: ACK https://github.com/bitcoin/bitcoin/commit/b73d3319377a4c9d7e2dd279c3d106002585bc36 andrewtoth: ACK b73d3319377a4c9d7e2dd279c3d106002585bc36 TheCharlatan: ACK b73d3319377a4c9d7e2dd279c3d106002585bc36 willcl-ark: ACK b73d3319377a4c9d7e2dd279c3d106002585bc36 tdb3: ACK b73d3319377a4c9d7e2dd279c3d106002585bc36 laanwj: ACK b73d3319377a4c9d7e2dd279c3d106002585bc36 Tree-SHA512: 5d8fb9ad1ea643fb3e42a9c59f6fc90cc5cc3b82c06d9b8d59de3a5a926fabaeb78efb51b608b1e7925f49d82dfcbd5b72c552993879789f33201efe57c278f3
33 hoursMerge bitcoin/bitcoin#31390: Remove `src/config` directorymerge-script
935973b315fa3b99f5e79b360bcb66f473bb7b95 Remove `src/config` directory (Hennadii Stepanov) Pull request description: The `src/config` directory has not been used since the migration to CMake, which disables in-source builds. ACKs for top commit: TheCharlatan: ACK 935973b315fa3b99f5e79b360bcb66f473bb7b95 BrandonOdiwuor: ACK 935973b315fa3b99f5e79b360bcb66f473bb7b95 Tree-SHA512: cc5b405e39387673fa2fd1e96680295b6eb3dc49a5f9a4d288580b8ea83efba04c96132811ca2cec14bcca509dbaf20c390cd47dabeea2a6ebc973e364e7a43b
33 hoursMerge bitcoin/bitcoin#31399: ci, macos: Install `pkgconf` Homebrew's packagemerge-script
e2f2698395c2535eeada8d91f270643c77aa7099 ci, macos: Install `pkgconf` Homebrew's package (Hennadii Stepanov) Pull request description: The updated GHA image [`20241125.556`](https://github.com/actions/runner-images/releases/tag/macos-14-arm64%2F20241125.556) is now fully [deployed](https://github.com/actions/runner-images/blob/main/README.md#available-images), enabling the installation of `pkgconf` as documented in [`doc/build-osx.md`](https://github.com/bitcoin/bitcoin/blob/master/doc/build-osx.md#3-install-required-dependencies). ACKs for top commit: TheCharlatan: Lgtm ACK e2f2698395c2535eeada8d91f270643c77aa7099 Tree-SHA512: 9c9a3e9a3998097ed029aede61879c0e0ddd30e6bf1c36927887d7c38f3af13580efaf0fee0d75fdf344c5e92242530d4454560c62e75ba3f81c7f99d112e3f5
2 daysci, macos: Install `pkgconf` Homebrew's packageHennadii Stepanov
The updated GHA image `20241125.556` is now fully deployed, enabling the installation of `pkgconf` as documented in `doc/build-osx.md`.
3 daysdbwrapper: Bump max file size to 32 MiBMaciej S. Szmigiero
The default max file size for LevelDB is 2 MiB, which results in the LevelDB compaction code generating ~4 disk cache flushes per second when syncing with the Bitcoin network. These disk cache flushes are triggered by fdatasync() syscall issued by the LevelDB compaction code when reaching the max file size. If the database is on a HDD this flush rate brings the whole system to a crawl. It also results in very slow throughput since 2 MiB * 4 flushes per second is about 8 MiB / second max throughput, while even an old HDD can pull 100 - 200 MiB / second streaming throughput. Increase the max file size for LevelDB to 32 MiB instead so the flush rate drops significantly and the system no longer gets so sluggish. The new max file size value chosen is a compromise between the one that works best for HDD and SSD performance, as determined by benchmarks done by various people.
3 daystest: simple ordering optimization to reduce runtimetdb3
3 daysbuild: Set shared linker flags in toolchain fileTheCharlatan
These are required when cross-compiling shared libraries such as the kernel library.
4 daysMerge bitcoin/bitcoin#31371: doc, test: more ephemeral dust follow-upsglozow
160799d9135528dbdea40690f0bb0d56c6c4803a test: refactor: introduce `create_ephemeral_dust_package` helper (Sebastian Falbesoner) 61e18dec306cfb8bc17ad2133ea1867b78000c62 doc: ephemeral policy: add missing closing double quote (Sebastian Falbesoner) Pull request description: This small PR contains ephemeral dust follow-ups mentioned in #30329 that were not tackled in the first follow-up PR #31279: https://github.com/bitcoin/bitcoin/pull/30239#discussion_r1828577696 https://github.com/bitcoin/bitcoin/pull/30239#discussion_r1825279952 Happy to add more if I missed some or anyone has concrete commits to add. ACKs for top commit: rkrux: tACK 160799d9135528dbdea40690f0bb0d56c6c4803a instagibbs: ACK 160799d9135528dbdea40690f0bb0d56c6c4803a tdb3: Code review ACK 160799d9135528dbdea40690f0bb0d56c6c4803a Tree-SHA512: e9a80c6733f1e7fe9e834d81b404f6e8ef7a61fe986f61b3dcdbda1a0bc547145fc279ec02f54361df56cb4e62a6fedaa0f3991c6e084c3a703ed1b1bfbdbe4e
5 daysRemove `src/config` directoryHennadii Stepanov
The `src/config` directory has not been used since the migration to CMake, which disables in-source builds.
6 daysdoc: Use more precise anchor link to codesigning docsJeremy Rand
The "Codesigning" section is what users presumably are looking for when they follow this link.
6 daysdoc: Use more precise anchor links to Xcode SDK extractionJeremy Rand
The "SDK Extraction" section is what users presumably are looking for when they follow these links.
6 daysMerge bitcoin/bitcoin#30986: contrib: skip missing binaries in gen-manpagesAva Chow
ee6185372fc317d3948690997117e42f6b79a5ff gen-manpages: Prompt error if no binaries are found (Andre) 299e2220e9546e7dca1ba5e56bdcfbbf97530fba gen-manpages: implement --skip-missing-binaries (Andre Alves) Pull request description: Instead of stopping the execution of gen-manpages.py when a binary is not found, continue generating manpages for the available binaries and skip the missing ones. A new argument, `--skip-missing-binaries`, has been added to enable this behavior. ```sh ➜ bitcoin git:(fix-gen-manpages) ✗ ./contrib/devtools/gen-manpages.py --help usage: gen-manpages.py [-h] [-s] options: -h, --help show this help message and exit -s, --skip-missing-binaries skip generation for binaries that are not found ``` closes #30985 This PR also includes an error prompt if no binaries are found in the build path. ACKs for top commit: achow101: ACK ee6185372fc317d3948690997117e42f6b79a5ff laanwj: re-ACK ee6185372fc317d3948690997117e42f6b79a5ff Tree-SHA512: af4a0a5e26e508a51ab63f8aa9f98a6d6af9d7682a16791d8a6a61d49e44cb0147453f628ad5910f65d4efa6e3c7b6605c007259c23230b54888845bfaeb050c
6 daysMerge bitcoin/bitcoin#30708: rpc: add getdescriptoractivityAva Chow
37a5c5d83664c31d83fc649d3c8c858bd5f10f21 doc: update descriptors.md for getdescriptoractivity (James O'Beirne) ee3ce6a4f4d35afe7fcab16eff419a6788b02170 test: rpc: add no address case for getdescriptoractivity (James O'Beirne) 811f76f3a511d20750046319b390e225a1151caa rpc: add getdescriptoractivity (James O'Beirne) 25fe087de59e967ce968d35ed77138325eb9a9fa rpc: move-only: move ScriptPubKeyDoc to utils (James O'Beirne) Pull request description: The RPC command `scanblocks` provides a useful way to get a set of blockhashes that have activity relevant to a set of descriptors (`relevant_blocks`). However actually extracting the activity from those blocks is left as an exercise to the end user. This process involves not only generating the (potentially ranged) set of scripts for the descriptor set on the client side (maybe via `deriveaddresses`), but then the user must retrieve each block's contents one-by-one using `getblock <hash>`, which is transmitted over a network link. And that's all before they perform the actual search over block content. There's even more work required to incorporate unconfirmed transactions. This PR introduces an RPC `getdescriptoractivity` that [dovetails](https://bitcoin-irc.chaincode.com/bitcoin-core-dev/2024-08-16#1046393;) with `scanblocks` output, handling the process described above. Users specify the blockhashes (perhaps from `relevant_blocks`) and a set of descriptors; they are then given all spend/receive activity in that set of blocks. This is a very useful tool when implementing lightweight wallets that want neither to require a third-party indexer like electrs, nor the overhead of creating and managing watch-only wallets in Core. This allows Core to be more easily used in a "stateless" manner by wallets, with potentially many nodes interchangeably acting as backends. ### Example usage ``` % ./src/bitcoin-cli scanblocks start \ '["addr(bc1p0cp0vyag6snlta2l7c4am3rue7eef9f72l7uhx52m4v27vfydx9s8tfs7t)"]' \ 857263 { "from_height": 857263, "to_height": 858263, "relevant_blocks": [ "00000000000000000002bc5cc78f5b0913a5230a8f4b0d5060bc9a60900a5a88", "00000000000000000001c5291ed6a40c06d3db5c8fb738567654b24a14b24ecb" ], "completed": true } % ./src/bitcoin-cli getdescriptoractivity \ '["00000000000000000002bc5cc78f5b0913a5230a8f4b0d5060bc9a60900a5a88", "00000000000000000001c5291ed6a40c06d3db5c8fb738567654b24a14b24ecb"]' \ '["addr(bc1p0cp0vyag6snlta2l7c4am3rue7eef9f72l7uhx52m4v27vfydx9s8tfs7t)"]' { "activity": [ { "type": "receive", "amount": 0.00002900, "blockhash": "00000000000000000002bc5cc78f5b0913a5230a8f4b0d5060bc9a60900a5a88", "height": 857907, "txid": "c9d34f202c1f66d80cae76f305350f5fdde910b97cf6ae6bf79f5bcf2a337d06", "vout": 254, "output_spk": { "asm": "1 7e02f613a8d427f5f55ff62bddc47ccfb394953e57fdcb9a8add58af3124698b", "desc": "rawtr(7e02f613a8d427f5f55ff62bddc47ccfb394953e57fdcb9a8add58af3124698b)#yewcd80j", "hex": "51207e02f613a8d427f5f55ff62bddc47ccfb394953e57fdcb9a8add58af3124698b", "address": "bc1p0cp0vyag6snlta2l7c4am3rue7eef9f72l7uhx52m4v27vfydx9s8tfs7t", "type": "witness_v1_taproot" } }, { "type": "spend", "amount": 0.00002900, "blockhash": "00000000000000000001c5291ed6a40c06d3db5c8fb738567654b24a14b24ecb", "height": 858260, "spend_txid": "7f61d1b248d4ee46376f9c6df272f63fbb0c17039381fb23ca5d90473b823c36", "spend_vin": 0, "prevout_txid": "c9d34f202c1f66d80cae76f305350f5fdde910b97cf6ae6bf79f5bcf2a337d06", "prevout_vout": 254, "prevout_spk": { "asm": "1 7e02f613a8d427f5f55ff62bddc47ccfb394953e57fdcb9a8add58af3124698b", "desc": "rawtr(7e02f613a8d427f5f55ff62bddc47ccfb394953e57fdcb9a8add58af3124698b)#yewcd80j", "hex": "51207e02f613a8d427f5f55ff62bddc47ccfb394953e57fdcb9a8add58af3124698b", "address": "bc1p0cp0vyag6snlta2l7c4am3rue7eef9f72l7uhx52m4v27vfydx9s8tfs7t", "type": "witness_v1_taproot" } } ] } ``` ACKs for top commit: instagibbs: reACK 37a5c5d83664c31d83fc649d3c8c858bd5f10f21 achow101: ACK 37a5c5d83664c31d83fc649d3c8c858bd5f10f21 tdb3: Code review and light retest ACK 37a5c5d83664c31d83fc649d3c8c858bd5f10f21 rkrux: re-ACK 37a5c5d83664c31d83fc649d3c8c858bd5f10f21 Tree-SHA512: 04aa51e329c6c2ed72464b9886281d5ebd7511a8a8e184ea81249033a4dad535a12829b1010afc2da79b344ea8b5ab8ed47e426d0bf2eb78ab395d20b1da8dbb
6 daysMerge bitcoin/bitcoin#31337: build: Fix coverage buildsmerge-script
01a7298818d7bd66bb8c800d7cd30ae0a4d3b1d1 build: Avoid using the `-ffile-prefix-map` compiler option (Hennadii Stepanov) Pull request description: This PR follows up on https://github.com/bitcoin/bitcoin/pull/30811, which inadvertently broke coverage builds: 1. For GCC. See https://github.com/bitcoin/bitcoin/pull/31337#issuecomment-2490598011. 2. For [Clang's source-based code coverage](https://clang.llvm.org/docs/SourceBasedCodeCoverage.html) in the OSS-Fuzz environment due to its use of other options and a third party script. See https://issues.oss-fuzz.com/issues/379122777. The root cause of this regression is that the `-ffile-prefix-map` option implicitly applies: - [`-fprofile-prefix-map`](https://gcc.gnu.org/onlinedocs/gcc/Instrumentation-Options.html#index-fprofile-prefix-map) when using GCC. - [`-fcoverage-prefix-map`](https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang-fcoverage-prefix-map) when using Clang. ~This behaviour is not explicitly documented~ See https://github.com/llvm/llvm-project/commit/994c544c18c86cbdb6536aae5d27ef7e2f592486. With this PR, only the `-fdebug-prefix-map` and `-fmacro-prefix-map` options are applied. **Note for reviewers:** Please ensure that https://github.com/bitcoin/bitcoin/issues/30799 is not reintroduced. ACKs for top commit: maflcko: review ACK 01a7298818d7bd66bb8c800d7cd30ae0a4d3b1d1 dergoegge: tACK 01a7298818d7bd66bb8c800d7cd30ae0a4d3b1d1 Tree-SHA512: 70b11d769d2653c1528ffe1d430b79f20b061037bcb1db6addb261aa2c7be20c4bc4328ccff919adb72e81aa2e65b885c970cce3837aeeb3ca0a98b32b83d2e3
6 daystest: Add missing node.setmocktime(self.mocktime) to p2p_ibd_stalling.pyMarcoFalke
This was forgotten by myself in commit fa5b58ea01fac1adb6336b8b6b5217193295c695
6 daysMerge bitcoin/bitcoin#31323: guix: swap `moreutils` for just `sponge`merge-script
e8f50c5debe2b866e59872dbbf22db0fd592ec04 guix: swap moreutils for just sponge (fanquake) Pull request description: Switch to building the only `moreutils` utility we actually need (`sponge`). This results in having less unused stuff in the Guix environment (i.e all the other `moreutils` utilities), and, the dependency graph is simplified. i.e we no-longer have a dependency on `perl`, `docbook` etc, for this package. Current `moreutils` dependency graph: ![moreutils](https://github.com/user-attachments/assets/b91a8609-1434-4094-ad12-93332737ef0f) In the Guix env, `chronic`, `combine`, `errno`, `ifdata`, `ifne`, `isutf8`, `lckdo`, `mispipe`, `parallel`, `pee`, `ts`, `vidir`, `vipe` & `zrun` (plus their `*.real` variants) are removed. ACKs for top commit: hebasto: ACK e8f50c5debe2b866e59872dbbf22db0fd592ec04. TheCharlatan: Re-ACK e8f50c5debe2 Tree-SHA512: 3687ec4a821ff79c26ee839d2af879166edb7e179287a9574eca8fbf34bed1fea8fcdad822a2140d0a0089e1820f3fef29a6100e0e8da788896e1f7bac5ec3e6
7 daysdoc: update descriptors.md for getdescriptoractivityJames O'Beirne
7 daystest: rpc: add no address case for getdescriptoractivityJames O'Beirne
Co-authored-by: Greg Sanders <gsanders87@gmail.com>
7 daysrpc: add getdescriptoractivityJames O'Beirne
7 daysgen-manpages: Prompt error if no binaries are foundAndre
7 daysMerge bitcoin/bitcoin#31172: build: increase minimum supported Windows to 10.0Ava Chow
ee1128ead846698db5e5633f193883837f2fbc64 doc: update stack-clash-protection comment re mingw-w64 (fanquake) bf47448f152316145d9abb9b8abc3b564194fe46 test: drop check for Windows < 10 (fanquake) 35b898c47f8af6807c4a5f404af165c663c81a99 release: target Windows 10 or later (fanquake) 398754e70bc96b86ad0327fbe70fafdf27bb4e35 depends: target Windows 10 when building for mingw-w64 (fanquake) Pull request description: Follows up to https://github.com/bitcoin/bitcoin/pull/31048#discussion_r1803165670. We definitely cannot claim that Bitcoin Core is "supported and extensively tested on" on Windows 7. Note that #30997 is also increasing the minimum required Windows version (for the GUI) to 10. ACKs for top commit: hodlinator: cr-ACK ee1128ead846698db5e5633f193883837f2fbc64 davidgumberg: ACK https://github.com/bitcoin/bitcoin/commit/ee1128ead846698db5e5633f193883837f2fbc64 achow101: ACK ee1128ead846698db5e5633f193883837f2fbc64 hebasto: re-ACK ee1128ead846698db5e5633f193883837f2fbc64, only rebased, a commit message and a comment have been amended since my recent [review](https://github.com/bitcoin/bitcoin/pull/31172#pullrequestreview-2415452160). TheCharlatan: ACK ee1128ead846698db5e5633f193883837f2fbc64 Tree-SHA512: 245e0bac3d63414d919a1948661fef4ff79359faaacaf19d64abd91cc62e822797fb1cf3379e340bfdf9a85c0b88fd99a90eda450dd4218b6213ab78aefb1374
7 daysMerge bitcoin/bitcoin#31364: refactor: Fix remaining clang-tidy ↵Ava Chow
performance-unnecessary-copy-initialization errors 3305972f7bfd78181566e4297891c2dd7cae0f2b refactor: Fix remaining clang-tidy performance-unnecessary-copy-initialization errors (Lőrinc) Pull request description: A follow-up of https://github.com/bitcoin/bitcoin/pull/31305. The `clang-tidy` check can be run via: ```bash cmake -B build -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DBUILD_BENCH=ON -DBUILD_FUZZ_BINARY=ON -DBUILD_FOR_FUZZING=ON && cmake --build build -j$(nproc) run-clang-tidy -quiet -p build -j $(nproc) -checks='-*,performance-unnecessary-copy-initialization' | grep -v 'clang-tidy' ``` ACKs for top commit: maflcko: review ACK 3305972f7bfd78181566e4297891c2dd7cae0f2 🏀 achow101: ACK 3305972f7bfd78181566e4297891c2dd7cae0f2b theuni: ACK the much more constrained 3305972f7bfd78181566e4297891c2dd7cae0f2b. hebasto: ACK 3305972f7bfd78181566e4297891c2dd7cae0f2b, tested with clang 19.1.5 + clang-tidy. Tree-SHA512: 64dc3b35f33b7ac064ebf9e56e9f0ceca5d26681a1379dcd2168987960020fe1a282ec4de8c353c82ddf0a534a4866b607fc691e690010c6cea78887045897fb
7 daysMerge bitcoin/bitcoin#31305: refactor: Fix remaining clang-tidy ↵Ava Chow
performance-inefficient-vector errors 11f3bc229ccd4b20191855fb1df882cfa6145264 refactor: Reserve vectors in fuzz tests (Lőrinc) 152fefe7a22b7da3cfe2815083634bece9c5654e refactor: Preallocate PrevectorFillVector(In)Direct without vector resize (Lőrinc) a774c7a339c26b1409c9a9572d2b52810ee64062 refactor: Fix remaining clang-tidy performance-inefficient-vector errors (Lőrinc) Pull request description: PR inspired by https://github.com/bitcoin/bitcoin/pull/29608#issuecomment-2437847307 (and https://github.com/bitcoin/bitcoin/pull/29458, https://github.com/bitcoin/bitcoin/pull/29606, https://github.com/bitcoin/bitcoin/pull/29607, https://github.com/bitcoin/bitcoin/pull/30093). The `clang-tidy` check can be run via: ```bash cmake -B build -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DBUILD_BENCH=ON -DBUILD_FUZZ_BINARY=ON -DBUILD_FOR_FUZZING=ON && cmake --build build -j$(nproc) run-clang-tidy -quiet -p build -j $(nproc) -checks='-*,performance-inefficient-vector-operation' | grep -v 'clang-tidy' ``` which revealed 3 tests and 1 prod warning (+ fuzz and benching, found by hebasto). Even though the tests aren't performance critical, getting rid of these warnings (for which the checks were already enabled via https://github.com/bitcoin/bitcoin/blob/master/src/.clang-tidy#L18, see below), the fix was quite simple. <details> <summary>clang-tidy -list-checks</summary> ```bash cd src && clang-tidy -list-checks | grep 'vector' performance-inefficient-vector-operation ``` </details> <details> <summary>Output before the change</summary> ``` src/test/rpc_tests.cpp:434:9: error: 'emplace_back' is called inside a loop; consider pre-allocating the container capacity before the loop [performance-inefficient-vector-operation,-warnings-as-errors] 433 | for (int64_t i = 0; i < 100; i++) { 434 | feerates.emplace_back(1 ,1); | ^ src/test/checkqueue_tests.cpp:366:13: error: 'emplace_back' is called inside a loop; consider pre-allocating the container capacity before the loop [performance-inefficient-vector-operation,-warnings-as-errors] 365 | for (size_t i = 0; i < 3; ++i) { 366 | tg.emplace_back( | ^ src/test/cuckoocache_tests.cpp:231:9: error: 'emplace_back' is called inside a loop; consider pre-allocating the container capacity before the loop [performance-inefficient-vector-operation,-warnings-as-errors] 228 | for (uint32_t x = 0; x < 3; ++x) 229 | /** Each thread is emplaced with x copy-by-value 230 | */ 231 | threads.emplace_back([&, x] { | ^ src/rpc/output_script.cpp:127:17: error: 'push_back' is called inside a loop; consider pre-allocating the container capacity before the loop [performance-inefficient-vector-operation,-warnings-as-errors] 126 | for (unsigned int i = 0; i < keys.size(); ++i) { 127 | pubkeys.push_back(HexToPubKey(keys[i].get_str())); | ^ ``` And the fuzz and benchmarks, noticed by hebasto: https://github.com/bitcoin/bitcoin/pull/31305#issuecomment-2483124499 </details> ACKs for top commit: maflcko: review ACK 11f3bc229ccd4b20191855fb1df882cfa6145264 🎦 achow101: ACK 11f3bc229ccd4b20191855fb1df882cfa6145264 theuni: ACK 11f3bc229ccd4b20191855fb1df882cfa6145264 hebasto: ACK 11f3bc229ccd4b20191855fb1df882cfa6145264, tested with clang 19.1.5 + clang-tidy. Tree-SHA512: 41691c19f35c63b922a95407617a54f9bff1af3f95f99d15642064f321df038aeb1ae5f061f854ed913f69036807cc28fa6222b2ff4c24ef43b909027fa0f9b3
7 daysMerge bitcoin/bitcoin#31365: interpreter: Use the same type for ↵Ava Chow
SignatureHash in the definition c288c790cd9abe91e53164aba5d975ef1e26ee3f interpreter: Use the same type for SignatureHash in the definition (TheCharlatan) Pull request description: This was missed during the original PR switching the nHashType argument to int32_t in SignatureHash in bc52cda1f3c007bdf1ed00aa3011e207c7531017. The problem was discovered after running into a linker error when attempting to link this code as a static library using the header as a declaration with a riscv32 bare metal toolchain. The compiler would error with: ``` /opt/riscv-ilp32/lib/gcc/riscv32-unknown-elf/13.2.0/../../../../riscv32-unknown-elf/bin/ld: build_kernel_riscv/src/libbitcoin_consensus.a(interpreter.cpp.o): in function `GenericTransactionSignatureChecker<CTransaction>::CheckECDSASignature(std::vector<unsigned char, std::allocator<unsigned char> > const&, std::vector<unsigned char, std::allocator<unsigned char> > const&, CScript const&, SigVersion) const': /home/user/bitcoin/build_kernel_riscv/./script/interpreter.cpp:2043:(.text._ZNK34GenericTransactionSignatureCheckerI12CTransactionE19CheckECDSASignatureERKSt6vectorIhSaIhEES6_RK7CScript10SigVersion[_ZNK34GenericTransactionSignatureCheckerI12CTransactionE19CheckECDSASignatureERKSt6vectorIhSaIhEES6_RK7CScript10SigVersion]+0xee): undefined reference to `uint256 SignatureHash<CTransaction>(CScript const&, CTransaction const&, unsigned int, int, long long const&, SigVersion, PrecomputedTransactionData const*)' ``` With this patch it is possible to link against the static consensus library and produce a fully static executable. ACKs for top commit: l0rinc: ACK c288c790cd9abe91e53164aba5d975ef1e26ee3f maflcko: review ACK c288c790cd9abe91e53164aba5d975ef1e26ee3f 🐺 achow101: ACK c288c790cd9abe91e53164aba5d975ef1e26ee3f theuni: Obvious fix ACK c288c790cd9abe91e53164aba5d975ef1e26ee3f. BrandonOdiwuor: Code Review ACK c288c790cd9abe91e53164aba5d975ef1e26ee3f Tree-SHA512: 74f283637f0a9cd0cab65d3502f2f8fc4fb983c7672f24e7a76ba2eb6e53b4a81cca0aacb610ef39ac0a454305be594ab440a697ae3718987bf5dbcbc7146a31
7 daysMerge bitcoin/bitcoin#31221: ci: Split out native fuzz jobs for macOS and ↵Ava Chow
windows (take 2) b031b7910d62819443813b91705211c466933a53 [ci] Split out native fuzz jobs for macOS and windows (dergoegge) Pull request description: Split out two new CI jobs (for native macOS and windows) that run the fuzz tests on the qa-assets input corpora. In both jobs the fuzz binary is built with `-DBUILD_FOR_FUZZING` to enable `Assume` assertions as well as `FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION`. ACKs for top commit: maflcko: re-lgtm ACK b031b7910d62819443813b91705211c466933a53 achow101: ACK b031b7910d62819443813b91705211c466933a53 hebasto: ACK b031b7910d62819443813b91705211c466933a53. Tree-SHA512: 7d0dc5a9cb299f6f4596dd9a5526b6aaf82efc6eba308bdc9d8b0a45f79dea87204fb6cd4b2ea2a1bd952466b2e958d64021999296d110d7a83c1667f4de51fe
8 daystest: refactor: introduce `create_ephemeral_dust_package` helperSebastian Falbesoner
8 daysdoc: ephemeral policy: add missing closing double quoteSebastian Falbesoner
8 daysrefactor: Fix remaining clang-tidy ↵Lőrinc
performance-unnecessary-copy-initialization errors
8 daysrefactor: Reserve vectors in fuzz testsLőrinc
* Since the main LIMITED_WHILE stated `outpoints.size() < 200'000`, I've presized outpoints accordingly. * `tx_mut.vin` and `tx_mut.vout` weren't caught by the clang-tidy, but addressed them anyway.
8 daysrefactor: Preallocate PrevectorFillVector(In)Direct without vector resizeLőrinc
The prevector benchmarks were likely not trying to measure vector resize performance.
8 daysrefactor: Fix remaining clang-tidy performance-inefficient-vector errorsLőrinc
8 daysMerge bitcoin/bitcoin#31279: policy: ephemeral dust followupsglozow
466e4df3fb83ef82b6add22e202e3a70dbf83a12 assert_mempool_contents: assert not duplicates expected (Greg Sanders) ea5db2f26920bce7caf85e5c1b70a527cc3b82c2 functional: only generate required blocks for test (Greg Sanders) d033acb608391f3ba95864cdaa7025cc00888ea2 fuzz: package_eval: let fuzzer run out input in main tx creation loop (Greg Sanders) ba35a570c5d4ade342cb32630ffaa5f5bdd5e826 CheckEphemeralSpends: return boolean, and set child state and txid outparams (Greg Sanders) cf0cee1617c0bf065b295a9807a4c7de0558393d func: add note about lack of 1P1C propagation in tree submitpackage (Greg Sanders) 84242903043bb14fca917790c9381c411817c9f7 unit test: ephemeral_tests is using a dust relay rate, not minrelay (Greg Sanders) d9cfa5fc4eb03fb425fd5d46d3b72db72fbc3243 CheckEphemeralSpends: no need to iterate inputs if no parent dust (Greg Sanders) 87b26e3dc07b283cb05064ccde179c6777397ce8 func: rename test_free_relay to test_no_minrelay_fee (Greg Sanders) e5709a4a41ecd8c7b1e695871c1a6153864e76ae func: slight elaboration on submitpackage restriction (Greg Sanders) 08e969bd1076c99e0b43ecd01dd790b9ebd04d0a RPC: only enforce dust rules on priority when standardness active (Greg Sanders) ca050d12e76f61af7e60fa564dd04db08f2b8f38 unit test: adapt to changing MAX_DUST_OUTPUTS_PER_TX (Greg Sanders) 7c3490169c9e20375d3f525f81798fcced01a30a fuzz: package_eval: move last_tx inside txn ctor (Greg Sanders) 445eaed182a714e65ee2fe679ecdf7a86055313b fuzz: use optional status instead of should_rbf_eph_spend (Greg Sanders) 4dfdf615b9dbdc2204347029bea1db974a88e392 fuzz: remove unused TransactionsDelta validation interface (Greg Sanders) 09ce926e4a14f183cfab387d2531519e000ea176 func: cleanup reorg test comment (Greg Sanders) 768a0c1889e57ae8bb3596ac7aa9fd2b1ecab9fa func: cleanup test_dustrelay comments (Greg Sanders) bedca1cb6633f4b9a5f8f532f27e084f23f04a2e fuzz: Directly place transactions in vector (Greg Sanders) c041ad6eccb5aae87648cf510257a06f711b1bc3 fuzz: explain package eval coin tracking better (Greg Sanders) bc0d98ea6126ea95526c2b70721131764c6ff3a7 fuzz: remove dangling reference to GetEntry (Greg Sanders) 15b6cbf07f5c3db650a0a8cccf46d3fbe031aef0 unit test: make dust index less magical (Greg Sanders) 5fbcfd12b8f508c87740883435800b6260fa308b unit test: assert txid returned on CheckEphemeralSpends failures (Greg Sanders) ef94d84b4e469d8dbd63e63598d3b8d53595c695 bench: remove unnecessary CMTxn constructors (Greg Sanders) c5c10fd317c6b4c033f3001757e6975b8b9a4942 ephemeral policy doxygen cleanup (Greg Sanders) dd9044b8d4624fb7ffd432b6b89ab99290957a3e ephemeral policy: IWYU (Greg Sanders) c6859ce2de7531e42fc304b69d74ca0d8e99ea29 Move+rename GetDustIndexes -> GetDust (Greg Sanders) 62016b32300123a44599e649b4f35a3a0f32565f Use std::ranges for ephemeral policy checks (Greg Sanders) 3ed930a1f41f7d7160c6ede5dcf3d4d5f1cfa876 Have HasDust and PreCheckValidEphemeralTx take CTransaction (Greg Sanders) 04a614bf9a7bb6abad150a3edf8938358f54d55b Rename CheckValidEphemeralTx to PreCheckEphemeralTx (Greg Sanders) cbf1a47d6062ec2c2c4a788636e8c950a0271997 CheckEphemeralSpends: only compute txid of tx when needed (Greg Sanders) Pull request description: Follow-up to https://github.com/bitcoin/bitcoin/pull/30239 Here are the parent PR's comments that should be addressed by this PR: https://github.com/bitcoin/bitcoin/pull/30239/files#r1834529646 https://github.com/bitcoin/bitcoin/pull/30239/files#r1831247308 https://github.com/bitcoin/bitcoin/pull/30239/files#r1832622481 https://github.com/bitcoin/bitcoin/pull/30239/files#r1831195216 https://github.com/bitcoin/bitcoin/pull/30239#discussion_r1835805164 https://github.com/bitcoin/bitcoin/pull/30239#discussion_r1835805164 https://github.com/bitcoin/bitcoin/pull/30239#discussion_r1834639096 https://github.com/bitcoin/bitcoin/pull/30239#discussion_r1834624976 https://github.com/bitcoin/bitcoin/pull/30239#discussion_r1834619709 https://github.com/bitcoin/bitcoin/pull/30239#discussion_r1834610434 https://github.com/bitcoin/bitcoin/pull/30239#discussion_r1834504436 https://github.com/bitcoin/bitcoin/pull/30239#discussion_r1834500036 https://github.com/bitcoin/bitcoin/pull/30239#discussion_r1832985488 https://github.com/bitcoin/bitcoin/pull/30239#discussion_r1830929809 https://github.com/bitcoin/bitcoin/pull/30239#discussion_r1832376920 https://github.com/bitcoin/bitcoin/pull/30239#discussion_r1832755799 https://github.com/bitcoin/bitcoin/pull/30239#discussion_r1832492686 https://github.com/bitcoin/bitcoin/pull/30239#discussion_r1832980576 https://github.com/bitcoin/bitcoin/pull/30239#discussion_r1832784278 https://github.com/bitcoin/bitcoin/pull/30239#discussion_r1837989979 https://github.com/bitcoin/bitcoin/pull/30239#discussion_r1830996993 https://github.com/bitcoin/bitcoin/pull/30239#discussion_r1830997947 https://github.com/bitcoin/bitcoin/pull/30239#discussion_r1830012890 https://github.com/bitcoin/bitcoin/pull/30239#discussion_r1830037288 https://github.com/bitcoin/bitcoin/pull/30239#discussion_r1830977092 https://github.com/bitcoin/bitcoin/pull/30239#discussion_r1832622481 https://github.com/bitcoin/bitcoin/pull/30239#discussion_r1834726168 https://github.com/bitcoin/bitcoin/pull/30239#discussion_r1832453654 https://github.com/bitcoin/bitcoin/pull/30239#discussion_r1848488226 ACKs for top commit: naumenkogs: ACK 466e4df3fb83ef82b6add22e202e3a70dbf83a12 hodlinator: ACK 466e4df3fb83ef82b6add22e202e3a70dbf83a12 theStack: lgtm ACK 466e4df3fb83ef82b6add22e202e3a70dbf83a12 glozow: utACK 466e4df3fb83ef82b6add22e202e3a70dbf83a12 Tree-SHA512: 89106f695755c238b84e0996b89446c0733e10a94c867f656d516d26697d2efe38dfc332188b8589a0a26a3d2bd2c88c6ab70c108e187ce5bfcb91bbf3fb0391
8 daysinterpreter: Use the same type for SignatureHash in the definitionTheCharlatan
This was missed during the original PR switching the nHashType argument to int32_t in SignatureHash in bc52cda1f3c007bdf1ed00aa3011e207c7531017. The problem was discovered after running into a linker error when attempting to link this code as a static library using the header as a declaration with a riscv32 bare metal toolchain. The compiler would error with: /opt/riscv-ilp32/lib/gcc/riscv32-unknown-elf/13.2.0/../../../../riscv32-unknown-elf/bin/ld: build_kernel_riscv/src/libbitcoin_consensus.a(interpreter.cpp.o): in function `GenericTransactionSignatureChecker<CTransaction>::CheckECDSASignature(std::vector<unsigned char, std::allocator<unsigned char> > const&, std::vector<unsigned char, std::allocator<unsigned char> > const&, CScript const&, SigVersion) const': /home/user/bitcoin/build_kernel_riscv/./script/interpreter.cpp:2043:(.text._ZNK34GenericTransactionSignatureCheckerI12CTransactionE19CheckECDSASignatureERKSt6vectorIhSaIhEES6_RK7CScript10SigVersion[_ZNK34GenericTransactionSignatureCheckerI12CTransactionE19CheckECDSASignatureERKSt6vectorIhSaIhEES6_RK7CScript10SigVersion]+0xee): undefined reference to `uint256 SignatureHash<CTransaction>(CScript const&, CTransaction const&, unsigned int, int, long long const&, SigVersion, PrecomputedTransactionData const*)'
8 days[ci] Split out native fuzz jobs for macOS and windowsdergoegge
9 dayscmake, qt: Use absolute paths for includes in MOC-generated filesHennadii Stepanov
This change resolves build issues that occur when the source or build directory is symlinked.
10 dayscmake: Build `secp256k1` only when requiredHennadii Stepanov
10 dayscmake: Ensure script correctness when no targets are specifiedHennadii Stepanov
11 daysguix: swap moreutils for just spongefanquake
We build the only moreutils utility we actually need (sponge), have less unused stuff in the Guix environment, and, the dependency graph is simplified. i.e we no-longer have a dependency on perl, docbook etc, for this package.
11 daysbuild: Avoid using the `-ffile-prefix-map` compiler optionHennadii Stepanov
The `-ffile-prefix-map` compiler option implies `-fprofile-prefix-map` on GCC or `-fcoverage-prefix-map` on Clang, which can lead to issues with coverage builds. This change applies only the options necessary for build reproducibility and accurate source location messages.