BC
← All projectsBitcoin Core

Bitcoin Core

The Bitcoin network's reference node and wallet implementation.

BitcoinSupply chainNormal
Repository coverage

2876 commits in the local evidence base

Every captured commit receives deterministic security triage and a separate communication-quality score. Full patches and Ollama analysis are reserved for ranked candidates.

124candidates124AI analyses
210commits · 30 days
492commits · 60 days
1524commits · 180 days
2876commits · 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
915Strong · 80–100
1187Adequate · 60–79
686Thin · 40–59
88Opaque · 0–39
2security 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 Poinsot2233170
Ava Chow1564444064
MarcoFalke40699074
fanquake22755057
rkrux5755074
Sebastian Falbesoner3355073
Lőrinc17744081
Sjors Provoost8933074
David Gumberg5533072
w0xlt2533075
Eugene Siegel2033077
merge-script733088
Analysis record

Published AI watches

Last scanned 23 minutes ago

Informational 19 AI analysisMessage 68 · Adequate
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

p2p: Assume v2transport for addresses from seeds

This change makes Bitcoin Core assume that hard-coded and DNS seed nodes support the newer BIP324 encrypted transport (v2) when first connecting. If the guess is wrong, the software falls back to the older v1 protocol automatically. It is …

Adds NODE_P2P_V2 to assumed service flags for seed-derived addressesFallback to v1 transport exists if the v2 assumption is wrongNo input validation, memory safety, or cryptographic changes
cf0f2aeaby Martin Zumsande+10−22 files
No security note in commit
Informational 15 AI analysisMessage 72 · Adequate
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

test: compat, ensure downgrade preserves tx witness variants

This commit adds a new regression test to Bitcoin Core. It checks that when a wallet created on a newer version is loaded on an older version and then brought back to the newer version, the wallet still remembers alternative 'witness varia…

99bdcb06by furszy+74−01 file
No security note in commit
Informational 15 AI analysisMessage 68 · Adequate
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

fuzz: clang-format LIMITED_WHILE

This commit is purely a code-style cleanup. It adds a space between the macro name LIMITED_WHILE and its opening parenthesis across many fuzz test files, plus a few tiny formatting fixes like removing a redundant semicolon and fixing inden…

fab8eeedby MarcoFalke+91−14265 files
No security note in commit
Moderate 63 AI analysisMessage 90 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

net_processing: add a global delay queue for sending txs

This commit adds a global rate limiter to how many transaction announcements (INV messages) a Bitcoin node sends out. Before, each peer had its own queue, so a node could receive one transaction and announce it to over 100 peers, acting li…

Global rate limiting replaces per-peer queues to prevent transaction-announcement amplificationDual token buckets bound both INV count and relay bandwidthCommit message explicitly describes the change as limiting transaction-spam amplification and excessive memory/CPU usage
df31ee57by Anthony Towns+176−252 files
Vendor flagged security relevance
Informational 24 AI analysisMessage 100 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

test: add regression test for in-memory SQLiteDatabase reopen

This commit only adds a new automated test. It checks that Bitcoin Core's in-memory SQLite wallet database correctly refuses to reopen after being closed, because reopening would silently create a fresh empty database and discard any previ…

Regression test for data-loss prevention behavior in wallet database layerIn-memory SQLite database reopen could silently discard wallet dataOpen() now throws std::runtime_error instead of returning a fresh connection
777d23f2by Pablo Martin+9−01 file
No security note in commit
Informational 23 AI analysisMessage 85 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

wallet: Use Descriptor::CanSelfExpand() in CanGetAddresses()

This is a small Bitcoin Core wallet change that lets the wallet generate addresses from certain descriptors even when it does not have private keys and has already used up its pre-derived address range. It only affects descriptors that can…

Changes address-derivation gating logic in wallet codeExpands conditions under which addresses can be produced without private keysNo explicit security framing, CVE, or advisory language in commit
1e996640by Ava Chow+1−11 file
No security note in commit
Informational 19 AI analysisMessage 58 · Thin
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

descriptor: Add CanSelfExpand()

This commit adds a new helper method called CanSelfExpand() to Bitcoin Core's descriptor system. It lets the code ask whether a wallet descriptor can produce its Bitcoin address(es) on its own, without needing a saved cache or private keys…

New API surface added to descriptor subsystem (CanSelfExpand)No change to existing expansion, signing, or key-derivation logicNo bounds, memory, or cryptographic operations modified
d2ee9227by Ava Chow+57−184 files
No security note in commit
Informational 15 AI analysisMessage 100 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

test: introduce NodeSigner, run feature_taproot.py without wallet compiled

This commit only changes Bitcoin Core's internal functional test code. It introduces a small test helper class called NodeSigner so that one specific test (feature_taproot.py) can run even when Bitcoin Core is compiled without its built-in…

91586f70by Sebastian Falbesoner+49−142 files
No security note in commit
Informational 17 AI analysisMessage 83 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

scripted-diff: Rename `StatusLevel::{INFO,WARN,ERR}`

This is a straightforward code cleanup change that renames three internal status labels (INFO, WARN, ERR) to different capitalisation (Info, Warn, Error) because one of those names clashed with a system macro on illumos operating systems w…

41ceea40by Hennadii Stepanov+24−242 files
No security note in commit
Informational 12 AI analysisMessage 72 · Adequate
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

test: cover common HTTP attacks and common malformed requests

This commit only adds new automated tests to Bitcoin Core. It does not change the actual server code that handles HTTP requests. The tests verify that the existing HTTP server correctly rejects or handles common web attacks such as path tr…

Adds regression tests for HTTP security boundary conditionsDocuments libevent leniency on duplicate Content-Length and line foldingNo changes to src/httpserver.cpp or any production HTTP handling code
881d4b6cby Matthew Zipkin+210−121 file
No security note in commit
Informational 21 AI analysisMessage 96 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Squashed 'src/secp256k1/' changes from 7262adb4b4..bd0287d650

This commit is a routine subtree update of the secp256k1 cryptographic library inside Bitcoin Core. It pulls in a batch of upstream secp256k1 changes: build-system cleanups, new tests, documentation fixes, a minor MuSig nonce-generation cl…

MuSig secret-key wipe now happens on both success and failure paths in `secp256k1_musig_nonce_gen_counter`New `_ecmult_gen_ge` helper clears Jacobian intermediate state to reduce potential side-channel leakageForce-inlining of performance-critical field operations (mul/sqr) is a hardening/performance change, not a vulnerability fix
1f3f0a4eby fanquake+257−9025 files
No security note in commit
Low 35 AI analysisMessage 78 · Adequate
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

rpc: tighten setmocktime upper bound to UINT32_MAX

This commit tightens the maximum allowed mock time in Bitcoin Core's testing-only RPC command `setmocktime` from the year 2262 down to the year 2106 (the maximum value a 32-bit unsigned timestamp can hold). The change prevents two types of…

Integer overflow (int64_t) in time arithmetic when offsets are added to an overly large mock timeSilent truncation to uint32_t when mocked time is assigned to block header nTime fieldsUBSan/integer sanitizer findings motivating the bound change
406c2348by stringintech+6−63 files
Vendor flagged security relevance
Informational 15 AI analysisMessage 65 · Adequate
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

rpc: expand decodepsbt output script with explicit fields

This commit is a documentation-only change in the Bitcoin Core RPC help output. It replaces a vague placeholder description for the 'script' field inside decodepsbt with an explicit, structured description reused from another part of the c…

7a851180by satsfy (Renato Britto)+1−11 file
No security note in commit
Informational 24 AI analysisMessage 83 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

wallet: reject sendtoaddress and sendmany for external signers

This change makes Bitcoin Core refuse two older wallet commands (sendtoaddress and sendmany) when the wallet is controlled by an external signer, such as a hardware wallet. Previously these commands could be called but would fail in a conf…

Prevents misuse of RPCs that cannot complete signing for external-signer walletsAdds explicit error path instead of relying on downstream failureAdds functional test coverage for the new error behavior
2fe34808by Sjors Provoost+20−12 files
No security note in commit
Informational 15 AI analysisMessage 81 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

doc: replace stale signtransaction wording with current signtx flow

This commit only updates documentation and a code comment to match how external (hardware) signers actually work in current Bitcoin Core. It does not change any executable code, RPC behavior, or security logic. There is no security vulnera…

4fdd4d8dby woltx+4−52 files
No security note in commit
Informational 24 AI analysisMessage 83 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

fuzz: reset the mockable steady clock between iterations

This is a small fix inside Bitcoin Core's internal fuzz-testing harness. Fuzz testing feeds the program many random inputs in sequence; the harness is supposed to reset global state between inputs so each test starts clean. The reset code …

State leakage across fuzz iterationsTest-only global state isolation failureMock clock not reset between test runs
19b32a2eby Hao Xu+1−01 file
No security note in commit
Low 41 AI analysisMessage 78 · Adequate
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

migrate: Handle HD chains that have identical seeds but different IDs

This commit fixes a wallet migration bug in Bitcoin Core. When converting old-style wallets to modern descriptor wallets, the migration code could process the same BIP 32 seed more than once because it identified seeds by a 'seed ID' that …

Migration correctness fix for duplicate HD seed handlingPotential creation of redundant/conflicting wallet descriptors during legacy-to-descriptor migrationChange in seed-duplicate detection from seed_id hash to derived master xpub comparison
de92208cby Ava Chow+20−112 files
No security note in commit
Low 42 AI analysisMessage 81 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

key: validate BIP32 seed length in CExtKey::SetSeed

This commit adds a safety check to Bitcoin Core's code that creates master cryptographic keys from a seed. The BIP32 standard says seeds must be 16 to 64 bytes long, but the function previously accepted any length, including empty seeds. T…

Input validation added to cryptographic key derivationNon-compliant BIP32 seed lengths now rejectedDefense-in-depth hardening against weak master keys
2cf9d79dby Muhammad+1−01 file
Vendor flagged security relevance
Informational 15 AI analysisMessage 75 · Adequate
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

wallet, test: remove -walletrbf startup option from rpc_psbt.py

This commit only changes Bitcoin Core's own test code. It removes the obsolete -walletrbf startup option from two functional tests and adds a missing PSBT v2 field (fallback locktime) to a test helper that creates blank PSBTs. There is no …

a2a2b174by rkrux+4−113 files
No security note in commit
Informational 15 AI analysisMessage 95 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

test: add PSBT proprietary merge regression coverage

This commit only adds new regression tests for Bitcoin Core's PSBT (Partially Signed Bitcoin Transaction) combine/merge logic. It checks that custom 'proprietary' data fields are preserved when two PSBTs are merged at global, input, and ou…

da769855by w0xlt+114−02 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.

Routine changeMerge bitcoin/bitcoin#35895: refactor: Enable clang-tidy rule to reject anon namespace in headerby merge-script · c4fbd3c7 · Aug 5, 2026 · 3 filesMessage 93 · StrongTriage 0Details
Commit message · merge-script

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

fa93132d6da508597205513725ba4663d3a24954 refactor: Enable misc-definitions-in-headers (MarcoFalke)
fa5ca877b60339c858b5045f855ae0256e63b69d refactor: Enable clang-tidy rule to reject anon namespace in header (MarcoFalke)
fafe5042bd1b8c53faf3c0dfe40958f605666d67 refactor: Use C++20 std::identity over IntIdentity (MarcoFalke)

Pull request description:

This avoids issues like https://github.com/bitcoin/bitcoin/pull/35737 from passing CI in the first place.

Also, the rule can help to avoid ODR issues, according to https://clang.llvm.org/extra/clang-tidy/checks/fuchsia/header-anon-namespaces.html

This follows https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#sf21-dont-use-an-unnamed-anonymous-namespace-in-a-header

ACKs for top commit:
sedited:
ACK fa93132d6da508597205513725ba4663d3a24954

Tree-SHA512: c1a9d573aed9f295a9fb1931e96e37a9c39e2339392af79d0a3441ebd29282812c2614eab13a01e0d508802f66b73e8f2387ffcbb7dd28676b4fa43f81f9a680

93/100 · StrongMessage clarity
✓ Specific, 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 security-ranked
merge-commit duplicate discount
Routine changeMerge bitcoin/bitcoin#35630: test: Add importdescriptors rpc error test coverageby merge-script · 465196d0 · Aug 5, 2026 · 1 fileMessage 100 · StrongTriage 0Details
Commit message · merge-script

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

3ac8b806a699a1d518ce225b39aa504f84b4cc06 test: test the result order of a multiple import request is correct (Pol Espinasa)
e4732bf01876cbe5f8e1a02a75e08f435de1aef4 test: test invalid or missing timestamp throws importdescriptors (Pol Espinasa)
07fb58b9ef2560d2f34f4ce676bc5eb64554d2de test: Test a locked wallet rejects an empty importdescriptors request (Pol Espinasa)

Pull request description:

In addition to #35179 (already merged) this adds more missing test coverage that was detected while rebasing #34861.

The three tests added checks:
- Locked wallet throws because of being locked if giving an empty importdescriptors request.
- Invalid or missing timestamp throws as a top level RPC error and not a per-item error.
- The order of the requests and the response is the same, even if failing or succeeding.

ACKs for top commit:
nebula-21:
ACK 3ac8b806a699a1d518ce225b39aa504f84b4cc06
Bicaru20:
re-ACK 3ac8b806a699a1d518ce225b39aa504f84b4cc06
brunoerg:
reACK 3ac8b806a699a1d518ce225b39aa504f84b4cc06

Tree-SHA512: b6ba9e16bbdbefcab2529f49f9aab0ae8885bd2d381c6eec36ae442dea1aa2361e6fb339ab5bc2c51c3bef6216d8d939db53e57ec577f05fe54c07fc46f8f255

100/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Mentions testing or verification✓ Links an issue, advisory, or supporting reference
Why it was security-ranked
signing or wallet pathmerge-commit duplicate discount
Routine changeMerge bitcoin/bitcoin#35180: coins: group private cache helpersby merge-script · c940fd75 · Aug 5, 2026 · 1 fileMessage 81 · StrongTriage 0Details
Commit message · merge-script

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

c9cedebfffbc09c4394bbbe74da4ba0666237504 coins: group private cache helpers (Lőrinc)

Pull request description:

**Problem:** `CCoinsViewCache::ReallocateCache()` is public even though only `Flush()` uses it.
The private helper declarations are also split between the start and end of the class.

**Fix:** Move `ReallocateCache()` and `FetchCoin()` into the existing private section.

ACKs for top commit:
optout21:
reACK c9cedebfffbc09c4394bbbe74da4ba0666237504
sedited:
ACK c9cedebfffbc09c4394bbbe74da4ba0666237504

Tree-SHA512: d06062daa9976d767375cd272b3c4ddd838e83fc8b3ac57f6b89a4d8d8837277211786cdd66a794b1a84a39cf6b38f2b9a01699d16e0a648d27b1b93cd0f33b5

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 security-ranked
merge-commit duplicate discount
Routine changeMerge bitcoin/bitcoin#35582: rpc: reject null for optional parametersby merge-script · 3db96eb5 · Aug 5, 2026 · 5 filesMessage 81 · StrongTriage 0Details
Commit message · merge-script

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

aeca0610865ede44004b42a16ef6318245fe0644 rpc: reject null for optional parameters (Ruslan Kasheparov)

Pull request description:

Treat explicitly passed `null` as missing for optional RPC parameters that are required in certain contexts.

ACKs for top commit:
achow101:
ACK aeca0610865ede44004b42a16ef6318245fe0644
maflcko:
review ACK aeca0610865ede44004b42a16ef6318245fe0644 🥚
sedited:
ACK aeca0610865ede44004b42a16ef6318245fe0644

Tree-SHA512: 60f146085fd20e532ba3cbefdb76d430938168621706a20b2b62a34318499fd72a8c934b08f690f9b72d19ed26581094517a0986586f95bc4b23fa8743b24d11

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 security-ranked
merge-commit duplicate discount
Routine changerefactor: Enable misc-definitions-in-headersby MarcoFalke · fa93132d · Aug 5, 2026 · 2 filesMessage 57 · ThinTriage 0Details
Commit message · MarcoFalke

refactor: Enable misc-definitions-in-headers

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Routine changerefactor: Enable clang-tidy rule to reject anon namespace in headerby MarcoFalke · fa5ca877 · Aug 5, 2026 · 1 fileMessage 85 · StrongTriage 0Details
Commit message · MarcoFalke

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

The rule is named misc-anonymous-namespace-in-header in clang-tidy-22,
but use fuchsia-header-anon-namespaces for compat with clang-tidy-21.

85/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
Routine changerefactor: Use C++20 std::identity over IntIdentityby MarcoFalke · fafe5042 · Aug 5, 2026 · 1 fileMessage 62 · AdequateTriage 0Details
Commit message · MarcoFalke

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

62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Routine changetest: test the result order of a multiple import request is correctby Pol Espinasa · 3ac8b806 · Aug 5, 2026 · 1 fileMessage 87 · StrongTriage 12Details
Commit message · Pol Espinasa

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

Co-Authored-By: Bicaru20 <bicaru2@gmail.com>

87/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ Mentions testing or verification
Why it was security-ranked
signing or wallet path
Routine changetest: test invalid or missing timestamp throws importdescriptorsby Pol Espinasa · e4732bf0 · Aug 5, 2026 · 1 fileMessage 87 · StrongTriage 12Details
Commit message · Pol Espinasa

test: test invalid or missing timestamp throws importdescriptors

Also adds global_error to test_importdesc to make it able to test per-item errors or global RPC errors

87/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ Mentions testing or verification
Why it was security-ranked
signing or wallet path
Routine changerefactor: Remove unused #include in common/systemby MarcoFalke · fa7304f3 · Aug 4, 2026 · 2 filesMessage 80 · StrongTriage 0Details
Commit message · MarcoFalke

refactor: Remove unused #include in common/system

Now that clamping to std::numeric_limits<size_t>::max() is removed, the limits include is no longer needed.

Similarly after changing size_t -> u64, the cstddef include needs to be replaced by cstdint.

80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
Routine changeiwyu: Fix warnings in `src/consensus` and treat them as errorsby Hennadii Stepanov · 13b53f8b · Aug 4, 2026 · 9 filesMessage 50 · ThinTriage 0Details
Commit message · Hennadii Stepanov

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

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Routine changefuzz: don't connman.ReceiveMsgFrom oversized msgby Greg Sanders · bb19f1da · Aug 4, 2026 · 1 fileMessage 55 · ThinTriage 5Details
Commit message · Greg Sanders

fuzz: don't connman.ReceiveMsgFrom oversized msg

55/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
Why it was security-ranked
fuzzing or regression evidence
Routine changeci: Temporarily remove riscv32 config from GHA matrixby MarcoFalke · fa06ea42 · Aug 4, 2026 · 1 fileMessage 97 · StrongTriage 0Details
Commit message · MarcoFalke

ci: Temporarily remove riscv32 config from GHA matrix

It fails due to https://github.com/bitcoin/bitcoin/issues/35853.

It can be added back when the issue is addressed.

97/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✓ Links an issue, advisory, or supporting reference
Why it was security-ranked
documentation-only discount
Routine changeci: verify cross-build SDK archivesby Lőrinc · 873550be · Aug 3, 2026 · 6 filesMessage 90 · StrongTriage 0Details
Commit message · Lőrinc

ci: verify cross-build SDK archives

The macOS and BSD cross-build jobs extract SDK archives fetched at runtime without checking their content.
Keep each expected digest beside the corresponding SDK version and verify every archive before extraction.
Create the OpenBSD library symlinks once after both archives are extracted, when all link targets are present.

90/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Mentions testing or verification
Routine changeci: update NetBSD cross-build SDKby Lőrinc · 2c87337e · Aug 3, 2026 · 1 fileMessage 80 · StrongTriage 0Details
Commit message · Lőrinc

ci: update NetBSD cross-build SDK

The NetBSD 11.0_RC6 archives are no longer available from cdn.netbsd.org. Update the cross-build SDK to the final 11.0 release.

80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
Routine changetest: require `TryGetTotalRam()` detectionby Lőrinc · 6a2de55a · Aug 3, 2026 · 2 filesMessage 72 · AdequateTriage 0Details
Commit message · Lőrinc

test: require `TryGetTotalRam()` detection

RAM detection controls automatic `-dbcache` selection, so fail the test when it is unavailable.

72/100 · AdequateMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ Mentions testing or verification
Routine changecommon: cache total RAM as `uint64_t`by Lőrinc · ab634325 · Aug 3, 2026 · 2 filesMessage 68 · AdequateTriage 0Details
Commit message · Lőrinc

common: cache total RAM as `uint64_t`

Detect total RAM once so automatic cache selection and the oversized-cache warning use the same value.
Database cache arithmetic now uses `uint64_t`, so return the byte count directly and remove the 32-bit `size_t` clamp.

Co-authored-by: stringintech <stringintech@gmail.com>

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Routine changescripted-diff: use `MIN_DBCACHE_BYTES`by Lőrinc · 7cfa21d6 · Aug 3, 2026 · 5 filesMessage 68 · AdequateTriage 0Details
Commit message · Lőrinc

scripted-diff: use `MIN_DBCACHE_BYTES`

-BEGIN VERIFY SCRIPT-
git grep -q '\bMIN_DBCACHE_BYTES\b' -- src && echo "Error: renamed dbcache byte constant already exists in src" && exit 1
git grep -l 'MIN_DB_CACHE' -- src | xargs perl -pi -e 's/\bMIN_DB_CACHE\b/MIN_DBCACHE_BYTES/g'
-END VERIFY SCRIPT-

Co-authored-by: optout <13562139+optout21@users.noreply.github.com>

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Provides detailed explanatory context✓ Mentions testing or verification
Routine changekernel, node: colocate dbcache boundsby Lőrinc · 8aa21e11 · Aug 3, 2026 · 4 filesMessage 68 · AdequateTriage 8Details
Commit message · Lőrinc

kernel, node: colocate dbcache bounds

Keep the total database cache bounds with `kernel::CacheSizes` so node and Kernel callers validate against the same range.

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was security-ranked
defensive validation
Routine changekernel: allow setting chainstate `dbcache`by Lőrinc · 8bd9f460 · Aug 3, 2026 · 4 filesMessage 68 · AdequateTriage 0Details
Commit message · Lőrinc

kernel: allow setting chainstate `dbcache`

Add `btck_chainstate_manager_options_set_database_cache_bytes()` so Kernel callers can set the total database cache budget.
Use `uint64_t` for a fixed-width C API, reject values outside the architecture-specific range, and keep `DEFAULT_KERNEL_CACHE` as the fallback.
Apply the selected split to the block tree database and `LoadChainstate()`.

Co-authored-by: stickies-v <stickies-v@protonmail.com>
Co-authored-by: w0xlt <94266259+w0xlt@users.noreply.github.com>
Co-authored-by: stringintech <stringintech@gmail.com>

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Routine changenode, qt: inline `DEFAULT_DB_CACHE`by Lőrinc · cd086c16 · Aug 3, 2026 · 4 filesMessage 62 · AdequateTriage 0Details
Commit message · Lőrinc

node, qt: inline `DEFAULT_DB_CACHE`

The alias is misleading because automatic selection can also return `HIGH_DEFAULT_DBCACHE`.

62/100 · AdequateMessage clarity
✓ Descriptive subject✓ Provides an explanatory body✓ Explains rationale or failure mode
Routine changescripted-diff: use `TryGetTotalRam`by Lőrinc · 031fa402 · Aug 3, 2026 · 4 filesMessage 68 · AdequateTriage 0Details
Commit message · Lőrinc

scripted-diff: use `TryGetTotalRam`

Use the `Try` prefix to make failed RAM detection visible at call sites.

-BEGIN VERIFY SCRIPT-
git grep -q 'TryGetTotalRam' -- src && echo "Error: TryGetTotalRam already exists in src" && exit 1
git grep -l 'GetTotalRAM' -- src | xargs perl -pi -e 's/\bGetTotalRAM\b/TryGetTotalRam/g'
-END VERIFY SCRIPT-

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Provides detailed explanatory context✓ Mentions testing or verification
Routine changenode, qt: use `1_MiB` for dbcache conversionsby Lőrinc · 41c44f55 · Aug 3, 2026 · 4 filesMessage 45 · ThinTriage 0Details
Commit message · Lőrinc

node, qt: use `1_MiB` for dbcache conversions

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Routine changerefactor: Annotate `MakeAndPushFeature` with `[[maybe_unused]]`by Hennadii Stepanov · 0238aebf · Aug 3, 2026 · 1 fileMessage 93 · StrongTriage 0Details
Commit message · Hennadii Stepanov

refactor: Annotate `MakeAndPushFeature` with `[[maybe_unused]]`

This is a follow-up to bitcoin/bitcoin#35221. The `MakeAndPushFeature`
member function template has no callers yet, which triggers
`-Wunused-template` now that Clang 23 enables it as part of `-Wall`.

93/100 · StrongMessage clarity
✓ Specific, 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
Routine changeguix: move python-minimal to GUI buildby fanquake · b75eb938 · Aug 3, 2026 · 2 filesMessage 45 · ThinTriage 0Details
Commit message · fanquake

guix: move python-minimal to GUI build

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