48073 Commits
Author SHA1 Message Date
Hao Xu ef253a9d3d test: add block builder tests for txgraph
Add block builder tests to make sure chunks for a cluster are all right.
2026-02-07 13:06:26 +00:00
Hao Xu 4a1ac31e97 test: add a chunk test for txgraph
Add a test for GetWorstMainChunk(), which picks the worst chunk from
txgraph.

Co-developed-by: rkrux <rkrux.connect@gmail.com>
2026-02-07 13:06:19 +00:00
Sjors Provoost b623fab1ba mining: enforce minimum reserved weight for IPC
Previously a lower value was silently clamped to MINIMUM_BLOCK_RESERVED_WEIGHT.
2026-02-07 13:57:33 +01:00
Sjors ProvoostandRussell Yanofsky d3e49528d4 mining: fix -blockreservedweight shadows IPC option
The -blockreservedweight startup option should only affect RPC code,
because IPC clients (currently) do not have a way to signal their intent
to use the node default (the BlockCreateOptions struct defaults
merely document a recommendation for client software).

Before this commit however, if the user set -blockreservedweight
then ApplyArgsManOptions would cause the block_reserved_weight
option passed by IPC clients to be ignored. Users who don't set
this value were not affected.

Fix this by making BlockCreateOptions::block_reserved_weight an
std::optional.

Internal interface users, such as the RPC call sites, don't set a
value so -blockreservedweight is used. Whereas IPC clients do set
a value which is no longer ignored.

Test coverage is added.

mining_basic.py already ensured -blockreservedweight is enforced by
mining RPC methods. This commit adds coverage for Mining interface IPC
clients. It also verifies that -blockreservedweight has no effect on
them.

Co-Authored-By: Russell Yanofsky <russ@yanofsky.org>
2026-02-07 13:57:33 +01:00
Sjors Provoost 418b7995dd test: have mining template helpers return None
Refactor the mining_create_block_template and mining_wait_next_template
helpers in ipc_util.py to return None if they time out or fail. It makes
the test easier to read and provides a more clear error message in case
of a regression.

There were a few spots that didn't use mining_wait_next_template yet,
which now do.
2026-02-07 13:13:31 +01:00
merge-script 54bd49c7e3 Merge bitcoin/bitcoin#34452: test: split interface_ipc.py
633d183119 test: misc interface_ipc_mining.py improvements (Sjors Provoost)
52ccd9215e test: split interface_ipc_mining.py into subtests (Sjors Provoost)
4e49fa2a68 test: add interface_ipc_mining.py (Sjors Provoost)
01a1ae889e test: move IPC helpers to ipc_util.py (Sjors Provoost)

Pull request description:

  This test has been growing too large, making it difficult to maintain. Especially when multiple pull requests change it.

  - move helper functions to `ipc_util.py`
  - move mining test to `interface_ipc_mining.py`, keeping only an interface sanity check in `interface_ipc.py`
  - split the tests in `interface_ipc_mining.py`
  - misc tweaks (to reduce churn in the above commits)

  Review hint:

  ```sh
  git show --color-moved=dimmed-zebra --color-moved-ws=ignore-space-change
  ```

ACKs for top commit:
  janb84:
    re ACK 633d183119
  fjahr:
    reACK 633d183119
  l0rinc:
    code review ACK 633d183119
  sedited:
    Re-ACK 633d183119

Tree-SHA512: 81bbbec1f03a6ff63068dbefc1bc4768fcd24313d84ba454bb2494fe4a65838dbaeb93ad7f02ed4c9932394f3d24638453bb51ce0e05f561dc613414beda37e4
2026-02-07 10:07:08 +01:00
Ava Chow 3b39a8aeb4 Merge bitcoin/bitcoin#34483: refactor: Use SpanReader over DataStream
fa0677d131 refactor: Use SpanReader over DataStream (MarcoFalke)
fad3eb3956 refactor: Use SpanReader over DataStream (MarcoFalke)
fa06e26764 refactor: [qt] Use SpanReader to avoid two vector copies (MarcoFalke)
fabd4d2e2e refactor: Avoid UB in SpanReader::ignore (MarcoFalke)
fa20bc2ec2 refactor: Use empty() over eof() in the streams interface (MarcoFalke)
fa879db735 test: Read debug log for self-checking comment (MarcoFalke)

Pull request description:

  This changes all places, where possible, to use SpanReader over DataStream. This makes the code easier to read and reason about, because `SpanReader` can never write data. Also, the code should be minimally faster, because it avoids a full redundant copy of the whole vector of bytes.

ACKs for top commit:
  stickies-v:
    re-ACK fa0677d131
  achow101:
    ACK fa0677d131
  janb84:
    re ACK fa0677d131
  sipa:
    crACK fa0677d131

Tree-SHA512: 1d9f43fc6e71d481cf7b8f8457f479745ee331734649e9e2c2ab00ce5d317112796c77afc328612ed004e65ac5c16fc92279d760cfb012cfddce9098c4af810f
2026-02-06 18:00:18 -08:00
Ava Chow 6f68e0c8b7 Merge bitcoin/bitcoin#34181: refactor: [p2p] Make ProcessMessage private again, Use references when non-null
fa43897c1d doc: Fix LLM nits in net_processing.cpp (MarcoFalke)
bbbba0fd4b scripted-diff: Use references when nullptr is not possible (MarcoFalke)
fac5415466 refactor: Separate peer/maybe_peer in ProcessMessages and SendMessages (MarcoFalke)
fac529188e refactor: Pass Peer& to ProcessMessage (MarcoFalke)
fa376095a0 refactor: Pass CNode& to ProcessMessages and SendMessages (MarcoFalke)
fada838014 refactor: Make ProcessMessage private again (MarcoFalke)
fa80cd3cee test: [refactor] Avoid calling private ProcessMessage() function (MarcoFalke)

Pull request description:

  There is a single unit test, which calls the internal `ProcessMessage` function. This is problematic, because it makes future changes harder, since they will need to carry over this public internal interface each time.

  Also, there is a mixed use of pointers and references in p2p code, where just based on context, a pointer may sometimes assumed to be null, or non-null. This is confusing when reading the code, or making or reading future changes.

  Fix both issues in a series of commits, to:

  * refactor the single unit test to call higher-level functions
  * Make `ProcessMessage` private again
  * Use references instead of implicit non-null pointers, mostly in a scripted-diff

ACKs for top commit:
  optout21:
    reACK fa43897c1d
  ajtowns:
    ACK fa43897c1d
  Crypt-iQ:
    crACK fa43897c1d
  achow101:
    ACK fa43897c1d

Tree-SHA512: d03d8ea35490a995f121be3d2f3e4a22d1aadfeab30bc42c4f8383dab0e6e27046260e792d9e5a94faa6777490ba036e39c71c50611a38f70b90e3a01f002c9e
2026-02-06 17:10:25 -08:00
furszy 4c0d4f6f93 refactor: interfaces, make 'createTransaction' less error-prone
Bundle all function's outputs inside the util::Result returned object.

Reasons for the refactoring:
- The 'change_pos' ref argument has been a source of bugs in the past.
- The 'fee' ref argument is currently only set when the transaction creation process succeeds.
2026-02-06 18:15:59 -05:00
furszy e2c3ec9bf4 refactor: move CreatedTransactionResult to types.h
So it can be used by external modules without requiring
wallet.h dependency.
2026-02-06 17:57:52 -05:00
furszy 45372175c3 gui: remove AmountWithFeeExceedsBalance error special case
Since bitcoin#34299, the wallet handles the error internally
and retrieves the proper message.
2026-02-06 17:53:12 -05:00
Ava Chow d88997b809 Merge bitcoin/bitcoin#34299: wallet: remove PreSelectedInputs and re-activate "AmountWithFeeExceedsBalance" error
48161f6a05 wallet: introduce "tx amount exceeds balance when fees are included" error (stratospher)
b7fa609ed1 wallet: remove PreSelectedInputs (stratospher)
7819da2c16 walllet: use CoinsResult instead of PreSelectedInputs (stratospher)
e5474079f1 wallet: introduce GetAppropriateTotal() in CoinsResult (stratospher)
d8ea921d01 wallet: correctly reserve in CoinsResult::All() (stratospher)
7072d825e3 wallet: ensure COutput added in set are unique (stratospher)
fefa3be782 wallet: fix, make 'total_effective_amount' optional actually optional (stratospher)

Pull request description:

  picks up https://github.com/bitcoin/bitcoin/pull/25269.

  This PR re-implements the code path so that an error message is thrown when a transaction's total amount (including fees) exceeds the available balance. It also refactors the wallet's coin selection code.

  1. the first 3 commits are unrelated to the code but few small bug fixes which are nice to fix. but also kind of impacts the remaining logic. (could PR separately if reviewers wish)
  1. c467325aaf187d7f056bb1ea1cec6b7c4250af2e: make `total_effective_amount` optional actually optional
  2. 2202ab597596c84fc49f8784e823372b7a9efcbe: ensure `set<shared_ptr<COutput>>` has unique COutput
  3. a5ffbbf122d66fc4ad9b2e7c6d7d1dfa1816388e: Correctly reserve size when flattening `CoinsResult.coins` map to vector

  3. the next 3 commits from 4745d5480ca5c3809edd51140e4d2c0433582844 replace the `PreSelectedInputs` struct with `CoinsResult` and removes `PreSelectedInputs`.

  4. the last commit (e664484a6d34c1795ebb0925ab31faea5d64ab00) deals with the error message - `AmountWithFeeExceedsBalance` error inside `WalletModel::prepareTransaction` is never thrown and remains an unused code path. This is because `createTransaction` does not retrieve the fee when the process fails. The fee return arg is set only at the end of the process, when the transaction is successfully created. Therefore, if the transaction creation fails, the fee is not available inside `WalletModel::prepareTransaction` to trigger the `AmountWithFeeExceedsBalance` error.

  This PR re-implements the feature inside `CreateTransactionInternal` and adds test coverage for it.

  | on master | on PR |
  |-----------|-------|
  | <img src="https://github.com/user-attachments/assets/a903e687-2466-42c7-b898-5dec24bfe515" width="750" alt="Insufficient funds" /> | <img src="https://github.com/user-attachments/assets/74bb3c83-6132-4c09-91f0-0a446618b3c8" width="750" alt="AmountWithFeeExceedsBalance" /> |

  the unreachable code path is removed in https://github.com/bitcoin-core/gui/pull/807 which requires this PR.

ACKs for top commit:
  achow101:
    ACK 48161f6a05
  furszy:
    utACK 48161f6

Tree-SHA512: a963fac8d6714f76571df8cf9aff70601536dc6faa4326fbb5892c3f080dc393f0d7c6e2d21879c7a2c898bf0092adb154376d9b0a8929b31575ce9d1d47dec2
2026-02-06 14:30:20 -08:00
Ava Chow b73a62f667 test: Ensure invalid block was processed before checking debug.log
In feature_assumevalid.py, we check that a modified block 102 is invalid
by asserting a message in the debug.log. However, this can
intermittently fail as exiting the assert_debug_log can occur before the
block has actually been validated, thus causing the test to fail as the
validation error message is not present in the chunk of the debug.log
being examined.

We can wait for the block to make an invalid chain tip to ensure that the log
line will be present.
2026-02-06 14:00:14 -08:00
Sjors Provoost 633d183119 test: misc interface_ipc_mining.py improvements
- share miniwallet and block create options between tests
- documentation fixes
- use assert_equal instead of assert ==
2026-02-06 15:46:31 +01:00
Sjors Provoost 52ccd9215e test: split interface_ipc_mining.py into subtests
Split the Mining interface test into focused subtests.

Keep the initial tip-change pre-mine check in run_mining_interface_test.
As a result run_block_template_test no longer has newblockref.
2026-02-06 15:46:31 +01:00
Sjors Provoost 4e49fa2a68 test: add interface_ipc_mining.py
Split Mining interface tests into interface_ipc_mining.py and keep
interface_ipc.py for echo + simple inspectors.

Register the new test in test_runner.py.

The setup code around "Create Mining proxy object" is duplicated
in the new test file, but the simple insector checks below it
are not moved.
2026-02-06 15:46:31 +01:00
Sjors Provoost 01a1ae889e test: move IPC helpers to ipc_util.py
Move IPC helpers into ipc_util.py and update interface_ipc.py
to use them.

Rename some helpers for clarity:
- parse_and_deserialize_block -> mining_get_block
- parse_and_deserialize_coinbase_tx -> mining_get_coinbase_tx
- get_coinbase_raw_tx -> mining_get_coinbase_raw_tx
- wait_next_template -> mining_wait_next_template
2026-02-06 15:44:06 +01:00
Hennadii Stepanov 28160c1e3d Merge bitcoin/bitcoin#34421: ci: add Chimera Linux LTO config
d79249d279 ci: add chimera Linux LTO CI job (fanquake)

Pull request description:

  Adds a CI config based on using [Chimera Linux](https://chimera-linux.org/). This might be interesting for any of the following:
  * Chimera is based on LLVM & musl libc - we test both of these in isolation, but not together.
  * No GNU components. I don't think we have an existing Linux CI job that doesn't have a gcc/stdlibc++ install. This exercises the depends logic for a fully LLVM/Clang/lld only build, including building the native tools (related to #33902).
  * We don't currently have a job with LTO enabled (here using CMakes `CMAKE_INTERPROCEDURAL_OPTIMIZATION`, which is `-flto=thin` for LLVM/Clang). I think this is worth having generally (we do use LTO in some other places, like oss-fuzz). If runtime is too much of an issue, then it could also be dropped. (Chimera itself is also compiled with LTO).

  QT in depends doesn't build (#32744), so is excluded for now.

  Chimera has pointed out at least a few quirks, i.e #34390, #34408 and https://github.com/bitcoin/bitcoin/pull/29963#discussion_r2707922298.

ACKs for top commit:
  maflcko:
    lgtm ACK d79249d279
  hebasto:
    ACK d79249d279.

Tree-SHA512: 1174a7462bf2e7433a2c27a6cf398e94b05db42bb414629c71cf9f9a297ca269e173ae1b7517b30510b494b4397f918eef706d3c75c4286767c5557aeb6db4c7
2026-02-06 14:11:04 +00:00
Hennadii Stepanov 576f892027 qt: Update the src/qt/locale/bitcoin_en.xlf translation source file
Steps to reproduce the diff on Ubuntu 25.10:
```
cmake --preset dev-mode
cmake --build build_dev_mode --target translate
```
2026-02-06 13:45:34 +00:00
Hennadii Stepanov 4b9f5beafe Update Transifex slug for 31.x
Update the Transifex slug to match the new resource created for the
upcoming 31.x branch.
2026-02-06 13:40:59 +00:00
merge-script 46e1288df2 Merge bitcoin/bitcoin#34498: iwyu: Fix patch to prefer <cstdint>
b65a3d8009 iwyu: Fix patch to prefer `<cstdint>` (Hennadii Stepanov)

Pull request description:

  The goal of the [patch](https://github.com/bitcoin/bitcoin/blob/master/ci/test/01_iwyu.patch) is to suggest C++ headers rather than their C counterparts. However, for fixed width integer types, the patched IWYU currently suggests `<cinttypes>` where `<cstdint>` is sufficient.

  This PR fixes this behavior.

ACKs for top commit:
  maflcko:
    lgtm ACK b65a3d8009
  furszy:
    utACK b65a3d8009
  willcl-ark:
    utACK b65a3d8009

Tree-SHA512: 695efdd44b92a642401738572e49c8b6591aa4463d387107fdf3d2f7c9c4b39f4097cb82413752caf9e8890dcca7246a894e562a1dd17023b05a7e455705beac
2026-02-06 13:37:14 +00:00
MarcoFalke fa6801366d refactor: [rpc] Remove confusing and brittle integral casts (take 2) 2026-02-06 13:44:51 +01:00
fanquake d79249d279 ci: add chimera Linux LTO CI job 2026-02-06 12:03:18 +00:00
stratospherandfurszy 48161f6a05 wallet: introduce "tx amount exceeds balance when fees are included" error
This was previously implemented at the GUI level but we never hit that
code path.

Co-authored-by: furszy <matiasfurszyfer@protonmail.com>
2026-02-06 16:27:22 +05:30
stratospher b7fa609ed1 wallet: remove PreSelectedInputs 2026-02-06 16:27:22 +05:30
stratospher 7819da2c16 walllet: use CoinsResult instead of PreSelectedInputs
PreSelectedInputs is confusing to use. it's `total_amount`
might store total amount or effective amount based on SFFO.
ex: we might accidentally sum preselected inputs effective
amount (named `total_amount`) with automatically selected
inputs actual total amount.

CoinsResult has a cleaner interface with separate fields
for both these amounts.

2 behavioural changes:

1. no more default assert error if effective value is unset
    - previously PreSelectedInputs::Insert() called
      COutput::GetEffectiveValue() which assert failed
      if the optional was unset.
    - now we don't default assert anymore.
      * in GUI/getAvailableBalance better not to assert.
      * SelectCoins's preselected inputs always contain a
        feerate, so effective amount should be set.
        explicitly added an assertion to ensure this.

2. FetchSelectedInputs uses OutputType::UNKNOWN as key to
   populate CoinsResult's coins map. it's discarded later.
2026-02-06 16:27:21 +05:30
merge-script 0cd309c75e Merge bitcoin/bitcoin#34492: ci: Drop valgrind fuzz from GHA matrix
faa4ab113c ci: Drop valgrind fuzz from GHA matrix (MarcoFalke)

Pull request description:

  The valgrind fuzz task is problematic, because:

  * It is redundant with the msan fuzz task, which has std lib hardening enabled, so often UB is diagnosed before it even happens in the valgrind task.
  * All issues so far found by the valgrind fuzz task were also found by the hardened msan fuzz task.
  * All other issues were false-positives, which are hard to debug, and confusing and tedious to work around.

  I don't think there is any value in asking pull request authors to debug valgrind false-positives that they triggered by accident. So remove the task for now.

  I know that there are some devs, who like to keep the task, but if the task is kept, it should come with clear instructions on how to deal with false-postives in pull requests.

  I am not proposing to remove the config itself, and I am happy to continue maintaining it, like it was done before. However, as of now, running it in the GHA matrix is of negative or questionable benefit.

ACKs for top commit:
  l0rinc:
    ACK faa4ab113c
  fanquake:
    ACK faa4ab113c - hopefully we can revisit re-adding soon. To be clear, I don't agree with the rationale from #34304, or the initial changes there. The case here, and the fact that it is causing disruption in this repo, is more pressing.

Tree-SHA512: 59272f4b5b01c3b8ee6078ea635441f17776d4d8923f1adacdabdbb00bd2eb0234b30dc5b27938e29f8e79b3c3bebed5f339ae36c2c8fb17ea9d3a2884bee986
2026-02-06 10:28:04 +00:00
MarcoFalke fa561682ce ci: [refactor] Add .github/ci-windows.py prepare_tests step 2026-02-06 09:54:28 +01:00
MarcoFalke fa3e607c6d ci: Print verbose Windows CI build failure 2026-02-06 08:55:42 +01:00
MarcoFalke 4444808dd3 ci: [refactor] Add .github/ci-windows.py build step
Note, the use of process_cpu_count() is intentional. It was only added
in Python 3.13, according to
https://docs.python.org/3/library/os.html#os.process_cpu_count .

However, Python 3.13 is also the minimum required version on Windows,
according to
https://github.com/bitcoin/bitcoin/issues/29897#issuecomment-2940318094
to avoid intermittent test failures.
2026-02-06 08:54:26 +01:00
MarcoFalke fabdd4e823 ci: Refactor Windows CI into script
This makes it easier to:

* Run the exact command of any CI type and step locally
* Re-Run older CI tasks on GHA and using the latest merged config.
  (.github/ci-windows.py is merged with master on re-runs, but
  .github/workflows/ci.yml is NOT)

Also, writing it in Python has benefits:

* Any developer (even non-Windows ones) can read and modify the script.
* Python is already required for tests, so no new dependency is needed.
2026-02-06 08:54:12 +01:00
MarcoFalke fa88ac3f4f doc: Clarify why performance-move-const-arg.CheckTriviallyCopyableMove=false 2026-02-06 08:37:19 +01:00
MarcoFalke fa0677d131 refactor: Use SpanReader over DataStream
This refactor does not change behavior. However, it avoids a vector
copy, which can lead to a minimal speed-up of 1%-5%, depending on the
call-site. This is mostly relevant for the fuzz tests and utils that
read large blobs of data (like a full block).
2026-02-06 07:56:57 +01:00
stratospher e5474079f1 wallet: introduce GetAppropriateTotal() in CoinsResult
returns the total amount (if SFFO), otherwise the effective amount.
previously, this was the logic in calculating
PreSelectedInputs::total_amount when PreSelectedInputs::Insert()
was called.

return optional to force callers to explicitly handle the case
when effective amount optional is not set.
2026-02-06 09:36:22 +05:30
stratospher d8ea921d01 wallet: correctly reserve in CoinsResult::All()
coins.size() would be the number of the OutputType keys in the map.
whereas Size() would return total number of COutput objects when
flattening the map.
2026-02-06 09:36:22 +05:30
stratospher 7072d825e3 wallet: ensure COutput added in set are unique
before #25806, set<COutput> was used and would not
contain same COutputs in the set.

now we use set<shared_ptr<COutput>> and it might be
possible for 2 distinct shared_ptr (different pointer
address but same COutputs) to be added into the set.

so preserve previous behaviour by making sure values
in the set are also distinct
2026-02-06 09:36:22 +05:30
stratospherandfurszy fefa3be782 wallet: fix, make 'total_effective_amount' optional actually optional
this is not needed for the remaining commits but good to fix
and came up in #25269 review.

Co-authored-by: furszy <matiasfurszyfer@protonmail.com>
2026-02-06 09:36:19 +05:30
Ava Chow 9ec1ae0e98 Merge bitcoin/bitcoin#34437: rpc: uptime should begin on application start
e67a676df9 fix: uptime RPC returns 0 on first call (Lőrinc)

Pull request description:

  ### Problem
  #34328 switched uptime to use monotonic time, but `g_startup_time` was a function-local static in `GetUptime()`, meaning it was initialized on first call rather than at program start.
  This caused the first uptime RPC to always return 0.

  ### Fix
  Move `g_startup_time` to namespace scope so it initializes at program start, ensuring the first `uptime()` call returns actual elapsed time.

  ### Reproducer

  Revert the fix and run the test or alternatively:

  ```bash
  cmake -B build && cmake --build build --target bitcoind bitcoin-cli -j$(nproc)
  ./build/bin/bitcoind -regtest -daemon
  sleep 10
  ./build/bin/bitcoin-cli -regtest uptime
  ./build/bin/bitcoin-cli -regtest stop
  ```

  <details>
  <summary>Before (uptime is initialized on first call)</summary>

  ```bash
  Bitcoin Core starting
  0
  Bitcoin Core stopping
  ```

  </details>

  <details>
  <summary>After (first uptime call is in-line with sleep)</summary>

  ```bash
  Bitcoin Core starting
  10
  Bitcoin Core stopping
  ```
  </details>

  ----

  Fixes #34423, added reporter as coauthor.

ACKs for top commit:
  maflcko:
    lgtm ACK e67a676df9
  optout21:
    crACK e67a676df9
  carloantinarella:
    Tested ACK e67a676df9
  achow101:
    ACK e67a676df9
  musaHaruna:
    Tested ACK [e67a676](https://github.com/bitcoin/bitcoin/pull/34437/changes/e67a676df9af5ece5307438ae1b4ddb0730e3482)

Tree-SHA512: b156f7ed15c3fbb50e8a15f6c9a0d4e2ffb956d0c6ef949e0f8a661a564a20c0d3ed2149fae75ce7e2baa9326788d5037e726e7a7ac2c6ef4e70e4862cd5763f
2026-02-05 17:02:37 -08:00
Ava Chow d692e07228 Merge bitcoin/bitcoin#32894: FUZZ: Test that BnB finds best solution
54d0393058 FUZZ: Test that BnB finds best solution (Murch)

Pull request description:

  BnB’s solution is the input set with the lowest waste score, excluding any supersets of other solution candidates.
  This fuzz test compares a brute force search with the BnB result to ensure that BnB succeeds.

ACKs for top commit:
  achow101:
    ACK 54d0393058
  brunoerg:
    ACK 54d0393058

Tree-SHA512: 96b6a822f53311d9a76abe8c217794e0a2dd5bd713db0a15dc70e065099b8245c430e1174e24133e0a802218ff0f2943dfcc3d638c3716485d5607c452854e7d
2026-02-05 13:32:24 -08:00
Hennadii Stepanov 28d8607882 Merge bitcoin/bitcoin#34504: build: replace WERROR with CMAKE_COMPILE_WARNING_AS_ERROR
322c4ec442 build: replace WERROR with CMAKE_COMPILE_WARNING_AS_ERROR (fanquake)

Pull request description:

  `CMAKE_COMPILE_WARNING_AS_ERROR` was added to CMake in 3.24.

  `--compile-no-warning-as-error` can be used, if needed, in future, to
  suppress the `CMAKE_COMPILE_WARNING_AS_ERROR` behaviour from a CI
  config.

  Potential alternative to #33297. Closes #33284.

  See https://cmake.org/cmake/help/latest/prop_tgt/COMPILE_WARNING_AS_ERROR.html.

ACKs for top commit:
  purpleKarrot:
    re-ACK 322c4ec442
  maflcko:
    review ACK 322c4ec442 📩
  hebasto:
    re-ACK 322c4ec442.

Tree-SHA512: 1e9b41e87568c1021aecf9414cfc70a3215d1663a13adb1f32493f2dba18978b53888520775d1aa2945224b0404ef83bda0837dddf5f8a089cafb940b856598c
2026-02-05 18:58:58 +00:00
Ava Chow ad1940a006 Merge bitcoin/bitcoin#34517: drop my key from trusted-keys
f2b8acc0ed remove glozow from trusted keys (glozow)

Pull request description:

  As planned!

  Also bump trusted-git-root to 88a7294356, which is the last merge signed with this key.

ACKs for top commit:
  achow101:
    ACK f2b8acc0ed
  stickies-v:
    ACK f2b8acc0ed

Tree-SHA512: e68025c519ab003ad464783325502c1a6a3f560c0708a9383332cb0971be2039f462fc95f85373bb075191c165ca8e3904312a66e41b52d1b99dd2a8a837be9a
2026-02-05 10:06:17 -08:00
fanquakeandwillcl-ark 322c4ec442 build: replace WERROR with CMAKE_COMPILE_WARNING_AS_ERROR
-Werror is added to the previous releases job, given it runs on Ubuntu
22.04, which uses an older CMake.

`--compile-no-warning-as-error` can be used, if needed, in future, to
suppress the `CMAKE_COMPILE_WARNING_AS_ERROR` behaviour from a CI
config.

CMAKE_COMPILE_WARNING_AS_ERROR was added to CMake in 3.24.
See https://cmake.org/cmake/help/latest/prop_tgt/COMPILE_WARNING_AS_ERROR.html.

Co-authored-by: willcl-ark <will8clark@gmail.com>
2026-02-05 16:39:14 +00:00
Hennadii Stepanov 65134c7e5f depends: Prefix include path for headers-only systemtap package 2026-02-05 13:46:20 +00:00
Hennadii Stepanov 94a692b6aa cmake: Add missed USDT::headers 2026-02-05 13:46:20 +00:00
Hennadii Stepanov b5375c44ed depends: Prefix include path for headers-only boost package 2026-02-05 13:46:20 +00:00
Hennadii Stepanov d73378ffcc cmake: Add missed Boost::headers 2026-02-05 13:46:14 +00:00
Hennadii Stepanov eb97250421 Merge bitcoin/bitcoin#34496: build: don't pass on boost dependency to kernel consumers
a50d0b6720 build: don't pass on boost dependency to kernel consumers (Cory Fields)

Pull request description:

  This is unnecessary now that the kernel now exports a (boost-less) API.

  Noticed while slimming down boost dependencies in #34495.

ACKs for top commit:
  stickies-v:
    ACK a50d0b6720
  hebasto:
    ACK a50d0b6720, I have reviewed the code and it looks OK. I tested it by applying the Boost-specifc commits from https://github.com/bitcoin/bitcoin/pull/34143 and building with depends.

Tree-SHA512: e2d12356f41dd51dd729362121a33bd4f395821d53dd9a0bb0d5d6a53aba2ca2064e0709d9799dc6751b3d61ea576d2efc0e28296fdba26f2809dbcb0feabe44
2026-02-05 12:18:51 +00:00
merge-script 9d76947294 Merge bitcoin/bitcoin#34464: Change BlockRequestAllowed() to take ref (minor refactor)
1f8f7d477a Change BlockRequestAllowed() to take ref (optout)

Pull request description:

  As [suggested here](https://github.com/bitcoin/bitcoin/pull/34416#discussion_r2745302958), a minor refactor of `PeerManagerImpl::BlockRequestAllowed()` to take reference parameter (instead of pointer). The motivation is to make the code safer, by minimizing the risk of null-dereference, and to be more consistent.
  The change is local to the `PeerManagerImpl::BlockRequestAllowed()` class.
  Related to #34440.

ACKs for top commit:
  maflcko:
    review ACK 1f8f7d477a 🎐
  l0rinc:
    tested ACK 1f8f7d477a
  stickies-v:
    ACK 1f8f7d477a

Tree-SHA512: 9c2de2d3e7d067e018db7ec54c79f512ccc1da54574d4fb362f6697ee6e235783779d7094cf20856cd34e08a1dbc74609d8351fe7b2287cd8ec0c836ef07be19
2026-02-05 10:56:37 +00:00
ismaelsadeeq 8966352df3 doc: add release notes 2026-02-05 10:52:58 +00:00
ismaelsadeeq 704a09fe71 test: ensure fee estimator provide fee rate estimate < 1 s/vb
- This commit also refactors the test the better track confirmed
  utxos.
2026-02-05 10:52:57 +00:00