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
500commits · 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 53 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-prioritytest: script: boundary at exactly 65535 bytes must use OP_PUSHDATA2by Bruno Garcia · f8996746 · Mar 25, 2026 · 1 fileMessage 72 · AdequateInformational 18Details
Commit message · Bruno Garcia

test: script: boundary at exactly 65535 bytes must use OP_PUSHDATA2

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 18/100

This commit only adds a new test case to Bitcoin Core's test suite. It verifies that a 65535-byte data push in Bitcoin scripts is considered 'minimal' only when encoded with OP_PUSHDATA2, not OP_PUSHDATA4. The commit does not change any production code, so it cannot directly introduce or fix a live vulnerability. It is a regression test that documents an existing consensus rule boundary.

Lower-prioritycontrib: override system locale in gen-manpages.pyby Sjors Provoost · 758f208c · Mar 25, 2026 · 1 fileMessage 85 · StrongInformational 15Details
Commit message · Sjors Provoost

contrib: override system locale in gen-manpages.py

bitcoin-qt --help emits a translation of "version", which creates
a diff when updating or verifying man pages.

The script aborts earlier however, because bitcoin-qt --version also
emits a localized output, which triggers the "Copyright (C)" assertion
on a translated term like "Auteursrecht".

Fix this by passing --lang=en to both bitcoin-qt invocations.

None of the actual command options are translated, so this
commit does not affect the actual manual page.

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

This is a developer tooling fix for a Python script that generates manual pages for Bitcoin Core. The script was failing on non-English systems because bitcoin-qt's version and help output was translated, causing an assertion to fail. The fix forces English output by adding --lang=en. It does not change any user-facing code, network behavior, or wallet handling.

AI review queuedscripted-diff: rpc: Don't pointlessly capture in RPCMethod lambdasby Anthony Towns · 5a81d73a · Mar 25, 2026 · 23 filesMessage 83 · StrongInformational 15Details
Commit message · Anthony Towns

scripted-diff: rpc: Don't pointlessly capture in RPCMethod lambdas

-BEGIN VERIFY SCRIPT-
sed -i 's/\[[&]\][(]const RPCMethod[&]/[](const RPCMethod\&/' $(git grep -l '\[\&\](const RPCMethod')
-END VERIFY SCRIPT-

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
signing or wallet pathsecond-pass: unusually broad changesecond-pass: security-sensitive path
AI analysis · Informational 15/100

This is a large but purely cosmetic cleanup commit. It removes unnecessary '&' captures from C++ lambda functions used to define Bitcoin RPC commands. The code behavior is unchanged; the change only makes the source code slightly cleaner and avoids compiler warnings about unused captures.

AI review queuedscripted-diff: rpc: Rename RPCHelpMan to RPCMethodby Anthony Towns · 4e789299 · Mar 25, 2026 · 27 filesMessage 83 · StrongInformational 15Details
Commit message · Anthony Towns

scripted-diff: rpc: Rename RPCHelpMan to RPCMethod

Since this class defines the functionality of the RPC method, not
just its help text, this better reflects reality.

-BEGIN VERIFY SCRIPT-
sed -i -e 's/\bRPCHelpMan\b/RPCMethod/g' $(git grep -l RPCHelpMan src/)
-END VERIFY SCRIPT-

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
signing or wallet pathsecond-pass: unusually broad changesecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit is a purely cosmetic rename of a C++ class used to define Bitcoin RPC commands. Every occurrence of 'RPCHelpMan' is replaced with 'RPCMethod' across 27 source files using an automated script. No behavior, logic, or security properties of the software change.

Lower-prioritydoc: archive release notes for v28.4by fanquake · 3e089038 · Mar 25, 2026 · 1 fileMessage 45 · ThinInformational 15Details
Commit message · fanquake

doc: archive release notes for v28.4

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 15/100

This commit simply archives the release notes for Bitcoin Core version 28.4. It is a documentation-only change that adds a markdown file summarizing what went into the release. There is no code change and no security issue introduced or fixed by this commit itself.

AI review queuedtest: functional: drop rmtree usage and add lint checkby David Gumberg · 0d1301b4 · Mar 24, 2026 · 16 filesMessage 100 · StrongInformational 18Details
Commit message · David Gumberg

test: functional: drop rmtree usage and add lint check

`shutil.rmtree` is dangerous because it recursively deletes. There are
not likely to be any issues with it's current uses, but it is possible
that some of the assumptions being made now won't always be true, e.g.
about what some of the variables being passed to `rmtree` represent.

For some remaining uses of rmtree that can't be avoided for now, use
`cleanup_dir` which asserts that the recursively deleted folder is a
child of the the `tmpdir` of the test run. Otherwise,
`tempfile.TemporaryDirectory` should be used which does it's own
deleting on being garbage collected, or old fashioned unlinking and
rmdir in the case of directories with known contents.

100/100 · StrongMessage clarity
✓ Specific, 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
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 18/100

This commit is a hardening change for Bitcoin Core's test code. It removes most uses of shutil.rmtree, a Python function that recursively deletes directories, because it could accidentally wipe out the wrong folder if a test variable ever pointed somewhere unexpected. The patch replaces those calls with safer alternatives: a new cleanup_folder helper that refuses to delete anything outside the test's temporary directory, tempfile.TemporaryDirectory which cleans itself up, or explicit removal of known files. It also adds a lint rule to prevent new rmtree uses in test code. This is a defensive, preventive fix in the test suite, not a fix for an active security bug in the running Bitcoin node software.

Lower-prioritytest: functional: drop unused --keepcache argumentby David Gumberg · 8bfb422d · Mar 24, 2026 · 1 fileMessage 100 · StrongInformational 15Details
Commit message · David Gumberg

test: functional: drop unused --keepcache argument

At the time this was added in #10197, building the test cache took 21
seconds, as described in that PR, but this is no longer true, as
demonstrated by running the functional test framework with and without
the --keepcache arguments on master prior to this commit:

```
hyperfine --warmup 1 --export-markdown results.md --runs 3 \
-n 'without --keepcache' './build/test/functional/test_runner.py -j $(nproc)' \
-n 'with --keepcache' './build/test/functional/test_runner.py -j $(nproc) --keepcache'
```

| Command | Mean [s] | Min [s] | Max [s] | Relative |
|:----------------------|---------------:|--------:|---:|---:|
| `without --keepcache` | 76.373 ± 3.058 | 74.083 | 79.846 | 1.00 |
| `with --keepcache` | 77.384 ± 1.836 | 75.952 | 79.454 | 1.01 ± 0.05 |

As a consequence, this argument can be removed from the test runner and
this also has the benefit of being able to use an RAII-like
`tempfile.TemporaryDirectory` instead of having to clean up the cache
manually at the end of test runs.

bitcoin/bitcoin#10197: https://github.com/bitcoin/bitcoin/pull/10197

100/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✓ Links an issue, advisory, or supporting reference
AI analysis · Informational 15/100

This commit removes an unused command-line option called --keepcache from Bitcoin Core's functional test runner. It is a cleanup change that switches test cache handling to an automatic temporary directory. There is no security relevance.

AI review queuedqa: Remove all instances of `remove_all` except test cleanupby David Gumberg · a7e4a59d · Mar 24, 2026 · 6 filesMessage 83 · StrongLow 27Details
Commit message · David Gumberg

qa: Remove all instances of `remove_all` except test cleanup

Adds a lint check for `remove_all()`

`fs::remove_all()`/`std::filesystem::remove_all()` is extremely
dangerous, all user-facing instances of it have been removed, and it
also deserves to be removed from the places in our test code where it is
being used unnecessarily.

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
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 27/100

This commit is a defensive cleanup: it removes almost all uses of a filesystem function called remove_all() that can wipe out entire directory trees, and adds an automated lint check to prevent it from being reintroduced. The changes only affect benchmark and test code, not the live Bitcoin wallet or node software that ordinary users run. It reduces the risk of accidental data loss during testing, but does not fix an active security bug.

Lower-prioritydoc: update cjdns.md for current upstream changesby w0xlt · 6b99a3e4 · Mar 24, 2026 · 1 fileMessage 45 · ThinInformational 15Details
Commit message · w0xlt

doc: update cjdns.md for current upstream changes

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 15/100

This commit only updates a documentation file (doc/cjdns.md) describing how to use Bitcoin Core with the CJDNS network. It removes outdated manual peering instructions and replaces them with current upstream CJDNS v22 guidance about automatic peer discovery via DNS seeding. No code, configuration defaults, or security behavior of Bitcoin Core is changed.

AI review queuedkernel: Expose context-free block validationby w0xlt · 0587c560 · Mar 24, 2026 · 4 filesMessage 78 · AdequateInformational 14Details
Commit message · w0xlt

kernel: Expose context-free block validation

This introduces a context-free validation entry point for full blocks in
the kernel C and C++ APIs.

* Add `btck_block_check`, a C function that wraps `CheckBlock` and runs
header and body checks for a `btck_Block` using `btck_ConsensusParams`.
Callers provide a `btck_BlockValidationState` to receive the result
and supply a `btck_BlockCheckFlags` bitmask to control POW and
merkle-root verification.

* Add `btck_BlockCheckFlags` in the C API, plus the corresponding
`BlockCheckFlags` scoped enum in the C++ wrapper, including a
`*_ALL` convenience value.

* Add `Block::Check()` to the C++ wrapper to mirror the new C function
and return a bool while filling a `BlockValidationState`.

* Add a test `(btck_check_block_context_free)` that verifies a known
valid mainnet block passes with `BlockCheckFlags::ALL` and that
truncated block data fails deserialization.

Co-authored-by: yuvicc <yuvichh01@gmail.com>

78/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
Why it was queued
defensive validationsecond-pass: broader security terminology
AI analysis · Informational 14/100

This commit adds a new public API to Bitcoin Core's kernel library that lets outside callers run basic sanity checks on a raw Bitcoin block (for example, checking size limits, coinbase structure, and optionally proof-of-work and the merkle root). It is purely an addition of a new validation entry point and its tests. There is no bug fix, no change to existing consensus logic, and no indication of a security issue.

Lower-priorityci: Rename `TIDY_LLVM_V` to `IWYU_LLVM_V` in IWYU-specific codeby Hennadii Stepanov · 3129d4a6 · Mar 24, 2026 · 3 filesMessage 62 · AdequateInformational 15Details
Commit message · Hennadii Stepanov

ci: Rename `TIDY_LLVM_V` to `IWYU_LLVM_V` in IWYU-specific code

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 commit is a simple variable rename inside Bitcoin Core's continuous integration (CI) scripts. It changes the name `TIDY_LLVM_V` to `IWYU_LLVM_V` in scripts that run the 'Include What You Use' (IWYU) code-analysis tool. There is no change to the Bitcoin software that users run, no change to security logic, and no fix for a vulnerability.

Lower-prioritykernel: Expose consensus parameters (`btck_ConsensusParams`)by w0xlt · 71f827c3 · Mar 24, 2026 · 3 filesMessage 73 · AdequateInformational 15Details
Commit message · w0xlt

kernel: Expose consensus parameters (`btck_ConsensusParams`)

Library users currently need to maintain a full context object to perform
context-free block validation. Exposing an opaque `btck_ConsensusParams`
struct allows callers to supply only the required consensus parameters,
resulting in a lighter-weight API and a clearer expression of the actual
validation behavior.

Co-authored-by: yuvicc <yuvichh01@gmail.com>

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

This commit adds a new public API to the Bitcoin Core library that lets outside programs read the network's consensus parameters (like block timing rules) from the existing chain parameters object. It does not change any validation logic or security behavior; it only exposes data that was already available internally in a more convenient way for library users.

Lower-prioritynet: introduce TxSendStatus internal state containerby Mccalabrese · 999d18ab · Mar 24, 2026 · 2 filesMessage 50 · ThinInformational 15Details
Commit message · Mccalabrese

net: introduce TxSendStatus internal state container

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 small internal code cleanup in Bitcoin Core's private transaction-broadcast feature. It wraps an existing list of per-peer send records inside a new 'TxSendStatus' container and adds a timestamp for when each transaction was first added. There is no change to network behavior, no bug fix, and no security-relevant change visible in the diff.

AI review queuedrelease noteby Pol Espinasa · 25f69d97 · Mar 24, 2026 · 1 fileMessage 18 · OpaqueInformational 15Details
Commit message · Pol Espinasa

release note

18/100 · OpaqueMessage clarity
✓ Subject identifies a change! Too few words to establish purpose! No meaningful explanatory body
Why it was queued
documentation-only discountsecond-pass: opaque commit message
AI analysis · Informational 15/100

This commit is a documentation-only release note. It describes a new RPC feature that exposes background validation progress for the assumeutxo feature. There is no code change, no bug fix, and no security issue.

Lower-priorityrpc, log: add backgroundvalidation to getblockchaininfoby Pol Espinasa · a3d6f32a · Mar 24, 2026 · 2 filesMessage 50 · ThinInformational 15Details
Commit message · Pol Espinasa

rpc, log: add backgroundvalidation to getblockchaininfo

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 a new optional information block called 'backgroundvalidation' to the getblockchaininfo RPC output. It exposes read-only status about an existing background chain-validation process, plus some minor capitalization fixes in help text. There is no security-relevant change.

Lower-prioritytest: add background validation test for getblockchaininfoby Pol Espinasa · af629821 · Mar 24, 2026 · 1 fileMessage 72 · AdequateInformational 15Details
Commit message · Pol Espinasa

test: add background validation test for getblockchaininfo

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 commit only adds a new automated test that checks what information the getblockchaininfo RPC returns about a background validation process. It does not change any production code, network behavior, or wallet logic, so it cannot introduce a security vulnerability or fix one.

Lower-prioritylog: update progress calculations for background validationby Pol Espinasa · 5b2e4c4a · Mar 24, 2026 · 2 filesMessage 73 · AdequateInformational 19Details
Commit message · Pol Espinasa

log: update progress calculations for background validation

updates estimations to the block snapshot instead of the main chain tip as it will stop validation after reaching that height

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

This commit only changes how Bitcoin Core calculates and prints a progress percentage in log messages during a special background validation mode (used with the assume-utxo feature). It does not change consensus rules, network behavior, wallet handling, or any security-critical logic. The old code could show a misleading progress number; the new code makes the log estimate more accurate. There is no security vulnerability here.

Security candidaterpc, refactor: gettxoutsetinfo race condition fix follow-upsby rkrux · 3e5dc610 · Mar 24, 2026 · 2 filesMessage 78 · AdequateInformational 11Details
Commit message · rkrux

rpc, refactor: gettxoutsetinfo race condition fix follow-ups

This patch addresses my own review comments from the review of PR 34451.
If these are found helpful, it makes sense to do them now after the previous
PR was merged and backported.

Pasting the comments below that also explains the changes:

- Move the pindex declaration below now that it is not used earlier.
- stats was being generated partially in both these ComputeUTXOStats functions,
which reads oddly to me. Now that the pcursor is also moved and passed to this
function, which reads oddly as well, I believe we can refactor this function
to completely build the stats inside this function. A side benefit is that by
removing the stats and pcursor arguments, the function signature becomes quite
similar to its namesake, which in turn becomes a straightforward wrapper of
this function.

78/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Names security-relevant behavior explicitly
Why it was queued
signing boundary
AI analysis · Informational 11/100

This is a small internal cleanup change for a Bitcoin Core function that calculates statistics about the unspent coin set (used by the gettxoutsetinfo RPC). It moves where a variable is declared and refactors how the statistics object is built so the code is easier to read. There is no direct security fix in this commit itself; it is described as a follow-up to a prior pull request that addressed a race condition.

Lower-priorityrefactor: Fix redundant conversion to std::string and then to std::string_view [performance-string-view-conversions]by MarcoFalke · fa73ed46 · Mar 24, 2026 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · MarcoFalke

refactor: Fix redundant conversion to std::string and then to std::string_view [performance-string-view-conversions]

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 is a tiny code cleanup in Bitcoin Core's networking code. It removes an unnecessary conversion of a string-like variable to std::string before passing it to a function that accepts std::string_view. There is no security impact.

Lower-priorityci: add FreeBSD cross CI jobby fanquake · 65379bb8 · Mar 24, 2026 · 3 filesMessage 57 · ThinInformational 15Details
Commit message · fanquake

ci: add FreeBSD cross CI job

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Informational 15/100

This commit adds a new automated build test for Bitcoin Core that compiles the software for FreeBSD from a Linux machine. It does not change any Bitcoin code, wallet logic, networking, or security behavior. It only affects internal continuous integration (CI) scripts.

Lower-prioritydepends: build qrencode for Freebsdby fanquake · f44191f1 · Mar 24, 2026 · 1 fileMessage 45 · ThinInformational 16Details
Commit message · fanquake

depends: build qrencode for Freebsd

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

This commit adds FreeBSD to the list of operating systems for which Bitcoin Core's build system will compile the optional QR code generation library (qrencode). It is a one-line build configuration change with no apparent security relevance.

Lower-prioritydepends: FreeBSD cross with Clangby fanquake · 7f701873 · Mar 24, 2026 · 2 filesMessage 45 · ThinInformational 16Details
Commit message · fanquake

depends: FreeBSD cross with Clang

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

This commit updates Bitcoin Core's build system to support cross-compiling FreeBSD binaries using Clang and the LLVM toolchain. It changes compiler and linker settings in makefiles used only during the build process. There is no indication this fixes or introduces a security vulnerability.

Lower-prioritydepends: disable inotify in Freebsd Qt buildby fanquake · 6464f140 · Mar 24, 2026 · 1 fileMessage 45 · ThinInformational 11Details
Commit message · fanquake

depends: disable inotify in Freebsd Qt build

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

This commit changes how Bitcoin Core builds the Qt GUI library on FreeBSD. It disables Qt's inotify feature during the build process. Inotify is a Linux-style file-change notification mechanism that Qt tries to use on FreeBSD, but it can cause build or runtime problems because FreeBSD's support differs. The change is a build-system compatibility fix; there is no direct evidence in the commit that it fixes an exploitable security vulnerability.

Lower-priorityrefactor: Get rid of unnecessary newlines in logsby Fabian Jahr · 8444efbd · Mar 23, 2026 · 1 fileMessage 57 · ThinInformational 15Details
Commit message · Fabian Jahr

refactor: Get rid of unnecessary newlines in logs

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Informational 15/100

This commit is a simple cleanup: it removes extra line-break characters from the ends of log messages in the Tor control code. Modern logging functions already add their own line breaks, so the old manual ones were creating blank lines in log files. There is no security issue here.

Lower-priorityrefactor: Modernize member variable names in torcontrolby Fabian Jahr · 6bcb6035 · Mar 23, 2026 · 2 filesMessage 62 · AdequateInformational 15Details
Commit message · Fabian Jahr

refactor: Modernize member variable names in torcontrol

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 commit is a pure code cleanup: it renames variables in Bitcoin Core's Tor control module to follow the project's modern naming style (adding 'm_' prefixes to member variables and using snake_case for local names). No behavior, logic, or security properties of the code are changed.