aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-02-11cmake: use per-target components for bitcoin-qt and bitcoin-guiCory Fields
This makes the usage consistent with the next commit, which will add a per-target component for each binary.
2025-02-11ci: don't try to install for a fuzz buildCory Fields
Currently the manpages are installed, but that is a bug. An upcoming commit will avoid installing manpages for targets that aren't configured, which removes the "install" target for fuzz builds.
2025-02-11Merge bitcoin/bitcoin#31022: test: Add mockable steady clock, tests for PCP ↵Ava Chow
and NATPMP implementations 0f716f28896c6edfcd4e2a2b25c88f478a029c7b qa: cover PROTOCOL_ERROR variant in PCP unit tests (Antoine Poinsot) fc700bb47fd8b6ac58f612b932aef0e361686cc3 test: Add tests for PCP and NATPMP implementations (laanwj) caf952103317a7fa8bd2bceb35d4e8ace5968906 net: Use mockable steady clock in PCP implementation (laanwj) 03648321ecb704b69e47eed7e3df6a779aee8f11 util: Add mockable steady_clock (laanwj) ab1d3ece026844e682676673b8a461964a5b3ce4 net: Add optional length checking to CService::SetSockAddr (laanwj) Pull request description: Add a NodeSteadyClock, a steady_clock that can be mocked with millisecond precision. Use this in the PCP implementation. Then add a mock for a simple scriptable UDP server,, which is used to test various code paths (including successful mappings, timeouts and errors) in the PCP and NATPMP implementations. Includes "net: Add optional length checking to CService::SetSockAddr" from #31014 as a prerequisite. ACKs for top commit: darosior: re-ACK 0f716f28896c6edfcd4e2a2b25c88f478a029c7b i-am-yuvi: Concept ACK 0f716f28896c6edfcd4e2a2b25c88f478a029c7b achow101: ACK 0f716f28896c6edfcd4e2a2b25c88f478a029c7b Tree-SHA512: 6f91b24e6fe46a3fded7a13972efd77c98e6ef235f8898e4ae44068c5df32d1cdabb22cb66c351b338dc98cb2073b624e43607a28107f4999302bfbe7a138229
2025-02-11Merge bitcoin/bitcoin#31834: build: disable bitcoin-node if daemon is not builtRyan Ofsky
2ffea09820e66e25ab639c9fc14810fd96ad6213 build: disable bitcoin-node if daemon is not built (Sjors Provoost) Pull request description: When building for fuzzing with multiprocess enabled, we were still trying to build `bitcoin-node`. This PR fixes that, by applying a similar check as for `bitcoin-gui`. Before: ``` cmake -B build -DBUILD_FOR_FUZZING=ON -DWITH_MULTIPROCESS=ON ... Configure summary ================= Executables: bitcoind ............................ OFF bitcoin-node (multiprocess) ......... ON bitcoin-qt (GUI) .................... OFF bitcoin-gui (GUI, multiprocess) ..... OFF ... cmake --build build ... [ 84%] Built target bitcoin-node ``` After: ``` bitcoin-node (multiprocess) ......... OFF ``` And no `bitcoin-node` target gets built (not to be confused with `bitcoin_node`). ACKs for top commit: hebasto: ACK 2ffea09820e66e25ab639c9fc14810fd96ad6213. ryanofsky: Code review ACK 2ffea09820e66e25ab639c9fc14810fd96ad6213 laanwj: Code review ACK 2ffea09820e66e25ab639c9fc14810fd96ad6213 Tree-SHA512: bdb0b62049f77929d5c084bf98a076e9933de91eb30853ed89edd23cc81b3d4aec4cd57c9a9e21cf1d6930885f8c408dda830db6884b4e326c7fb348f1fbab4c
2025-02-11test: `-debug=0` and `-debug=none` behave similarly to `-nodebug`Daniela Brozzoni
2025-02-11logging: Ensure -debug=0/none behaves consistently with -nodebugDaniela Brozzoni
Previously, -nodebug cleared all prior -debug configurations in the command line while allowing subsequent debug options to be applied. However, -debug=0 and -debug=none completely disabled debugging, even for categories specified afterward. This commit ensures consistency by making -debug=0 and -debug=none behave like -nodebug: they now clear previously set debug configurations but do not disable debugging for categories specified later. Co-Authored-By: Ryan Ofsky <ryan@ofsky.org>
2025-02-11test: `-nodebug` clears previously set debug optionsDaniela Brozzoni
2025-02-11depends: add missing Darwin objcopyfanquake
Our CMake toolchain for a Darwin cross build currently contains: ```bash set(CMAKE_AR "/usr/bin/llvm-ar") set(CMAKE_RANLIB "/usr/bin/llvm-ranlib") set(CMAKE_STRIP "/usr/bin/llvm-strip") set(CMAKE_OBJCOPY "arm64-apple-darwin-objcopy") set(CMAKE_OBJDUMP "/usr/bin/llvm-objdump") ``` `objcopy` isn't currently used for the Darwin build (only for Linux and splitting the debug symbols), but we shouldn't be producing a toolchain file that refers to nonexistent tools.
2025-02-11Merge bitcoin/bitcoin#31837: test: add missing sync to p2p_tx_download.pymerge-script
8fe552fe6e0f1fb3600d4c5bc53b4873def6e94e test: add missing sync to p2p_tx_download.py (Martin Zumsande) Pull request description: If the node hasn't processed the inv from the outbound peer before the mocktime bump, the peer won't be preferred after the other inv timeouts, failing the test . Therefore, add a sync, just like there is one after the `send_message` calls in the previous lines. Fixes #31833 ACKs for top commit: maflcko: lgtm ACK 8fe552fe6e0f1fb3600d4c5bc53b4873def6e94e instagibbs: ACK 8fe552fe6e0f1fb3600d4c5bc53b4873def6e94e Tree-SHA512: fda935d8a4081b5ecae96f5a73c04f4bb91feaeb09b5c159ffd45cf16668c4345ff268c57f383ba7c7ff544ee07b21f97aa28f257ade809c18b9310837795e7a
2025-02-10Merge bitcoin/bitcoin#30623: test: Fuzz the human-readable part of bech32 as ↵Ava Chow
well 9b7023d31a3ec95f66b45f0ecb47e79762d74854 Fuzz HRP of bech32 as well (Lőrinc) c1a5d5c100b1628456acfa6129e303737f0ad4d3 Split out bech32 separator char to header (Lőrinc) Pull request description: Instead of the static "bc" human-readable part, it's now randomly generated based on https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki and the extra restrictions in the code: > The human-readable part, which is intended to convey the type of data, or anything else that is relevant to the reader. This part MUST contain 1 to 83 US-ASCII characters, with each character having a value in the range [33-126]. HRP validity may be further restricted by specific applications. Since `bech32::Encode` rejects uppercase letters, we're actually generating values in the `[33-126] - ['A'-'Z']` range. Split out of https://github.com/bitcoin/bitcoin/pull/30596/files#r1706957219 ACKs for top commit: sipa: ACK 9b7023d31a3ec95f66b45f0ecb47e79762d74854 achow101: ACK 9b7023d31a3ec95f66b45f0ecb47e79762d74854 marcofleon: Code review ACK 9b7023d31a3ec95f66b45f0ecb47e79762d74854. The separation into two targets and the new `GenerateRandomHRP` seem fine to me. brunoerg: code review ACK 9b7023d31a3ec95f66b45f0ecb47e79762d74854 Tree-SHA512: 22a261b8e7b5516e98f4e7990811954454595438a49a10191ed4ca42b5c71c5054fcc73f2d94e23b498ea833c7f1d5adb225f537ef1a24d15b428259450cdf98
2025-02-10Merge bitcoin/bitcoin#31614: test: expect that files may disappear from ↵Ava Chow
/proc/PID/fd/ b2e9fdc00f5c40c241a37739f7b73b74c2181e39 test: expect that files may disappear from /proc/PID/fd/ (Vasil Dimov) Pull request description: `get_socket_inodes()` calls `os.listdir()` and then iterates on the results using `os.readlink()`. However a file may disappear from the directory after `os.listdir()` and before `os.readlink()` resulting in a `FileNotFoundError` exception. It is expected that this may happen for `bitcoind` which is running and could open or close files or sockets at any time. Thus ignore the `FileNotFoundError` exception. ACKs for top commit: arejula27: ACK [`b2e9fdc`](https://github.com/bitcoin/bitcoin/pull/31614/commits/b2e9fdc00f5c40c241a37739f7b73b74c2181e39) sipa: utACK b2e9fdc00f5c40c241a37739f7b73b74c2181e39 achow101: ACK b2e9fdc00f5c40c241a37739f7b73b74c2181e39 theuni: utACK b2e9fdc00f5c40c241a37739f7b73b74c2181e39 hodlinator: ACK b2e9fdc00f5c40c241a37739f7b73b74c2181e39 Tree-SHA512: 8eb05393e4de4307a70af446c3fc7e8f7dc3f08bf9d68d74d02b0e4e900cfd4865249f297be31f1fd7b05ffea45eb855c5cfcd75704167950c1deb4f17109f33
2025-02-10build: set build type and per-build-type flags as early as possibleCory Fields
With the exception of the first c++ checks, this ensures that compiler tests are never run with the wrong build type's flags. Co-Authored-By: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
2025-02-10test: add missing sync to p2p_tx_download.pyMartin Zumsande
This prevents intermittent failures - if the node hasn't processed the inv from the outbound peer before the mocktime bump, the peer won't be preferred after the other inv timeouts, failing the test . Therefore, add a sync, just like there is one after the send_message calls in the previous lines.
2025-02-10test: Test migration of a solvable script with no privkeysAva Chow
The legacy wallet will be able to solve output scripts where the redeemScript or witnessScript is known, but does not know any of the private keys involved in that script. These should be migrated to the solvables wallet.
2025-02-10test: Test migration of taproot output scriptsAva Chow
2025-02-10test: Test migration of miniscript in legacy walletsAva Chow
2025-02-10wallet migration: Determine Solvables with CanProvideAva Chow
LegacySPKM would determine whether it could provide any script data to a transaction through the use of the CanProvide function. Instead of partially reversing signing logic to figure out the output scripts of solvable things, we use the same candidate set approach in GetScriptPubKeys() and instead filter the candidate set first for things that are ISMINE_NO, and second with CanProvide(). This should give a more accurate solvables wallet.
2025-02-10migration: Skip descriptors which do not parseAva Chow
InferDescriptors can sometimes make descriptors which are actually invalid and cannot be parsed. Detect and skip such descriptors by doing a Parse() check before adding the descriptor to the wallet.
2025-02-10legacy spkm: use IsMine() to extract watched output scriptsAva Chow
Instead of (partially) trying to reverse IsMine() to get the output scripts that a LegacySPKM would track, we can preserve it in migration only code and utilize it to get an accurate set of output scripts. This is accomplished by computing a set of output script candidates from map(Crypted)Keys, mapScripts, and setWatchOnly. This candidate set is an upper bound on the scripts tracked by the wallet. Then IsMine() is used to filter to the exact output scripts that LegacySPKM would track. By changing GetScriptPubKeys() this way, we can avoid complexities in reversing IsMine() and get a more complete set of output scripts.
2025-02-10legacy spkm: Move CanProvide to LegacyDataSPKMAva Chow
This function will be needed in migration
2025-02-10tests: Test migration of additional P2WSH scriptsAva Chow
2025-02-10Merge bitcoin/bitcoin#31819: doc: swap CPPFLAGS for APPEND_CPPFLAGSmerge-script
ea687d202934ee9aa26912cda21993da219cd418 doc: swap CPPFLAGS for APPEND_CPPFLAGS (fanquake) Pull request description: `APPEND_CPPFLAGS` will be understood by our CMake, whereas `CPPFLAGS` will not. Attempting what is currently documented will just give: ```bash CMake Warning: Ignoring extra path from command line: "CPPFLAGS=-DDEBUG_LOCKCONTENTION" ``` ACKs for top commit: fjahr: ACK ea687d202934ee9aa26912cda21993da219cd418 hebasto: ACK ea687d202934ee9aa26912cda21993da219cd418. Tree-SHA512: b8d3359b77a813535a4fa715619b815cd88e5440950f7d4cd045514e6b45d3f1c7f62061315c8581d0a99c0aec38340d34008be05657d198d868b241d19b7828
2025-02-10build: disable bitcoin-node if daemon is not builtSjors Provoost
Co-authored-by: Russell Yanofsky <russ@yanofsky.org>
2025-02-10Merge bitcoin/bitcoin#30205: test: add mocked Sock that can read/write ↵Ryan Ofsky
custom data and/or CNetMessages b448b014947093cd217dbde47c8fb9e6c2bc8ba3 test: add a mocked Sock that allows inspecting what has been Send() to it (Vasil Dimov) f1864148c4a091afd63be75bc1ff14ae93383523 test: put the generic parts from StaticContentsSock into a separate class (Vasil Dimov) 4b58d55878db55372d1b09de49c6caf363fe3c06 test: move the implementation of StaticContentsSock to .cpp (Vasil Dimov) Pull request description: Put the generic parts from `StaticContentsSock` into a separate class `ZeroSock` so that they can be reused in other mocked `Sock` implementations. Add a new `DynSock` whose `Recv()` and `Send()` methods can be controlled after the object is created. To achieve that, the caller/creator of `DynSock` provides to its constructor two pipes (FIFOs) - recv-pipe and send-pipe. Whatever data is written to recv-pipe is later received by `DynSock::Recv()` method and whatever data is written to the socket using `DynSock::Send()` can later be found in the send-pipe. For convenience there are also two methods to send and receive `CNetMessage`s. --- This is used in https://github.com/bitcoin/bitcoin/pull/26812 (first two commits from that PR). Extracting as a separate PR suggested here: https://github.com/bitcoin/bitcoin/pull/30043#discussion_r1619152037. ACKs for top commit: Sjors: re-ACK b448b014947093cd217dbde47c8fb9e6c2bc8ba3 jonatack: re-ACK b448b014947093cd217dbde47c8fb9e6c2bc8ba3 pinheadmz: ACK b448b014947093cd217dbde47c8fb9e6c2bc8ba3 Tree-SHA512: 4a36f038192ec4ef63366cbe1a38ae70e7e015630c9f7c44926b756b20ab8c08138acae41801f23b30f6629c7059c1f81e001806e86584ff1bf1fa5b44d9caec
2025-02-10Merge bitcoin/bitcoin#31384: mining: bugfix: Fix duplicate coinbase tx ↵glozow
weight reservation 386eecff5f14d508688e6e7374b67cb54aaa7249 doc: add release notes (ismaelsadeeq) 3eaa0a3b663782bb1bd874ea881b21649f1db767 miner: init: add `-blockreservedweight` startup option (ismaelsadeeq) 777434a2cd14841e35ce39d7a6f51131e6a41de2 doc: rpc: improve `getmininginfo` help text (ismaelsadeeq) c8acd4032d5a7617764857b51777c076fd7ef13d init: fail to start when `-blockmaxweight` exceeds `MAX_BLOCK_WEIGHT` (ismaelsadeeq) 5bb31633cc9155ed58ad97fc04b47b3d317a3ec2 test: add `-blockmaxweight` startup option functional test (ismaelsadeeq) 2c7d90a6d67a159332d109aab278632d64078f0b miner: bugfix: fix duplicate weight reservation in block assembler (ismaelsadeeq) Pull request description: * This PR attempts to fix the duplicate coinbase weight reservation issue we currently have. * Fixes #21950 We reserve 4000 weight units for coinbase transaction in `DEFAULT_BLOCK_MAX_WEIGHT` https://github.com/bitcoin/bitcoin/blob/7590e93bc73b3bbac641f05d490fd5c984156b33/src/policy/policy.h#L23 And also reserve additional `4000` weight units in the default `BlockCreationOptions` struct. https://github.com/bitcoin/bitcoin/blob/7590e93bc73b3bbac641f05d490fd5c984156b33/src/node/types.h#L36-L40 **Motivation** - This issue was first noticed during a review here https://github.com/bitcoin/bitcoin/pull/11100#discussion_r136157411) - It was later reported in issue #21950. - I also came across the bug while writing a test for building the block template. I could not create a block template above `3,992,000` in the block assembler, and this was not documented anywhere. It took me a while to realize that we were reserving space for the coinbase transaction weight twice. --- This PR fixes this by consolidating the reservation to be in a single location in the codebase. This PR then adds a new startup option `-blockreservedweight` whose default is `8000` that can be used to lower or increase the block reserved weight for block header, txs count, coinbase tx. ACKs for top commit: Sjors: ACK 386eecff5f14d508688e6e7374b67cb54aaa7249 fjahr: Code review ACK 386eecff5f14d508688e6e7374b67cb54aaa7249 glozow: utACK 386eecff5f14d508688e6e7374b67cb54aaa7249, nonblocking nits. I do think the release notes should be clarified more pinheadmz: ACK 386eecff5f14d508688e6e7374b67cb54aaa7249 Tree-SHA512: f27efa1da57947b7f4d42b9322b83d13afe73dd749dd9cac49360002824dd41c99a876a610554ac2d67bad7485020b9dcc423a8e6748fc79d6a10de6d4357d4c
2025-02-10Merge bitcoin/bitcoin#31793: ci: Use clang-20 for sanitizer tasksmerge-script
fa5a02bcfa2f3769859332fddb8954d6217de7fc ci: Use clang-20 for sanitizer tasks (MarcoFalke) Pull request description: A new clang version generally comes with bugfixes, new (sanitizer) features, and deprecations. Upgrade the sanitizer tasks to use the new version. This was also suggested in https://github.com/bitcoin/bitcoin/pull/31691#issuecomment-2602517116 ACKs for top commit: fanquake: ACK fa5a02bcfa2f3769859332fddb8954d6217de7fc - tested 20 in some other infra, we just needed to fix the same deprecation warnings we'd seen, in cryptofuzz: https://github.com/fanquake/cryptofuzz/commit/09ca550c3ef7d6645869cb1ac014a4413d5388ba. Tree-SHA512: 6114d790b5d7145eb5f019e02da6c2c833342707ad67fb9f9c09506001afbef0c9b9beee7e51321f17f12ea692509d6428e6072ad105dba51e4d54cd057621cd
2025-02-10guix: remove test-security/symbol-check scriptsfanquake
These scripts are becoming more of nuisance, than a value-add; particularly since we've been building releases using Guix. Adding new (release bin) tests can be harder, because it requires constructing a failing test, which is becoming less easy e.g trying to disable a feature or protection that has been built into the compiler/toolchain by default. In the pre-Guix days, these were valuable to sanity-check the environment, because we were pulling that pre-built from Ubuntu, with little control. At this point, it's less clear what these scripts are (sanity) checking. Note that these also weren't completely ported to CMake (#31698), see also #31715 which contains other fixes that would be needed for these test-tests, to accomodate future changes.
2025-02-10Merge bitcoin/bitcoin#31810: TxOrphanage: account for size of orphans and ↵merge-script
count announcements e107bf78f9d722fcdeb5c1fba5a784dd7747e12f [fuzz] TxOrphanage::SanityCheck accounting (glozow) 22dccea553253a83c50b2509b881d1c3ae925bdc [fuzz] txorphan byte accounting (glozow) 982ce10178163e07cb009d5fa1bccc0d5b7abece add orphanage byte accounting to TxDownloadManagerImpl::CheckIsEmpty() (glozow) c289217c01465ab7fc0b0a5e36c514836146ce0e [txorphanage] track the total number of announcements (glozow) e5ea7daee01e0313d47625b482b3e37bd977a3e7 [txorphanage] add per-peer weight accounting (glozow) 672c69c688f216d70f334498a5fe9b051dc3c652 [refactor] change per-peer workset to info map within orphanage (glozow) 59cd0f0e091f78cd4248c9c4ac6074740dde2a25 [txorphanage] account for weight of orphans (glozow) Pull request description: Part of orphan resolution project, see #27463. Definitions: - **Announcement** is a unique pair (wtxid, nodeid). We can have multiple announcers for the same orphan since #31397. - **Size** is the weight of an orphan. I'm calling it "size" and "bytes" because I think we can refine it in the future to be memusage or be otherwise more representative of the orphan's actual cost on our memory. However, I am open to naming changes. This is part 1/2 of a project to also add limits on orphan size and count. However, this PR **does not change behavior**, just adds internal counters/tracking and a fuzzer. I will also open a second PR that adds behavior changes, which requires updating a lot of our tests and careful thinking about DoS. ACKs for top commit: instagibbs: reACK https://github.com/bitcoin/bitcoin/pull/31810/commits/e107bf78f9d722fcdeb5c1fba5a784dd7747e12f marcofleon: reACK e107bf78f9d722fcdeb5c1fba5a784dd7747e12f sipa: utACK e107bf78f9d722fcdeb5c1fba5a784dd7747e12f Tree-SHA512: 855d725d5eb521d131e36dacc51990725e3ca7881beb13364d5ba72ab2202bbfd14ab83864b13b1b945a4ec5e17890458d0112270b891a41b1e27324a8545d72
2025-02-10Merge bitcoin/bitcoin#31820: build: consistently use `CLIENT_NAME` in ↵merge-script
libbitcoinkernel.pc.in f5b9a2f68c95182b139e8a3447b4b5888ecb4f9f build: use CLIENT_NAME in libbitcoinkernel.pc.in (fanquake) Pull request description: Follows up from when the `pc.in` was added. ACKs for top commit: davidgumberg: utACK https://github.com/bitcoin/bitcoin/pull/31820/commits/f5b9a2f68c95182b139e8a3447b4b5888ecb4f9f stickies-v: ACK f5b9a2f68c95182b139e8a3447b4b5888ecb4f9f theuni: utACK f5b9a2f68c95182b139e8a3447b4b5888ecb4f9f hebasto: ACK f5b9a2f68c95182b139e8a3447b4b5888ecb4f9f. Tree-SHA512: 7c32db919aa226f9894ed21baa3f794d1181d43d36ae56ba2d187e1a9bafd89feadc6209ab5b5a1b90d8a3de54fb910736397b1061ef48b232b59792ee250d55
2025-02-08cmake: Improve compatibility with Python version managersHennadii Stepanov
2025-02-07[fuzz] TxOrphanage::SanityCheck accountingglozow
2025-02-07Merge bitcoin/bitcoin#31811: test: test_inv_block, use mocktime instead of ↵glozow
waiting 2706c5b7c8eee7ffd8c3b23a8012f346165ddb93 test: test_inv_block, use mocktime instead of waiting (Greg Sanders) Pull request description: Performance issue reported in https://github.com/bitcoin/bitcoin/pull/31437#issuecomment-2640221382 It seems that code as-is waits for wall-clock time to pass to synchronize mempools. Locally, sometimes the subtest takes a couple seconds, sometimes it takes an additional minute. Just use mocktime? ACKs for top commit: sr-gi: tACK [2706c5b](https://github.com/bitcoin/bitcoin/pull/31811/commits/2706c5b7c8eee7ffd8c3b23a8012f346165ddb93) rishkwal: tACK 2706c5b Prabhat1308: tACK [2706c5b](https://github.com/bitcoin/bitcoin/pull/31811/commits/2706c5b7c8eee7ffd8c3b23a8012f346165ddb93) Tree-SHA512: 561fe3d67282c67e1ed7dd5eeb137964c083d498534ea5f749f3d782e73a3f47d23faee6cca39866eaba770fda7b7d60a9f740f16bdb451d6a5e9105417cb158
2025-02-07build: use CLIENT_NAME in libbitcoinkernel.pc.infanquake
2025-02-07doc: swap CPPFLAGS for APPEND_CPPFLAGSfanquake
APPEND_CPPFLAGS will be understood by our CMake, whereas CPPFLAGS will not.
2025-02-07Merge bitcoin/bitcoin#31800: depends: Avoid using the `-ffile-prefix-map` ↵merge-script
compiler option 407062f2ac93624f350e9e8a4f641c882a2aaf2f depends: Avoid using the `-ffile-prefix-map` compiler option (Hennadii Stepanov) Pull request description: This PR is similar to https://github.com/bitcoin/bitcoin/pull/31337 and applies analogous changes to all dependency packages. The issue was [recently noticed](https://github.com/bitcoin/bitcoin/pull/31661#discussion_r1923896475) when `-ffile-prefix-map` was added to the `libevent` package, which is built in OSS-Fuzz. This PR replaces `-ffile-prefix-map` in all packages for consistency. Fixes https://github.com/bitcoin/bitcoin/issues/31770. ACKs for top commit: davidgumberg: Tested ACK https://github.com/bitcoin/bitcoin/pull/31800/commits/407062f2ac93624f350e9e8a4f641c882a2aaf2f. theuni: utACK 407062f2ac93624f350e9e8a4f641c882a2aaf2f Tree-SHA512: c501519c2397b7f11cdab13c0cd4b98a73b305817dba6ff61efc1c80c3cb44134bbd7f55eaecc1dab97f817ce44b28b6c81ccef74ea2d62c93ac43130be4efaf
2025-02-07Merge bitcoin/bitcoin#31814: ci: Bump fuzz task timeoutmerge-script
faca7ac13215fd88b420feea8f06d7404f8fd067 ci: Bump fuzz task timeout (MarcoFalke) Pull request description: The fuzz task seems to be the most CPU intense task (going through GB of data through all fuzz inputs for all fuzz targets). Normally, the task takes 44 minutes (example https://cirrus-ci.com/task/5077976091459584), but under higher load, it may take longer (https://cirrus-ci.com/task/5966231095738368). I tried to move it to GHA to see how it compares, but it will be even slower there: https://github.com/maflcko/bitcoin-core-with-ci/actions/runs/13182526514/job/36796629409. The CI machines were recently updated to increase the CI performance, so in theory they could be updated again, but this can take some time and seems like the wrong fix anyway, because it will just hide the problem: Ideally fuzzing is fast and when evaluating a fuzz input takes more than 10 seconds, it feels more like a slow unit test loop. So ideally fuzz timeouts should be fixed (https://github.com/bitcoin/bitcoin/issues/31066, https://github.com/bitcoin/bitcoin/issues/30498, ...). However, this can also take time. So temporarily bump the fuzz timeout for now. ACKs for top commit: dergoegge: ACK faca7ac13215fd88b420feea8f06d7404f8fd067 Tree-SHA512: cfb06d14712d94be6b28a17eee821dcc762453e8efbd9376200f8a0e784a55c2140e45ac48bee9b71ef6e85ae7345155dddc1239cbf0cd4bc02583848fe46308
2025-02-07cmake: add optional source files to crc32c directlyDaniel Pfeifer
2025-02-07cmake: add optional source files to bitcoin_crypto directlyDaniel Pfeifer
fixes: #31268
2025-02-06ci: Bump fuzz task timeoutMarcoFalke
2025-02-06[fuzz] txorphan byte accountingglozow
Co-authored-by: Greg Sanders <gsanders87@gmail.com>
2025-02-06add orphanage byte accounting to TxDownloadManagerImpl::CheckIsEmpty()glozow
2025-02-06[txorphanage] track the total number of announcementsglozow
2025-02-06[txorphanage] add per-peer weight accountingglozow
2025-02-06[refactor] change per-peer workset to info map within orphanageglozow
No change for now, moving from map of NodeId->workset to NodeId->PeerOrphanInfo struct that holds the workset. In future commits, we will start tracking more things per-peer in the orphanage.
2025-02-06[txorphanage] account for weight of orphansglozow
2025-02-06Merge bitcoin/bitcoin#31809: Prepare "Open Transifex translations for v29.0" ↵Hennadii Stepanov
release step 2f27c910869e301b7e7669e81a0878da64e49957 qt: Update the `src/qt/locale/bitcoin_en.xlf` translation source file (Hennadii Stepanov) 864386a7444fb5cf16613956ce8bf335f51b67d5 cmake: Ensure generated sources are up to date for `translate` target (Hennadii Stepanov) 2b51dd384b4a2655ee066e8bccd254270d0f5f6c Update Transifex slug for 29.x (Hennadii Stepanov) Pull request description: This PR follows our [Release Process](https://github.com/bitcoin/bitcoin/blob/864386a7444fb5cf16613956ce8bf335f51b67d5/doc/release-process.md). It is required to open Transifex translations for v29.0, as scheduled in https://github.com/bitcoin/bitcoin/issues/31029. The previous similar PR: https://github.com/bitcoin/bitcoin/pull/30548. **Notes for reviewers:** 1. This is the first release process conducted after migrating the build system to CMake. This revealed a bug, which is fixed in the second commit 2. To reproduce the diff in the third commit, follow these steps: ``` gmake -C depends -j $(nproc) MULTIPROCESS=1 cmake --preset dev-mode --toolchain depends/$(./depends/config.guess)/toolchain.cmake cmake --build build_dev_mode --target translate ``` ACKs for top commit: stickies-v: ACK 2f27c910869e301b7e7669e81a0878da64e49957 Tree-SHA512: 325ce2418f218b82cc3b0a6c727473963455680cdf6383a85768613ed9e485974b2e52bd5b2e7a7472ad8ebe40bccb2884764d7f9e83dc10a587cd7892e0028b
2025-02-06build: refactor: set debug definitions in main CMakeListsCory Fields
No functional change. This is a simple move required the next commit.
2025-02-06test: test_inv_block, use mocktime instead of waitingGreg Sanders
2025-02-06test: deduplicates p2p_tx_download constantsSergi Delgado Segura
Some of the networking constants defined in p2p_tx_download.py are more generally defined in p2p.py Also, rename the remaining ones to match ones defined in txdownloadman
2025-02-06qt: Update the `src/qt/locale/bitcoin_en.xlf` translation source fileHennadii Stepanov
Steps to reproduce the diff: ``` $ gmake -C depends -j $(nproc) MULTIPROCESS=1 $ cmake --preset dev-mode --toolchain depends/$(./depends/config.guess)/toolchain.cmake $ cmake --build build_dev_mode --target translate ```