BC
← All projectsBitcoin Core

Bitcoin Core

The Bitcoin network's reference node and wallet implementation.

BitcoinSupply chainNormal
Repository coverage

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

254security candidates607second-pass queue2881AI analyses
192commits · 30 days
488commits · 60 days
1506commits · 180 days
2875commits · 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
939Strong · 80–100
1188Adequate · 60–79
687Thin · 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 Chow15750157064
MarcoFalke41021406074
Lőrinc17721177081
fanquake22719226057
Hennadii Stepanov20914208063
rkrux57957074
Sjors Provoost89889074
Sebastian Falbesoner33733073
David Gumberg55655072
Pieter Wuille95595066
Hodlinator66566076
Analysis record

Published AI watches

Last scanned 40 minutes ago

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

Merge bitcoin/bitcoin#35928: doc: mention -DWITH_ZMQ=ON in macOS build guide

This is a one-line documentation update to the macOS build guide. It adds a note telling users to pass a specific CMake option if they want ZeroMQ notification support. There is no code change and no security impact.

8397e09eby merge-script+1−11 file
No security note in commit
Informational 15 AI analysisMessage 100 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35482: fuzz: exercise the transaction-handling path in process_message(s)

This commit only changes Bitcoin Core's internal fuzz testing code. It makes the fuzz tests exercise more of the transaction-handling code path by toggling Initial Block Download mode and resetting the mempool between test runs. There is n…

No production code modifiedNo consensus, validation, net_processing, or wallet logic changedOnly fuzz test harnesses and test utilities affected
f11dc617by merge-script+105−798 files
No security note in commit
Informational 15 AI analysisMessage 91 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35914: test, fuzz: Remove unused variables

This commit removes unused variables from Bitcoin Core's test and fuzzing code. It is a cleanup/refactoring change with no effect on the live network software or user funds. It does not fix or introduce any security vulnerability.

d36bf709by merge-script+1−138 files
No security note in commit
Informational 15 AI analysisMessage 93 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35896: refactor: Default uint256::operator==, add operator<=>

This commit is a routine code cleanup in Bitcoin Core. It switches the uint256 equality and comparison operators to use standard C++20 defaults, removes an old custom Compare() helper, and marks an internal assertion-failure function as ne…

ed2c59abby merge-script+99−245 files
No security note in commit
Moderate 62 AI analysisMessage 96 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35872: rpc: avoid descriptor range counter overflow

This update fixes a counting bug in several Bitcoin Core RPC commands that scan descriptors. When a user requested a descriptor range ending at the maximum allowed value (2,147,483,647), the internal counter used a smaller integer type and…

Signed integer overflow in descriptor expansion loopCrash/undefined behavior on maximum-range descriptor scansAuthenticated RPC surface affected (scantxoutset, scanblocks, getdescriptoractivity, utxoupdatepsbt, descriptorprocesspsbt)
b388674aby Ava Chow+3−12 files
Vendor flagged security relevance
Informational 19 AI analysisMessage 91 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35842: rpc: Properly make RPCResult::Type::ANY non-test-only

This is a small cleanup and documentation fix for Bitcoin Core's RPC help system. It removes a comment that incorrectly said a certain output type was 'for testing only' and makes the help text properly display those outputs. There is no d…

No memory safety, cryptography, consensus, or authorization changes observedChange is confined to RPC help/schema metadata generationComment-only/type-label change from 'for testing only' to general use
c36ffd87by merge-script+42−364 files
No security note in commit
Informational 15 AI analysisMessage 93 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35895: refactor: Enable clang-tidy rule to reject anon namespace in header

This is a code cleanup change that turns on a static-analysis rule to prevent a specific C++ coding pattern (anonymous namespaces in header files) and updates two headers to comply. It does not change how Bitcoin Core behaves at runtime an…

No security-relevant code changeNo memory safety, cryptography, consensus, or network changesTooling-only refactor (clang-tidy configuration)
c4fbd3c7by merge-script+9−123 files
No security note in commit
Informational 15 AI analysisMessage 100 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35630: test: Add importdescriptors rpc error test coverage

This commit only adds new test cases to Bitcoin Core's functional test suite. It does not change any production wallet, node, or RPC code. The tests verify that the importdescriptors RPC reports errors in the right order, rejects bad times…

465196d0by merge-script+77−11 file
No security note in commit
Informational 15 AI analysisMessage 81 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35180: coins: group private cache helpers

This change is purely a code cleanup: it moves two internal helper functions of a Bitcoin Core cache class into the private section of the class and removes a duplicate 'private:' label. There is no change to what the code does, no bug fix…

c940fd75by merge-script+13−141 file
No security note in commit
Low 29 AI analysisMessage 81 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35582: rpc: reject null for optional parameters

This Bitcoin Core change tightens how three RPC commands (scantxoutset, scanblocks, deriveaddresses) handle the value null when it is passed for optional parameters. Previously, explicitly passing null could be treated differently from sim…

RPC parameter validation changeNull value handling changeAddition of explicit error checks for missing required contextual parameters
3db96eb5by merge-script+18−75 files
No security note in commit
Informational 15 AI analysisMessage 57 · Thin
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

refactor: Enable misc-definitions-in-headers

This commit is a code cleanup: it turns on a clang-tidy style check called 'misc-definitions-in-headers' and suppresses that check around a large inline implementation block in a benchmark header. There is no change to Bitcoin's runtime be…

fa93132dby MarcoFalke+3−02 files
No security note in commit
Informational 15 AI analysisMessage 85 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

refactor: Enable clang-tidy rule to reject anon namespace in header

This commit only changes a linting configuration file for the project's code style checker. It enables a rule that prevents anonymous namespaces from being used in header files, which is a code-quality and build-hygiene practice. There is …

No security-relevant signals in the diff or commit message.Change is purely a static-analysis/linting configuration update.
fa5ca877by MarcoFalke+2−11 file
No security note in commit
Informational 15 AI analysisMessage 62 · Adequate
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

refactor: Use C++20 std::identity over IntIdentity

This commit is a straightforward code cleanup: it replaces a small custom helper named IntIdentity with the standard C++20 std::identity from the <functional> header. The behavior of the ConvertBits function is unchanged; only the implemen…

fafe5042by MarcoFalke+4−111 file
No security note in commit
Informational 15 AI analysisMessage 87 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

test: test the result order of a multiple import request is correct

This commit only adds a new automated test to Bitcoin Core. It checks that when a user asks the wallet to import multiple descriptors at once, the list of results comes back in the same order as the original request, including any error me…

3ac8b806by Pol Espinasa+40−01 file
No security note in commit
Informational 15 AI analysisMessage 87 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

test: test invalid or missing timestamp throws importdescriptors

This commit only adds new automated tests for the Bitcoin Core wallet's importdescriptors RPC. It checks that the command correctly rejects requests with a missing or invalid timestamp. No production wallet code is changed, so this cannot …

No changes to consensus, networking, wallet logic, or cryptographyOnly functional test code is modifiedAdded assertions are for expected error handling paths
e4732bf0by Pol Espinasa+28−11 file
No security note in commit
Informational 15 AI analysisMessage 80 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

refactor: Remove unused #include in common/system

This is a minor code cleanup that removes one unused header file include and swaps another for a more specific one. It does not change any program behavior or fix any security issue.

fa7304f3by MarcoFalke+1−22 files
No security note in commit
Informational 15 AI analysisMessage 50 · Thin
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

iwyu: Fix warnings in `src/consensus` and treat them as errors

This commit is a routine code cleanup: it adjusts which C++ header files are included in several consensus-related source files and turns on a stricter compiler hygiene check (Include What You Use, or IWYU) for the src/consensus directory.…

13b53f8bby Hennadii Stepanov+42−79 files
No security note in commit
Informational 15 AI analysisMessage 55 · Thin
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

fuzz: don't connman.ReceiveMsgFrom oversized msg

This is a small fix to a Bitcoin Core fuzz test (an automated internal testing harness), not to the live network code. The fuzzer was sometimes creating fake P2P messages larger than the real protocol allows and passing them into a test he…

Test-only fuzz harness hardeningOversized message guard added before ReceiveMsgFrom() in fuzz targetNo change to production P2P message acceptance logic
bb19f1daby Greg Sanders+5−01 file
No security note in commit
Informational 15 AI analysisMessage 97 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

ci: Temporarily remove riscv32 config from GHA matrix

This commit simply removes one failing test configuration (RISC-V 32-bit bare metal) from the project's GitHub Actions CI matrix because it was failing. It is a routine CI maintenance change with no security implications.

fa06ea42by MarcoFalke+0−61 file
No security note in commit
Low 47 AI analysisMessage 90 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

ci: verify cross-build SDK archives

This change adds checksum verification to the build system's downloads of Apple, FreeBSD, NetBSD, and OpenBSD software development kits (SDKs). Before this patch, those SDK archives were downloaded at build time and extracted without confi…

Adds cryptographic digest verification for downloaded SDK archivesRemoves unchecked extraction of remote SDK archives in CIHardens CI supply chain for macOS/BSD cross-builds
873550beby Lőrinc+25−126 files
Vendor flagged security relevance
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 queuedtest: coverage for migration failure when last sync is beyond prune heightby furszy · b7c34d08 · Jan 6, 2026 · 1 fileMessage 72 · AdequateInformational 15Details
Commit message · furszy

test: coverage for migration failure when last sync is beyond prune height

72/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ 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 adds a new automated test to Bitcoin Core. It checks that when a user tries to migrate an old wallet on a pruned node, and the wallet's last known block has already been pruned (deleted) from the local copy of the blockchain, the migration fails with a clear error message instead of doing something unsafe. There is no change to production wallet or node code.

AI review queuedwallet: improve post-migration loggingby furszy · d70b159c · Jan 6, 2026 · 1 fileMessage 80 · StrongInformational 15Details
Commit message · furszy

wallet: improve post-migration logging

Right now, after migration the last message users see is "migration completed",
but the migration isn't actually finished yet. We still need to load the new wallets
to ensure consistency, and if that fails, the migration will be rolled back. This
can be confusing for users.

This change logs the post-migration loading step and if a wallet fails to load and
the migration will be rolled back.

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

This commit only improves user-facing log messages during Bitcoin Core's wallet migration process. It adds a message saying the new wallets are being loaded after migration, and another message if a wallet fails to load and the migration must be rolled back. There is no security fix or behavior change beyond clearer logging.

AI review queuedtest: add coverage for unnamed wallet migration failureby furszy · 36093bde · Jan 6, 2026 · 1 fileMessage 95 · StrongInformational 15Details
Commit message · furszy

test: add coverage for unnamed wallet migration failure

Verifies that a failed migration of the unnamed (default) wallet
does not erase the main /wallets/ directory, and also that the
backup file exists.

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

This commit only adds a new automated test to Bitcoin Core. It does not change any production wallet code. The test checks that if migrating the default (unnamed) wallet fails, the main wallets directory is not deleted, a backup file is created, and the original wallet is restored. It is a regression test for a previously fixed bug, not a security fix itself.

AI review queuedwallet: fix unnamed wallet migration failureby furszy · f4c7e28e · Jan 6, 2026 · 2 filesMessage 88 · StrongModerate 64Details
Commit message · furszy

wallet: fix unnamed wallet migration failure

When migrating any legacy unnamed wallet, a failed migration would
cause the cleanup logic to remove its parent directory. Since this
type of legacy wallet lives directly in the main '/wallets/' folder,
this resulted in unintentionally erasing all wallets, including the
backup file.

To be fully safe, we will no longer call `fs::remove_all`. Instead,
we only erase the individual db files we have created, leaving
everything else intact. The created wallets parent directories are
erased only if they are empty.
As part of this last change, `RestoreWallet` was modified to allow
an existing directory as the destination, since we no longer remove
the original wallet directory (we only remove the files we created
inside it). This also fixes the restore of top-level default wallets
during failures, which were failing due to the directory existence
check that always returns true for the /wallets/ directory.

This bug started after:
https://github.com/bitcoin/bitcoin/commit/f6ee59b6e2995a3916fb4f0d4cbe15ece2054494
Previously, the `fs::copy_file` call was failing for top-level wallets,
which prevented the `fs::remove_all` call from being reached.

88/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Links an issue, advisory, or supporting reference
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Moderate 64/100

This commit fixes a bug in Bitcoin Core's wallet migration feature. When a user tried to migrate an old-style unnamed wallet and the migration failed, the cleanup code accidentally deleted the entire /wallets/ directory, wiping out all wallets and the backup file. The fix changes the cleanup to only remove specific database files created during migration, and only remove newly created empty directories. It also adjusts wallet restore to allow restoring into an existing directory as long as no database file would be overwritten.

AI review queuedtest: restorewallet, coverage for existing dirs, unnamed wallet and prune failureby furszy · f011e0f0 · Jan 6, 2026 · 1 fileMessage 95 · StrongInformational 15Details
Commit message · furszy

test: restorewallet, coverage for existing dirs, unnamed wallet and prune failure

The first test verifies that restoring into an existing empty directory
or a directory with no .dat db files succeeds, while restoring into a
dir with a .dat file fails.

The second test covers restoring into the default unnamed wallet
(wallet.dat), which also implicitly exercises the recovery path used
after a failed migration.

The third test covers failure during restore on a prune node. When
the wallet last sync was beyond the pruning height.

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

This commit only adds new automated tests for the wallet restore feature in Bitcoin Core. It does not change any production wallet code. The tests verify that restoring a wallet backup behaves correctly in edge cases: restoring into an empty directory, a directory with unrelated files, a directory that already contains a wallet database file, the default unnamed wallet file, and a pruned node where the backup is too old. Because no actual wallet logic is modified, this commit does not introduce or fix a live security issue on its own.

AI review queuedwallet: RestoreWallet failure, erase only what was createdby furszy · 4ed0693a · Jan 6, 2026 · 1 fileMessage 73 · AdequateLow 34Details
Commit message · furszy

wallet: RestoreWallet failure, erase only what was created

Track what RestoreWallet creates so only those files and directories
are removed during a failure and nothing else. Preexisting paths
must be left untouched.

Note:
Using fs::remove_all() instead of fs::remove() in RestoreWallet does
not cause any problems currently, but the change is necessary for the
next commit which extends RestoreWallet to work with existing directories,
which may contain files that must not be deleted.

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 · Low 34/100

This change fixes a cleanup bug in Bitcoin Core's wallet restore feature. Previously, if restoring a wallet failed part-way through, the code would delete the entire wallet directory using a broad 'remove everything' command. The patch makes the function remember exactly which files and folders it created, and only delete those specific items on failure. Right now this doesn't cause data loss, but it is needed to safely support a follow-up change where restore may reuse an existing directory that could contain other important files.

Lower-prioritytest: do not return spent coins from `CCoinsViewTest::GetCoin`by Andrew Toth · 3e4155fc · Jan 6, 2026 · 1 fileMessage 95 · StrongInformational 16Details
Commit message · Andrew Toth

test: do not return spent coins from `CCoinsViewTest::GetCoin`

Production `GetCoin()` implementations only return unspent coins.

Update the `CCoinsView` test backend to match that contract, so tests stop exercising cache states that cannot occur with `CCoinsViewCache` or `CCoinsViewDB`.

Co-authored-by: Lőrinc <pap.lorinc@gmail.com>

95/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Mentions testing or verification
AI analysis · Informational 16/100

This is a test-only cleanup. It fixes a fake test helper so it no longer returns already-spent coins, matching how the real Bitcoin Core coin database works. It does not change production code, so it cannot directly affect live Bitcoin nodes or user funds.

Lower-priorityfuzz: keep `coinscache_sim` backend free of spent coinsby Andrew Toth · eec551aa · Jan 6, 2026 · 1 fileMessage 83 · StrongInformational 18Details
Commit message · Andrew Toth

fuzz: keep `coinscache_sim` backend free of spent coins

`CoinsViewBottom` roughly simulates a memory-backed `CCoinsViewDB`, which never stores spent coins.

Stop returning spent coins from `GetCoin()`, erase spent entries in `BatchWrite()`, and tighten comparisons to expect `std::nullopt` when the simulator has no coin.

Co-authored-by: Lőrinc <pap.lorinc@gmail.com>

83/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
Why it was queued
fuzzing or regression evidence
AI analysis · Informational 18/100

This is a change to a Bitcoin Core fuzz test, not to the live Bitcoin network code. It fixes a test-only simulator so that it no longer pretends that spent coins still exist in the underlying database. This makes the fuzz test behave more like the real code, but it does not fix a vulnerability in production Bitcoin Core.

Lower-prioritytxdb: assert `CCoinsViewDB::GetCoin` only returns unspent coinsby Lőrinc · ee1e40f5 · Jan 6, 2026 · 1 fileMessage 73 · AdequateLow 31Details
Commit message · Lőrinc

txdb: assert `CCoinsViewDB::GetCoin` only returns unspent coins

The chainstate UTXO database only stores unspent outputs; spent entries are removed.

Assert after reading a `Coin` so corruption or misuse cannot propagate a spent coin through the `GetCoin()` interface.

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

This change adds a safety check inside Bitcoin Core's database lookup for coins (unspent transaction outputs). It ensures that if the database somehow returns a spent coin, the program will stop immediately rather than continue with bad data. It is a defensive hardening patch, not a fix for a known active attack.

Lower-priorityci: migrate some jobs to Debian Trixie, use GCC 14by fanquake · 2a746500 · Jan 6, 2026 · 6 filesMessage 62 · AdequateInformational 15Details
Commit message · fanquake

ci: migrate some jobs to Debian Trixie, use GCC 14

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 which Linux distribution version Bitcoin Core's automated testing system uses for a handful of test jobs. It switches from Ubuntu 24.04 to Debian Trixie so the tests can run with a newer compiler (GCC 14). There is no change to the Bitcoin software itself, no user-facing change, and no security fix or vulnerability.

Lower-priorityguix: Apply SSA generation patch to maintain determinismby Mara van der Laan · fb0e6edf · Jan 6, 2026 · 2 filesMessage 81 · StrongInformational 20Details
Commit message · Mara van der Laan

guix: Apply SSA generation patch to maintain determinism

See:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123351
https://gcc.gnu.org/pipermail/gcc-patches/2026-January/704817.html

81/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
AI analysis · Informational 20/100

This commit applies a patch to the GCC compiler used by Bitcoin Core's Guix build system. The patch fixes a compiler bug where the order of internal numbering could differ depending on the build machine's processor architecture (x86_64 vs aarch64). This caused the same source code to produce slightly different binary outputs when cross-compiled on different host machines. The fix ensures the numbering happens in a fixed, predictable order, restoring 'deterministic builds'—the property that the same source always produces the exact same binary. This is not a vulnerability in Bitcoin Core itself and does not create a way to attack users directly.

Lower-priorityguix: build GCC with --enable-host-bind-nowby fanquake · ea29329e · Jan 6, 2026 · 1 fileMessage 45 · ThinInformational 19Details
Commit message · fanquake

guix: build GCC with --enable-host-bind-now

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

This commit hardens the Bitcoin Core Guix build by compiling GCC itself with a security flag called --enable-host-bind-now. That flag tells the linker to mark the resulting GCC programs so they resolve all dynamic-library addresses immediately at load time, rather than lazily when first used. This is a defensive hardening measure that makes certain memory-corruption attacks harder, but it is not a fix for a known exploitable bug in Bitcoin Core.

Lower-priorityguix: disable gprofng in GCCby fanquake · 47be9122 · Jan 6, 2026 · 1 fileMessage 45 · ThinInformational 15Details
Commit message · fanquake

guix: disable gprofng in GCC

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

This commit changes the build recipe used by Guix (a reproducible-build system) to compile GCC with gprofng disabled. gprofng is a newer profiling tool bundled with some GCC versions. The change is a hardening/packaging tweak: it removes an unneeded component from the compiler used to build Bitcoin Core releases, reducing the attack surface and build-time dependencies. There is no direct evidence in the commit or supplied references that this fixes a known exploitable vulnerability.

Lower-priorityguix: use GCC 14.3.0 over 13.3.0by fanquake · 34909799 · Jan 6, 2026 · 1 fileMessage 68 · AdequateInformational 15Details
Commit message · fanquake

guix: use GCC 14.3.0 over 13.3.0

This will eventually be needed for #25573, and could be useful
for #30210.

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Links an issue, advisory, or supporting reference
AI analysis · Informational 15/100

This commit updates the Bitcoin Core build system to use a newer version of the GCC compiler (14.3.0 instead of 13.3.0) for its reproducible Guix builds. There is no security-relevant code change here; it is a routine toolchain version bump.

Lower-priorityguix: disable building libgomp in GCCby fanquake · 7735901e · Jan 6, 2026 · 1 fileMessage 60 · AdequateInformational 17Details
Commit message · fanquake

guix: disable building libgomp in GCC

Prunes:
libgomp.a
libgomp.la
libgomp.so
libgomp.so.1
libgomp.so.1.0.0
libgomp.spec

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

This commit changes the build setup for Bitcoin Core's Guix deterministic build environment so that GCC no longer builds the libgomp library. libgomp is the GNU Offloading and Multi Processing Runtime Library, used for OpenMP parallel programming. Removing it reduces the attack surface and build artifacts, but there is no direct evidence in the commit that a specific vulnerability is being fixed.

Lower-priorityguix: disable libquadmath in GCCby fanquake · 6f54e267 · Jan 6, 2026 · 1 fileMessage 60 · AdequateInformational 16Details
Commit message · fanquake

guix: disable libquadmath in GCC

Prunes:
libquadmath.a
libquadmath.la
libquadmath.so
libquadmath.so.0
libquadmath.so.0.0.0

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

This commit changes Bitcoin Core's Guix build recipe to stop GCC from building the libquadmath library. Quadmath provides extra-precision floating-point math, which Bitcoin Core does not need. Removing it shrinks the build environment and reduces the chance that unnecessary code accidentally gets linked into release binaries. There is no direct evidence in the commit that this fixes an active security bug.

Lower-priorityqt: Remove "Starting Block" from Peer Detail. Following Deprecation in `bitcoin#34197`by WakeTrainDev · 301d9eea · Jan 6, 2026 · 2 filesMessage 58 · ThinInformational 15Details
Commit message · WakeTrainDev

qt: Remove "Starting Block" from Peer Detail. Following Deprecation in `bitcoin#34197`

58/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Links an issue, advisory, or supporting reference! No meaningful explanatory body
AI analysis · Informational 15/100

This commit simply removes a single line of information—the 'Starting Block' field—from the peer details window in Bitcoin Core's graphical user interface. It is a cleanup following an earlier deprecation and does not change any network, consensus, or wallet behavior. There is no security issue here.

AI review queueddoc: p2p: replace last remaining "command" terminology with "message type"by Sebastian Falbesoner · 5b7bf47f · Jan 5, 2026 · 2 filesMessage 50 · ThinInformational 15Details
Commit message · Sebastian Falbesoner

doc: p2p: replace last remaining "command" terminology with "message type"

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

This commit only renames the word 'command' to 'message type' in comments and a debug log string. It is a documentation cleanup with no functional code changes and no security impact.

Lower-priorityclusterlin: remove unused FixLinearization (cleanup)by Pieter Wuille · 1808b5aa · Jan 5, 2026 · 2 filesMessage 50 · ThinInformational 15Details
Commit message · Pieter Wuille

clusterlin: remove unused FixLinearization (cleanup)

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 deletes an unused internal function called FixLinearization and its associated test. There is no security relevance: no bug is fixed, no behavior changes, and no live code path is altered.

Lower-prioritytxgraph: permit non-topological clusters to defer fixing (optimization)by Pieter Wuille · 34a77138 · Jan 5, 2026 · 1 fileMessage 50 · ThinInformational 12Details
Commit message · Pieter Wuille

txgraph: permit non-topological clusters to defer fixing (optimization)

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

This commit is an internal optimization to how Bitcoin Core organizes and prioritizes groups of related transactions (clusters) in its memory pool. It introduces new quality states that let the node defer fixing non-topological orderings until later, instead of doing the work immediately. There is no indication in the commit or title that this fixes a security bug; it is described as an optimization.

Lower-prioritytxgraph: use PostLinearize less prior to linearizingby Pieter Wuille · 3380e0cb · Jan 5, 2026 · 1 fileMessage 73 · AdequateInformational 15Details
Commit message · Pieter Wuille

txgraph: use PostLinearize less prior to linearizing

With the new SFL algorithm, the process of loading an existing linearization into the
SFL state is very similar to what PostLinearize does. This means there is little benefit
to performing an explicit PostLinearize step before linearizing inside txgraph. Instead,
it seems better to use our allotted CPU time to perform more SFL optimization steps.

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 routine internal optimization in Bitcoin Core's transaction graph code. It removes two calls to a helper named PostLinearize and updates comments, replacing an explicit cleanup step with work done by a newer algorithm (SFL). There is no indication this fixes or introduces a security bug.

Lower-priorityclusterlin: support fixing linearizations (feature)by Pieter Wuille · 01ffcf46 · Jan 5, 2026 · 3 filesMessage 73 · AdequateInformational 14Details
Commit message · Pieter Wuille

clusterlin: support fixing linearizations (feature)

This also updates FixLinearization to just be a thin wrapper around Linearize.
In a future commit, FixLinearization will be removed entirely.

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

This is a routine internal refactor of Bitcoin Core's transaction-cluster linearization code. It lets the linearization algorithm accept an existing ordering that may not follow dependency rules, and automatically fix it. There is no indication this change addresses a security bug or is exploitable.

Lower-prioritytxgraph: drop NEEDS_SPLIT_ACCEPTABLE (simplification)by Pieter Wuille · 62dd8862 · Jan 5, 2026 · 1 fileMessage 75 · AdequateInformational 20Details
Commit message · Pieter Wuille

txgraph: drop NEEDS_SPLIT_ACCEPTABLE (simplification)

With the SFL algorithm, we will practically be capable of keeping
most if not all clusters optimal. With that, it seems less valuable
to avoid doing work after splitting an acceptable cluster, because by
doing some work we may get it to OPTIMAL.

This reduces the complexity of the code a bit as well.

75/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Provides detailed explanatory context✓ Explains rationale or failure mode
AI analysis · Informational 20/100

This is a Bitcoin Core code cleanup that removes a special internal quality state called NEEDS_SPLIT_ACCEPTABLE from the transaction graph (txgraph) module. The change simplifies how clusters of related transactions are tracked after transactions are removed or fees change. It does not appear to be a security fix; it is described by the author as a simplification enabled by an upcoming algorithm improvement. There is no disclosed security relevance and no independent researcher credited.

Lower-prioritylint: [move-only] Move python related lints to lint_py.rsby MarcoFalke · fa578d94 · Jan 5, 2026 · 2 filesMessage 50 · ThinInformational 15Details
Commit message · MarcoFalke

lint: [move-only] Move python related lints to lint_py.rs

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 moves existing Python linting code from one file to another without changing what it does. It is a code cleanup change with no security relevance.

Lower-prioritylint: [move-only] Move repo related lints to lint_repo_hygiene.rsby MarcoFalke · fa392c31 · Jan 5, 2026 · 2 filesMessage 50 · ThinInformational 15Details
Commit message · MarcoFalke

lint: [move-only] Move repo related lints to lint_repo_hygiene.rs

Also, run cargo fmt on main.rs

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 simple housekeeping change: it moves two existing code-checking helper functions into a new file and runs a code formatter on another file. There is no change to Bitcoin's actual behavior, no bug fix, and no security relevance.