BC
← All projectsBitcoin Core

Bitcoin Core

The Bitcoin network's reference node and wallet implementation.

BitcoinSupply chainNormal
Repository coverage

2900 commits in the local evidence base

Every captured commit receives deterministic security triage and a separate communication-quality score. Security candidates and broader second-pass signals receive full-patch Ollama analysis.

254security candidates607second-pass queue2881AI analyses
209commits · 30 days
502commits · 60 days
1535commits · 180 days
2884commits · 365 days
Backfill bands
Aug 5 → Feb 61351 seen45 candidatesComplete
Feb 6 → Jun 61033 seen63 candidatesComplete
Jun 6 → Jul 6281 seen11 candidatesComplete
Jul 6 → Aug 5207 seen5 candidatesComplete
Commit communication

Does the history explain itself?

Message quality measures whether a commit identifies its scope, purpose, rationale, testing, and supporting references. It does not change the security-severity score.

70/100 average clarity
937Strong · 80–100
1188Adequate · 60–79
687Thin · 40–59
88Opaque · 0–39
6security candidates with opaque commit messaging
Read the scoring rubric →
Developer activity

Who is changing the project?

Public Git author strings; identities are not independently verified.

DeveloperCommitsCandidatesAnalyzedHigh riskMessage avg.
Antoine Poinsot22422170
Ava Chow15750157064
MarcoFalke41021406074
Lőrinc17721177081
fanquake22719226057
Hennadii Stepanov20914208063
rkrux57957074
Sjors Provoost89889074
Sebastian Falbesoner33733073
David Gumberg55655072
Pieter Wuille95595066
Hodlinator66566076
Analysis record

Published AI watches

Last scanned 41 minutes ago

Informational 15 AI analysisMessage 91 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35928: doc: mention -DWITH_ZMQ=ON in macOS build guide

This is a one-line documentation update to the macOS build guide. It adds a note telling users to pass a specific CMake option if they want ZeroMQ notification support. There is no code change and no security impact.

8397e09eby merge-script+1−11 file
No security note in commit
Informational 15 AI analysisMessage 100 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35482: fuzz: exercise the transaction-handling path in process_message(s)

This commit only changes Bitcoin Core's internal fuzz testing code. It makes the fuzz tests exercise more of the transaction-handling code path by toggling Initial Block Download mode and resetting the mempool between test runs. There is n…

No production code modifiedNo consensus, validation, net_processing, or wallet logic changedOnly fuzz test harnesses and test utilities affected
f11dc617by merge-script+105−798 files
No security note in commit
Informational 15 AI analysisMessage 91 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35914: test, fuzz: Remove unused variables

This commit removes unused variables from Bitcoin Core's test and fuzzing code. It is a cleanup/refactoring change with no effect on the live network software or user funds. It does not fix or introduce any security vulnerability.

d36bf709by merge-script+1−138 files
No security note in commit
Informational 15 AI analysisMessage 93 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35896: refactor: Default uint256::operator==, add operator<=>

This commit is a routine code cleanup in Bitcoin Core. It switches the uint256 equality and comparison operators to use standard C++20 defaults, removes an old custom Compare() helper, and marks an internal assertion-failure function as ne…

ed2c59abby merge-script+99−245 files
No security note in commit
Moderate 62 AI analysisMessage 96 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35872: rpc: avoid descriptor range counter overflow

This update fixes a counting bug in several Bitcoin Core RPC commands that scan descriptors. When a user requested a descriptor range ending at the maximum allowed value (2,147,483,647), the internal counter used a smaller integer type and…

Signed integer overflow in descriptor expansion loopCrash/undefined behavior on maximum-range descriptor scansAuthenticated RPC surface affected (scantxoutset, scanblocks, getdescriptoractivity, utxoupdatepsbt, descriptorprocesspsbt)
b388674aby Ava Chow+3−12 files
Vendor flagged security relevance
Informational 19 AI analysisMessage 91 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35842: rpc: Properly make RPCResult::Type::ANY non-test-only

This is a small cleanup and documentation fix for Bitcoin Core's RPC help system. It removes a comment that incorrectly said a certain output type was 'for testing only' and makes the help text properly display those outputs. There is no d…

No memory safety, cryptography, consensus, or authorization changes observedChange is confined to RPC help/schema metadata generationComment-only/type-label change from 'for testing only' to general use
c36ffd87by merge-script+42−364 files
No security note in commit
Informational 15 AI analysisMessage 93 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35895: refactor: Enable clang-tidy rule to reject anon namespace in header

This is a code cleanup change that turns on a static-analysis rule to prevent a specific C++ coding pattern (anonymous namespaces in header files) and updates two headers to comply. It does not change how Bitcoin Core behaves at runtime an…

No security-relevant code changeNo memory safety, cryptography, consensus, or network changesTooling-only refactor (clang-tidy configuration)
c4fbd3c7by merge-script+9−123 files
No security note in commit
Informational 15 AI analysisMessage 100 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35630: test: Add importdescriptors rpc error test coverage

This commit only adds new test cases to Bitcoin Core's functional test suite. It does not change any production wallet, node, or RPC code. The tests verify that the importdescriptors RPC reports errors in the right order, rejects bad times…

465196d0by merge-script+77−11 file
No security note in commit
Informational 15 AI analysisMessage 81 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35180: coins: group private cache helpers

This change is purely a code cleanup: it moves two internal helper functions of a Bitcoin Core cache class into the private section of the class and removes a duplicate 'private:' label. There is no change to what the code does, no bug fix…

c940fd75by merge-script+13−141 file
No security note in commit
Low 29 AI analysisMessage 81 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35582: rpc: reject null for optional parameters

This Bitcoin Core change tightens how three RPC commands (scantxoutset, scanblocks, deriveaddresses) handle the value null when it is passed for optional parameters. Previously, explicitly passing null could be treated differently from sim…

RPC parameter validation changeNull value handling changeAddition of explicit error checks for missing required contextual parameters
3db96eb5by merge-script+18−75 files
No security note in commit
Informational 15 AI analysisMessage 57 · Thin
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

refactor: Enable misc-definitions-in-headers

This commit is a code cleanup: it turns on a clang-tidy style check called 'misc-definitions-in-headers' and suppresses that check around a large inline implementation block in a benchmark header. There is no change to Bitcoin's runtime be…

fa93132dby MarcoFalke+3−02 files
No security note in commit
Informational 15 AI analysisMessage 85 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

refactor: Enable clang-tidy rule to reject anon namespace in header

This commit only changes a linting configuration file for the project's code style checker. It enables a rule that prevents anonymous namespaces from being used in header files, which is a code-quality and build-hygiene practice. There is …

No security-relevant signals in the diff or commit message.Change is purely a static-analysis/linting configuration update.
fa5ca877by MarcoFalke+2−11 file
No security note in commit
Informational 15 AI analysisMessage 62 · Adequate
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

refactor: Use C++20 std::identity over IntIdentity

This commit is a straightforward code cleanup: it replaces a small custom helper named IntIdentity with the standard C++20 std::identity from the <functional> header. The behavior of the ConvertBits function is unchanged; only the implemen…

fafe5042by MarcoFalke+4−111 file
No security note in commit
Informational 15 AI analysisMessage 87 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

test: test the result order of a multiple import request is correct

This commit only adds a new automated test to Bitcoin Core. It checks that when a user asks the wallet to import multiple descriptors at once, the list of results comes back in the same order as the original request, including any error me…

3ac8b806by Pol Espinasa+40−01 file
No security note in commit
Informational 15 AI analysisMessage 87 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

test: test invalid or missing timestamp throws importdescriptors

This commit only adds new automated tests for the Bitcoin Core wallet's importdescriptors RPC. It checks that the command correctly rejects requests with a missing or invalid timestamp. No production wallet code is changed, so this cannot …

No changes to consensus, networking, wallet logic, or cryptographyOnly functional test code is modifiedAdded assertions are for expected error handling paths
e4732bf0by Pol Espinasa+28−11 file
No security note in commit
Informational 15 AI analysisMessage 80 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

refactor: Remove unused #include in common/system

This is a minor code cleanup that removes one unused header file include and swaps another for a more specific one. It does not change any program behavior or fix any security issue.

fa7304f3by MarcoFalke+1−22 files
No security note in commit
Informational 15 AI analysisMessage 50 · Thin
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

iwyu: Fix warnings in `src/consensus` and treat them as errors

This commit is a routine code cleanup: it adjusts which C++ header files are included in several consensus-related source files and turns on a stricter compiler hygiene check (Include What You Use, or IWYU) for the src/consensus directory.…

13b53f8bby Hennadii Stepanov+42−79 files
No security note in commit
Informational 15 AI analysisMessage 55 · Thin
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

fuzz: don't connman.ReceiveMsgFrom oversized msg

This is a small fix to a Bitcoin Core fuzz test (an automated internal testing harness), not to the live network code. The fuzzer was sometimes creating fake P2P messages larger than the real protocol allows and passing them into a test he…

Test-only fuzz harness hardeningOversized message guard added before ReceiveMsgFrom() in fuzz targetNo change to production P2P message acceptance logic
bb19f1daby Greg Sanders+5−01 file
No security note in commit
Informational 15 AI analysisMessage 97 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

ci: Temporarily remove riscv32 config from GHA matrix

This commit simply removes one failing test configuration (RISC-V 32-bit bare metal) from the project's GitHub Actions CI matrix because it was failing. It is a routine CI maintenance change with no security implications.

fa06ea42by MarcoFalke+0−61 file
No security note in commit
Low 47 AI analysisMessage 90 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

ci: verify cross-build SDK archives

This change adds checksum verification to the build system's downloads of Apple, FreeBSD, NetBSD, and OpenBSD software development kits (SDKs). Before this patch, those SDK archives were downloaded at build time and extracted without confi…

Adds cryptographic digest verification for downloaded SDK archivesRemoves unchecked extraction of remote SDK archives in CIHardens CI supply chain for macOS/BSD cross-builds
873550beby Lőrinc+25−126 files
Vendor flagged security relevance
Repository ledger

Explore captured commits

Expand any commit for its author, full message, clarity score, changed files, triage signals, analysis, and source link.

Lower-priorityipc: Add MakeBasicInit functionby Ryan Ofsky · 3cd1cd3a · Feb 27, 2026 · 2 filesMessage 78 · AdequateInformational 15Details
Commit message · Ryan Ofsky

ipc: Add MakeBasicInit function

Add a MakeBasicInit() function so simpler standalone IPC clients like
bitcoin-mine in #30437 and bitcoin-cli in #32297 that only initiate IPC
connections without exposing any IPC interfaces themselves can to avoid needing
to implement their own specialized interfaces::Init subclasses.

78/100 · AdequateMessage clarity
✓ Descriptive subject✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Links an issue, advisory, or supporting reference
AI analysis · Informational 15/100

This commit adds a small helper function that makes it easier for simple Bitcoin tools (like command-line utilities) to connect to other Bitcoin processes over IPC without needing to write boilerplate setup code. It does not change existing behavior or fix any bug; it is purely a code organization and convenience addition.

Lower-prioritybitcoin-cli: Add -ipcconnect optionby Ryan Ofsky · 8d614bfa · Feb 27, 2026 · 4 filesMessage 86 · StrongInformational 20Details
Commit message · Ryan Ofsky

bitcoin-cli: Add -ipcconnect option

This implements an idea from Pieter Wuille <pieter@wuille.net>
https://github.com/bitcoin/bitcoin/issues/28722#issuecomment-2807026958 to
allow `bitcoin-cli` to connect to the node via IPC instead of TCP, if the
`ENABLE_IPC` cmake option is enabled and the node has been started with
`-ipcbind`.

The feature can be tested with:

build/bin/bitcoin-node -regtest -ipcbind=unix -debug=ipc
build/bin/bitcoin-cli -regtest -ipcconnect=unix -getinfo

The `-ipconnect` parameter can also be omitted, since this change also makes
`bitcoin-cli` prefer IPC over HTTP by default, and falling back to HTTP if an
IPC connection can't be established.

86/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification✓ Links an issue, advisory, or supporting reference
AI analysis · Informational 20/100

This commit adds a new command-line option to bitcoin-cli that lets it talk to a local Bitcoin node over a local inter-process communication (IPC) socket instead of the usual network HTTP connection. It is a feature addition, not a fix for a known bug or vulnerability. The change is opt-in at build time and runtime, and it does not appear to introduce an obvious security flaw, but it does add new code paths for authentication and transport that need careful review.

Lower-prioritybitcoin-gui: Implement missing Init::makeMining methodby Ryan Ofsky · 4565cff7 · Feb 27, 2026 · 1 fileMessage 93 · StrongLow 26Details
Commit message · Ryan Ofsky

bitcoin-gui: Implement missing Init::makeMining method

A missing Init::makeMining implementation was causing internal code using the
mining interface (like the `waitforblockheight` RPC method) to not work when
running inside the `bitcoin-gui` binary. It was working the other bitcoin
binaries ('bitocind`, `bitcoin-qt`, and `bitcoin-node`) because they
implmemented `Init::makeMining` methods in commit
8ecb6816781c7c7f423b501cbb2de3abd7250119 from #30200, but the `bitcoin-gui`
init class was forgotten in that change.

This bug was reported by Matthew Zipkin <pinheadmz@gmail.com>
https://github.com/bitcoin/bitcoin/pull/32297#pullrequestreview-2932651216

93/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Links an issue, advisory, or supporting reference
AI analysis · Low 26/100

This commit fixes a simple oversight: the bitcoin-gui program was missing a factory method that creates the 'mining' interface. Because that interface was absent, some internal code paths—such as the waitforblockheight RPC—did not work when running inside bitcoin-gui, even though they worked in bitcoind, bitcoin-qt, and bitcoin-node. The patch adds the missing one-line method and its header include. It is a functionality bug, not an obvious security vulnerability, but any broken RPC path can have downstream reliability or, in rare cases, security-adjacent effects.

Lower-priorityipc: Expose an RPC interface over the -ipcbind socketby Ryan Ofsky · 6a548348 · Feb 27, 2026 · 12 filesMessage 65 · AdequateLow 35Details
Commit message · Ryan Ofsky

ipc: Expose an RPC interface over the -ipcbind socket

This allows `bitcoin-cli` to connect to the node via IPC instead TCP to execute
RPC methods in an upcoming commit.

65/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
AI analysis · Low 35/100

This commit adds a new way for local programs to talk to Bitcoin Core: instead of connecting over a regular network port, they can connect through a Unix socket file using a feature called -ipcbind. The commit itself is a building block for a later change that will let bitcoin-cli use this socket. The code exposes the same RPC commands that already exist, but over the local socket. The commit also updates the help text to warn that any local process that can reach the socket gets unauthenticated RPC access, so the socket file's permissions matter.

Lower-prioritytest: add interface_ipc_cli.py testing bitcoin-cli -ipcconnectby Ryan Ofsky · fbea576c · Feb 27, 2026 · 3 filesMessage 87 · StrongInformational 15Details
Commit message · Ryan Ofsky

test: add interface_ipc_cli.py testing bitcoin-cli -ipcconnect

Co-authored-by: Sjors Provoost <sjors@sprovoost.nl>

87/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ Mentions testing or verification
AI analysis · Informational 15/100

This commit only adds new automated tests for the bitcoin-cli command-line tool's IPC (inter-process communication) connection feature. It does not change any production code, so it cannot introduce a security vulnerability or fix one in the software users run.

AI review queuedrefactor: Add ExecuteHTTPRPC functionby Ryan Ofsky · df76891a · Feb 27, 2026 · 4 filesMessage 70 · AdequateInformational 13Details
Commit message · Ryan Ofsky

refactor: Add ExecuteHTTPRPC function

Add ExecuteHTTPRPC to provide a way to execute an HTTP request without relying
on HTTPRequest and libevent types.

Behavior is not changing in any way, this is just moving code. This commit may
be easiest to review using git's --color-moved option.

70/100 · AdequateMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
Why it was queued
parser or protocol pathsecond-pass: security-sensitive path
AI analysis · Informational 13/100

This commit is a code cleanup that splits the existing JSON-RPC request handling into a new helper function called ExecuteHTTPRPC. The commit message explicitly says behavior is not changing, and the diff shows the same logic being moved around rather than added or removed. There is no indication of a security fix or vulnerability.

AI review queuedfuzz: wallet: add target for `MigrateToDescriptor`by brunoerg · 779e7825 · Feb 27, 2026 · 1 fileMessage 60 · AdequateInformational 14Details
Commit message · brunoerg

fuzz: wallet: add target for `MigrateToDescriptor`

60/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
fuzzing or regression evidencesigning or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 14/100

This commit adds a new automated fuzz test for Bitcoin Core's wallet migration feature. It does not change production wallet code; it only adds test code that feeds random inputs to the existing migration function to help find bugs. There is no indication this commit fixes or introduces a security vulnerability.

AI review queuedwallet: Drain validation interface queue after notifications disconnectby Ava Chow · 98e8af4b · Feb 27, 2026 · 2 filesMessage 73 · AdequateLow 40Details
Commit message · Ava Chow

wallet: Drain validation interface queue after notifications disconnect

When unloading a wallet, there may be unexecuted callbacks in the
validation interface queue that can still execute after we have
completed all of the other wallet shutdown tasks. Instead of letting
these run in the background, once the notifications are disconnected,
wait for the queue to drain before continuing with wallet shutdown.

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 40/100

This change fixes a wallet shutdown timing issue in Bitcoin Core. Previously, when a wallet was unloaded, some background blockchain notifications could still run after the wallet had already finished shutting down. The patch makes the wallet explicitly wait for those pending notifications to finish before completing shutdown, preventing potential crashes or use-after-free problems.

Lower-priorityinterfaces: Add waitForNotifications() to call SyncWithValidationInterfaceQueue()by Ava Chow · 52992ebe · Feb 27, 2026 · 2 filesMessage 65 · AdequateInformational 15Details
Commit message · Ava Chow

interfaces: Add waitForNotifications() to call SyncWithValidationInterfaceQueue()

Co-Authored-By: stickies-v <stickies-v@protonmail.com>

65/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
AI analysis · Informational 15/100

This commit adds a new public interface method that lets callers wait for background notification processing to finish. It is a straightforward API addition with no security relevance visible in the diff or commit message.

AI review queueddoc: Use relative markdown linksby MarcoFalke · fa9d0623 · Feb 27, 2026 · 7 filesMessage 45 · ThinInformational 15Details
Commit message · MarcoFalke

doc: Use relative markdown links

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathdocumentation-only discountsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit only changes documentation links from absolute GitHub URLs to relative markdown links. It does not modify any executable code, network behavior, cryptography, wallet logic, or configuration handling. There is no security relevance.

Lower-priorityclusterlin: adopt STL ranges algorithms (refactor)by Pieter Wuille · 1aa78cda · Feb 27, 2026 · 3 filesMessage 50 · ThinInformational 15Details
Commit message · Pieter Wuille

clusterlin: adopt STL ranges algorithms (refactor)

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Informational 15/100

This commit is a straightforward modernization of the Bitcoin Core codebase: it replaces older C++ standard-library iterator-based calls like std::sort and std::unique with their newer C++20 'ranges' equivalents (std::ranges::sort, std::ranges::unique). The behavior of the code is intended to stay exactly the same; only the syntax is updated. There is no security fix or vulnerability being addressed here.

Lower-priorityfeefrac: drop comparison and operator{<<,>>} for sorted wrappersby Pieter Wuille · 747da253 · Feb 27, 2026 · 15 filesMessage 73 · AdequateInformational 19Details
Commit message · Pieter Wuille

feefrac: drop comparison and operator{<<,>>} for sorted wrappers

Instead of having an unintuitive but total implicit sort order on
FeeFrac (first increasing feerate, then decreasing size), and separate
overloaded operator<< and operator>> for a weak ordering that only looks
at feerate, replace these with explicit wrapper classes which make the
behavior more explicit.

This allows for things like ByRatio{a} <= ByRatio{b}, instead of the
earlier !(a >> b). It also supports usage inside std::max and
std::greater, so one can use:
* std::max<ByRatioNegSize<FeeFrac>>(a, b)
* std::sort(v.begin(), v.end(), std::greater<ByRatioNegSize<FeeFrac>>{})

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Informational 19/100

This is a code-cleanup change in Bitcoin Core that replaces confusing custom comparison operators on a fee/size data structure with clearly named wrapper classes. It does not fix a known vulnerability or change network behavior; it is a refactor to make the code easier to understand and maintain.

Lower-prioritytest: Add missing timeout_factor to zmq socketby MarcoFalke · fa48f8c8 · Feb 27, 2026 · 1 fileMessage 67 · AdequateInformational 15Details
Commit message · MarcoFalke

test: Add missing timeout_factor to zmq socket

67/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Informational 15/100

This is a one-line fix in a test script for Bitcoin Core's ZeroMQ (ZMQ) notification interface. It makes a test socket timeout scale with the test framework's configurable slowdown factor, preventing flaky test failures on slow machines. It does not change production code and has no security impact on real Bitcoin nodes or wallets.

AI review queuedtest: add test for rebroadcast of transaction received via p2pby Martin Zumsande · 73e38531 · Feb 27, 2026 · 1 fileMessage 95 · StrongInformational 15Details
Commit message · Martin Zumsande

test: add test for rebroadcast of transaction received via p2p

The wallet doesn't only rebroadcast transactions it created, but
also relevant transactions received via p2p. Since this is not
self-evident, add test coverage for it.

95/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Mentions testing or verification
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit only adds a new test to Bitcoin Core. It checks that the wallet software will re-broadcast a transaction it learned about from another peer, not just transactions it created itself. There is no change to production code, so it does not fix or introduce a security issue on its own.

Lower-prioritytest: Move valgrind.supp to the other sanitizer_suppressions filesby MarcoFalke · fab51e47 · Feb 27, 2026 · 4 filesMessage 72 · AdequateInformational 15Details
Commit message · MarcoFalke

test: Move valgrind.supp to the other sanitizer_suppressions files

72/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
defensive validation
AI analysis · Informational 15/100

This commit simply moves a Valgrind suppressions file from one directory to another. It does not change any code that runs in production, nor does it alter the suppressions themselves. All references to the file's path are updated so tests and documentation still point to the right location. There is no security issue here.

Lower-prioritytest: Add missing resolve() to valgrind.supp fileby MarcoFalke · fa9cf81d · Feb 27, 2026 · 1 fileMessage 100 · StrongInformational 15Details
Commit message · MarcoFalke

test: Add missing resolve() to valgrind.supp file

Normally, when a symlinked test script is executed directly (e.g.,
`./bld-cmake/test/functional/wallet_disable.py`), Python's default
behavior is to resolve the symlink of the script itself, setting
`sys.path[0]` to the directory containing the physical source file.
Consequently, the test framework util.py is imported from the source
tree, and `Path(__file__).parents[3]` correctly resolves to the source
root.

However, `feature_framework_testshell.py` is unique because it manually
inserts `Path(__file__).parent` into `sys.path`. That refers to the
build tree and when importing the test framework util.py, the
`Path(__file__).parents[3]` will incorrectly point to the build
directory instead of the source root.

Use `.resolve()` to ensure the Valgrind suppressions file path is always
calculated relative to the physical source file, regardless of how the
framework was imported.

100/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Mentions testing or verification
AI analysis · Informational 15/100

This is a one-line fix in Bitcoin Core's test framework. It ensures that when running tests under the Valgrind memory-checking tool, the correct suppressions file is found even if the test script is accessed through a symbolic link. It does not change the Bitcoin node software itself and has no security impact on users' funds or the network.

Lower-prioritytest: Fix typoby MarcoFalke · fa18be2f · Feb 27, 2026 · 1 fileMessage 50 · ThinInformational 15Details
Commit message · MarcoFalke

test: Fix typo

50/100 · ThinMessage clarity
✓ Subject identifies a change✓ Uses a recognizable type or scope✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Informational 15/100

This commit fixes a single grammar typo in a comment within a test file. It changes 'drain' to 'drains' in a sentence explaining test behavior. There is no code change, no functional change, and no security relevance.

Lower-priorityci: Set TEST_RUNNER_PORT_MIN in test-each after cirrus runner switchby MarcoFalke · fac93269 · Feb 27, 2026 · 1 fileMessage 72 · AdequateInformational 15Details
Commit message · MarcoFalke

ci: Set TEST_RUNNER_PORT_MIN in test-each after cirrus runner switch

72/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 15/100

This is a routine continuous-integration (CI) configuration tweak. It changes the starting port number used by Bitcoin Core's test runner in one GitHub Actions workflow, so it no longer overlaps with a port used by the Cirrus CI cache service. There is no security vulnerability here—just a port-collision avoidance fix for automated testing infrastructure.

Lower-prioritynetif: fix compilation warning in QueryDefaultGatewayImpl()by MarcoFalke · c1361fc4 · Feb 27, 2026 · 1 fileMessage 73 · AdequateInformational 15Details
Commit message · MarcoFalke

netif: fix compilation warning in QueryDefaultGatewayImpl()

```
src/common/netif.cpp:137:51: error: comparison of integers of different signs: 'int64_t' (aka 'long') and 'unsigned long' [-Werror,-Wsign-compare]
137 | for (nlmsghdr* hdr = (nlmsghdr*)response; NLMSG_OK(hdr, recv_result); hdr = NLMSG_NEXT(hdr, recv_result)) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/netlink/netlink.h:220:31: note: expanded from macro 'NLMSG_OK'
220 | #define NLMSG_OK(_hdr, _len) NL_ITEM_OK(_hdr, _len, NLMSG_HDRLEN, _NLMSG_LEN)
| ^ ~~~~ ~~~~~~~~~~~~
/usr/include/netlink/netlink.h:203:10: note: expanded from macro 'NL_ITEM_OK'
203 | ((_len) >= _hlen && _LEN_M(_ptr) >= _hlen && _LEN_M(_ptr) <= (_len))
| ~~~~ ^ ~~~~~
1 error generated.
```

Happens on FreeBSD 15.0, with the default compiler (Clang 19).

On FreeBSD 14, `/usr/include/netlink/netlink.h` contains:
```
#define NLMSG_HDRLEN ((int)sizeof(struct nlmsghdr))
```

On FreeBSD 15, `/usr/include/netlink/netlink.h` contains:
```
#define NLMSG_HDRLEN (sizeof(struct nlmsghdr))
```

Co-authored-by: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Informational 15/100

This is a build-fix change only. A developer fixed a compiler warning that caused compilation to fail on FreeBSD 15 because a system header changed the type of a constant used in a network-routing helper. There is no change to program logic, no security bug, and no way to exploit it.

Security candidatetest: remove appveyor reference in commentby Max Edwards · 8834e4e8 · Feb 26, 2026 · 1 fileMessage 100 · StrongInformational 15Details
Commit message · Max Edwards

test: remove appveyor reference in comment

Appveyor is not longer used however the test still requires to check for
permissions including 666 as otherwise the tests fail on Windows

100/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Mentions testing or verification
Why it was queued
credential or privilege statesigning or wallet path
AI analysis · Informational 15/100

This commit only updates two comments in a test file. It replaces the word 'Appveyor' (an old Windows continuous-integration service) with 'Windows' to reflect that the project no longer uses Appveyor. No actual code behavior changes, and there is no security relevance.

Lower-priorityci: Download script_assets_test.json for Windows CIby MarcoFalke · fa7612f2 · Feb 26, 2026 · 4 filesMessage 62 · AdequateInformational 15Details
Commit message · MarcoFalke

ci: Download script_assets_test.json for Windows CI

62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Informational 15/100

This change updates Bitcoin Core's Windows continuous integration (CI) scripts to download a test data file used by unit tests. It is a build/test infrastructure fix, not a change to the Bitcoin node software itself, and it does not introduce a security vulnerability.

Lower-prioritytest: Move Fetching-print to download_from_url utilby MarcoFalke · 7777a133 · Feb 26, 2026 · 2 filesMessage 72 · AdequateInformational 15Details
Commit message · MarcoFalke

test: Move Fetching-print to download_from_url util

This does not change any behavior.

72/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Informational 15/100

This is a harmless test-only code cleanup. It moves a status print statement from one test helper script into another shared test utility, with no change to what the program actually does. There is no security relevance.

Lower-prioritytest: move-only download_from_url to stand-alone util fileby MarcoFalke · faf96286 · Feb 26, 2026 · 2 filesMessage 87 · StrongInformational 15Details
Commit message · MarcoFalke

test: move-only download_from_url to stand-alone util file

Can be reviewed via --color-moved=dimmed-zebra

87/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ Mentions testing or verification
AI analysis · Informational 15/100

This commit simply moves an existing download helper function from one test script into its own small utility file. There are no functional code changes, no bug fixes, and no security-related modifications.

Lower-priorityci: fix vcpkg tools cache key collision between windows matrix jobsby will · 17a079c2 · Feb 26, 2026 · 1 fileMessage 95 · StrongInformational 15Details
Commit message · will

ci: fix vcpkg tools cache key collision between windows matrix jobs

The standard and fuzz matrix jobs share the same github.job value
(windows-native-dll), so both try to save the vcpkg tools cache with the
same key.

Since the tools are identical across build types, let them share a
single cache entry by restricting the save to the standard job only.

95/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Mentions testing or verification
Why it was queued
fuzzing or regression evidencedocumentation-only discount
AI analysis · Informational 15/100

This is a routine fix to Bitcoin Core's GitHub Actions CI workflow. Two Windows test jobs were accidentally trying to save their build-tool cache under the same name, which could cause a harmless cache-save conflict. The patch makes only one of the two jobs save the cache. It does not change Bitcoin Core software, wallet code, networking, or cryptography, and has no security relevance for users.

Lower-prioritytest: threadpool, add coverage for all Submit() errorsby furszy · 9dc653b3 · Feb 26, 2026 · 1 fileMessage 87 · StrongInformational 15Details
Commit message · furszy

test: threadpool, add coverage for all Submit() errors

Submit tasks to a non-started, interrupted, or stopped
pool and verify the proper error is always returned.

87/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ Mentions testing or verification
AI analysis · Informational 15/100

This commit only adds new test code to Bitcoin Core. It expands an existing unit test to check that a background worker pool (ThreadPool) returns the correct error messages when tasks are submitted while the pool is not started, interrupted, or stopped. There is no change to production code and no security fix or vulnerability is introduced.