BC
← All projectsBitcoin Core

Bitcoin Core

The Bitcoin network's reference node and wallet implementation.

BitcoinSupply chainNormal
Repository coverage

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

258security candidates613second-pass queue2891AI analyses
195commits · 30 days
469commits · 60 days
1488commits · 180 days
2864commits · 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
959Strong · 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 Chow16351161065
MarcoFalke41021406074
Lőrinc17721177081
fanquake22819226057
Hennadii Stepanov21214208063
rkrux57957074
Sjors Provoost89889074
merge-script36718088
Sebastian Falbesoner33733073
David Gumberg55655072
Pieter Wuille95595066
Analysis record

Published AI watches

Last scanned 41 minutes ago

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
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
Repository ledger

Explore captured commits

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

Lower-priorityguix: increase maximum allowed (runtime) GCC to 7by fanquake · 776a1633 · Aug 12, 2025 · 1 fileMessage 76 · AdequateInformational 17Details
Commit message · fanquake

guix: increase maximum allowed (runtime) GCC to 7

Fixes:
```bash
/distsrc-base/distsrc-d3b8a54a8120-x86_64-linux-gnu/build/bin/bitcoind: symbol __divmodti4 from unsupported version GCC_7.0.0(14)
/distsrc-base/distsrc-d3b8a54a8120-x86_64-linux-gnu/build/bin/bitcoind: failed IMPORTED_SYMBOLS
```

which is occuring after #32750. I can't see any supported distro that is
shipping a new enough glibc (2.31), but a GCC older than 7.0.

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 · Informational 17/100

This commit loosens an internal build-time check that verifies which compiler/library versions Bitcoin Core's release binaries are allowed to depend on. It does not change the actual code users run, fix a crash in normal operation, or patch a vulnerability. The change was needed because a recent code update (#32750) legitimately uses a compiler helper symbol that only exists in GCC 7+, so the release-build script had to be updated to permit that symbol. No security bug is being fixed.

Lower-priority[doc] update mempool-replacements.md for incremental relay feerate changeby glozow · ba84a25d · Aug 12, 2025 · 1 fileMessage 50 · ThinInformational 15Details
Commit message · glozow

[doc] update mempool-replacements.md for incremental relay feerate change

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

This commit only updates documentation text to reflect a previously changed default fee rate. It does not modify any code, network behavior, or security logic, so it has no direct security impact.

Lower-priority[doc] release note for min feerate changesby glozow · 18720bc5 · Aug 11, 2025 · 1 fileMessage 45 · ThinInformational 15Details
Commit message · glozow

[doc] release note for min feerate changes

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

This commit only adds a release note document explaining upcoming changes to default Bitcoin transaction fee rates. It contains no code changes and no security fix or vulnerability.

Security candidate[policy] lower default minrelaytxfee and incrementalrelayfee to 100sat/kvBby glozow · 6da5de58 · Aug 11, 2025 · 12 filesMessage 73 · AdequateLow 41Details
Commit message · glozow

[policy] lower default minrelaytxfee and incrementalrelayfee to 100sat/kvB

Let's say an attacker wants to use/exhaust the network's bandwidth, and
has the choice between renting resources from a commercial provider and
getting the network to "spam" itself it by sending unconfirmed
transactions. We'd like the latter to be more expensive than the former.

The bandwidth for relaying a transaction across the network is roughly
its serialized size (plus relay overhead) x number of nodes. A 1000vB
transaction is 1000-4000B serialized. With 100k nodes, that's 0.1-0.4GB
If the going rate for commercial services is 10c/GB, that's like 1-4c per kvB
of transaction data, so a 1000vB transaction should pay at least $0.04.

At a price of 120k USD/BTC, 100sat is about $0.12. This price allows us
to tolerate a large decrease in the conversion rate or increase in the
number of nodes.

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
explicit security languagesigning or wallet path
AI analysis · Low 41/100

This commit lowers Bitcoin Core's default minimum relay fee and replacement fee from 1000 satoshis per kilovbyte to 100 satoshis per kilovbyte. The stated goal is to make it cheaper for legitimate transactions to propagate while still keeping spam-based bandwidth attacks more expensive than renting commercial bandwidth. It is a deliberate policy change, not a code vulnerability, but it changes the economics of transaction relay and mempool replacement across the network.

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

AI review queued[prep/test] make wallet_fundrawtransaction's minrelaytxfee assumption explicitby glozow · 2e515d28 · Aug 11, 2025 · 1 fileMessage 60 · AdequateInformational 15Details
Commit message · glozow

[prep/test] make wallet_fundrawtransaction's minrelaytxfee assumption explicit

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

This commit only changes a single functional test file. It explicitly sets the minimum relay transaction fee in the test setup so the test's assumptions about fees are clear. There is no change to production wallet, consensus, or networking code, and no security issue is present.

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[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 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 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: 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: 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-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.