BC
← All projectsBitcoin Core

Bitcoin Core

The Bitcoin network's reference node and wallet implementation.

BitcoinSupply chainNormal
Repository coverage

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

260security candidates613second-pass queue2893AI analyses
182commits · 30 days
474commits · 60 days
1488commits · 180 days
2857commits · 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
970Strong · 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
Sjors Provoost89889074
merge-script42819088
Sebastian Falbesoner33733073
David Gumberg55655072
Pieter Wuille95595066
Analysis record

Published AI watches

Last scanned 13 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.

AI review queuedscript/verify_flags: make script_verify_flags type safeby Anthony Towns · bddcadee · Aug 14, 2025 · 12 filesMessage 73 · AdequateInformational 19Details
Commit message · Anthony Towns

script/verify_flags: make script_verify_flags type safe

`using script_verify_flags = uint32_t` allows implicit conversion to
and from int, so replace it with a class to have the compiler ensure we
use the correct type. Provide from_int and as_int to allow for explicit
conversions when desired.

Introduces the type `script_verify_flag_name` for the individual flag
name enumeration.

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

This commit is a code-quality refactor, not a security fix. It replaces a plain 32-bit integer type used for Bitcoin script verification flags with a dedicated C++ class that prevents accidental mixing with regular integers. The change makes the code safer to maintain but does not alter what the flags mean or how transactions are validated.

AI review queuedMove mapFlagNames and FormatScriptFlags logic to script/interpreter.hby Anthony Towns · 5db8cd2d · Aug 14, 2025 · 5 filesMessage 73 · AdequateInformational 15Details
Commit message · Anthony Towns

Move mapFlagNames and FormatScriptFlags logic to script/interpreter.h

Moves FormatScriptFlags logic into GetScriptFlagNames which returns a
vector of strings. For completeness, also has GetScriptFlagNames report
on any bits that do not match a known script flag.

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

This commit is a straightforward code cleanup: it moves a helper that converts script verification flags into human-readable names from test files into a shared library location, and adds a small test for it. There is no change to how Bitcoin validates transactions or scripts, and no security fix.

Lower-priorityrefactor: inline constant return value of `CDBWrapper::Write`by Lőrinc · cdab9480 · Aug 13, 2025 · 5 filesMessage 62 · AdequateInformational 15Details
Commit message · Lőrinc

refactor: inline constant return value of `CDBWrapper::Write`

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 code cleanup change. A helper function that always returned 'true' is changed to return nothing, and callers are updated to stop checking a result that could never fail. There is no security-relevant behavior change.

Lower-priorityrefactor: inline constant return value of `BlockTreeDB::WriteBatchSync` and `BlockManager::WriteBlockIndexDB` and `BlockTreeDB::WriteFlag`by Lőrinc · 743abbcb · Aug 13, 2025 · 4 filesMessage 62 · AdequateInformational 15Details
Commit message · Lőrinc

refactor: inline constant return value of `BlockTreeDB::WriteBatchSync` and `BlockManager::WriteBlockIndexDB` and `BlockTreeDB::WriteFlag`

62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Informational 15/100

This commit is a simple code cleanup (refactor) in Bitcoin Core. Three functions previously returned a boolean value that was always 'true' and was always ignored by callers. The change removes those always-true return values and updates the callers accordingly. There is no security-relevant change: no new behavior, no bug fix, no vulnerability introduced or fixed.

Lower-priorityrefactor: inline constant return value of `CDBWrapper::Erase` and `BlockTreeDB::WriteReindexing`by Lőrinc · e030240e · Aug 13, 2025 · 3 filesMessage 97 · StrongInformational 15Details
Commit message · Lőrinc

refactor: inline constant return value of `CDBWrapper::Erase` and `BlockTreeDB::WriteReindexing`

Did both in this commit, since the return value of `WriteReindexing` was ignored anyway - which existed only because of the constant `Erase` being called

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 is a small code cleanup (refactor) that removes always-true return values from two database helper functions. The return values were never checked by callers, so the change has no effect on behavior and no security relevance.

Lower-priorityrefactor: inline constant return value of `TxIndex::DB::WriteTxs`by Lőrinc · d1847cf5 · Aug 13, 2025 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · Lőrinc

refactor: inline constant return value of `TxIndex::DB::WriteTxs`

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 small internal code cleanup in Bitcoin Core's optional transaction index. The WriteTxs helper always returned true, so the caller now skips checking it and directly returns true. There is no user-facing or security-relevant change.

Lower-priorityrefactor: inline constant return value of `CDBWrapper::WriteBatch`by Lőrinc · 50b63a56 · Aug 13, 2025 · 9 filesMessage 85 · StrongInformational 15Details
Commit message · Lőrinc

refactor: inline constant return value of `CDBWrapper::WriteBatch`

`WriteBatch` can only ever return `true` - its errors are handled by throwing a `throw dbwrapper_error` instead.
The boolean return value is quite confusing, especially since it's symmetric with `CDBWrapper::Read`, which catches the exceptions and returns a boolean instead.
We're removing the constant return value and inlining `true` for its usages.

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 straightforward code cleanup change. A database helper function that always returned true is changed to return nothing, and callers are updated to stop checking a value that could never be false. No security bug is introduced or fixed.

Lower-prioritycontrib: adapt max reject string size in tracing demoby Antoine Poinsot · b3f781a0 · Aug 13, 2025 · 1 fileMessage 73 · AdequateInformational 15Details
Commit message · Antoine Poinsot

contrib: adapt max reject string size in tracing demo

The Script errors were last touched in 2020. This value was calculated after that
in 2022 (commit 4b7aec2951fe4595946cdc804b0dec1921d79d05). The previous commit
made the size of the largest reject reason string 4 characters smaller ("mandatory"
became "block"), so adapt the constant.

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

This is a trivial comment and constant update in a tracing demonstration script. It changes a documented maximum string length from 118 to 114 characters because a previous commit shortened the longest possible rejection reason. There is no security issue.

Lower-priorityscripted-diff: validation: rename mandatory errors into block errorsby Antoine Poinsot · 9a046354 · Aug 13, 2025 · 11 filesMessage 91 · StrongInformational 15Details
Commit message · Antoine Poinsot

scripted-diff: validation: rename mandatory errors into block errors

Using "block" or "mempool" as the prefix in place of "mandatory" or "non-mandatory" is clearer
to a user. "non-mandatory" was renamed into "mempool" as part of #33050. This takes care of the
other half of this renaming as a scripted diff.

-BEGIN VERIFY SCRIPT-
sed -i 's/mandatory-script-verify/block-script-verify/g' $(git grep -l mandatory-script-verify)
-END VERIFY SCRIPT-

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

This commit is a simple automated rename of user-facing error messages and test expectations. It changes the phrase 'mandatory-script-verify-flag-failed' to 'block-script-verify-flag-failed' across source code and tests. No validation logic, security checks, or behavior changes.

Lower-priorityrpc/net: add per-peer inv_to_send sizesby Anthony Towns · adefb51c · Aug 13, 2025 · 4 filesMessage 45 · ThinInformational 15Details
Commit message · Anthony Towns

rpc/net: add per-peer inv_to_send sizes

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

This commit adds a new read-only diagnostic field called 'inv_to_send' to the getpeerinfo RPC output. It simply reports how many transaction announcements are queued for each peer. There is no change to network behavior, transaction relay logic, or access controls.

AI review queuedinterfaces, chain, refactor: Remove inaccurate getActiveChainLocatorby pablomartin4btc · 2b00030a · Aug 13, 2025 · 3 filesMessage 81 · StrongInformational 15Details
Commit message · pablomartin4btc

interfaces, chain, refactor: Remove inaccurate getActiveChainLocator

The getActiveChainLocator method name was misleading, and its functionality
duplicated `Chain::findBlock`. This commit removes the method and replaces
all its usages with direct `Chain::findBlock` calls.

Additionally, the comment of getActiveChainLocator has been outdated since
commit ed47094 from #25717.

Finally, in CWallet::ScanForWalletTransactions, the findBlock calls are now
unified into a single call at the start of the function.

Co-authored-by: Ryan Ofsky <ryan@ofsky.org>
Co-authored-by: Matias Furszyfer <mfurszy@protonmail.com>

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

This is a routine internal code cleanup in Bitcoin Core. It removes a redundant method called getActiveChainLocator and replaces its uses with an existing equivalent method, findBlock. There is no security fix here and no indication this change addresses any vulnerability.

Lower-priorityinterfaces, chain, refactor: Remove unused getTipLocatorby pablomartin4btc · 110a0f40 · Aug 13, 2025 · 5 filesMessage 73 · AdequateInformational 15Details
Commit message · pablomartin4btc

interfaces, chain, refactor: Remove unused getTipLocator

Also removed CChain::GetLocator() and replaced its call
with GetLocator() which uses LocatorEntries instead.

Co-authored-by: ryanofsky <ryan@ofsky.org>
Co-authored-by: l0rinc <l0rinc@users.noreply.github.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 routine code cleanup. It removes an unused function called getTipLocator and a related internal helper, replacing one remaining use with an equivalent existing function. There is no security-relevant change.

Lower-prioritytest: use local `CBlockIndex` in block read hash mismatch test to avoid data raceby Lőrinc · cb173b8e · Aug 12, 2025 · 1 fileMessage 99 · StrongInformational 17Details
Commit message · Lőrinc

test: use local `CBlockIndex` in block read hash mismatch test to avoid data race

Co-authored-by: stickies-v <stickies-v@protonmail.com>

99/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ Explains rationale or failure mode✓ Mentions testing or verification
AI analysis · Informational 17/100

This is a test-only code change that fixes a flaky unit test. The test previously borrowed a real block index object from the main chain and modified it, which could race with other test threads. The patch creates a local copy of the index data instead, so the test no longer touches shared state. It is not a fix for a security vulnerability in Bitcoin Core itself.

Security candidateMerge bitcoin/bitcoin#31296: wallet: Translate [default wallet] string in progress messagesby Ava Chow · 73972d56 · Aug 12, 2025 · 2855 filesMessage 81 · StrongInformational 15Details
Commit message · Ava Chow

Merge bitcoin/bitcoin#31296: wallet: Translate [default wallet] string in progress messages

db225cea56b0531cc42d4b89dc61b02890f432ff wallet, refactor: Replace GetDisplayName() with LogName() (Ryan Ofsky)
01737883b3ff8051253c961b7dde50d055104ef9 wallet: Translate [default wallet] string in progress messages (Ryan Ofsky)

Pull request description:

Noticed while reviewing https://github.com/bitcoin/bitcoin/pull/31287#discussion_r1843809721 that the [default wallet] part of progress messages remains untranslated while the rest of the string is translated.

Fix this in all places where `CWallet::ShowProgress` (which has a cancel button) and `Chain::showProgress` (which doesn't have a cancel button) are called by making "default wallet" into a translated string.

ACKs for top commit:
achow101:
ACK db225cea56b0531cc42d4b89dc61b02890f432ff
pablomartin4btc:
ACK db225cea56b0531cc42d4b89dc61b02890f432ff
furszy:
utACK db225cea56b0531cc42d4b89dc61b02890f432ff

Tree-SHA512: 3e76e22ee692a7403d61c66615f56d0fa5f7883dd47553bcaec2f9ffd942daaa90ceb61830206bece50da53dcd737b6438c36bcb086030b2deb68c44172f3931

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 localization fix for Bitcoin Core's wallet. It makes the words '[default wallet]' in progress messages translatable, so non-English users see a fully translated message. There is no security impact.

Lower-prioritydoc: update wallet build instructionby Sjors Provoost · 67e186de · Aug 12, 2025 · 5 filesMessage 60 · AdequateInformational 15Details
Commit message · Sjors Provoost

doc: update wallet build instruction

Sqlite is expected to be installed, but can still be opted out of.

60/100 · AdequateMessage clarity
✓ 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 only updates user-facing build instructions in documentation files. It changes wording to say SQLite is required for wallet builds (rather than only for 'descriptor wallets') and tells users how to disable the wallet if they don't want it. There are no code changes, no bug fixes, and no security-relevant behavior changes.

Lower-prioritytest: logging_filesize_rate_limit improvementsby stickies-v · 9f3b017b · Aug 12, 2025 · 1 fileMessage 80 · StrongInformational 15Details
Commit message · stickies-v

test: logging_filesize_rate_limit improvements

- Add helper functions and structs to improve readability and
reusability of test code
- Make tests more specific by comparing all produced log lines with
expected log lines instead of relying on approximations or proxies.

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 changes test code in Bitcoin Core. It refactors and improves the clarity of existing unit tests for the logging rate limiter. There are no changes to production code, so it cannot directly affect live Bitcoin node behavior or introduce a security vulnerability.

Lower-priorityconfig: add DEBUG_ONLY -logratelimitby Eugene Siegel · 5c74a0b3 · Aug 12, 2025 · 4 filesMessage 68 · AdequateInformational 22Details
Commit message · Eugene Siegel

config: add DEBUG_ONLY -logratelimit

Use -nologratelimit by default in functional tests if the bitcoind
version supports it.

Co-Authored-By: stickies-v <stickies-v@protonmail.com>

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

This commit adds a hidden debug-only command-line option that lets users turn off a recently-introduced log rate limiter. By default the rate limiter stays on, so normal users are not affected. The change is mainly useful for developers running tests who need full logs. It does not by itself create a new security hole, but it does expose a switch that could theoretically be used to disable a protection against disk-filling attacks.

Lower-prioritytest: don't leak log category mask across testsby stickies-v · 350193e5 · Aug 12, 2025 · 1 fileMessage 82 · StrongInformational 15Details
Commit message · stickies-v

test: don't leak log category mask across tests

This ensures log tests behave consistently when other tests modify
the log category mask.

82/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ Mentions testing or verification
AI analysis · Informational 15/100

This is a test-only cleanup. It makes sure that one logging test does not accidentally leave its settings behind and affect later tests. There is no change to the actual Bitcoin Core software that users run, and no security issue in production code.

Lower-prioritytest: add ReadDebugLogLines helper functionby stickies-v · 05d7c224 · Aug 12, 2025 · 1 fileMessage 82 · StrongInformational 15Details
Commit message · stickies-v

test: add ReadDebugLogLines helper function

Deduplicates repeated usage of the same functionality.

82/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ Mentions testing or verification
AI analysis · Informational 15/100

This commit is a simple code cleanup in Bitcoin Core's test suite. It creates a small helper function that reads log files during testing, replacing four nearly identical blocks of test code. There is no change to the actual Bitcoin node software, no change in behavior, and no security relevance.

AI review queuedlog: make m_limiter a shared_ptrby stickies-v · 3d630c25 · Aug 12, 2025 · 4 filesMessage 68 · AdequateLow 27Details
Commit message · stickies-v

log: make m_limiter a shared_ptr

This allows us to safely and explicitly manage the dual dependency
on the limiter: one for the Logger, and one for the CScheduler.

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
second-pass: broader security terminology
AI analysis · Low 27/100

This commit changes how Bitcoin Core's log rate-limiter is managed in memory. Previously, the scheduler held a raw pointer to the limiter, which could become invalid if the limiter was destroyed while a scheduled reset task was still pending. The fix makes the limiter a shared pointer and gives the scheduler only a weak reference, so the scheduled task safely does nothing if the limiter is gone. This is a defensive hardening change, not an active exploit fix.

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.

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.