wallet, doc: clarify the coin selection filters that enforce cluster count#34037
wallet, doc: clarify the coin selection filters that enforce cluster count#34037fanquake merged 2 commits intobitcoin:masterfrom
Conversation
|
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. Code Coverage & BenchmarksFor details see: https://corecheck.dev/bitcoin/bitcoin/pulls/34037. ReviewsSee the guideline for information on the review process.
If your review is incorrectly listed, please copy-paste ConflictsNo conflicts as of last run. LLM Linter (✨ experimental)Possible places where named args for integral literals may be used (e.g.
2026-02-11 19:10:35 |
|
🚧 At least one of the CI tasks failed. HintsTry to run the tests locally, according to the documentation. However, a CI failure may still
Leave a comment here, if you need help tracking down a confusing failure. |
966edc2 to
dc5e20c
Compare
rkrux
left a comment
There was a problem hiding this comment.
Concept ACK dc5e20c
Nice, this change comes at a right time. Recently, I got confused by getTransaction Ancestry() in a previous PR: #33528 (comment) - not anymore.
I have limited idea of Cluster Mempool currently, thus I have based this review off of the GetTransactionAncestry implementation in src/txmempool.h|cpp.
|
Concept ACK |
|
I will circle back soon. |
dc5e20c to
4bfc727
Compare
|
Ready for review again, thanks @rkrux and @ismaelsadeeq |
4bfc727 to
bc44886
Compare
|
Rebased |
|
🚧 At least one of the CI tasks failed. HintsTry to run the tests locally, according to the documentation. However, a CI failure may still
Leave a comment here, if you need help tracking down a confusing failure. |
Avoid confusion by clarifying the docs and renaming the variables that now hold cluster count rather than descendant count. No behavior change.
bc44886 to
a067ca3
Compare
|
Would be nice to get this for the release. It should be easy to review. |
|
ACK a067ca3 |
|
reACK a067ca3 |
Followup to #33629.
Fix misleading docs and variable names. Namely,
getTransactionAncestryreturns the cluster count, not max descendant count of ancestor set (not worth reimplementing as it is merely a heuristic). No behavior changes - I don’t think much needs to be changed for the first release containing cluster mempool.Current
CoinEligibilityFilters enforce a maximum ancestor count (summed across all outputs, potentially overestimating) and max descendant count across ancestors of the output.Since #33629, these filters have started using cluster count instead of max desc count across ancestors. The change isn’t dangerous, as the cluster count bounds descendant count as well. Currently, the wallet is essentially enforcing a mixture of both limits - this is good while we are transitioning. Note that the cluster count enforced is 25, not 64, since it's grabbing the node's descendant count limit. While it is not an apples-to-apples comparison, a cluster count limit of 25 helps us avoid busting legacy descendant limits (which will be common on the network for a while).
Potential things for the future, out of scope for this PR:
getPackageLimitscan probably be replaced with hard-coded values.OutputGroups to track the actual cluster count that results from spending these outputs and merging their clusters.getPackageLimits.