BC
← All projectsBitcoin Core

Bitcoin Core

The Bitcoin network's reference node and wallet implementation.

BitcoinSupply chainNormal
Repository coverage

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

261security candidates613second-pass queue2893AI analyses
183commits · 30 days
474commits · 60 days
1489commits · 180 days
2850commits · 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
971Strong · 80–100
1189Adequate · 60–79
690Thin · 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 Chow16452162065
MarcoFalke41021406074
Lőrinc18121177081
fanquake22919226057
Hennadii Stepanov21314208063
rkrux57957074
merge-script43919088
Sjors Provoost89889074
Sebastian Falbesoner33733073
David Gumberg55655072
Pieter Wuille95595066
Analysis record

Published AI watches

Last scanned 5 minutes ago

Low 26 AI analysisMessage 96 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#32784: wallet: derivehdkey RPC to get xpub at arbitrary path

This commit adds a new Bitcoin Core wallet RPC called derivehdkey that lets a user derive an extended public key (xpub) — or optionally the matching extended private key (xprv) — at a chosen BIP32 path from one of the wallet's own HD keys.…

New RPC exposes xpub/xprv derivation from wallet HD keysRequires at least one hardened derivation stepRejects watch-only wallets and locked/encrypted wallets
a8b582ecby Ava Chow+633−15819 files
No security note in commit
Informational 15 AI analysisMessage 81 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35852: scripted-diff: Use inline const(expr) over static constexpr in headers

This is a large but purely mechanical code cleanup in Bitcoin Core. It changes how constants are declared in header files from older C++ styles (static const, static constexpr) to the modern C++17 inline constexpr/inline const form. The pu…

dec68f99by merge-script+440−440102 files
No security note in commit
Low 28 AI analysisMessage 81 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35959: Update secp256k1 subtree to latest master

This commit updates Bitcoin Core's embedded copy of the secp256k1 cryptographic library to a newer version. The update adds a new Silent Payments module, lets advanced users swap in a custom SHA256 compression function, removes some old de…

Dependency update of a core cryptographic library (libsecp256k1)New runtime SHA256 compression callback with self-test/smoke test to catch mis-implementations earlyBehavior change in ellswift_xdh to reject secret keys >= curve order (vendor states not a security issue)
625f951bby Ava Chow+297−11626 files
No security note in commit
Informational 23 AI analysisMessage 91 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35605: wallet: rpc: Deprecate `removeprunedfunds` RPC

This commit deprecates a Bitcoin Core wallet RPC command called removeprunedfunds. The command lets users delete transactions from their own wallet, which can alter displayed balances. The change does not fix a software bug; it is a cleanu…

RPC allows deletion of arbitrary wallet transactions, affecting balancesDeprecation framed by authors as removing a dangerous and maintenance-burden featureNo authentication bypass, memory corruption, or consensus change present in diff
e9ed5e83by Ava Chow+64−695 files
No security note in commit
Informational 18 AI analysisMessage 91 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35930: wallet: post-#35501 cleanups in CWalletTx

This is a follow-up cleanup and hardening patch for the Bitcoin Core wallet's handling of transactions that have multiple possible witness versions (same transaction ID but different witness data). It renames a variable, simplifies a helpe…

Added input-validation during wallet transaction deserializationNew unit test specifically exercises rejection of mismatched variant txidFollow-up to PR #35501 which introduced witness-variant tracking in the wallet
512dc9afby Ava Chow+68−315 files
No security note in commit
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
Repository ledger

Explore captured commits

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

Lower-priority[prep/util] help MockMempoolMinFee handle more precise feeratesby glozow · 457cfb61 · Aug 11, 2025 · 1 fileMessage 73 · AdequateInformational 16Details
Commit message · glozow

[prep/util] help MockMempoolMinFee handle more precise feerates

Use a virtual size of 1000 to keep precision when using a feerate
(which is rounded to the nearest satoshi per kvb) that isn't just an
integer.

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

This is a small test-only change in Bitcoin Core. It adjusts a mock mempool helper used in automated tests so that fee calculations line up more precisely when non-integer fee rates are used. The change only affects test code and does not alter how the live Bitcoin network or wallet behaves.

Lower-priority[prep/test] replace magic number 1000 with respective feerate varsby glozow · 3eab8b72 · Aug 11, 2025 · 3 filesMessage 60 · AdequateInformational 15Details
Commit message · glozow

[prep/test] replace magic number 1000 with respective feerate vars

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 test code. It replaces hard-coded fee rate numbers like 1000 with named constants and removes duplicated hard-coded values in test assertions. There is no change to the actual Bitcoin Core node behavior, so it cannot introduce a security vulnerability or fix one in production code.

Lower-priority[doc] assert that default min relay feerate and incremental are the sameby glozow · d6213d6a · Aug 11, 2025 · 1 fileMessage 50 · ThinInformational 15Details
Commit message · glozow

[doc] assert that default min relay feerate and incremental are the same

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

This commit adds a compile-time check (static_assert) to ensure two internal fee constants are equal. It is a documentation/safety assertion with no functional code change and no security impact on its own.

Lower-priority[miner] lower default -blockmintxfee to 1sat/kvBby glozow · 5f2df0ef · Aug 11, 2025 · 3 filesMessage 68 · AdequateInformational 21Details
Commit message · glozow

[miner] lower default -blockmintxfee to 1sat/kvB

Back when we implemented coin age priority as a miner policy, miners
mempools might admit transactions paying very low fees, but then want to
set a higher fee for block inclusion. However, since coin age priority
was removed in v0.15, the block assembly policy is solely based on fees,
so we do not need to apply minimum feerate rules in multiple places. In
fact, the block assembly policy ignoring transactions that are added to
the mempool is likely undesirable as we waste resources accepting and
storing this transaction.

Instead, rely on mempool policy to enforce a minimum entry feerate to
the mempool (minrelaytxfee). Set the minimum block feerate to the
minimum non-zero amount (1sat/kvB) so it collects everything it finds in
mempool into the block.

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

This change lowers the default minimum fee a Bitcoin miner requires to include a transaction in a block from 1000 satoshis per kilovbyte to 1 satoshi per kilovbyte. The intent is to let miners include any transaction already accepted by their mempool, rather than having a separate, stricter block-inclusion rule. It is a policy/configuration change, not a cryptographic or consensus bug, and it does not bypass mempool rules.

Lower-priority[test] explicitly check default -minrelaytxfee and -incrementalrelayfeeby glozow · 1fbee5d7 · Aug 11, 2025 · 2 filesMessage 60 · AdequateInformational 15Details
Commit message · glozow

[test] explicitly check default -minrelaytxfee and -incrementalrelayfee

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 adds new test code that checks the default values of two Bitcoin network fee settings. It does not change any production code, wallet behavior, or network rules. There is no security issue here.

Lower-priority[test] RBF rule 4 for various incrementalrelayfee settingsby glozow · 72dc1846 · Aug 11, 2025 · 1 fileMessage 60 · AdequateInformational 12Details
Commit message · glozow

[test] RBF rule 4 for various incrementalrelayfee settings

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

This commit only adds new automated tests for Bitcoin Core's Replace-By-Fee (RBF) fee-bumping rules. It does not change any production code, network protocol, or wallet behavior. The tests verify that a transaction replacement must pay a higher fee when the node's '-incrementalrelayfee' setting is raised. There is no security fix or vulnerability patch here.

Lower-priority[test] check bypass of minrelay for various minrelaytxfee settingsby glozow · 85f49889 · Aug 11, 2025 · 1 fileMessage 60 · AdequateInformational 15Details
Commit message · glozow

[test] check bypass of minrelay for various minrelaytxfee settings

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 adds a new automated test to Bitcoin Core. It checks that a special new transaction type (TRUC, also known as version 3 transactions) can enter the mempool as a package even when one part pays no fee, while ordinary transactions cannot bypass the minimum relay fee. The change does not modify any production code, so it cannot directly affect live Bitcoin nodes or funds.

Lower-priority[test] check miner doesn't select 0fee transactionsby glozow · e5f896bb · Aug 11, 2025 · 1 fileMessage 60 · AdequateInformational 14Details
Commit message · glozow

[test] check miner doesn't select 0fee transactions

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

This commit only adds a new test to Bitcoin Core's test suite. It checks that when miners set a minimum transaction fee above zero, the block template does not include completely free (zero-fee) transactions. There is no change to production code, no bug fix, and no security patch.

AI review queuedRemove implicit uint256 conversion and comparisonby marcofleon · 6f068f65 · Aug 11, 2025 · 1 fileMessage 45 · ThinInformational 18Details
Commit message · marcofleon

Remove implicit uint256 conversion and comparison

45/100 · ThinMessage clarity
✓ 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 18/100

This commit removes shortcuts that let a new transaction ID type be silently treated as the older uint256 type. It is a code-cleanup change that makes type mismatches produce compile-time errors rather than compile silently. There is no direct evidence this fixes an exploitable vulnerability; it is a hardening/refactoring step.

AI review queuedrefactor: Move `transaction_identifier.h` to primitivesby marcofleon · de0675f9 · Aug 11, 2025 · 20 filesMessage 85 · StrongInformational 15Details
Commit message · marcofleon

refactor: Move `transaction_identifier.h` to primitives

Moves the file from `src/util` to `src/primitives`. Now that the
refactor is complete, Txid and Wtxid are fundamental types, so it
makes sense for them to reside in `src/primitives`.

85/100 · StrongMessage clarity
✓ Specific, 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: unusually broad changesecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit is a pure code reorganization: it moves a header file that defines transaction ID types (Txid, Wtxid) from one directory to another and updates all the places that include it. There are no functional changes to how Bitcoin Core behaves, and no security issue is present.

AI review queuedrefactor: Convert remaining instances from uint256 to Txidby marcofleon · 9c24cda7 · Aug 11, 2025 · 25 filesMessage 85 · StrongInformational 15Details
Commit message · marcofleon

refactor: Convert remaining instances from uint256 to Txid

These remaining miscellaneous changes were identified by commenting out
the `operator const uint256&` conversion and the `Compare(const uint256&)`
method from `transaction_identifier.h`.

85/100 · StrongMessage clarity
✓ Specific, 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: unusually broad changesecond-pass: security-sensitive path
AI analysis · Informational 15/100

This is a code cleanup change that replaces generic 256-bit hash values with more specific transaction ID types (Txid and Wtxid) across many files. It does not change what the program computes or how it protects data; it only makes the type names more precise so developers can catch category mistakes at compile time. There is no indication this fixes a security bug.

Lower-prioritypolicy, refactor: Convert uint256 to Txidby marcofleon · d2ecd681 · Aug 11, 2025 · 8 filesMessage 45 · ThinInformational 15Details
Commit message · marcofleon

policy, refactor: Convert uint256 to Txid

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

This commit is a straightforward code cleanup that swaps the generic uint256 type for the more specific Txid type in transaction-related policy code. It does not change behavior, fix a bug, or introduce a security vulnerability. It is purely a type-safety refactor.

AI review queuedmempool, refactor: Convert uint256 to Txidby marcofleon · f6c0d1d2 · Aug 11, 2025 · 16 filesMessage 45 · ThinInformational 15Details
Commit message · marcofleon

mempool, refactor: Convert uint256 to Txid

45/100 · ThinMessage clarity
✓ 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 straightforward internal code cleanup in Bitcoin Core. It replaces the generic 256-bit hash type (uint256) with more specific transaction ID types (Txid and Wtxid) in the memory pool and related code. There is no change to network rules, consensus logic, or user-visible behavior, and no security vulnerability is introduced or fixed.

Lower-priorityrefactor: Convert `mini_miner` from uint256 to Txidby marcofleon · aeb0f783 · Aug 11, 2025 · 5 filesMessage 62 · AdequateInformational 15Details
Commit message · marcofleon

refactor: Convert `mini_miner` from uint256 to Txid

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 straightforward internal code cleanup: Bitcoin Core's mini-miner and mempool code are switching from a generic 256-bit hash type (uint256) to a more specific transaction-id type (Txid). No behavior changes, no bug fixes, and no security relevance are visible in the diff.

AI review queuedrefactor: Convert RPCs and `merkleblock` from uint256 to Txidby marcofleon · 326f2447 · Aug 11, 2025 · 12 filesMessage 62 · AdequateInformational 18Details
Commit message · marcofleon

refactor: Convert RPCs and `merkleblock` from uint256 to Txid

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

This commit is a code cleanup that replaces the generic uint256 type with a more specific Txid type when handling transaction identifiers in RPC commands and merkle block processing. It does not change program behavior, fix a bug, or introduce a security feature. It is a type-safety refactor intended to make the code clearer and harder to misuse in the future.

Lower-priorityci: Update `actions/checkout` versionby Hennadii Stepanov · f83c01d8 · Aug 11, 2025 · 1 fileMessage 57 · ThinInformational 15Details
Commit message · Hennadii Stepanov

ci: Update `actions/checkout` version

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

This commit simply bumps the version of a third-party GitHub Action used to check out source code during automated testing, from v4 to v5. There is no indication of a security vulnerability being fixed or introduced. It is a routine maintenance update to the project's continuous integration configuration.

Lower-prioritytest: fix scripts in `blockfilter_basic_test`by UdjinM6 · ca64b71e · Aug 9, 2025 · 1 fileMessage 67 · AdequateInformational 15Details
Commit message · UdjinM6

test: fix scripts in `blockfilter_basic_test`

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 commit fixes a test-only bug in Bitcoin Core's unit tests. The test was accidentally creating empty or wrong-sized data blobs because the arguments to a vector constructor were swapped. This only affects test code, not the live Bitcoin network or wallet software, so it has no security impact on real users.

Security candidateassumevalid: log every script validation state changeby Lőrinc · fab2980b · Aug 8, 2025 · 3 filesMessage 100 · StrongInformational 15Details
Commit message · Lőrinc

assumevalid: log every script validation state change

The `-assumevalid` option skips script verification for a specified block and all its ancestors during Initial Block Download.
Many new users are surprised when this suddenly slows their node to a halt.
This commit adds a log message to clearly indicate when this optimization ends and full validation begins (and vice versa).

When using `-assumeutxo`, logging is suppressed for the active assumed-valid chainstate and for the background validation chainstate to avoid the confusing toggles.

-------

> cmake -B build && cmake --build build && mkdir -p demo && build/bin/bitcoind -datadir=demo -stopatheight=500 | grep 'signature validation'

```
2025-08-08T20:59:21Z Disabling signature validations at block #1 (00000000839a8e6886ab5951d76f411475428afc90947ee320161bbf18eb6048).
2025-08-08T20:59:21Z Enabling signature validations at block #100 (000000007bc154e0fa7ea32218a72fe2c1bb9f86cf8c9ebf9a715ed27fdb229a).
2025-08-08T20:59:21Z Disabling signature validations at block #200 (000000008f1a7008320c16b8402b7f11e82951f44ca2663caf6860ab2eeef320).
2025-08-08T20:59:21Z Enabling signature validations at block #300 (0000000062b69e4a2c3312a5782d7798b0711e9ebac065cd5d19f946439f8609).
```

100/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Mentions testing or verification✓ Links an issue, advisory, or supporting reference✓ Names security-relevant behavior explicitly
Why it was queued
signing boundarydefensive validation
AI analysis · Informational 15/100

This commit only adds user-facing log messages that announce when Bitcoin Core turns signature checking on or off during initial block download. It does not change whether signatures are checked, only how clearly the node tells the user about it. There is no security vulnerability here.

Lower-prioritylog: change LogLimitStats to struct LogRateLimiter::Statsby Eugene Siegel · 3c7cae49 · Aug 8, 2025 · 3 filesMessage 73 · AdequateInformational 15Details
Commit message · Eugene Siegel

log: change LogLimitStats to struct LogRateLimiter::Stats

Clean up the noisy LogLimitStats and remove references to the time
window.

Co-Authored-By: stickies-v <stickies-v@protonmail.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 is a straightforward internal code cleanup in Bitcoin Core's logging system. It renames a helper class and moves it inside another class, with no change to how log rate-limiting behaves. There is no security issue here.

Lower-prioritylog: clean up LogPrintStr_ and Reset, prefix all logs with "[*]" when there are suppressionsby Eugene Siegel · e8f9c37a · Aug 8, 2025 · 1 fileMessage 73 · AdequateInformational 17Details
Commit message · Eugene Siegel

log: clean up LogPrintStr_ and Reset, prefix all logs with "[*]" when there are suppressions

In LogPrintStr_:
- remove an unnecessary BCLog since we are in the BCLog namespace.
- remove an unnecessary \n when rate limiting is triggered since
FormatLogStrInPlace will add it.
- move the ratelimit bool into an else if block.
- prefix all log lines with [*] when suppressions exist. Previously this
was only done if should_ratelimit was true.

In Reset:
- remove an unnecessary \n since FormatLogStrInPlace will add it.
- Change Level::Info to Level::Warning.

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

This is a small cleanup change to Bitcoin Core's internal logging code. It fixes a minor bug where a '[*]' indicator that warns operators some log messages are being suppressed was only shown in one specific case, and now shows it whenever any suppression is active. It also removes a few redundant newline characters and adjusts a log message severity from 'Info' to 'Warning'. There is no direct security vulnerability here; it is a reliability/usability improvement for log output.

Lower-prioritytests: drop expect_disconnect behaviour for tx relayby Anthony Towns · 876dbdfb · Aug 8, 2025 · 4 filesMessage 60 · AdequateInformational 14Details
Commit message · Anthony Towns

tests: drop expect_disconnect behaviour for tx relay

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

This commit only changes Bitcoin Core's internal functional test code. It removes an old test helper flag called expect_disconnect that was used when sending invalid transactions during tests. The production Bitcoin node code that actually validates transactions and decides whether to disconnect peers is not changed at all. Therefore this commit does not fix or introduce any security issue in the live Bitcoin software.

Lower-priorityvalidation: only check input scripts onceby Anthony Towns · b29ae9ef · Aug 8, 2025 · 10 filesMessage 90 · StrongInformational 24Details
Commit message · Anthony Towns

validation: only check input scripts once

Previously, we would check failing input scripts twice when considering
a transaction for the mempool, in order to distinguish policy failures
from consensus failures. This allowed us both to provide a different
error message and to discourage peers for consensus failures. Because we
are no longer discouraging peers for consensus failures during tx relay,
and because checking a script can be expensive, only do this once.

Also renames non-mandatory-script-verify-flag error to
mempool-script-verify-flag-failed.

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

This Bitcoin Core change removes a second, redundant check of transaction scripts when a transaction is rejected from the mempool. Previously, the software ran the expensive script check twice to decide whether a failure was a policy issue (like a non-standard signature) or a consensus issue (a rule everyone must agree on). Now it only checks once and reports a single mempool error. This is mainly a performance and code-simplification improvement; it does not change which transactions are accepted or rejected, only the exact error message returned and the internal work done.

Lower-prioritynet_processing: drop MaybePunishNodeForTxby Anthony Towns · 266dd0e1 · Aug 8, 2025 · 4 filesMessage 70 · AdequateModerate 53Details
Commit message · Anthony Towns

net_processing: drop MaybePunishNodeForTx

Do not discourage nodes even when they send us consensus invalid
transactions.

Because we do not discourage nodes for transactions we consider
non-standard, we don't get any DoS protection from this check in
adversarial scenarios, so remove the check entirely both to simplify the
code and reduce the risk of splitting the network due to changes in tx
relay policy.

70/100 · AdequateMessage clarity
✓ Descriptive subject✓ Provides detailed explanatory context✓ Explains rationale or failure mode
AI analysis · Moderate 53/100

This Bitcoin Core change removes the automatic disconnection and blacklisting of peers that send transactions considered invalid under network-wide consensus rules. Previously, sending certain consensus-invalid transactions would cause a peer to be 'misbehaved' and potentially disconnected. Now, such transactions are rejected but the peer stays connected. The stated goal is to avoid accidentally splitting the network if relay rules change, and because the protection was already ineffective against determined attackers.

Lower-priorityutil: detect and warn when using exFAT on macOSby willcl-ark · db322804 · Aug 8, 2025 · 4 filesMessage 76 · AdequateLow 28Details
Commit message · willcl-ark

util: detect and warn when using exFAT on macOS

exFAT is known to cause corruption on macOS. See #28552.

Therefore we should warn when using this fs format for either the blocks
or data directories on macOS.

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

76/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
AI analysis · Low 28/100

This commit adds a warning for Bitcoin Core users on macOS who store their data or blocks directory on an exFAT-formatted drive. It does not fix a bug in Bitcoin Core itself, but warns users about a known filesystem reliability issue on macOS that has reportedly caused database corruption and data loss. There is no security vulnerability being exploited by an attacker.

AI review queuedpolicy: introduce a helper to detect whether a transaction spends Segwit outputsby Antoine Poinsot · 2907b588 · Aug 8, 2025 · 3 filesMessage 73 · AdequateInformational 12Details
Commit message · Antoine Poinsot

policy: introduce a helper to detect whether a transaction spends Segwit outputs

We will use this helper in later commits to detect witness stripping without having
to execute every input Script three times in a row.

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

This commit adds a new internal helper function in Bitcoin Core that detects whether a transaction spends any Segregated Witness (Segwit) output, except for a special 'anchor' output type. It does not change network rules, user-visible behavior, or fix any bug by itself. It is a preparatory code change for future commits.