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
204commits · 30 days
502commits · 60 days
1531commits · 180 days
2883commits · 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 28 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-prioritymove-onlyish: Move logging levels to util/log.hby stickies-v · 94c0adf4 · Feb 2, 2026 · 2 filesMessage 80 · StrongInformational 15Details
Commit message · stickies-v

move-onlyish: Move logging levels to util/log.h

This is not strictly move-only because BCLog::Level is now defined as a type
alias for util::log::Level;

Review with --color-moved=dimmed-zebra --color-moved-ws=ignore-all-space

Co-authored-by: Ryan Ofsky <ryan@ofsky.org>

80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode
AI analysis · Informational 15/100

This commit is a simple code reorganization: it moves the definition of logging levels (Trace, Debug, Info, Warning, Error) from one header file to another and creates a compatibility alias so existing code keeps working. There is no functional change and no security impact.

Lower-prioritymove-only: Move SourceLocation to util/log.hby stickies-v · f5233f7e · Feb 2, 2026 · 2 filesMessage 68 · AdequateInformational 15Details
Commit message · stickies-v

move-only: Move SourceLocation to util/log.h

Introduce util/log.h as a lightweight header for code that only needs to emit
log messages. Move SourceLocation into this header so log-emitting code no
longer needs to include logging.h and depend on the full log management API.

This is a move-only change and the first change of several changes that
separate log generation from log handling. It also applies clang-format
suggestions to the moved code.

Review with --color-moved=dimmed-zebra --color-moved-ws=ignore-all-space

Co-authored-by: Ryan Ofsky <ryan@ofsky.org>

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Informational 15/100

This commit is a simple code reorganization: it moves a small helper class called SourceLocation from one header file to a new, smaller header file. There is no change to how the software behaves, no bug fix, and no security-relevant change.

Lower-prioritylogging: Move message formatting to util/log.hby stickies-v · bb8e9e7c · Feb 2, 2026 · 3 filesMessage 68 · AdequateInformational 15Details
Commit message · stickies-v

logging: Move message formatting to util/log.h

With this change, callers can use util/log.h to emit log messages and do not need to
include the full logging implementation in logging.h.

There's a potential performance impact with this change from an extra
`strprintf` call in log statements where `Logger::WillLogCategoryLevel` returns
true but `Logger::Enabled` returns false. This happens when bitcoind is run
with `-noprinttoconsole -nodebuglogfile` options.

For background, log macro arguments are supposed to be evaluated when
`Logger::WillLogCategoryLevel` returns true, even if log output is not enabled.
Changing this behavior would be reasonable but needs consideration in a
separate PR since not evaluating arguments in log statements has the potential
to change non-logging behavior.

The extra `strprintf` call could have been avoided by expanding this change and
making the `ShouldLog()` function return a tri-state DO_LOG / DO_NOT_LOG /
DO_NOT_LOG_ONLY_EVALUATE_ARGS value instead of a bool, but this complexity did
not seem warranted.

Review with --color-moved=dimmed-zebra --color-moved-ws=ignore-all-space

Co-authored-by: Ryan Ofsky <ryan@ofsky.org>

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Informational 15/100

This commit is a straightforward internal code reorganization for Bitcoin Core's logging system. It moves where log message formatting happens so that smaller parts of the code can include a lighter logging header. The commit itself notes a minor, non-security performance side effect in an unusual configuration, but there is no vulnerability or security fix here.

Security candidatelogging: use util/log.h where possibleby stickies-v · 37cc2a2d · Feb 2, 2026 · 33 filesMessage 68 · AdequateInformational 15Details
Commit message · stickies-v

logging: use util/log.h where possible

Preparation for a future commit where kernel's dependency
on logging.cpp is removed completely.

Replace usage of logging\.h with util/log\.h where it
suffices, and fix wrong includes according to iwyu.

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
seed or entropy pathsigning or wallet path
AI analysis · Informational 15/100

This is a routine code cleanup change. It swaps one internal logging header file for another, smaller one across many source files and fixes a few include-order style issues. There is no change to program behavior, no bug fix, and no security-relevant modification.

AI review queuedmove-only: move logging categories to logging/categories.hby stickies-v · 56d113ca · Feb 2, 2026 · 2 filesMessage 73 · AdequateInformational 15Details
Commit message · stickies-v

move-only: move logging categories to logging/categories.h

Logging categories are currently shared between node and kernel. This
separation allows future commits to completely remove kernel's
dependency on logging.h.

Also applies clang-format suggestions to the moved code.

Review with --color-moved=dimmed-zebra --color-moved-ws=ignore-all-space

Co-authored-by: Ryan Ofsky <ryan@ofsky.org>

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
second-pass: broader security terminology
AI analysis · Informational 15/100

This commit is a simple code reorganization: it moves the list of logging categories from one header file to a new header file, without changing what the categories are or how they behave. It is purely a structural cleanup to make future work easier.

AI review queuedrefactor: Use empty() over eof() in the streams interfaceby MarcoFalke · fa20bc2e · Feb 2, 2026 · 5 filesMessage 77 · AdequateInformational 15Details
Commit message · MarcoFalke

refactor: Use empty() over eof() in the streams interface

End-of-file does not really make sense for streams that wrap buffers. So
replace it by the equivalent empty() checks.

77/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit is a straightforward code cleanup: it renames the stream check from eof() (end-of-file) to empty() because the streams actually wrap in-memory buffers, not files. The behavior is identical, so there is no security issue here.

Lower-prioritytest: Read debug log for self-checking commentby MarcoFalke · fa879db7 · Feb 2, 2026 · 1 fileMessage 100 · StrongInformational 15Details
Commit message · MarcoFalke

test: Read debug log for self-checking comment

The DataStream comment was a bit stale, because it was using
CDataStream.

Fix it by using assert_debug_log for a self-documenting and
self-checking test code.

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 minor test-only change. It updates a functional test comment and replaces a stale comment with an actual check that the expected debug log message appears. There is no change to production code, no security fix, and no vulnerability.

Security candidateci: use Alpine 3.23by fanquake · d4057131 · Feb 2, 2026 · 1 fileMessage 50 · ThinInformational 15Details
Commit message · fanquake

ci: use Alpine 3.23

50/100 · ThinMessage clarity
✓ Subject identifies a change✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
authentication path
AI analysis · Informational 15/100

This commit simply updates the version of the Alpine Linux container used in Bitcoin Core's automated testing from Alpine 3.22 to Alpine 3.23. It is a routine CI (continuous integration) maintenance change with no visible security relevance in the commit itself.

Lower-priorityci: detect apk usage generallyby fanquake · 1cee0e4c · Feb 2, 2026 · 1 fileMessage 72 · AdequateInformational 17Details
Commit message · fanquake

ci: detect apk usage generally

Rather than listing image names, which makes it less easy to
run custom CI jobs.

72/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body
AI analysis · Informational 17/100

This is a tiny change to Bitcoin Core's internal continuous integration (CI) setup script. It switches from checking whether the Docker image name contains 'alpine' to checking whether the 'apk' package manager command is available. This makes the CI script more flexible for custom images but does not change any user-facing behavior, network rules, or security-sensitive logic.

Security candidateSquashed 'src/secp256k1/' changes from 14e56970cb..57315a6985by fanquake · 9d4c9b00 · Feb 2, 2026 · 14 filesMessage 86 · StrongInformational 15Details
Commit message · fanquake

Squashed 'src/secp256k1/' changes from 14e56970cb..57315a6985

57315a6985 Merge bitcoin-core/secp256k1#1813: Remove trailing spaces and introduce `-Wtrailing-whitespace=any` compiler flag
86cae58d2f build: Add `-Wleading-whitespace=spaces` compiler flag
fb229e7602 build: Add `-Wtrailing-whitespace=any` compiler flag
13e3bee504 refactor: Remove trailing whitespace
453949ab2a Merge bitcoin-core/secp256k1#1816: ci: Rotate Docker cache keys
cd49c57e44 Merge bitcoin-core/secp256k1#1814: release process: mention the `[Unreleased]` link clearly
2ccff6eb73 ci: Add weekly schedule
2f18567d24 ci: Rotate Docker cache keys every 4 weeks
0ffb1749a5 ci, docker: Fix LLVM repository signature failure
0267b65512 release process: mention the `[Unreleased]` link clearly
1605b02f75 Merge bitcoin-core/secp256k1#1775: Add CMake build directory patterns to `.gitignore`
748c0fdd67 Add CMake build directory patterns to `.gitignore`
7eb86bdb01 autotools: Rename `build-aux` to `autotools-aux`

git-subtree-dir: src/secp256k1
git-subtree-split: 57315a69853c9bd4765fccf20b541d47f1b45ca9

86/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference✓ Names security-relevant behavior explicitly
Why it was queued
signing boundarycryptography-sensitive path
AI analysis · Informational 15/100

This commit is a routine subtree update for the secp256k1 cryptographic library used by Bitcoin Core. The changes are purely housekeeping: removing trailing/leading whitespace, adding compiler warnings for whitespace, renaming a build directory, rotating CI Docker cache keys, and updating release documentation. There are no changes to cryptographic algorithms, no bug fixes, and no security patches.

Security candidateci: Treat SHA1 LLVM signing key as warningby will · 3c8f5e48 · Feb 2, 2026 · 1 fileMessage 88 · StrongInformational 21Details
Commit message · will

ci: Treat SHA1 LLVM signing key as warning

The current SHA1 LLVM signing key is considered not secure since
2026-02-01T00:00:00Z which makes this run fail when downloading
packages.

See: https://github.com/llvm/llvm-project/issues/153385

Apply the fix from the issue to temporarily to treat this error as a
warning, until the upstream key can be updated.

This PR should be reverted once the upstream key is updated.

88/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
Why it was queued
signing boundary
AI analysis · Informational 21/100

This change is a temporary workaround for a CI build script. It relaxes a security policy so that apt can still accept an older SHA1-based LLVM signing key after a deadline passed. It is not a fix for a vulnerability in Bitcoin Core itself, but it slightly weakens a cryptographic check in the automated test environment until LLVM updates its key.

Lower-priorityrefactor(miniscript): Move keys to avoid copyby Hodlinator · da51b5e4 · Feb 2, 2026 · 1 fileMessage 84 · StrongInformational 15Details
Commit message · Hodlinator

refactor(miniscript): Move keys to avoid copy

As done in other ctors.

Co-authored-by: Lőrinc <pap.lorinc@gmail.com>

84/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ Explains rationale or failure mode
AI analysis · Informational 15/100

This is a tiny C++ performance cleanup in Bitcoin Core's miniscript code. It changes one constructor to move a list of keys instead of copying them, matching how other arguments are already handled. There is no security issue here.

Lower-priorityci: bump CCACHE_MAXSIZE to 2Gby will · 580e9eef · Feb 2, 2026 · 1 fileMessage 80 · StrongInformational 15Details
Commit message · will

ci: bump CCACHE_MAXSIZE to 2G

With 15 runners we get 150GB of cache space to use, and we currently
have 18 jobs using ccache.

Although each run only generates ~ 200-300 MB of cache data on each run,
the small the small size may be contributing to poor hitrate.

Bump ccache to 2GB per job ~ --> 36GB of the total 150GB cache space to
try and reduce any thrashaing and generally increase hitrate.

80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
AI analysis · Informational 15/100

This commit simply increases the maximum size of a build-speed cache used during automated testing, from 500 megabytes to 2 gigabytes per job. It only affects the project's own continuous-integration (CI) build environment and has no security relevance for Bitcoin Core users or the network.

Lower-prioritynet: extend log message to include attempted connection typeby Vasil Dimov · 67696b20 · Feb 2, 2026 · 1 fileMessage 50 · ThinInformational 15Details
Commit message · Vasil Dimov

net: extend log message to include attempted connection type

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

This commit simply adds extra information to a debug log message. When Bitcoin Core tries to connect to another node, it now records what kind of connection it is attempting (for example, outbound, inbound, or manual) alongside the existing transport version and address details. There is no change to network behavior, permissions, or security logic.

Lower-prioritysupport multiple block status checks in CheckBlockDataAvailabilityby furszy · 881ab4fc · Feb 1, 2026 · 3 filesMessage 50 · ThinInformational 21Details
Commit message · furszy

support multiple block status checks in CheckBlockDataAvailability

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

This commit expands an internal Bitcoin Core function so it can check for multiple types of stored block data, not just raw block files. It also adds a special case so the check does not incorrectly fail because the genesis block has no undo data. The change is primarily a code-quality and correctness improvement; there is no direct evidence it fixes an active security vulnerability.

AI review queuedconsensus/test: add out-of-range output unit tests for `CTransaction::GetValueOut`by Lőrinc · 232a2bce · Jan 31, 2026 · 1 fileMessage 91 · StrongInformational 13Details
Commit message · Lőrinc

consensus/test: add out-of-range output unit tests for `CTransaction::GetValueOut`

Inspired by b-c-cov coverage reports:
* "GetValueOut: value out of range" - https://maflcko.github.io/b-c-cov/test_bitcoin.coverage/src/primitives/transaction.cpp.gcov.html#L103

91/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification✓ Links an issue, advisory, or supporting reference
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 13/100

This commit only adds a new automated test to Bitcoin Core. It checks that a helper function called GetValueOut() correctly throws an error when a transaction output exceeds the maximum allowed money value. There is no change to production code, no bug fix, and no security patch.

AI review queuedconsensus/test: add `MoneyRange` unit tests for `CheckTxInputs`by Lőrinc · aa87aae1 · Jan 31, 2026 · 1 fileMessage 91 · StrongInformational 15Details
Commit message · Lőrinc

consensus/test: add `MoneyRange` unit tests for `CheckTxInputs`

Add minimal unit tests exercising `Consensus::CheckTxInputs` reject reasons for coinbase maturity (`bad-txns-premature-spend-of-coinbase`), input value range failures (`bad-txns-inputvalues-outofrange`), and for `nValueIn < value_out` (`bad-txns-in-belowout`).

Inspired by b-c-cov coverage reports:
* "bad-txns-premature-spend-of-coinbase" - https://maflcko.github.io/b-c-cov/test_bitcoin.coverage/src/consensus/tx_verify.cpp.gcov.html#L180
* "bad-txns-inputvalues-outofrange" - https://maflcko.github.io/b-c-cov/test_bitcoin.coverage/src/consensus/tx_verify.cpp.gcov.html#L187
* "bad-txns-in-belowout" - https://maflcko.github.io/b-c-cov/test_bitcoin.coverage/src/consensus/tx_verify.cpp.gcov.html#L193

91/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification✓ Links an issue, advisory, or supporting reference
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit only adds new unit tests for an existing Bitcoin Core transaction validation function. It does not change any production consensus, networking, or wallet code. There is no security fix or behavior change in the software itself.

Lower-priorityci, iwyu: Fix warnings in `src/univalue` and treat them as errorsby Hennadii Stepanov · 1bf38422 · Jan 31, 2026 · 7 filesMessage 50 · ThinInformational 15Details
Commit message · Hennadii Stepanov

ci, iwyu: Fix warnings in `src/univalue` and treat them as errors

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 routine code-quality cleanup. It removes unused C++ header includes from the univalue JSON library and adds the univalue source files to a CI check that treats 'include what you use' warnings as errors. There is no change to program behavior, no bug fix, and no security relevance.

Lower-priorityfuzz: pull latest FuzzedDataProvider.h from upstreamby b-l-u-e · dfb93646 · Jan 31, 2026 · 1 fileMessage 60 · AdequateInformational 15Details
Commit message · b-l-u-e

fuzz: pull latest FuzzedDataProvider.h from upstream

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 evidence
AI analysis · Informational 15/100

This commit updates a single test-only helper file used for fuzz testing. It removes an outdated comment and switches one conditional to use a C++17 compile-time feature. The changes do not touch production Bitcoin code, wallets, networking, consensus rules, or any user-facing functionality. There is no security issue here.

Lower-priorityChange BlockRequestAllowed() to take refby optout · 1f8f7d47 · Jan 30, 2026 · 1 fileMessage 68 · AdequateInformational 15Details
Commit message · optout

Change BlockRequestAllowed() to take ref

The input parameter of `PeerManagerImpl::BlockRequestAllowed()` changed to
reference from pointer. The change is local to the class.

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Informational 15/100

This is a small internal code cleanup in Bitcoin Core. It changes one function so it accepts a direct reference to a block index object instead of a pointer. The behavior of the program is unchanged; the only difference is that callers now dereference their pointers before passing them in. There is no security issue here.

Lower-priorityfuzz: add test case for threadpoolby TheCharlatan · c323f882 · Jan 30, 2026 · 2 filesMessage 70 · AdequateInformational 15Details
Commit message · TheCharlatan

fuzz: add test case for threadpool

Co-authored-by: furszy <matiasfurszyfer@protonmail.com>

70/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Mentions testing or verification
Why it was queued
fuzzing or regression evidence
AI analysis · Informational 15/100

This commit adds a new automated test (a fuzz test) for Bitcoin Core's internal thread pool. It does not change any production code, only test code. There is no security vulnerability here.

Lower-priorityutil: introduce general purpose thread poolby furszy · c528dd5f · Jan 30, 2026 · 3 filesMessage 45 · ThinInformational 15Details
Commit message · furszy

util: introduce general purpose thread pool

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Informational 15/100

This commit adds a brand-new general-purpose thread pool utility to Bitcoin Core, along with a comprehensive test suite. It is purely an infrastructure addition: no existing code is modified, and the new component is not yet wired into any network, consensus, or wallet logic. There is no indication this commit fixes or introduces a security issue.

Lower-priorityhttp: replace WorkQueue and threads handling for ThreadPoolby furszy · 38fd85c6 · Jan 30, 2026 · 2 filesMessage 83 · StrongLow 31Details
Commit message · furszy

http: replace WorkQueue and threads handling for ThreadPool

Replace the HTTP server's WorkQueue implementation and single threads
handling code with ThreadPool for processing HTTP requests. The
ThreadPool class encapsulates all this functionality on a reusable
class, properly unit and fuzz tested (the previous code was not
unit nor fuzz tested at all).

This cleanly separates responsibilities:
The HTTP server now focuses solely on receiving and dispatching requests,
while ThreadPool handles concurrency, queuing, and execution.
It simplifies init, shutdown and requests tracking.

This also allows us to experiment with further performance improvements at
the task queuing and execution level, such as a lock-free structure, task
prioritization or any other performance improvement in the future, without
having to deal with HTTP code that lives on a different layer.

83/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
Why it was queued
fuzzing or regression evidence
AI analysis · Low 31/100

This commit refactors Bitcoin Core's internal HTTP server so it uses a shared ThreadPool class instead of its own custom work queue and worker thread management. It is a code cleanup and maintainability improvement. There is no direct evidence in the commit that it fixes a security bug, but any change to request handling, shutdown order, and queue-depth logic can affect reliability and potentially security-adjacent behavior such as denial of service from queued requests.

Lower-priorityutil: Drop *BSD headers in `batchpriority.cpp`by Hennadii Stepanov · 07af50f7 · Jan 30, 2026 · 1 fileMessage 68 · AdequateInformational 15Details
Commit message · Hennadii Stepanov

util: Drop *BSD headers in `batchpriority.cpp`

Currently, there are issues with headers in `batchpriority.cpp`:
1. `SCHED_BATCH` is not defined on all supported *BSD platforms.
2. `pthread.h` is necessary on other platforms.

This addresses both issues and fixes other includes.

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Informational 15/100

This is a straightforward portability fix for how Bitcoin Core sets thread scheduling priority on non-Windows systems. It rearranges and trims header files so the code compiles correctly on Linux and various BSD variants. There is no security vulnerability here.

Lower-prioritytest: Add DERSIG tests to script_testsby billymcbip · 4dfb6eef · Jan 30, 2026 · 1 fileMessage 82 · StrongInformational 15Details
Commit message · billymcbip

test: Add DERSIG tests to script_tests

Copy existing STRICTENC tests and change the flag to DERSIG.

82/100 · StrongMessage clarity
✓ 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 cases to a Bitcoin Core test data file. It copies existing signature-encoding tests and reruns them with the DERSIG flag instead of STRICTENC. No production code is changed, so this cannot introduce a vulnerability or fix one in the live Bitcoin network.