BC
← All projectsBitcoin Core

Bitcoin Core

The Bitcoin network's reference node and wallet implementation.

BitcoinSupply chainNormal
Repository coverage

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

257security candidates611second-pass queue2888AI analyses
187commits · 30 days
471commits · 60 days
1488commits · 180 days
2877commits · 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
948Strong · 80–100
1188Adequate · 60–79
688Thin · 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 Chow15850158064
MarcoFalke41021406074
Lőrinc17721177081
fanquake22819226057
Hennadii Stepanov21014208063
rkrux57957074
Sjors Provoost89889074
Sebastian Falbesoner33733073
merge-script32718088
David Gumberg55655072
Pieter Wuille95595066
Analysis record

Published AI watches

Last scanned 37 minutes ago

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

Merge bitcoin/bitcoin#35729: refactor: test: Unroll `&&` conditions in macros

This commit only changes Bitcoin Core's internal test code. It splits combined conditions inside test-check macros (like BOOST_CHECK(a && b)) into separate checks so that when a test fails, the test output points to the exact failing condi…

aa0e0f79by merge-script+196−9519 files
No security note in commit
Low 26 AI analysisMessage 100 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35493: wallet, descriptor: Fix MuSig private key completeness checks on `importdescriptors`

This commit fixes a bug in Bitcoin Core's wallet import logic for a new type of multi-signature setup called MuSig. Previously, when a user imported a MuSig descriptor that already contained all needed private keys, the wallet incorrectly …

False-positive warning in wallet import for fully-private MuSig descriptorsIncorrect private-key completeness check on synthetic aggregate public keyDescriptor logic now delegates completeness to `Descriptor::HavePrivateKeys()`
2c01832fby merge-script+76−374 files
No security note in commit
Informational 15 AI analysisMessage 81 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35943: doc: fix dead link in txrequest.h

This commit only fixes a broken web link in a code comment. It replaces an outdated URL to a research paper with a working URL to the same paper. There is no change to program logic, no security fix, and no vulnerability.

5d051c05by 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#33186: wallet, test: Ancient Wallet Migration from v0.14.3 (no-HD and Single Chain)

This commit only adds new automated tests for migrating very old Bitcoin Core wallets (version 0.14.3 from 2017) to the modern descriptor wallet format. It does not change any wallet production code, consensus rules, or network behavior. T…

757aa573by merge-script+246−124 files
No security note in commit
Low 28 AI analysisMessage 91 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35925: wallet, rpc: Exclude non-owned addresses from listreceivedby*

This update fixes a wallet reporting bug. When a user asked their Bitcoin wallet to list every address that had received money, including empty ones, the result incorrectly included foreign addresses that the wallet merely knew about (for …

Information disclosure: wallet RPCs leaked existence/labels of foreign addressesIncorrect access-control boundary: non-owned addresses exposed in 'received' reportFix uses IsMine() rather than address purpose metadata, avoiding inconsistent purpose handling
e8cc21c5by Ava Chow+19−32 files
No security note in commit
Informational 15 AI analysisMessage 91 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35937: test: Append print_suppressions=0 to LSAN_OPTIONS, and suppress bitcoin-qt

This commit only changes test configuration. It tells the LeakSanitizer tool used during automated testing to stop printing long lists of suppressed memory leaks, and it narrows the list of ignored leaks to the bitcoin-qt GUI test binary. …

5973e075by merge-script+3−42 files
No security note in commit
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
Repository ledger

Explore captured commits

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

Lower-priorityclang-tidy: Disable `ArrayBound` check in src/ipc and src/testby Hennadii Stepanov · 5d784beb · Oct 28, 2025 · 3 filesMessage 60 · AdequateInformational 15Details
Commit message · Hennadii Stepanov

clang-tidy: Disable `ArrayBound` check in src/ipc and src/test

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

This commit only changes static-analysis configuration files. It tells the clang-tidy tool to stop flagging a particular array-bounds warning in two directories (ipc and test). No actual Bitcoin Core code is modified, so this cannot directly introduce or fix a security vulnerability in the running software.

AI review queuedci: Update Clang in "tidy" jobby Hennadii Stepanov · 5efdb0ef · Oct 28, 2025 · 7 filesMessage 80 · StrongInformational 15Details
Commit message · Hennadii Stepanov

ci: Update Clang in "tidy" job

This change updates to IWYU 0.25, which is compatible with Clang 21.
Fixes new "modernize-use-default-member-init" warnings.
The warning in `interpreter.cpp` is a false positive, so it has been
suppressed.

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

This commit is a routine maintenance update for Bitcoin Core's automated code-quality ('tidy') CI job. It upgrades the Clang compiler version used for style checks from 20 to 21 and adjusts several source files to satisfy new style warnings. There is no functional behavior change, no bug fix affecting consensus, networking, or wallets, and no security-relevant change.

Lower-prioritymove-only: Move CBlockFileInfo to kernel namespaceby MarcoFalke · fa01f38e · Oct 28, 2025 · 7 filesMessage 85 · StrongInformational 15Details
Commit message · MarcoFalke

move-only: Move CBlockFileInfo to kernel namespace

Also, move it to the blockstorage module, because it is only used inside
that module.

Can be reviewed with the git option --color-moved=dimmed-zebra

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 commit is a pure code reorganization: it moves the CBlockFileInfo class from one header file (chain.h) to another (node/blockstorage.h) and places it under the kernel namespace. No behavior, logic, or security properties of the code change. It is not a security fix and does not introduce a vulnerability.

Lower-priorityrefactor: [rpc] Remove cast when reporting serialized sizeby MarcoFalke · fa2bbc9e · Oct 28, 2025 · 1 fileMessage 85 · StrongInformational 15Details
Commit message · MarcoFalke

refactor: [rpc] Remove cast when reporting serialized size

The values are small enough to fit in an int, so the cast is at best
redundant. However, UniValue can handle any integer type, so having to
think about the cast here is also confusing.

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

This is a minor code cleanup in Bitcoin Core's RPC code. It removes three unnecessary type casts when reporting block size values through the JSON-RPC interface. The output values are unchanged, and there is no security issue.

Lower-prioritytest: Remove outdated commentby MarcoFalke · fa364af8 · Oct 28, 2025 · 1 fileMessage 80 · StrongInformational 15Details
Commit message · MarcoFalke

test: Remove outdated comment

The serialize related methods were removed in commit
30007fda76aa7ba4e4090f7a16298874a7722926.

If someone wants to see the tested methods, they can just read the test
itself, instead of relying on the wrong comment.

80/100 · StrongMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Mentions testing or verification
AI analysis · Informational 15/100

This commit only removes an outdated comment in a test file. It changes no actual code behavior and has no security relevance.

Security candidateMerge bitcoin/bitcoin#31514: wallet: allow label for non-ranged external descriptor (if `internal=false`) & disallow label for ranged descriptorsby Ava Chow · 80bb7012 · Oct 27, 2025 · 2853 filesMessage 91 · StrongLow 25Details
Commit message · Ava Chow

Merge bitcoin/bitcoin#31514: wallet: allow label for non-ranged external descriptor (if `internal=false`) & disallow label for ranged descriptors

664657ed134365588914c2cf6a3975ce368a4f49 bugfix: disallow label for ranged descriptors & allow external non-ranged descriptors to have label (scgbckbone)

Pull request description:

Motivation:
* ranged descriptors MUST not be able to have label (current impl allows it)
* external non-ranged descriptor MUST be able to have label (current impl disallows it, **if** `internal=false` is provided via importdescriptor user data)

Repro steps:
* create blank wallet and import descriptors
* external has `label=test` (not internal)
```
conn = bitcoind.create_wallet(wallet_name=w_name, disable_private_keys=True, blank=True,
passphrase=None, avoid_reuse=False, descriptors=True)
descriptors = [
{
"timestamp": "now",
"label": "test",
"active": True,
"desc": "wpkh([0f056943/84h/1h/0h]tpubDC7jGaaSE66Pn4dgtbAAstde4bCyhSUs4r3P8WhMVvPByvcRrzrwqSvpF9Ghx83Z1LfVugGRrSBko5UEKELCz9HoMv5qKmGq3fqnnbS5E9r/0/*)#erexmnep",
"internal": False
},
{
"desc": "wpkh([0f056943/84h/1h/0h]tpubDC7jGaaSE66Pn4dgtbAAstde4bCyhSUs4r3P8WhMVvPByvcRrzrwqSvpF9Ghx83Z1LfVugGRrSBko5UEKELCz9HoMv5qKmGq3fqnnbS5E9r/1/*)#ghu8xxfe",
"active": True,
"internal": True,
"timestamp": "now"
},
]
r = conn.importdescriptors(descriptors)
print(r)
```
response:
```
[{'error': {'code': -8,
'message': 'Internal addresses should not have a label'},
'success': False,
'warnings': ['Range not given, using default keypool range']},
{'success': True,
'warnings': ['Range not given, using default keypool range']}]
```
But in above, ONLY external has a label.

If you remove `internal: False` from external descriptor import object - it will import no problem:
```
[{'success': True,
'warnings': ['Range not given, using default keypool range']},
{'success': True,
'warnings': ['Range not given, using default keypool range']}]

```
Even tho it should NOT, as the descriptor is ranged. Current implementation relies on checking user provided data to decide whether desc is ranged.

ACKs for top commit:
achow101:
ACK 664657ed134365588914c2cf6a3975ce368a4f49
rkrux:
lgtm crACK 664657ed134365588914c2cf6a3975ce368a4f49

Tree-SHA512: 9e70aea620019c29950ba417d4ae38d65cd94a4f6fcabbc021d67b031de1c44c27d6f6f5cb7e6950a099eb6e58bed9be764d4c6347195daeccb14a5d95c123b2

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
access controlcryptography-sensitive pathseed or entropy pathsigning or wallet pathboot or update pathauthentication pathparser or protocol pathmerge-commit duplicate discount
AI analysis · Low 25/100

This commit fixes a wallet bug in Bitcoin Core's importdescriptors RPC. Previously, the code incorrectly decided whether a descriptor was 'internal' (change addresses) or 'ranged' (HD-style many addresses) based on user-supplied data rather than the descriptor itself. This meant users could accidentally attach a label to a ranged descriptor, which is not supposed to be allowed, and could be blocked from labeling a normal external descriptor when they explicitly set internal=false. The patch makes the check inspect the actual descriptor, so labels are allowed only on non-ranged external descriptors and disallowed on ranged ones. It is a correctness/validation bug, not a direct theft-of-funds vulnerability.

Lower-priorityinterfaces: add interruptWait methodby ismaelsadeeq · dcb56fd4 · Oct 27, 2025 · 6 filesMessage 68 · AdequateInformational 19Details
Commit message · ismaelsadeeq

interfaces: add interruptWait method

- This method can be used to cancel a running
waitNext().

- This commit also adds a test case for interruptWait method

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

This commit adds a new 'interruptWait' feature to Bitcoin Core's mining interface so that a long-running wait for the next block template can be safely cancelled. It is a normal feature addition with no obvious security bug. The change includes a test showing the cancellation works as intended.

Lower-priorityci: use pycapnp 2.2.1 in mac native jobby fanquake · 53b34c80 · Oct 27, 2025 · 3 filesMessage 57 · ThinInformational 15Details
Commit message · fanquake

ci: use pycapnp 2.2.1 in mac native job

Drop using the git clone & install.

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 routine update to Bitcoin Core's continuous integration (CI) setup for macOS. It changes how a Python library called pycapnp is installed for automated testing, switching from a manual source-code clone to a standard pip package and updating the version from 2.1.0 to 2.2.1. There is no indication this change fixes or introduces a security vulnerability.

Lower-priorityci: remove Python version comment from mac configby fanquake · 86543286 · Oct 27, 2025 · 1 fileMessage 57 · ThinInformational 15Details
Commit message · fanquake

ci: remove Python version comment from mac config

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 simply removes two comment lines explaining why a Python package-installation flag is used in a macOS CI configuration file. No code, commands, or behavior change. It is not a security fix and has no security relevance.

Lower-priorityfees: return current block height in estimateSmartFeeby ismaelsadeeq · 1a7fb5ee · Oct 27, 2025 · 2 filesMessage 50 · ThinInformational 17Details
Commit message · ismaelsadeeq

fees: return current block height in estimateSmartFee

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

This commit simply adds the current blockchain block height to the data returned by Bitcoin Core's fee estimation feature. It does not change how fees are calculated, does not alter any security logic, and does not appear to fix a vulnerability. It is a minor informational API enhancement.

Lower-priorityfees: rename fees_args to block_policy_estimator_argsby ismaelsadeeq · ab49480d · Oct 27, 2025 · 7 filesMessage 73 · AdequateInformational 15Details
Commit message · ismaelsadeeq

fees: rename fees_args to block_policy_estimator_args

- Also move them to policy/fees/ and update includes
- Note: the block_policy_estimator_args.h include in block_policy_estimator_args.cpp was done manually.

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 simple file rename and move. It renames `fees_args` to `block_policy_estimator_args` and moves the files into the `policy/fees/` directory. The actual code inside the files is unchanged, and only include paths are updated in other files. There is no security issue here.

AI review queuedfees: refactor: rename fees to block_policy_estimatorby ismaelsadeeq · 06db08a4 · Oct 27, 2025 · 23 filesMessage 65 · AdequateInformational 15Details
Commit message · ismaelsadeeq

fees: refactor: rename fees to block_policy_estimator

- Also move it to policy/fees and update the includes

65/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
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 pure code reorganization: it renames the fee estimation source files from `policy/fees.cpp` and `policy/fees.h` to `policy/fees/block_policy_estimator.cpp` and `policy/fees/block_policy_estimator.h`, and updates all include paths accordingly. No logic, behavior, or security properties of the code were changed.

Lower-priorityfees: refactor: rename policy_fee_tests.cpp to feerounder_tests.cppby ismaelsadeeq · 6dfdd7e0 · Oct 27, 2025 · 2 filesMessage 75 · AdequateInformational 15Details
Commit message · ismaelsadeeq

fees: refactor: rename policy_fee_tests.cpp to feerounder_tests.cpp

- Also remame the test suite name to match the new name.

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

This commit simply renames a test file and its internal test suite name to better describe what they actually test. No code behavior changes, no security fix or vulnerability is present.

AI review queuedrefactor/doc: Add blockman param to `GetTransaction` doc comment and reorder out paramby Musa Haruna · 1a1f46c2 · Oct 24, 2025 · 5 filesMessage 50 · ThinInformational 15Details
Commit message · Musa Haruna

refactor/doc: Add blockman param to `GetTransaction` doc comment and reorder out param

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit is a pure code cleanup: it reorders the arguments of an internal helper function called GetTransaction so that an input parameter (blockman) comes before an output parameter (hashBlock), and updates the documentation comment to mention blockman. All callers are updated to match the new order. There is no change to what the function does or to any security-sensitive behavior.

Lower-prioritytest: Use same rpc timeout for authproxy and cliby MarcoFalke · 66667d65 · Oct 24, 2025 · 1 fileMessage 67 · AdequateInformational 15Details
Commit message · MarcoFalke

test: Use same rpc timeout for authproxy and cli

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

This is a minor test-framework-only change that makes the internal Python test harness pass the same RPC timeout value to bitcoin-cli that it already uses for its direct RPC connection. It only affects Bitcoin Core's own functional test suite and cannot impact live nodes, wallets, or network consensus.

Lower-priorityci: Document why IN_GETOPT_BIN env var is needed on macOSby MarcoFalke · 5555bce9 · Oct 24, 2025 · 2 filesMessage 97 · StrongInformational 15Details
Commit message · MarcoFalke

ci: Document why IN_GETOPT_BIN env var is needed on macOS

This was added in commit b705bade44973e61655d5f847f49d97fb5bb8393, but I
keep forgetting the background that this is needed for the retry Bash
script. So document it.

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

This commit is purely a code cleanup and documentation change in Bitcoin Core's continuous integration (CI) scripts. It moves a small macOS-specific environment variable setup from a shell script into a Python wrapper, and adds a comment explaining why GNU getopt is needed. There is no security-relevant change here.

Lower-priorityci: Export the container id in python scriptby MarcoFalke · fabe5164 · Oct 24, 2025 · 2 filesMessage 80 · StrongInformational 15Details
Commit message · MarcoFalke

ci: Export the container id in python script

This refactor does not change behavior, but it has a few benefits:

* The shellcheck SC2086 warning is disabled for the whole command, but
is only needed for the CI_CONTAINER_CAP env var. So in Python, only
pass this one env var to shlex.split() for proper word splitting.
* Future logic improvements can be implemented in Python.

The comments are moved, which can be checked via the git options:
--color-moved=dimmed-zebra --color-moved-ws=ignore-all-space

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 moves CI (Continuous Integration) container setup logic from a shell script into a Python script. It is a code cleanup/refactor with no intended behavior change. There is no security issue visible in the diff.

Security candidatetest: Update BIP324 test vectorsby Tim Ruffing · 51877f2f · Oct 23, 2025 · 1 fileMessage 90 · StrongInformational 15Details
Commit message · Tim Ruffing

test: Update BIP324 test vectors

based on https://github.com/bitcoin/bips/pull/2016

90/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✓ Links an issue, advisory, or supporting reference
Why it was queued
secret or key materialfuzzing or regression evidencecryptography-sensitive path
AI analysis · Informational 15/100

This commit only updates test data in a single test file. It replaces hard-coded BIP324 test vectors with newer values taken from a Bitcoin Improvement Proposal pull request. No production code, network behavior, or wallet logic is changed, so it cannot directly affect live Bitcoin Core users or introduce a runtime security flaw.

Lower-prioritydoc: mention key removal in rpc interface modificationby rkrux · 944e5ff8 · Oct 23, 2025 · 1 fileMessage 65 · AdequateInformational 15Details
Commit message · rkrux

doc: mention key removal in rpc interface modification

A discussion in a previous PR 32618 prompted me to add this note.

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

This commit is a one-line documentation edit. It adds 'removing a key from an object' to the list of backward-incompatible RPC interface changes in the developer notes. There is no code change, no bug fix, and no security impact.

Security candidateMerge bitcoin/bitcoin#32266: depends: Avoid `warning: "_FORTIFY_SOURCE" redefined` for `libevent`by merge-script · 1c85d062 · Oct 23, 2025 · 2850 filesMessage 81 · StrongInformational 15Details
Commit message · merge-script

Merge bitcoin/bitcoin#32266: depends: Avoid `warning: "_FORTIFY_SOURCE" redefined` for `libevent`

fe71a4b139f3a142468c2e931775813bc8f9d2ad depends: Avoid `warning: "_FORTIFY_SOURCE" redefined` for `libevent` (Hennadii Stepanov)

Pull request description:

On Alpine Linux 3.12.3, compiling the `libevent` package produces multiple warnings:
```
$ gmake -C depends -j $(nproc) libevent
<snip>
<command-line>: warning: "_FORTIFY_SOURCE" redefined
<built-in>: note: this is the location of the previous definition
<snip>
```

This PR fixes these warnings.

ACKs for top commit:
shahsb:
ACK https://github.com/bitcoin/bitcoin/pull/32266/commits/fe71a4b139f3a142468c2e931775813bc8f9d2ad
maflcko:
lgtm ACK fe71a4b139f3a142468c2e931775813bc8f9d2ad
theuni:
utACK fe71a4b139f3a142468c2e931775813bc8f9d2ad

Tree-SHA512: 0a3ffb2a4cf811bce93addac8e5394cf6b3d79a46245cbdd8488771b9b51e56f66cd9222548138041e69183d52ad4b909d3d1441593f9d79d557d6c000fb324b

81/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
Why it was queued
cryptography-sensitive pathseed or entropy pathsigning or wallet pathboot or update pathauthentication pathparser or protocol pathmerge-commit duplicate discount
AI analysis · Informational 15/100

This commit is a routine build-system cleanup. It removes harmless compiler warnings about a duplicated security-hardening macro (_FORTIFY_SOURCE) when compiling the libevent dependency on Alpine Linux. It does not change how Bitcoin Core runs or how it protects user funds.

Lower-prioritytest: set number of RPC server threads to 2by furszy · e9cd45e3 · Oct 22, 2025 · 1 fileMessage 100 · StrongInformational 15Details
Commit message · furszy

test: set number of RPC server threads to 2

The default `-rpcthreads` value spawns 16 HTTP server threads for each node.
Running the functional test suite with default `rpcthreads` can exhaust file
descriptors or hit other resource limits very easily.
Moreover, having 16 threads is unnecessary since they are mostly idle. We
run RPC calls on a single RPC connection and wait for it result synchronously.
There is (almost) never two RPC calls occurring concurrently.
Because of this, the threads are mostly idle, so we can safely limit the number
of them to two.

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 change only affects Bitcoin Core's internal functional test suite. It reduces the number of RPC server threads spawned by test nodes from 16 to 2 to avoid running out of file descriptors and other resources during automated testing. It does not change production node behavior and is not a security fix.

Lower-priorityci: Retry image building once on failureby MarcoFalke · fa6aa9f4 · Oct 22, 2025 · 1 fileMessage 88 · StrongInformational 15Details
Commit message · MarcoFalke

ci: Retry image building once on failure

The build scripts inside the image retry after a failure. However, there
may be some rare network failures inside the container engine. For
example, when pulling the underlying base image, or when pulling the
docker cache.

Thus, retry after a failure once, which should hopefully fix
https://github.com/bitcoin/bitcoin/issues/33640.

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

This change simply makes the Bitcoin Core CI (continuous integration) build script retry once if building a container image fails, usually due to temporary network issues. It does not touch any wallet, networking, consensus, or cryptographic code, and there is no security issue here.

Lower-priorityci: Allow overwriting check option in run() helperby MarcoFalke · fa4dbe04 · Oct 22, 2025 · 1 fileMessage 85 · StrongInformational 15Details
Commit message · MarcoFalke

ci: Allow overwriting check option in run() helper

The bool is forced to check=True, but some commands may want to
explicitly use kwargs to disable it.

This refactor is needed for the next commit.

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

This is a tiny internal cleanup in Bitcoin Core's continuous integration (CI) test script. It changes how a Python helper passes the 'check' option to subprocess commands so callers can override it. There is no security issue in the change itself.

Lower-priorityci: Use os.environ[key] access when value must be setby MarcoFalke · fa8e4de5 · Oct 22, 2025 · 1 fileMessage 85 · StrongInformational 15Details
Commit message · MarcoFalke

ci: Use os.environ[key] access when value must be set

The other code in this file is using this pattern to throw when a key is
unset, instead of silently returning a None when using os.getenv(key)
with no default value specified.

So use the pattern here as well. As the env vars are always set, this
should be a refactor that does not change the behavior.

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

This is a tiny internal cleanup in Bitcoin Core's continuous integration (CI) test runner script. It changes how two environment variables are read so the script crashes with a clear error if they are missing, rather than silently using a None value. The commit message says the variables are always set, so this is described as a no-behavior-change refactor. It is not a security fix and does not affect the Bitcoin network, wallets, or node software.

Lower-priorityci: add Valgrind fuzzby fanquake · e4b04630 · Oct 22, 2025 · 1 fileMessage 50 · ThinInformational 15Details
Commit message · fanquake

ci: add Valgrind fuzz

50/100 · ThinMessage clarity
✓ Subject identifies a change✓ Uses a recognizable type or scope✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
fuzzing or regression evidencedocumentation-only discount
AI analysis · Informational 15/100

This commit simply adds a new automated testing job to Bitcoin Core's continuous integration (CI) pipeline. It will run the project's fuzz tests under Valgrind, a memory-error detection tool. There is no code change to Bitcoin Core itself, no bug fix, and no security vulnerability being patched.