BC
← All projectsBitcoin Core

Bitcoin Core

The Bitcoin network's reference node and wallet implementation.

BitcoinSupply chainNormal
Repository coverage

2889 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.

253security candidates604second-pass queue2748AI analyses
206commits · 30 days
502commits · 60 days
1528commits · 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
927Strong · 80–100
1188Adequate · 60–79
686Thin · 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 Poinsot22418170
Ava Chow15750156064
MarcoFalke40921402074
Lőrinc17721167081
fanquake22719213057
Hennadii Stepanov20914203063
rkrux57957074
Sjors Provoost89879074
Sebastian Falbesoner33733073
David Gumberg55655072
Pieter Wuille95591066
Hodlinator66566076
Analysis record

Published AI watches

Last scanned 34 minutes ago

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
Informational 15 AI analysisMessage 80 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

ci: update NetBSD cross-build SDK

This is a routine maintenance update to Bitcoin Core's continuous integration (CI) system. It changes the version number of the NetBSD operating system used for cross-compilation testing from a release candidate (11.0_RC6) to the final rel…

2c87337eby Lőrinc+1−11 file
No security note in commit
Informational 15 AI analysisMessage 72 · Adequate
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

test: require `TryGetTotalRam()` detection

This commit only changes a test file and build configuration. It removes the option to skip a test when the system cannot detect total RAM, and instead requires the RAM detection to succeed. It does not change any production wallet, networ…

6a2de55aby Lőrinc+3−112 files
No security note in commit
Informational 15 AI analysisMessage 68 · Adequate
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

scripted-diff: use `MIN_DBCACHE_BYTES`

This commit is a simple automated rename of a constant from MIN_DB_CACHE to MIN_DBCACHE_BYTES across five files. The value stays the same (4 MiB), and no behavior changes. It is a code-cleanup/refactoring change with no security relevance.

7cfa21d6by Lőrinc+5−55 files
No security note in commit
Informational 20 AI analysisMessage 68 · Adequate
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

kernel: allow setting chainstate `dbcache`

This commit adds a new public API knob to the Bitcoin Core 'libbitcoinkernel' library so that programs using the kernel can choose how much memory to use for the chainstate database cache. It also enforces minimum and maximum size limits. …

New configurable cache-size API with explicit min/max validationReplaces hard-coded DEFAULT_KERNEL_CACHE with caller-supplied valueAdds unit tests for out-of-range rejection and 32-bit upper-bound rejection
8bd9f460by Lőrinc+41−14 files
No security note in commit
Informational 15 AI analysisMessage 68 · Adequate
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

kernel, node: colocate dbcache bounds

This commit is a small code cleanup: it moves two constants that define the minimum and maximum size of the database cache (dbcache) into a shared kernel header so that both the node and kernel code use the same limits. There is no change …

8aa21e11by Lőrinc+7−74 files
No security note in commit
Informational 15 AI analysisMessage 62 · Adequate
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

node, qt: inline `DEFAULT_DB_CACHE`

This is a small code cleanup change in Bitcoin Core. It removes a misleading alias named DEFAULT_DB_CACHE and replaces it with the underlying name DEFAULT_KERNEL_CACHE in a few places. The behavior of the program is unchanged; only the nam…

cd086c16by Lőrinc+5−74 files
No security note in commit
Repository ledger

Explore captured commits

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

Security candidaterefactor: use _MiB consistently for Mebibyte conversionsby Lőrinc · af0ee28e · Apr 20, 2026 · 36 filesMessage 100 · StrongInformational 20Details
Commit message · Lőrinc

refactor: use _MiB consistently for Mebibyte conversions

Replace hard-coded MiB byte conversions (e.g. `1024*1024`, `1<<20`, `1048576`) with the existing `_MiB` literal to improve readability and avoid repeating constants.
In the few spots where arithmetic involves signed values, the result is identical to the previous code assuming those quantities never turn negative.

Also switch to brace init on every declaration assigned from `_MiB`/`_GiB` literals so a future oversized value (e.g. `unsigned int x{4096_MiB}`) becomes a compile error through the C++11 narrowing check instead of silently truncating.

Extend unit tests to cover the 32-bit `size_t` overflow boundary and to assert equivalence for integer and floating-point conversions.

Co-authored-by: MarcoFalke <*~=`'#}+{/-|&$^_@721217.xyz>
Co-authored-by: w0xlt <94266259+w0xlt@users.noreply.github.com>

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✓ Names security-relevant behavior explicitly
Why it was queued
memory safetyseed or entropy path
AI analysis · Informational 20/100

This is a code cleanup change that replaces scattered hard-coded byte counts like 1024*1024 with a single named helper, _MiB, and adds unit tests for it. It does not change any user-visible behavior or fix a known security bug. The main safety benefit is making future accidental mistakes (for example, writing the wrong number of zeros) less likely and turning some oversized-value mistakes into compile-time errors.

Security candidateutil: add _GiB for Gibibyte conversionsby Lőrinc · b3edd30a · Apr 20, 2026 · 6 filesMessage 83 · StrongInformational 15Details
Commit message · Lőrinc

util: add _GiB for Gibibyte conversions

Introduce `operator""_GiB`, sharing the overflow-checked conversion logic with the existing `operator""_MiB`.

Use `1_GiB` in a few existing places where it is a drop-in replacement (e.g. `1024_MiB`, `1<<30`) and extend unit tests to cover boundary behavior.

83/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification✓ Names security-relevant behavior explicitly
Why it was queued
memory safety
AI analysis · Informational 15/100

This commit adds a new code helper for writing byte sizes in gigabytes (GiB) and replaces a few existing hard-coded numbers with the new helper. It is a code cleanup and readability change with no security-relevant behavior change.

Lower-priorityChange pindexMostWork parameter of ActivateBestChainStep() to referenceby optout · 7c75244a · Apr 20, 2026 · 2 filesMessage 73 · AdequateInformational 15Details
Commit message · optout

Change pindexMostWork parameter of ActivateBestChainStep() to reference

ActivateBestChainStep() is always called with non-nullptr pindexMostWork parameter,
change the type of the parameter from pointer to reference to enforce this.
Also rename the parameter (prefix p doesn't make sense any more).

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 small internal code cleanup in Bitcoin Core. It changes one function parameter from a pointer (which could theoretically be null) to a reference (which cannot be null), because the caller always passes a valid object anyway. There is no change to how the program behaves, no bug fixed, and no security issue introduced.

Lower-priorityChange CChain::FindFork() to take refby optout · c5eb283b · Apr 20, 2026 · 8 filesMessage 60 · AdequateInformational 18Details
Commit message · optout

Change CChain::FindFork() to take ref

The internal null-guard in FindFork() was removed in favor of adding any missing guards at call sites.

60/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
AI analysis · Informational 18/100

This is a small internal code cleanup in Bitcoin Core. It changes one function, CChain::FindFork(), so that callers must pass a valid block object directly rather than a pointer that might be null. The function previously handled null pointers safely by returning null; now callers must check for null themselves before calling it. The commit adds those checks at every call site. It is a defensive refactoring, not a fix for an active security bug.

Lower-priorityChange CChain::Next() to take referenceby optout · 20b58e28 · Apr 20, 2026 · 7 filesMessage 80 · StrongLow 27Details
Commit message · optout

Change CChain::Next() to take reference

To minimize chance of erroneous nullptr dereference, `CChain::Next()`
is changed to take a reference instead of a pointer.
Call sites have been adapted. Notably, NextSyncBlock() now checks
the FindFork() result before calling into Next(), because
the fork lookup may return null.

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

This commit tightens up a low-level helper function in Bitcoin Core that finds the next block in the chain. It changes the function so callers must pass a real block object rather than a potentially-null pointer, and it adds a safety check in one place where the previous code could have passed a null pointer. The change is defensive hardening rather than a fix for a confirmed, exploitable bug.

Lower-prioritytest: Add CChain::FindFork() testsby optout · db56bcd6 · Apr 20, 2026 · 1 fileMessage 82 · StrongInformational 15Details
Commit message · optout

test: Add CChain::FindFork() tests

Add (lengthier) unit tests for `CChain::FindFork()`.

Co-authored-by: l0rinc <pap.lorinc@gmail.com>

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 unit tests for an existing function called CChain::FindFork(). It does not change any production code, so it cannot directly introduce a security vulnerability or fix one. It is a routine test-only change.

AI review queuedChange CChain::Contains() to take referenceby optout · fe2d6e25 · Apr 20, 2026 · 12 filesMessage 80 · StrongLow 47Details
Commit message · optout

Change CChain::Contains() to take reference

The `CChain::Contains()` method dereferences its input without checking,
potentially resulting in nullptr-dereference if invoked with `nullptr`.
To avoid this possibility, its input is changed to a reference instead.
Call sites are adapted accoringly, extra nullptr-check is added as
needed.

80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 47/100

This commit hardens a core Bitcoin method called CChain::Contains() so it can no longer be accidentally called with a null (missing) block pointer, which would crash the node. The change turns the method's input from a pointer into a reference, forcing every caller to prove the block exists before calling it. Several call sites were updated, and one place in startup index syncing now explicitly handles a missing block instead of silently passing a null pointer. It is a defensive fix that removes a class of potential null-dereference crashes, but the commit message does not frame it as a critical security vulnerability and no exploit is demonstrated.

Lower-prioritytest: Add CChain basic testsby optout · 8333abdd · Apr 20, 2026 · 1 fileMessage 82 · StrongInformational 15Details
Commit message · optout

test: Add CChain basic tests

Add basic unit tests to the `CChain` class, filling a gap.

Co-authored-by: l0rinc <pap.lorinc@gmail.com>

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 automated unit tests for the CChain class in Bitcoin Core. It does not change any production code, fix bugs, or introduce security-relevant behavior. The tests verify basic chain operations like height, tip, indexing, contains, next, and genesis on empty and two-block chains.

Lower-prioritynet: log SOCKS5 auth before sendingby takeshikurosawaa · 3bf3b6d5 · Apr 19, 2026 · 1 fileMessage 50 · ThinInformational 19Details
Commit message · takeshikurosawaa

net: log SOCKS5 auth before sending

50/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Names security-relevant behavior explicitly! No meaningful explanatory body
AI analysis · Informational 19/100

This commit simply moves a debug log message so it prints before the SOCKS5 username/password data is sent over the network, rather than after. It does not change what data is sent, how it is encrypted, or who can read it. The change only helps developers diagnose connection problems by ensuring the log appears at the correct moment.

Security candidatenet: cleanup SOCKS5 auth loggingby takeshikurosawaa · b2debc92 · Apr 19, 2026 · 1 fileMessage 73 · AdequateLow 49Details
Commit message · takeshikurosawaa

net: cleanup SOCKS5 auth logging

Do not log SOCKS5 auth credentials.

Keep the log entry for the auth path, but omit the
username and password.

No behavior change intended.

73/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Names security-relevant behavior explicitly
Why it was queued
credential or privilege state
AI analysis · Low 49/100

This commit removes a debug log line that printed SOCKS5 proxy usernames and passwords in plain text. The change prevents sensitive credentials from being written to log files, which could otherwise expose them to anyone with access to those logs. It is a straightforward cleanup with clear security benefit, though it only affects debug-level logging.

Lower-prioritytest: Make torcontrol max line length test stricter and test boundaries.by David Gumberg · 8b68287b · Apr 17, 2026 · 1 fileMessage 95 · StrongInformational 15Details
Commit message · David Gumberg

test: Make torcontrol max line length test stricter and test boundaries.

Adds a check that at the boundary of MAX_LINE_LENGTH, no disconnect
occurs.

Also makes the overlength test message exactly MAX_LINE_LENGTH + 1 to
test the boundary.

Drops the redundant node liveness check, which is covered by the later
check that the node reconnects.

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

This commit only changes a test file. It makes the existing Tor control line-length test more precise by checking that a line exactly at the maximum allowed length does not cause a disconnect, while a line one character over still does. There is no change to Bitcoin Core's actual production code, so it cannot directly affect live node security.

Security candidatetor: torcontrol disconnect on too many lines to avoid OOMby David Gumberg · 9fe5896a · Apr 17, 2026 · 2 filesMessage 98 · StrongModerate 62Details
Commit message · David Gumberg

tor: torcontrol disconnect on too many lines to avoid OOM

This commit ensures the `TorControlConnection::m_message` buffer doesn't
grow unbounded and exhaust memory, by limiting the number of lines
handled by `TorControlConnection::ProcessBuffer()` to `MAX_LINE_COUNT =
1000`. Now the most memory that can be occupied by `m_message` is on the
order of `MAX_LINE_LENGTH * MAX_LINE_COUNT= 100MB`

Although this is not compliant with the tor control protocol in general,
where commands like `GETINFO ns/all` will likely return thousands of
lines, it is more than sufficient for handling the replies from the
commands that are used by a node:

`AUTHENTICATE`: 1 line:
The server responds with 250 OK on success or 515 Bad
authentication if the authentication cookie is incorrect. Tor closes
the connection on an authentication failure.

https://spec.torproject.org/control-spec/commands.html#authenticate

`GETINFO net/listener/socks`: 2 lines
A quoted, space-separated list of the locations where Tor is
listening...

https://spec.torproject.org/control-spec/commands.html#getinfo

`AUTHCHALLENGE SAFECOOKIE`: 1 line
If the server accepts the command, the server reply format is:

```
"250 AUTHCHALLENGE" SP "SERVERHASH=" ServerHash SP "SERVERNONCE="
ServerNonce CRLF
```

https://spec.torproject.org/control-spec/commands.html#authenticate

`PROTOCOLINFO`: 4-5 lines

The server reply format is:

```
250-PROTOCOLINFO" SP PIVERSION CRLF \*InfoLine "250 OK" CRLF
InfoLine = AuthLine / VersionLine / OtherLine
```

(https://spec.torproject.org/control-spec/commands.html#protocolinfo)

`ADD_ONION`: 2-3 lines for Bitcoin Core's tor control client.

The server reply format is:

```
"250-ServiceID=" ServiceID CRLF
["250-PrivateKey=" KeyType ":" KeyBlob CRLF]
*("250-ClientAuth=" ClientName ":" ClientBlob CRLF)
"250 OK" CRLF
```

...

The server response will only include a private key if the server
was requested to generate a new keypair

...

If client authorization is enabled using the “BasicAuth” flag (which
is v2 only), the service will not be accessible to clients without
valid authorization data (configured with the “HidServAuth” option).
The list of authorized clients is specified with one or more
“ClientAuth” parameters. If “ClientBlob” is not specified for a
client, a new credential will be randomly generated and returned."

https://spec.torproject.org/control-spec/commands.html#add_onion

We don't set the `BasicAuth` flag, so the response will not include any
`ClientAuthLines`.

98/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✓ Names security-relevant behavior explicitly
Why it was queued
secret or key materialaccess controlcredential or privilege state
AI analysis · Moderate 62/100

This change fixes a memory safety issue in Bitcoin Core's connection to the Tor control port. A malicious or misbehaving Tor control server could send an endless stream of reply lines, causing Bitcoin Core to keep allocating memory until the system ran out. The patch caps the number of lines accepted in a single reply at 1,000, after which the connection is closed. The commit message explicitly says this is to avoid out-of-memory (OOM) exhaustion.

Lower-prioritylogging: replace FormatLogStrInPlace with Formatby stickies-v · c5ec2d53 · Apr 17, 2026 · 2 filesMessage 68 · AdequateInformational 15Details
Commit message · stickies-v

logging: replace FormatLogStrInPlace with Format

Return a new string built left-to-right instead of mutating one
with repeated insert(0, ...). Take a const log::Entry ref since
both call sites now have an Entry available. Also move
LogEscapeMessage inside so callers don't need to pre-escape.

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 cleanup in Bitcoin Core's logging system. It replaces a function that modified a string by repeatedly inserting text at the front with a function that builds the same string left-to-right and returns it. There is no security-relevant change here.

Lower-prioritylogging: replace BufferedLog with log::Entryby stickies-v · 3b92ec20 · Apr 17, 2026 · 3 filesMessage 60 · AdequateInformational 12Details
Commit message · stickies-v

logging: replace BufferedLog with log::Entry

Avoids duplication and ensures timestamp and mocktime are captured
at the same time.

60/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
AI analysis · Informational 12/100

This is a small internal code cleanup in Bitcoin Core's logging system. It removes a duplicate log-entry structure and makes sure the real timestamp and the simulated 'mocktime' are recorded at the same instant. There is no indication this fixes a security bug or introduces a vulnerability.

Lower-prioritydoc: add integer type conventions in btck api remarksby Alexander Wiederin · 07b9b13b · Apr 17, 2026 · 1 fileMessage 50 · ThinInformational 15Details
Commit message · Alexander Wiederin

doc: add integer type conventions in btck api remarks

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

This commit only adds documentation comments to a header file. It explains which integer types the Bitcoin Kernel C API uses for different kinds of values. No code behavior was changed.

AI review queuedtest: interface_http follow-upsby Matthew Zipkin · f49a2afd · Apr 17, 2026 · 1 fileMessage 80 · StrongInformational 15Details
Commit message · Matthew Zipkin

test: interface_http follow-ups

- Only one node needed for test
- Use ascii encoding instead of utf-8
- Make tests independent of each other
- Expect HTTP error code 413 for too-large request
- Clarify python client race condition in comment

80/100 · StrongMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Mentions testing or verification
Why it was queued
second-pass: broader security terminology
AI analysis · Informational 15/100

This commit only changes a single test file (interface_http.py) in Bitcoin Core. It refactors the test to use one node instead of three, switches some encodings from utf-8 to ascii, makes tests independent, and updates expected HTTP error codes from 400 to 413 for oversized requests. There is no change to production code, no security fix, and no vulnerability being introduced.

Lower-prioritykernel: align height parameters to int32_t in btck APIby Alexander Wiederin · ba6287a4 · Apr 17, 2026 · 3 filesMessage 73 · AdequateInformational 15Details
Commit message · Alexander Wiederin

kernel: align height parameters to int32_t in btck API

Aligns btck_chain_get_height and btck_chain_get_by_height to use int32_t
for height parameters and return values. Updates the C++ wrapper
accordingly.

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

This commit is a minor type-cleanup change in Bitcoin Core's internal kernel API. It changes several height-related function parameters and return values from the generic `int` type to the explicitly-sized `int32_t` type. There is no security-relevant behavior change, no bug fix, and no disclosed vulnerability.

Lower-prioritykernel: expose btck_block_tree_entry_get_ancestorby Peter Zafonte · df44afdc · Apr 17, 2026 · 4 filesMessage 68 · AdequateInformational 15Details
Commit message · Peter Zafonte

kernel: expose btck_block_tree_entry_get_ancestor

Allows callers to jump to any ancestor of a block tree entry by height
using the skiplist-backed GetAncestor, which runs in O(log N) rather
than walking back one entry at a time with btck_block_tree_entry_get_previous.

Includes a C++ convenience wrapper and tests in btck_block_tree_entry_tests.

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Provides detailed explanatory context✓ Mentions testing or verification
AI analysis · Informational 15/100

This commit adds a new public function to the Bitcoin Core library API that lets callers efficiently look up any ancestor block of a given block by its height. It is a pure feature addition with no security-relevant changes to existing behavior. There is no bug fix, no vulnerability disclosure, and no indication of a security issue.

Lower-prioritylogging: pass log::Entry through to logging functionsby stickies-v · 8115001c · Apr 17, 2026 · 3 filesMessage 65 · AdequateInformational 15Details
Commit message · stickies-v

logging: pass log::Entry through to logging functions

Use the entry's timestamp and thread_name, captured at the call
site, instead of re-capturing them in the logger.

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

This commit is a straightforward internal code cleanup in Bitcoin Core's logging system. It bundles log details (timestamp, thread name, message, category, etc.) into a single struct called log::Entry and passes that struct around instead of many separate arguments. There is no security fix or behavior change visible in the diff.

Lower-priorityutil: add timestamp and thread_name to log::Entryby stickies-v · b414913c · Apr 17, 2026 · 1 fileMessage 45 · ThinInformational 15Details
Commit message · stickies-v

util: add timestamp and thread_name to log::Entry

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

This commit adds two pieces of metadata to each log entry: the time it was created and the name of the thread that created it. It is a straightforward internal logging improvement with no apparent security relevance.

Lower-priorityutil: make SourceLocation constructor explicitby stickies-v · 8a55b177 · Apr 17, 2026 · 1 fileMessage 68 · AdequateInformational 15Details
Commit message · stickies-v

util: make SourceLocation constructor explicit

Follow CppCoreGuidelines C.46:
https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#rc-explicit

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Links an issue, advisory, or supporting reference
AI analysis · Informational 15/100

This is a minor code-quality change that adds the C++ keyword 'explicit' to a constructor. It prevents the compiler from silently converting other types into a SourceLocation object, following a common C++ best-practice guideline. There is no security bug being fixed here.

Lower-priorityci: drop -lstdc++ usage in msan fuzz jobby fanquake · b02d6b05 · Apr 17, 2026 · 1 fileMessage 67 · AdequateInformational 15Details
Commit message · fanquake

ci: drop -lstdc++ usage in msan fuzz job

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
Why it was queued
fuzzing or regression evidence
AI analysis · Informational 15/100

This commit removes an extra linker flag (-lstdc++) from a Bitcoin Core continuous integration (CI) script used only for a memory-sanitizer fuzz-testing build. It is a build-configuration cleanup, not a code change affecting the Bitcoin software users run. There is no security-relevant change to the project's runtime behavior or to shipped binaries.

Lower-priorityci: use llvm 22.1.3by fanquake · 655a39ee · Apr 17, 2026 · 1 fileMessage 50 · ThinInformational 15Details
Commit message · fanquake

ci: use llvm 22.1.3

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

This commit simply updates the version of the LLVM compiler toolchain used in automated testing from 22.1.0 to 22.1.3. It is a routine maintenance change to the project's continuous integration (CI) setup and does not alter Bitcoin Core's actual code or how it runs for users.

Lower-prioritydoc: fix typos and formatting in CONTRIBUTING, i2p, bitcoin-conf, filesby Guillermo Fernandes · bdc8e496 · Apr 17, 2026 · 4 filesMessage 73 · AdequateInformational 15Details
Commit message · Guillermo Fernandes

doc: fix typos and formatting in CONTRIBUTING, i2p, bitcoin-conf, files

- CONTRIBUTING.md: "Valid areas as" -> "Valid areas are"
- doc/i2p.md: remove double space after period
- doc/bitcoin-conf.md: "some negating some lists" -> "some negating lists"
- doc/files.md: missing space after comma in "macOS,the"

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
documentation-only discount
AI analysis · Informational 15/100

This commit fixes four minor typos and spacing issues in documentation files only. There are no code changes and no security implications.

Lower-priorityrefactor: torcontrol add connection checks to restart_with_mockby David Gumberg · ab588979 · Apr 17, 2026 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · David Gumberg

refactor: torcontrol add connection checks to restart_with_mock

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 minor cleanup of a Bitcoin Core functional test file. It moves some connection-checking code into a helper method so it is reused by multiple tests, rather than being duplicated in each test. There is no change to the actual Bitcoin Core software that users run, and no security issue is introduced or fixed.