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 17 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-priorityci: have base install run in right dirby will · 9c2b96e0 · Sep 1, 2025 · 2 filesMessage 92 · StrongInformational 15Details
Commit message · will

ci: have base install run in right dir

This sets the build dir at build time so that Apple SDK gets installed
in the correct/expected location for the runtime to find it.

Co-authored-by: Max Edwards <youwontforgetthis@gmail.com>

92/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Explains rationale or failure mode
AI analysis · Informational 15/100

This is a routine continuous integration (CI) build-script fix. It makes sure a build directory variable is passed into the container image build so that an Apple software development kit gets installed where the test runner expects it. There is no indication this affects Bitcoin Core software users, wallets, the network, or security.

Lower-priorityci: use docker build cache arg directlyby will · 18f6be09 · Sep 1, 2025 · 1 fileMessage 88 · StrongInformational 15Details
Commit message · will

ci: use docker build cache arg directly

Reverts: e87429a2d0f23eb59526d335844fa5ff5b50b21f

This was added in PR #31545 with the intention that self-hosted runners
might use it to save build cache.

As we are not using hosted runners with a registry build cache, the bulk
of this commit can be reverted, simply using the value of
$DOCKER_BUILD_CACHE_ARG in the script.

link: https://github.com/bitcoin/bitcoin/pull/31545

88/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
AI analysis · Informational 15/100

This commit removes a CI (Continuous Integration) shell script feature that managed a local Docker build cache directory. It is a cleanup/revert of an earlier change and does not touch any Bitcoin Core node, wallet, consensus, or network code. There is no security-relevant change to user-facing software.

Lower-priorityci: use buildx in ciby will · 94a09325 · Sep 1, 2025 · 1 fileMessage 73 · AdequateInformational 15Details
Commit message · will

ci: use buildx in ci

Using buildx is required to properly load the correct driver, for use
with registry caching. Neither build, nor BUILDKIT=1 currently do this
properly.

Use of `docker buildx build` is compatible with podman.

73/100 · AdequateMessage clarity
✓ Subject identifies a change✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
AI analysis · Informational 15/100

This commit changes the Bitcoin Core continuous integration (CI) script to use Docker's 'buildx' plugin instead of the older 'docker build' command with BuildKit enabled. It is a build-infrastructure tweak intended to make Docker image caching work correctly. There is no indication this change affects the Bitcoin software users run, handles money, keys, network messages, or introduces any security vulnerability.

Lower-priorityci: add configure-docker actionby will · fdf64e55 · Sep 1, 2025 · 1 fileMessage 80 · StrongInformational 15Details
Commit message · will

ci: add configure-docker action

Another action to reduce boilerplate in the main ci.yml file.

This action will set up a docker builder compatible with caching build
layers to a container registry using the `gha` build driver.

It will then configure the docker build cache args.

80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
Why it was queued
documentation-only discount
AI analysis · Informational 15/100

This commit adds a new GitHub Actions helper that sets up Docker Buildx and configures Docker layer caching for Bitcoin Core's continuous integration (CI). It does not change any Bitcoin node code, wallet logic, or network behavior. There is no indication it fixes or introduces a security vulnerability.

Lower-priorityci: add REPO_USE_CIRRUS_RUNNERSby will · 33ba073d · Sep 1, 2025 · 1 fileMessage 70 · AdequateInformational 15Details
Commit message · will

ci: add REPO_USE_CIRRUS_RUNNERS

If set, Cirrus runners will be used on pushes to, and pull requests
against, this repository.

Forks can set this if they have their own cirrus runners.

70/100 · AdequateMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
Why it was queued
documentation-only discount
AI analysis · Informational 15/100

This commit is a routine CI (Continuous Integration) configuration change for the Bitcoin Core repository. It adds a single environment variable that tells the project's GitHub Actions workflow to use faster Cirrus-provided runners and caching when running tests on the main bitcoin/bitcoin repository or pull requests against it. There is no code change affecting the Bitcoin software itself, wallets, transactions, networking, or cryptography.

Lower-priorityci: add caching actionsby will · b232b0fa · Sep 1, 2025 · 2 filesMessage 85 · StrongInformational 15Details
Commit message · will

ci: add caching actions

Add "Restore" and "Save" caching actions.

These actions reduce boilerplate in the main ci.yml configuration file.

These actions are implemented so that caches will be saved on `push`
only.

When a pull request is opened it will cache hit on the caches from the
lastest push, or in the case of depends will hit on any matching depends
hash, falling back to partial matches.

Depends caches are hashed using
`$(git ls-tree HEAD depends "ci/test/$FILE_ENV" | sha256sum | cut -d' ' -f1)`
and this hash is passed in as an input to the actions. This means we
direct cache hit in cases where depends would not be re-built, otherwise
falling back to a partial match.

Previous releases cache is hashed similarly to depends, but using the
test/get_previous_releases.py file.

The cirruslabs cache action will fallback transparently to GitHub's
cache in the case that the job is not being run on a Cirrus Runner,
making these compatible with running on forks (on free GH hardware).

85/100 · StrongMessage clarity
✓ Subject identifies a change✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Mentions testing or verification
Why it was queued
documentation-only discount
AI analysis · Informational 15/100

This commit adds two new GitHub Actions helper files that manage caching for the project's continuous integration (CI) build system. It saves and reuses compiled code and dependency downloads to make automated builds faster. There is no indication this change introduces a security vulnerability or modifies any Bitcoin Core software code that users run.

Lower-priorityci: add configure environment actionby will · b8fcc9fc · Sep 1, 2025 · 1 fileMessage 57 · ThinInformational 15Details
Commit message · will

ci: add configure environment action

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 adds a new reusable GitHub Actions step that sets environment variables for Bitcoin Core's continuous integration (CI) system. It defines build/cache directories and computes cache hashes from source files. There is no user-facing or network-facing change, and nothing in the diff suggests a security vulnerability or fix.

Lower-priorityfees: make estimateSmartFee/HighestTargetTracked virtual for mockingby brunoerg · f591c3be · Aug 29, 2025 · 1 fileMessage 50 · ThinInformational 15Details
Commit message · brunoerg

fees: make estimateSmartFee/HighestTargetTracked virtual for mocking

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

This commit simply changes two function declarations in a header file from regular methods to virtual methods. Virtual methods can be overridden in subclasses, which is useful for testing with mock objects. There is no security issue here.

Lower-prioritytest: Fixup fill_mempool docstringby MarcoFalke · fa3f6820 · Aug 29, 2025 · 1 fileMessage 72 · AdequateInformational 15Details
Commit message · MarcoFalke

test: Fixup fill_mempool docstring

The assumption was removed in commit
3eab8b724044dc321f70e5eed66b149713158a04.

72/100 · AdequateMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ Mentions testing or verification
AI analysis · Informational 15/100

This is a tiny documentation-only change in a test helper file. It removes one outdated sentence from a docstring because a previous commit removed the assumption it described. No code behavior changed, and there is no security relevance.

Lower-priorityrefactor: Extract default batch size into kernelby Lőrinc · 8bbb7b8b · Aug 28, 2025 · 3 filesMessage 72 · AdequateInformational 15Details
Commit message · Lőrinc

refactor: Extract default batch size into kernel

The constant for the default batch size is moved to `kernel/caches.h` to consolidate kernel-related cache constants.

72/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body
AI analysis · Informational 15/100

This is a simple code cleanup change: a single default value for a database batch size setting is moved from one header file to another and renamed to follow project conventions. The actual numeric value (16 MiB) and how it is used remain unchanged. There is no security relevance.

Lower-prioritycoins: increase default `dbbatchsize` to 32 MiBby Lőrinc · b6f8c489 · Aug 28, 2025 · 1 fileMessage 68 · AdequateInformational 15Details
Commit message · Lőrinc

coins: increase default `dbbatchsize` to 32 MiB

The default database write batch size is increased from 16 MiB to 32 MiB to improve I/O efficiency and performance during UTXO flushes, particularly during Initial Block Download and `assumeutxo` loads.

On systems with slower I/O, a larger batch size reduces overhead from numerous small writes. Measurements show this change provides a modest performance improvement on most hardware during a critical section, with a minimal peak memory increase (approx. 75 MiB on default settings).

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

This commit simply doubles a default internal setting that controls how much data Bitcoin Core groups together before writing to its UTXO database. It is a performance tuning change, not a security fix or vulnerability. There is no indication it introduces a security problem.

Lower-prioritythreading: reduce the scope of lock in getblocktemplateby kevkevinpal · 493ba0f6 · Aug 28, 2025 · 1 fileMessage 50 · ThinInformational 12Details
Commit message · kevkevinpal

threading: reduce the scope of lock in getblocktemplate

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

This change narrows the use of a global lock in the getblocktemplate RPC, which miners use to request work. The lock is now acquired later and held for a shorter time, rather than being held across the entire request setup. This is a performance and correctness cleanup. There is no direct evidence in the commit that it fixes an exploitable security bug, but reducing lock scope can prevent subtle race conditions or RPC stalls.

Lower-priorityci: return to using dash in CentOS jobby fanquake · 509ffea4 · Aug 27, 2025 · 2 filesMessage 57 · ThinInformational 15Details
Commit message · fanquake

ci: return to using dash in CentOS job

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Informational 15/100

This is a routine Continuous Integration (CI) maintenance change for Bitcoin Core. It switches the CentOS test container back from using the ksh shell to the dash shell, because a Red Hat bug that previously required ksh has been fixed. The change only affects internal test scripts and installed CI packages; it does not touch Bitcoin Core's network code, wallet, consensus logic, or any user-facing software.

Lower-priorityRevert "[refactor] rewrite vTxHashes as a vector of CTransactionRef"by Anthony Towns · b7b249d3 · Aug 26, 2025 · 4 filesMessage 65 · AdequateInformational 12Details
Commit message · Anthony Towns

Revert "[refactor] rewrite vTxHashes as a vector of CTransactionRef"

This reverts commit a03aef9cec35b0d03aa63d7e8093f0420cd4b40b.

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

This commit undoes a recent code cleanup that changed how Bitcoin Core's memory pool tracks transactions for compact block reconstruction. The reversion restores the previous design where the mempool keeps pairs of transaction IDs and iterators, rather than storing direct shared references to transactions. There is no indication in the commit itself that this fixes a security bug; it appears to be a design or correctness revert, possibly due to bugs introduced by the original refactor.

Lower-priorityRevert "refactor: Simplify `extra_txn` to be a vec of CTransactionRef instead of a vec of pair<Wtxid, CTransactionRef>"by Anthony Towns · b9300d8d · Aug 26, 2025 · 6 filesMessage 65 · AdequateLow 27Details
Commit message · Anthony Towns

Revert "refactor: Simplify `extra_txn` to be a vec of CTransactionRef instead of a vec of pair<Wtxid, CTransactionRef>"

This reverts commit a8203e94123b6ea6e4f4a6320e3ad20457f44a28.

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

This commit undoes a recent code cleanup in Bitcoin Core's compact block reconstruction feature. The original cleanup changed an internal list of spare transactions from storing pairs of 'transaction ID + transaction pointer' to storing only the transaction pointer. This revert restores the paired format and adds a comment explaining that keeping both values together improves CPU cache performance during block reconstruction. There is no direct evidence in the commit that this fixes an active security bug, but it is a defensive revert of a performance refactor in a consensus-adjacent code path.

Lower-prioritybench/blockencodings: add compact block reconstruction benchmarkby Anthony Towns · df5a50e5 · Aug 26, 2025 · 2 filesMessage 50 · ThinInformational 15Details
Commit message · Anthony Towns

bench/blockencodings: add compact block reconstruction benchmark

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 new performance test (benchmark) for Bitcoin Core's compact block reconstruction feature. It does not change any production code that runs on the live Bitcoin network, so it cannot directly cause security problems or be exploited by attackers.

Lower-priorityci: use LLVM 21by fanquake · 4cf0ae47 · Aug 26, 2025 · 5 filesMessage 40 · ThinInformational 15Details
Commit message · fanquake

ci: use LLVM 21

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

This commit simply updates the continuous integration (CI) test scripts to use LLVM/Clang version 21 instead of version 20. It does not change Bitcoin Core's actual source code, network behavior, or wallet logic. There is no security issue here.

Lower-priorityci: Enable CI_LIMIT_STACK_SIZE=1 in i686_no_ipc taskby MarcoFalke · fa96a4af · Aug 26, 2025 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · MarcoFalke

ci: Enable CI_LIMIT_STACK_SIZE=1 in i686_no_ipc task

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 only changes a continuous integration (CI) test configuration file. It adds an environment variable that limits stack size during automated testing of a 32-bit Intel build. There is no change to the actual Bitcoin Core software that users run, and nothing in the commit suggests a security fix or vulnerability.

Lower-prioritytest: Fix CLI_MAX_ARG_SIZE issuesby MarcoFalke · facfde2c · Aug 26, 2025 · 2 filesMessage 57 · ThinInformational 18Details
Commit message · MarcoFalke

test: Fix CLI_MAX_ARG_SIZE issues

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Informational 18/100

This commit fixes a bug in Bitcoin Core's own testing tools. The test framework had a limit meant to avoid passing overly long command-line arguments to the bitcoin-cli program, but it was checking the size of the largest single argument instead of the total size of all arguments. The fix lowers the threshold and checks the total length, and adds tests to make sure large arguments still work by routing them through standard input instead. This is a test-only change and does not affect the Bitcoin Core software that users run.

Security candidateSquashed 'src/ipc/libmultiprocess/' changes from b4120d34bad2..1b8d4a6f1e54by Ryan Ofsky · dd68d0f4 · Aug 22, 2025 · 11 filesMessage 91 · StrongLow 25Details
Commit message · Ryan Ofsky

Squashed 'src/ipc/libmultiprocess/' changes from b4120d34bad2..1b8d4a6f1e54

1b8d4a6f1e54 Merge bitcoin-core/libmultiprocess#194: mpgen: Work around c++20 / capnproto 0.8 incompatibility
f1fad396bf5f Merge bitcoin-core/libmultiprocess#195: ci: Add openbsd
eed42f210d17 ci: Bump all tasks to actions/checkout@v5
486a510bbeff ci: Remove ancient and problematic -lstdc++fs in mpexample
dd40897efe79 Add missing thread include
98414e7d2867 ci: Add openbsd
dc3ba2204606 cmake, doc: Add check for CVE-2022-46149
cb170d4913a2 Merge bitcoin-core/libmultiprocess#193: build: require CapnProto 0.7.0 or better
8ceeaa6ae401 ci: Add olddeps job to test old dependencies versions
c4cb758eccb5 mpgen: Work around c++20 / capnproto 0.8 incompatibility
30930dff7b06 build: require CapnProto 0.7.0 or better

git-subtree-dir: src/ipc/libmultiprocess
git-subtree-split: 1b8d4a6f1e54b92708bd2ad627ec6d440a1daf3d

91/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification✓ Links an issue, advisory, or supporting reference
Why it was queued
explicit security language
AI analysis · Low 25/100

This commit updates the libmultiprocess subtree used by Bitcoin Core. The most notable change is a build-time guard that refuses to compile against specific old versions of the Cap'n Proto library because those versions contain a known memory-access vulnerability (CVE-2022-46149). The commit also adds CI testing for older Cap'n Proto versions and OpenBSD, fixes a C++20/Cap'n Proto 0.8 compatibility issue in the code generator, removes an obsolete linker flag, and adds a missing include. It is primarily a hardening and compatibility update, not a fix for a new vulnerability in Bitcoin Core itself.

AI review queuedwallet, refactor: Remove Legacy check and errorby pablomartin4btc · d3c5e473 · Aug 22, 2025 · 1 fileMessage 72 · AdequateInformational 15Details
Commit message · pablomartin4btc

wallet, refactor: Remove Legacy check and error

Remove dead code due to legacy wallet removal.

72/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Explains rationale or failure mode
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit removes a now-impossible error path in Bitcoin Core's wallet code. Legacy (non-descriptor) wallets have already been removed from the codebase, so the check that rejected adding descriptors to a legacy wallet was unreachable 'dead code.' The change replaces that check with an internal assertion, which only affects debug builds and only crashes the program if an invariant that should never happen is violated. There is no security vulnerability here.

Lower-prioritythreading: remove obsolete critsect macrosby Cory Fields · b537a6a6 · Aug 22, 2025 · 1 fileMessage 45 · ThinInformational 15Details
Commit message · Cory Fields

threading: remove obsolete critsect macros

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

This commit simply deletes two unused C++ macros (ENTER_CRITICAL_SECTION and LEAVE_CRITICAL_SECTION) from a header file. These macros were non-RAII manual locking helpers that had been replaced by safer scoped lock wrappers. There is no runtime behavior change, no bug fix, and no security vulnerability being patched.

Lower-prioritythreading: use a reverse lock rather than manual critsect macrosby Cory Fields · 0d0e0a39 · Aug 22, 2025 · 1 fileMessage 50 · ThinInformational 15Details
Commit message · Cory Fields

threading: use a reverse lock rather than manual critsect macros

No functional change.

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

This commit is a small internal cleanup in Bitcoin Core's RPC mining code. It replaces manual lock/unlock macros with a safer, automatic 'reverse lock' helper that temporarily releases a lock and re-acquires it when done. The commit message explicitly says 'No functional change,' and the diff shows only a mechanical code-style swap with no behavior change visible.

Lower-prioritytests: get rid of remaining manual critsect usageby Cory Fields · c88b1cbf · Aug 22, 2025 · 1 fileMessage 55 · ThinInformational 13Details
Commit message · Cory Fields

tests: get rid of remaining manual critsect usage

55/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Informational 13/100

This is a test-only cleanup change. It replaces old-style manual lock/unlock macros with safer automatic lock helpers in a single test file. There is no change to the actual Bitcoin Core software that users run, and no security bug is being fixed.

Lower-prioritythreading: remove unused template instantiationsby Cory Fields · 46ca7712 · Aug 22, 2025 · 1 fileMessage 60 · AdequateInformational 15Details
Commit message · Cory Fields

threading: remove unused template instantiations

These were only required for the ENTER_CRITICAL_SECTION macro.

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

This commit removes two unused C++ template instantiations from Bitcoin Core's synchronization code. Template instantiations are pre-compiled versions of a generic function for specific data types. The removed ones supported older mutex types that are no longer used by the ENTER_CRITICAL_SECTION macro. This is a routine cleanup with no security impact.