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. Security candidates and broader second-pass signals receive full-patch Ollama analysis.

252security candidates603second-pass queue603AI analyses
210commits · 30 days
492commits · 60 days
1521commits · 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
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 Poinsot2245170
Ava Chow15649104064
MarcoFalke4062159074
Lőrinc1772136081
fanquake2271923057
Hennadii Stepanov2081427063
rkrux57944074
Sjors Provoost89813074
Sebastian Falbesoner33711073
David Gumberg55637072
Pieter Wuille9556066
Hodlinator66517076
Analysis record

Published AI watches

Last scanned 58 minutes ago

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 68 · Adequate
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

ci, iwyu: Enforce warning-free `src/common`

This is a routine code cleanup commit. It adjusts which C++ header files are included in the `src/common` part of Bitcoin Core so that an automated tool called Include What You Use (IWYU) reports no warnings. It also tells the continuous i…

50145f62by Hennadii Stepanov+75−3822 files
No security note in commit
Informational 20 AI analysisMessage 73 · Adequate
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

wallet: Remove meaningless bool fallback in FundTransaction

This commit removes an old backward-compatibility feature in Bitcoin Core's wallet RPC command `fundrawtransaction`. Previously, callers could pass a plain `true` or `false` as the second argument, which was silently ignored. Now, passing …

Removal of a no-op backward-compatibility code path that silently accepted arbitrary boolean valuesStricter RPC input validation: bare booleans now rejected with a JSON type errorNo memory safety, cryptographic, or consensus changes observed
fa7fe798by MarcoFalke+60−652 files
No security note in commit
Informational 17 AI analysisMessage 45 · Thin
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

gui: Menu action for exporting a watchonly wallet

This commit adds a new menu item in the Bitcoin Core desktop wallet that lets users export a 'watch-only' copy of their wallet. A watch-only wallet can see transactions and balances but cannot spend funds. The change only wires up an exist…

No security-relevant signals detected in the diffNew GUI feature exposing existing wallet export functionalityAction is disabled for wallets with private keys disabled
cb51f97fby Ava Chow+30−04 files
No security note in commit
Informational 19 AI analysisMessage 50 · Thin
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

gui: Adds option to not load the wallet after migration

This commit adds a user-facing checkbox in the Bitcoin Core desktop wallet that lets someone choose whether to automatically load a wallet after migrating it from an older format. Previously the wallet was always loaded. The change is a us…

No security-relevant signal: change is a feature/usability additionNo memory safety, cryptographic, consensus, or network changesNo privilege boundary crossed
492a715dby Pol Espinasa+20−104 files
No security note in commit
Informational 15 AI analysisMessage 100 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

refactor: Make all `const static` class members `constexpr`

This commit is a code cleanup that changes many internal class constants from 'static const' to 'static constexpr'. In modern C++, constexpr constants are automatically inlined and avoid certain linker errors when used in specific ways. Th…

05c35c40by rustaceanrob+38−4024 files
No security note in commit
Informational 15 AI analysisMessage 83 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

fuzz: populate wallet TXO index in wallet_create_transaction

This is a fix to a Bitcoin Core fuzz test (an automated testing harness), not to the main wallet code that real users run. The test was inserting fake wallet transactions in a way that skipped updating an internal index called m_txos. Beca…

Test-only change in fuzz harnessFixes internal test-state consistency, not production wallet behaviorNo validation, consensus, or P2P networking changes
1eac6a72by frankomosh+1−01 file
No security note in commit
Informational 15 AI analysisMessage 83 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

scripted-diff: Use long form of shell options in Guix scripts

This commit is a purely cosmetic change in Bitcoin Core's Guix build scripts. It replaces the short shell command 'set -e' with its long-form equivalent 'set -o errexit'. Both forms do exactly the same thing: they make the script exit imme…

2cb3bfa8by Hennadii Stepanov+6−66 files
No security note in commit
Informational 15 AI analysisMessage 45 · Thin
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

guix: Add copyright headers to Guix scripts

This commit only adds or updates copyright and license header comments at the top of several helper scripts used for Bitcoin Core's Guix build process. It does not change any executable code, logic, or behavior. There is no security risk.

711eb10fby Hennadii Stepanov+20−27 files
No security note in commit
Low 28 AI analysisMessage 96 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Squashed 'src/secp256k1/' changes from bd0287d650..d2d04864ef

This commit updates the secp256k1 cryptographic library inside Bitcoin Core to a newer version. The main change is adding support for a new optional feature called 'Silent Payments' (BIP352), which is a privacy-enhancing way to receive Bit…

New cryptographic module added (Silent Payments / BIP352)Field-element equality check magnitude bound corrected from 31 to 30X-only public key even-Y invariant enforced in extrakeys module
a33f2405by fanquake+13939−13434 files
No security note in commit
Informational 15 AI analysisMessage 90 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

scripted-diff: Use C.UTF-8 locale in Guix scripts

This commit is a routine cleanup that changes the locale setting in Bitcoin Core's Guix build scripts from the old ASCII-only 'C' locale to the modern 'C.UTF-8' locale. It is not a security fix and does not change any behavior that could b…

8916f796by Hennadii Stepanov+15−1515 files
No security note in commit
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 16 AI analysisMessage 75 · Adequate
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

qt, test: Enable tests on macOS with `minimal` QPA plugin

This commit removes workarounds that skipped three Bitcoin Core Qt test suites on macOS when using the 'minimal' Qt platform plugin. The previous commit fixed the underlying crash cause, so these tests can now run. It is a test-infrastruct…

No security-relevant code change in the diff itselfReferences a prior crash fix, but this commit only removes test skipsNo input handling, cryptography, networking, consensus, or wallet logic modified
fd59d68cby Hennadii Stepanov+0−343 files
No security note in commit
Informational 15 AI analysisMessage 85 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

refactor: simplify adding SipHash-1-3-UJ

This is a code cleanup (refactor) that moves the internal SipHash mixing steps into shared helper methods. It does not change how Bitcoin hashes data, how many rounds are run, or any user-visible behavior. There is no security bug being fi…

25bfca06by Lőrinc+74−1222 files
No security note in commit
Informational 21 AI analysisMessage 68 · Adequate
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

crypto: add generic SipHash-1-3-UJ

This commit adds a new, weaker variant of the SipHash algorithm inside Bitcoin Core's cryptography module. It is explicitly designed for low-security uses such as internal hash tables, not for protecting funds or network messages. The code…

New weaker cryptographic primitive added (SipHash-1-3 vs. standard SipHash-2-4)Explicit unpadded input design removes length-commitment paddingJumbo 256-bit blocks increase attacker control within a single round
c2d7931bby Pieter Wuille+103−02 files
No security note in commit
Informational 15 AI analysisMessage 78 · Adequate
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

bench: add fixed-width SipHash benchmarks

This commit only adds new performance benchmark tests for a hash function called SipHash. It does not change any production code that handles Bitcoin transactions, networking, or wallet data. There is no security issue here.

7ff55cc6by Lőrinc+49−31 file
No security note in commit
Informational 15 AI analysisMessage 80 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

crypto: add fixed-width SipHash-1-3-UJ

This commit adds two new shortcut methods for computing a specific SipHash variant on fixed-size inputs. It is a pure performance/ergonomics addition: the new methods copy the hasher's internal state before operating, so they do not alter …

a0ccd4adby Pieter Wuille+21−01 file
No security note in commit
Informational 15 AI analysisMessage 90 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

test: add shared SipHash vectors

This commit only adds new test data and test code for the SipHash hashing function used in Bitcoin Core. It does not change any production code that handles transactions, networking, or wallets. The goal is to make sure the existing SipHas…

af50ba85by Lőrinc+797−237 files
No security note in commit
Informational 15 AI analysisMessage 95 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

test: wallet: BnB incomplete result on attempt-limit success

This commit adds a new unit test for Bitcoin Core's coin selection algorithm. It checks that when the Branch-and-Bound (BnB) search finds a usable coin selection early but then keeps searching for a better one until it hits the attempt lim…

6ee05c4bby Bruno Garcia+20−01 file
No security note in commit
Repository ledger

Explore captured commits

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

AI review queuedtest: remove two unnecessary nodes from the testby rkrux · 5b65e312 · Jun 4, 2026 · 1 fileMessage 90 · StrongInformational 15Details
Commit message · rkrux

test: remove two unnecessary nodes from the test

The test needs multiple wallets that can be created on a single node, multiple
nodes are not required.

As there is a cost associated with setting-up and tearing-down nodes, this patch
helps in reducing the test time as well.

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

This commit is a simple test cleanup. It changes one functional test so that it creates multiple wallets on a single Bitcoin Core node instead of spinning up three separate nodes. There is no change to the actual Bitcoin Core software that users run, and no security issue is introduced or fixed.

AI review queuedserialize: add LimitedVectorFormatterby Anthony Towns · 94ed4542 · Jun 4, 2026 · 2 filesMessage 35 · OpaqueTriage 0Details
Commit message · Anthony Towns

serialize: add LimitedVectorFormatter

35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI review queuedqa: Avoid cleanup when exception is raisedby Hodlinator · 659671ac · Jun 4, 2026 · 6 filesMessage 68 · AdequateInformational 15Details
Commit message · Hodlinator

qa: Avoid cleanup when exception is raised

If an exception is raised before we get to cleanup, do not swallow it and attempt to reset the state. Doing so could trigger knock-on exceptions and extra tracebacks.

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

This commit changes how several Bitcoin Core test scripts clean up after themselves. Previously, cleanup code ran even when a test failed, which could hide the real failure behind extra error messages. Now cleanup is skipped if the test raises an exception, so the original failure is reported clearly. This only affects the project's internal test suite, not the live Bitcoin network or end users.

AI review queuedrefactor(test): Make CAmount arg explicit for BuildCreditingTransaction()by Hodlinator · 43ca54ca · Jun 3, 2026 · 2 filesMessage 72 · AdequateInformational 15Details
Commit message · Hodlinator

refactor(test): Make CAmount arg explicit for BuildCreditingTransaction()

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 is a tiny internal test-only code cleanup. It changes one function parameter in test helper code from the generic 'int' type to the project's specific 'CAmount' type, which is used for money values. It does not change any production code, network behavior, or wallet logic, and there is no security issue here.

AI review queuedwallet: Remove CoinsResult::Clear()by Hodlinator · b5e91e94 · Jun 3, 2026 · 3 filesMessage 66 · AdequateLow 29Details
Commit message · Hodlinator

wallet: Remove CoinsResult::Clear()

Instead we fully reset CoinsResult-instances without forgetting any fields.

Fixes: https://github.com/bitcoin/bitcoin/issues/35449

Variant resetting the other fields in Clear():
₿ hyperfine --warmup 2 "./build/bin/test_bitcoin -t coinselector_tests/knapsack_solver_test"
Benchmark 1: ./build/bin/test_bitcoin -t coinselector_tests/knapsack_solver_test
Time (mean ± σ): 4.289 s ± 0.008 s [User: 4.252 s, System: 0.027 s]
Range (min … max): 4.279 s … 4.301 s 10 runs

This variant:
₿ hyperfine --warmup 2 "./build/bin/test_bitcoin -t coinselector_tests/knapsack_solver_test"
Benchmark 1: ./build/bin/test_bitcoin -t coinselector_tests/knapsack_solver_test
Time (mean ± σ): 4.279 s ± 0.005 s [User: 4.244 s, System: 0.026 s]
Range (min … max): 4.271 s … 4.287 s 10 runs

66/100 · AdequateMessage clarity
✓ Descriptive subject✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 29/100

This Bitcoin Core commit removes a custom `Clear()` method from a wallet coin-selection helper struct and replaces its uses with a full default reset (`available_coins = {}`). The stated reason is to avoid accidentally leaving fields partially reset in the future. The change is defensive code cleanup; there is no direct evidence in the commit or supplied references that it fixes an active security vulnerability or exploitable bug.

AI review queueddepends: Build `qt` and `qrencode` packages for OpenBSD hostsby Hennadii Stepanov · a54ec373 · Jun 2, 2026 · 9 filesMessage 50 · ThinTriage 7Details
Commit message · Hennadii Stepanov

depends: Build `qt` and `qrencode` packages for OpenBSD hosts

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 review queuedwallet, test: fix sendall anti-fee-sniping when locktime is not specifiedby rkrux · 9c1fcaca · May 29, 2026 · 1 fileMessage 95 · StrongInformational 12Details
Commit message · rkrux

wallet, test: fix sendall anti-fee-sniping when locktime is not specified

This particular test case only needs to ensure that locktime is not
specified in the RPC request, it doesn't need to rely on the wallet optin
RBF default that causes the test to pass coincidentally.

Co-authored-by: maflcko <6399679+maflcko@users.noreply.github.com>

95/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
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 12/100

This commit only changes a test file. It makes a wallet functional test more explicit by passing replaceable=False so the test reliably checks anti-fee-sniping locktime behavior, instead of relying on a coincidental wallet default. There is no change to production wallet or node code, so it does not fix a live security vulnerability.

AI review queuedkernel: assert invalid buffer preconditions in `btck_*_create` functionsby stringintech · 570a6276 · May 29, 2026 · 3 filesMessage 73 · AdequateTriage 0Details
Commit message · stringintech

kernel: assert invalid buffer preconditions in `btck_*_create` functions

Switch buffer `ptr == nullptr && len > 0` checks from `nullptr` returns to assertions. These checks represent invalid caller preconditions, not failures encountered while deserializing or constructing the requested object. `btck_block_header_create` additionally asserts the pre-existing documented length contract (must be 80 bytes).

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
second-pass: broader security terminology
AI review queuedwallet: unfriend LegacyDataSPKM and DescriptorScriptPubKeyMan classesby rkrux · 6c525c2e · May 29, 2026 · 1 fileMessage 85 · StrongInformational 15Details
Commit message · rkrux

wallet: unfriend LegacyDataSPKM and DescriptorScriptPubKeyMan classes

After PR 28333, `LegacyDataSPKM` doesn't need to use the private or
protected members of `DescriptorScriptPubKeyMan` class such as
`AddDescriptorKeyWithDB` and `TopUpWithDB`. Moreover, these two SPKMs
are siblings that inherit from the common `ScriptPubKeyMan`.

It seems reasonable to me that they are unfriended so that private
members of one are not exposed to another unnecessarily.

85/100 · StrongMessage clarity
✓ Specific, 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 removes a single 'friend' relationship between two wallet classes in Bitcoin Core. It is a code-cleanup change that reduces unnecessary access to private members; it does not fix a bug or vulnerability and has no direct security impact.

AI review queuedwallet: allow anti-fee-sniping in sendall RPC while not relying on RBF defaultby rkrux · 8877eec7 · May 29, 2026 · 1 fileMessage 85 · StrongLow 31Details
Commit message · rkrux

wallet: allow anti-fee-sniping in sendall RPC while not relying on RBF default

In case locktime (and replaceable) not being specified in this RPC request,
the wallet sets the transaction replaceable due to the default value of opt-in
RBF set in the wallet.

This allowed the anti-fee-sniping flow to be executed but in case of
replaceable being set false in the request, anti-fee-sniping flow would be
missed.

This patch fixes it.

85/100 · StrongMessage clarity
✓ Specific, 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 · Low 31/100

This is a small fix in Bitcoin Core's 'sendall' wallet RPC command. The bug meant that when a user explicitly set a transaction as non-replaceable, the wallet skipped its normal anti-fee-sniping protection. Anti-fee-sniping is a privacy/defense mechanism that uses the current block height as a transaction 'locktime' to make transactions look more similar and slightly harder to target. The fix changes the input sequence number used in that case so the protection still runs even when RBF is disabled.

AI review queuedci, iwyu: Fix warnings in src/scripts and treat them as errorby Brandon Odiwuor · 61839425 · May 29, 2026 · 31 filesMessage 50 · ThinInformational 15Details
Commit message · Brandon Odiwuor

ci, iwyu: Fix warnings in src/scripts and treat them as error

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

This commit is a code-quality cleanup: it adjusts which C++ header files are included in many source files under src/script and related areas, and tells the continuous-integration (CI) tool to treat 'include-what-you-use' (IWYU) warnings as errors for those files. There is no functional change to how Bitcoin validates transactions, scripts, or signatures, and no security fix or vulnerability is described.

AI review queueddoc: Compress doc/build-unix.md dependency package names into tableby MarcoFalke · fa787043 · May 28, 2026 · 1 fileMessage 50 · ThinTriage 0Details
Commit message · MarcoFalke

doc: Compress doc/build-unix.md dependency package names into table

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
documentation-only discountsecond-pass: broader security terminology
AI review queuedtest: add coverage for migrating ancient walletsby furszy · b86c1c44 · May 28, 2026 · 1 fileMessage 90 · StrongInformational 15Details
Commit message · furszy

test: add coverage for migrating ancient wallets

Pre-#152 wallets have no best block stored. Test we
can migrate them.

90/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ Mentions testing or verification✓ Links an issue, advisory, or supporting reference
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit adds a new automated test to Bitcoin Core that checks whether very old-style wallets (those created before a 2012-era change) can still be successfully migrated to the modern wallet format. It does not change any production wallet code; it only adds a test that deliberately corrupts a test wallet file to simulate an ancient wallet and then verifies migration still works.

AI review queuedwallet: fix ancient wallets migrationby furszy · fd44d48b · May 28, 2026 · 1 fileMessage 68 · AdequateInformational 22Details
Commit message · furszy

wallet: fix ancient wallets migration

The best block locator was introduced in #152, previously created
wallets do not have these record.

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Links an issue, advisory, or supporting reference
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 22/100

This patch fixes a bug where migrating very old Bitcoin wallets would fail entirely. The problem was that the migration code required a 'best block locator' record that did not exist in wallets created before that feature was added. The fix makes that record optional: if it is missing, migration continues and writes an empty locator to the new wallet files, which simply causes them to rescan the blockchain on next load. There is no attacker-controlled path here; it is a robustness fix for a user-initiated wallet migration.

AI review queuedguix, refactor: Add `BASE` argument to `*_for_host` functionsby Hennadii Stepanov · 62cf7bc5 · May 28, 2026 · 3 filesMessage 50 · ThinInformational 15Details
Commit message · Hennadii Stepanov

guix, refactor: Add `BASE` argument to `*_for_host` functions

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

This commit is a straightforward internal cleanup of the Bitcoin Core Guix build scripts. It changes how directory paths are computed by adding an optional BASE argument to helper functions, replacing a temporary environment-variable trick. There is no change to how Bitcoin validates transactions, handles network data, or stores wallets, and nothing in the commit suggests a security fix or vulnerability.

AI review queuedguix, refactor: Move `distsrc_for_host()` to `prelude.bash`by Hennadii Stepanov · 5d46429e · May 28, 2026 · 3 filesMessage 73 · AdequateInformational 15Details
Commit message · Hennadii Stepanov

guix, refactor: Move `distsrc_for_host()` to `prelude.bash`

The `distsrc_for_host()` function now accepts a second optional
argument, `SUFFIX`, making it consistent with other similar functions.

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit is a simple code cleanup in Bitcoin Core's Guix build scripts. It moves a helper function that builds directory paths from two separate scripts into a shared library file, and adds an optional suffix parameter so both scripts can use the same function. There is no change to how Bitcoin works, no security fix, and no vulnerability.

AI review queuedguix, refactor: Move duplicated `profiledir_for_host()` to `prelude.bash`by Hennadii Stepanov · cab65ea9 · May 28, 2026 · 3 filesMessage 50 · ThinInformational 15Details
Commit message · Hennadii Stepanov

guix, refactor: Move duplicated `profiledir_for_host()` to `prelude.bash`

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

This commit is a simple code cleanup in Bitcoin Core's Guix build scripts. It removes two identical copies of a helper function and places a single shared copy in a common file. The function itself only builds a directory path string and does not change behavior. There is no security issue here.

AI review queuedguix, refactor: Move duplicated `outdir_for_host()` to `prelude.bash`by Hennadii Stepanov · faa9d434 · May 28, 2026 · 3 filesMessage 50 · ThinInformational 15Details
Commit message · Hennadii Stepanov

guix, refactor: Move duplicated `outdir_for_host()` to `prelude.bash`

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

This commit is a simple cleanup: it removes two identical copies of a small helper function from two build scripts and places a single shared copy in a common file that both scripts already use. The function itself just builds an output directory path string. There is no security-relevant change here.

AI review queuedtest: Wait for node exit after crash in verify_utxo_hashby MarcoFalke · fad585b6 · May 28, 2026 · 1 fileMessage 72 · AdequateTriage 0Details
Commit message · MarcoFalke

test: Wait for node exit after crash in verify_utxo_hash

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
second-pass: broader security terminology
AI review queuedtest: Fix feature_dbcrash.py --usecli intermittent errorby MarcoFalke · fac27d70 · May 28, 2026 · 1 fileMessage 95 · StrongTriage 0Details
Commit message · MarcoFalke

test: Fix feature_dbcrash.py --usecli intermittent error

Catch any Exception in verify_utxo_hash and let restart_node verify the
crash via wait_for_node_exit.

(Also, use named args in restart_node, while touching this test)

Catching any Exception covers possible subprocess.CalledProcessError
that may happen in a --usecli run. E.g.

TestFramework (INFO): Verifying utxo hash matches for all nodes
TestFramework.bitcoincli (DEBUG): Running bitcoin-cli ['-datadir=/tmp/bitcoin_func_test_gzufs0ht/node0', '-rpcclienttimeout=240', '-rpcconnect=127.0.0.1', '-rpcport=20963', 'gettxoutsetinfo']
TestFramework.bitcoincli (DEBUG): Running bitcoin-cli ['-datadir=/tmp/bitcoin_func_test_gzufs0ht/node1', '-rpcclienttimeout=240', '-rpcconnect=127.0.0.1', '-rpcport=20964', 'gettxoutsetinfo']
TestFramework (ERROR): Called Process failed with stdout='error: timeout on transient error: Could not connect to the server 127.0.0.1:20964 (error code 1 - "EOF reached")

Make sure the bitcoind server is running and that you are connecting to the correct RPC port.
Use "bitcoin-cli -help" for more info.
'; stderr='None';
Traceback (most recent call last):
File "./test/functional/test_framework/test_framework.py", line 143, in main
self.run_test()
~~~~~~~~~~~~~^^
File "./test/functional/feature_dbcrash.py", line 273, in run_test
self.verify_utxo_hash()
~~~~~~~~~~~~~~~~~~~~~^^
File "./test/functional/feature_dbcrash.py", line 182, in verify_utxo_hash
nodei_utxo_hash = self.nodes[i].gettxoutsetinfo()['hash_serialized_3']
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "./test/functional/test_framework/test_node.py", line 963, in __call__
return self.cli.send_cli(self.command, *args, **kwargs)
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "./test/functional/test_framework/test_node.py", line 1043, in send_cli
raise subprocess.CalledProcessError(returncode, p_args, output=cli_stderr)

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
second-pass: broader security terminology
AI review queuedtest: [refactor] Simplify submit_block_catch_errorby MarcoFalke · fa09de8b · May 28, 2026 · 1 fileMessage 97 · StrongTriage 0Details
Commit message · MarcoFalke

test: [refactor] Simplify submit_block_catch_error

Make it catch any Exception and let the caller verify it.

This refactor does not change any behavior, but the code is simpler,
more flexible and still correct, because wait_for_node_exit enforces the
crash to happen.

97/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Mentions testing or verification
Why it was queued
second-pass: broader security terminology
AI review queuedwallet, test: add wallet_deprecated_rbf.py for walletrbf deprecated keys & optionsby rkrux · 7bc39e3d · May 28, 2026 · 2 filesMessage 60 · AdequateInformational 15Details
Commit message · rkrux

wallet, test: add wallet_deprecated_rbf.py for walletrbf deprecated keys & options

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

This commit only adds a new automated test file and registers it in the test runner. It checks that two old wallet/RBF-related command-line options still behave as documented while they are being phased out. There is no change to the actual Bitcoin Core software that users run, so it cannot introduce a security vulnerability or fix one.

AI review queuedwallet, test: remove -deprecatedrpc=bip125 from wallet_basic.pyby rkrux · 3ec550d1 · May 28, 2026 · 1 fileMessage 60 · AdequateInformational 15Details
Commit message · rkrux

wallet, test: remove -deprecatedrpc=bip125 from wallet_basic.py

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

This is a minor test-only cleanup. It removes a deprecated command-line flag and an obsolete field name from a single automated test script. There is no change to Bitcoin Core's actual wallet or network code, and no security relevance.

AI review queuedwallet, test: remove -deprecatedrpc=bip125 from wallet_send.pyby rkrux · 2cbbcb56 · May 28, 2026 · 1 fileMessage 60 · AdequateInformational 15Details
Commit message · rkrux

wallet, test: remove -deprecatedrpc=bip125 from wallet_send.py

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

This commit only changes a test file. It removes the use of a deprecated RPC option and deletes test assertions that checked whether transactions were marked as replaceable. There is no change to the actual Bitcoin Core wallet or network code, and no security issue is evident.

AI review queuedwallet, test: remove -deprecatedrpc=bip125 from wallet_migration.pyby rkrux · 307134bd · May 28, 2026 · 1 fileMessage 60 · AdequateInformational 15Details
Commit message · rkrux

wallet, test: remove -deprecatedrpc=bip125 from wallet_migration.py

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

This is a routine test-only cleanup. A Bitcoin Core functional test was still starting one node with a deprecated RPC compatibility flag (-deprecatedrpc=bip125). The patch removes that flag and adjusts the test assertions to ignore the now-removed 'bip125-replaceable' field when comparing transaction lists. No production code, no wallet logic, and no network behavior changed.