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.
Message quality measures whether a commit identifies its scope, purpose, rationale, testing, and supporting references. It does not change the security-severity score.
This update fixes two bugs in bitcoin-cli, the command-line tool used to talk to a Bitcoin node. First, when a server replied with an empty body but said it was intentionally empty (Content-Length: 0), the client would keep waiting instead…
Client-side hang on empty HTTP body (denial-of-service against bitcoin-cli user)Timeout regression could abort legitimate slow RPC responsesFix distinguishes Content-Length: 0 from absent Content-Length
This commit is a documentation and code-style cleanup for Bitcoin Core's continuous integration (CI) scripts. It changes how build configuration strings are formatted in shell scripts so comments can sit next to the options they describe, …
This update fixes a way that people with limited access to a Bitcoin node could make fake log entries appear real. Normally, the node cleans up special characters in log messages but was leaving newlines alone. A clever user could slip a n…
Log injection / log forgery via embedded newlines in untrusted inputInput from restricted RPC users reaching log output without newline escapingControl-character escaping bypass due to explicit newline exception
This commit fixes a one-word typo in a comment inside a test file. The comment incorrectly referred to 'walletcreatepsbt' when the surrounding test code actually calls 'walletcreatefundedpsbt'. No code behavior changes, and there is no sec…
This commit fixes a typo in a comment within a test file. The comment incorrectly referred to 'walletcreatepsbt' when the surrounding test code actually exercises 'walletcreatefundedpsbt'. No code behavior changes, and there is no security…
This commit is a documentation-only update. It adds a single line to Bitcoin Core's list of implemented BIPs, noting that BIP 461 (a technique for making ECDSA signatures smaller and deterministic) has been implemented since version 0.17.0…
This patch fixes a bug in Bitcoin Core's `sendall` wallet command. If a user typed a bech32 address in uppercase letters, the command would fail with a confusing 'below dust threshold' error instead of sending the funds. The fix compares d…
Functional bug in RPC command causing unexpected transaction failureCase-sensitivity mismatch between user input and canonical address encodingNo memory safety, cryptographic, or authorization issue evident
This commit fixes a flaky automated test in Bitcoin Core. The test was checking the maximum transaction fee rate by creating a transaction at the exact boundary, which sometimes failed because the real transaction size could be slightly sm…
No production code changedTest-only changeNo memory safety, cryptography, consensus, or authorization changes
This is a build-system maintenance update for Bitcoin Core's reproducible build environment (Guix). It updates the Guix time-machine commit and several dependency versions, and temporarily disables some test suites that fail when building …
No direct security-relevant code change in Bitcoin Core consensus, wallet, or P2P layers.Dependency version bumps (git-minimal, linux-headers, python-lief, python-minimal) are routine build-environment updates.Disabling third-party package test suites reduces build-time test coverage but does not alter Bitcoin Core's own test or release binaries.
This change makes three Bitcoin command-line tools (bitcoin-tx, bitcoin-util, and bitcoin-wallet) automatically pick the fastest SHA-256 hashing implementation available on the computer, such as hardware-accelerated versions on modern CPUs…
This is a one-line fix in Bitcoin Core's network code. It changes how the size of a list of block headers is converted to a signed integer inside a loop. Previously, if the list was empty, the conversion could trigger undefined-behavior wa…
UndefinedBehaviorSanitizer integer sanitizer warning addressedImplicit signed/unsigned conversion in loop counterUnsigned integer wraparound on empty vector size
This change fixes a Bitcoin Core wallet bug where the `importprunedfunds` RPC command could only re-import transactions that sent money to the wallet, not transactions that spent money from it. After this fix, both incoming and outgoing tr…
Logic bug in wallet transaction import scopeIncorrect balance possible after removing and re-importing spending transactionFix routes import through existing involvement check (IsMine + IsFromMe)
This commit adds a new Bitcoin Core wallet startup option called -maxfeerate. It lets users set a maximum fee rate (fee per unit of transaction size) that the wallet will allow when creating or broadcasting transactions. Previously, the wa…
New wallet startup option -maxfeerate to cap transaction fee rateNew transaction error type MAX_FEE_RATE_EXCEEDEDBroadcastTransaction now checks both max absolute fee and max fee rate
This Bitcoin Core update fixes a wallet-signing quirk. When a user chose the SIGHASH_SINGLE signature mode, an input that had no matching output index would sign essentially nothing meaningful. That signature could then stay valid even if …
Funds-redirection footgun from SIGHASH_SINGLE signatures with no committed outputInconsistent guard between SignTransaction and SignPSBTInput pathsFix centralizes the guard in the low-level signature creator to cover future signing paths
This change updates Bitcoin Core's I2P (Invisible Internet Project) privacy network settings to use newer, stronger encryption for the published 'leaseset' that describes how other peers can contact a node. The old setting included ElGamal…
Cryptographic algorithm update (ElGamal to MLKEM-768)Use of I2P 'legacy' encryption type removedConfiguration-only change in network privacy layer
This change fixes a labeling bug in Bitcoin Core's first-run disk-space warning. The estimate was stored in GiB (binary gigabytes, 1024-based) but displayed as GB (decimal gigabytes, 1000-based), and for pruned nodes it showed the full-cha…
This is a wallet bug, not a theft or remote-code bug. When a Bitcoin Core user turns on the optional 'avoidpartialspends' or 'avoid_reuse' setting, an output group rejected during coin selection could be counted twice as 'discarded.' That …
Logic error causing double-counting of discarded UTXO groupsCan trigger false 'insufficient funds' failure in coin selectionAffects avoidpartialspends / avoid_reuse wallets only
This is a documentation-only fix in a tutorial file. It changes two shell examples from using '>>' (append to file) to '>' (overwrite file). If a user followed the old instructions and ran the same command twice, the file would contain two…
No security signal: change is limited to documentationNo code changes to Bitcoin Core binaries, RPC, wallet, or consensus logicNo cryptographic, network, or privilege-boundary implications
This is a large internal code reorganization (refactor) in Bitcoin Core. It creates a new BlockTemplateManager class that takes over block-template creation, block submission, and tip-waiting helpers that were previously spread across seve…
Large refactor touching mining, RPC, interfaces, and test shutdown pathsNew object lifetime dependency: BlockTemplateManager holds references to mempool, chainman, and notifications; explicit reset ordering added in Shutdown/InitAndLoadChainstate/test setupsRemoval of early-init node.mining interface; BlockTemplateManager is now created after chainstate load, with a comment that it must exist before setChainstateLoaded(true) unblocks IPC waiters
This commit adds the first implementation of BIP352 (Silent Payments) to Bitcoin Core. Silent Payments are a new type of privacy-preserving Bitcoin address that lets someone receive payments without publicly revealing a fixed address. The …
New cryptographic feature implementation (BIP352 Silent Payments)Extensive use of secp256k1 silentpayments moduleInput public key extraction from P2PKH, P2WPKH, P2SH-P2WPKH, and P2TR inputs
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Informational 15/100
This commit only changes Bitcoin Core's internal test code. It replaces tests that previously relied on external system commands like 'echo', 'false', and 'cat' with a self-contained mock program. There is no change to the actual Bitcoin node software that users run, and no security issue is introduced or fixed.
Lower-priorityci: [refactor] Drop last use of pwshby MarcoFalke · fa36adeb · Feb 17, 2026 · 1 fileMessage 72 · AdequateInformational 15Details
Commit message · MarcoFalke
ci: [refactor] Drop last use of pwsh
Seems easier to just use Bash and Python consistently.
72/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 15/100
This commit is a minor cleanup in the project's automated testing configuration. It replaces a PowerShell script snippet with an equivalent Bash snippet that does the same thing: record the versions of build tools like CMake and MSBuild. There is no security issue here.
ci: [refactor] Move github_import_vs_env to python script
Also, change the yaml anchor name and the step name. Also, small refactors while touching the files.
77/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 15/100
This is a routine cleanup of Bitcoin Core's Windows CI (continuous integration) scripts. It moves a PowerShell snippet that imports Visual Studio environment variables into a Python helper, renames a YAML anchor, and simplifies some repetitive code. There is no security-relevant change.
Lower-prioritythreadpool: make Submit return Expected instead of throwingby furszy · 59d24bd5 · Feb 17, 2026 · 3 filesMessage 81 · StrongLow 31Details
Commit message · furszy
threadpool: make Submit return Expected instead of throwing
Unlike exceptions, which can be ignored as they require extra try-catch blocks, returning expected errors forces callers to always handle submission failures.
Not throwing an exception also fixes an unclean shutdown bug #34573 since we no longer throw when attempting to Submit() from the libevent callback http_request_cb().
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 · Low 31/100
This change refactors Bitcoin Core's internal thread pool so that submitting a task returns an error code instead of throwing an exception. The main practical effect is fixing an unclean shutdown bug (#34573) where an unhandled exception could be thrown from an HTTP event callback. It is a defensive reliability improvement rather than a direct exploit for stealing funds or remote code execution.
Lower-priorityvalidation: reset BLOCK_FAILED_CHILD to BLOCK_FAILED_VALID when loading from diskby stratospher · b5b2956b · Feb 17, 2026 · 1 fileMessage 73 · AdequateLow 44Details
Commit message · stratospher
validation: reset BLOCK_FAILED_CHILD to BLOCK_FAILED_VALID when loading from disk
- there maybe existing block indexes stored in disk with BLOCK_FAILED_CHILD - since they don't exist anymore, clean up block index entries with BLOCK_FAILED_CHILD and reset it to BLOCK_FAILED_VALID.
73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Low 44/100
This Bitcoin Core commit cleans up an old block-status flag when loading the blockchain database from disk. The old flag (BLOCK_FAILED_CHILD) is no longer used by current code, so the patch converts any leftover occurrences into the newer equivalent flag (BLOCK_FAILED_VALID) and marks the index entries as needing to be saved. This is a defensive data-consistency fix rather than a fix for an active exploit.
✓ Descriptive subject✓ Provides an explanatory body
AI analysis · Informational 15/100
This commit is a simple code cleanup: it removes a redundant constant named BLOCK_FAILED_MASK and replaces its uses with BLOCK_FAILED_VALID, because the two had become identical in meaning. There is no functional change to how Bitcoin Core validates blocks or handles invalid chains.
Add a test for block index transitioning from legacy BLOCK_FAILED_CHILD to BLOCK_FAILED_VALID behavior.
In the scenario where a valid block has a BLOCK_FAILED_CHILD parent and a BLOCK_FAILED_VALID grandparent, ensure that all three blocks are correctly marked as BLOCK_FAILED_VALID after reloading the block index.
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 12/100
This commit only adds a new automated test to Bitcoin Core. It does not change any production code. The test verifies that when the block index database is reloaded, a chain of three blocks with mixed invalidity flags is all correctly marked as permanently invalid. There is no direct security fix here, only a regression test for existing behavior.
Lower-priorityvalidation: stop using BLOCK_FAILED_CHILDby stratospher · 37bc2078 · Feb 17, 2026 · 5 filesMessage 58 · ThinInformational 20Details
Commit message · stratospher
validation: stop using BLOCK_FAILED_CHILD
even though we have a distinction between BLOCK_FAILED_VALID and BLOCK_FAILED_CHILD in the codebase, we don't use it for anything. since there's no functional difference between them and it's unnecessary code complexity to categorise them correctly, just mark as BLOCK_FAILED_VALID instead.
This is a code cleanup change in Bitcoin Core. It removes the use of a separate 'descendant of a failed block' flag and instead marks those blocks with the same 'validation failed' flag used for the block itself. The commit explicitly states the two flags had no functional difference and were only adding unnecessary complexity. There is no indication this fixes a security bug or changes network behavior.
Lower-priorityrefactor: use clearer variables in InvalidateBlock()by stratospher · 120c631e · Feb 17, 2026 · 1 fileMessage 85 · StrongInformational 15Details
Commit message · stratospher
refactor: use clearer variables in InvalidateBlock()
Improve upon the variable name for `invalid_walk_tip` to make the InvalidateBlock logic easier to read. Block tip before disconnection is now tracked directly via `disconnected_tip`, and `new_tip` is the tip after the disconnect.
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
Why it was queued
defensive validation
AI analysis · Informational 15/100
This commit is a straightforward code cleanup in Bitcoin Core's block invalidation logic. It renames a variable from 'invalid_walk_tip' to 'disconnected_tip' and introduces a new variable 'new_tip' to make the code easier to read. There are no functional changes that would affect security.
Security candidatetest: Set assert_debug_log timeout to 0by MarcoFalke · fa4cb96b · Feb 17, 2026 · 13 filesMessage 67 · AdequateInformational 15Details
Commit message · MarcoFalke
test: Set assert_debug_log timeout to 0
67/100 · AdequateMessage clarity
✓ 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
seed or entropy pathsigning or wallet path
AI analysis · Informational 15/100
This commit only changes Bitcoin Core's internal functional test code. It makes the default timeout for a debug-log assertion helper stricter (0 seconds instead of 2 seconds) and updates existing tests to explicitly pass a 2-second timeout where needed. There is no change to the actual Bitcoin node software that users run, so it cannot affect live networks, wallets, or consensus.
Lower-priorityclusterlin: improve TxData::dep_top_idx type (optimization)by Pieter Wuille · b75574a6 · Feb 17, 2026 · 1 fileMessage 73 · AdequateInformational 15Details
Commit message · Pieter Wuille
clusterlin: improve TxData::dep_top_idx type (optimization)
The combined size of TxData::dep_top_idx can be 16 KiB with 64 transactions and SetIdx = uint32_t. Use a smaller type where possible to reduce memory footprint and improve cache locality of m_tx_data.
Also switch from an std::vector to an std::array, reducing allocation overhead and indirections.
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 straightforward memory-use and performance optimization inside Bitcoin Core's transaction clustering code. It changes an internal index type to the smallest unsigned integer that fits the data, and switches a dynamically-sized vector to a fixed-size array. There is no security-relevant change here—no bug fix, no input validation change, no cryptographic change, and no behavior change visible outside the module.
Lower-priorityclusterlin: get rid of DepData (optimization)by Pieter Wuille · 73cbd15d · Feb 17, 2026 · 1 fileMessage 68 · AdequateInformational 15Details
Commit message · Pieter Wuille
clusterlin: get rid of DepData (optimization)
With the earlier change to pool SetInfo objects, there is little need for DepData anymore. Use parent/child TxIdxs to refer to dependencies, and find their top set by having a child TxIdx-indexed vector in each TxData, rather than a list of dependencies. This makes code for iterating over dependencies more natural and simpler.
68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Informational 15/100
This is a routine internal code cleanup in Bitcoin Core's transaction-cluster linearization logic. It replaces a separate list of dependency objects with direct parent/child indexes and a per-transaction vector, making the code simpler and slightly faster. There is no user-facing change, no network change, and no security fix.
Instead of computing the set of reachable transactions inside PickMergeCandidate, make the information precomputed, and updated in Activate (by merging the two chunks' reachable sets) and Deactivate (by recomputing).
This is a small performance gain on itself, but also a preparation for future optimizations that rely on quickly testing whether dependencies between chunks exist.
83/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
AI analysis · Informational 15/100
This is a routine performance optimization inside Bitcoin Core's transaction clustering code. It precomputes and caches which related transactions a chunk can reach, instead of recalculating that set on demand. The change includes extra assertions to verify the cached values stay correct. There is no security-relevant behavior change and no indication this fixes a vulnerability.
Lower-priorityclusterlin: abstract out functions from MergeStep (refactor)by Pieter Wuille · cbd684a4 · Feb 17, 2026 · 1 fileMessage 65 · AdequateInformational 15Details
Commit message · Pieter Wuille
clusterlin: abstract out functions from MergeStep (refactor)
This is a simple refactor to make the code more readable.
65/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
AI analysis · Informational 15/100
This is a pure code cleanup: a single function was split into three smaller, clearer helper functions with no change to what the code actually does. There is no security issue visible in the commit.
It suffices to initially only attempt one direction of merges in MakeTopological(), and only try both directions on chunks that are the result of other merges.
73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Informational 13/100
This commit is an internal performance optimization for Bitcoin Core's transaction clustering algorithm. It changes how the code tries to combine groups of related transactions during fee estimation, doing less work upfront while still checking both directions for newly merged groups. The test file updates expected iteration counts accordingly. There is no indication this change affects security, consensus, network behavior, or user funds.
This is a preparation for the next commit, where chunks will no longer be identified using a representative transaction, but using a set index. Reduce the load of line changes by doing this rename ahead of time.
-BEGIN VERIFY SCRIPT- sed --in-place 's/_rep/_idx/g' src/cluster_linearize.h -END VERIFY SCRIPT-
78/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
AI analysis · Informational 15/100
This commit is a purely mechanical rename of internal variable names in Bitcoin Core's transaction clustering code. Every occurrence of '_rep' (short for 'representative') is changed to '_idx' (short for 'index') in a single header file. There are no logic changes, no bug fixes, and no security implications. The commit message explicitly says this is a preparatory cleanup to make the next change easier to review.
Lower-priorityclusterlin: keep track of active children (optimization)by Pieter Wuille · 63b06d55 · Feb 17, 2026 · 1 fileMessage 73 · AdequateInformational 14Details
Commit message · Pieter Wuille
clusterlin: keep track of active children (optimization)
This means we can iterate over all active dependencies in a cluster/chunk in O(ntx) time rather than O(ndeps) (*), as the number of active dependencies in a set of transactions of size is at most ntx-1.
(*) Asymptotically, this is not actually true, as for large transaction counts, iterating over a BitSet still scales with ntx. In practice however, where BitSets are represented by a constant number of integers, it holds.
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 performance improvement inside Bitcoin Core's transaction-cluster linearization code. It replaces an O(number of dependencies) scan with an O(number of transactions) scan by maintaining a smaller 'active children' set. There is no user-visible behavior change, no network-facing change, and no security fix.
Lower-priorityclusterlin: add more Assumes and sanity checks (tests)by Pieter Wuille · 268fcb6a · Feb 17, 2026 · 1 fileMessage 60 · AdequateInformational 16Details
Commit message · Pieter Wuille
clusterlin: add more Assumes and sanity checks (tests)
60/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Informational 16/100
This commit adds extra internal safety checks and test-like assertions to a Bitcoin Core transaction-cluster linearization module. It does not change normal network behavior; it only helps developers catch programming mistakes during testing or debugging. There is no indication it fixes an active security bug or is exploitable by users.
Lower-priorityclusterlin: split up OptimizeStep (refactor)by Pieter Wuille · dcf458ff · Feb 17, 2026 · 1 fileMessage 45 · ThinInformational 15Details
Commit message · Pieter Wuille
clusterlin: split up OptimizeStep (refactor)
45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Informational 15/100
This commit is a straightforward code cleanup inside Bitcoin Core's transaction-cluster linearization logic. It takes one large function, OptimizeStep, and splits it into two smaller helper functions, PickChunkToOptimize and PickDependencyToSplit, without changing what the code actually does. There is no security-relevant change here.
Lower-priorityclusterlin: make MergeSequence take SetIdx (simplification)by Pieter Wuille · 3221f1a0 · Feb 17, 2026 · 1 fileMessage 73 · AdequateInformational 15Details
Commit message · Pieter Wuille
clusterlin: make MergeSequence take SetIdx (simplification)
Future changes will rely on knowing the chunk indexes of the two created chunks after a split. It is natural to return this information from Deactivate, which also simplifies MergeSequence.
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 small internal code cleanup in Bitcoin Core's transaction clustering/linearization logic. It changes a helper function so it returns chunk indexes directly instead of having callers look them up afterward. There is no user-facing behavior change, no network change, and no security fix.
clusterlin: split tx/chunk dep counting (preparation)
This splits the chunk_deps variable in LoadLinearization in two, one for tracking tx dependencies and one for chunk dependencies. This is a preparation for a later commit, where chunks won't be identified anymore by a representative transaction in them, but by a separate index. With that, it seems weird to keep them both in the same structure if they will be indexed in an unrelated way.
Note that the changes in src/test/util/cluster_linearize.h to the table of worst observed iteration counts are due to switching to a different data set, and are unrelated to the changes in this commit.
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
AI analysis · Informational 15/100
This is a routine internal code cleanup in Bitcoin Core's transaction clustering/linearization logic. It splits one combined counter into two separate counters for clarity, with no functional change intended. There is no security issue visible in the commit.
clusterlin: avoid depgraph argument in SanityCheck (cleanup)
Since the deterministic ordering change, SpanningForestState holds a reference to the DepGraph it is linearizing. So this means we do not need to pass it to SanityCheck() as an argument anymore.
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 small internal cleanup in Bitcoin Core's transaction-cluster linearization code. It removes an unnecessary argument from a debugging/self-check function called SanityCheck(), because the object already stores a reference to the same data. There is no user-facing change, no network behavior change, and no security fix.
Lower-priorityclusterlin: fix type to count dependenciesby Pieter Wuille · 666b3797 · Feb 17, 2026 · 1 fileMessage 45 · ThinInformational 20Details
Commit message · Pieter Wuille
clusterlin: fix type to count dependencies
45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Informational 20/100
This commit fixes a variable type mismatch in Bitcoin Core's transaction clustering code. The code counts dependencies between groups of transactions, but was using a transaction-index type for the count. If that count type is smaller than the actual number of dependencies, it could overflow or behave incorrectly when many dependencies exist. The fix changes the count and random-picker variables to a plain unsigned integer, which is the appropriate type for counting.
clusterlin: inline UpdateChunk into (De)Activate (optimization)
The two calls to UpdateChunk, in Activate and Deactive each, are subtly different: the top one needs to update the chunk_idx of iterated transactions, while the bottom one leaves it unchanged. To exploit this difference, inline the four function calls, getting rid of UpdateChunks.
This is also a preparation for a future improvement that inlines the recomputation of reachable sets in the same loop in Deactivate.
78/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Names security-relevant behavior explicitly
Why it was queued
explicit security language
AI analysis · Informational 12/100
This commit is a routine code cleanup in Bitcoin Core's transaction-cluster linearization logic. It removes a helper function called UpdateChunk and copies its logic directly into the two places that used it (Activate and Deactivate). The behavior is intended to stay exactly the same; the change is described by the author as an optimization and preparation for future work. There is no indication of a security fix.
The current process consists of iterating over the transactions of the chunk one by one, and then for each figuring out which of its parents/children are in unprocessed chunks.
Simplify this (and speed it up slightly) by splitting this process into two phases: first determine the union of all parents/children, and then find which chunks those belong to.
This is a routine code cleanup and performance tweak inside Bitcoin Core's transaction-cluster linearization logic. It rewrites how the algorithm picks which chunk of transactions to merge next, making the code simpler and slightly faster. There is no indication of a security bug being fixed.