Repository navigation
mining: Apply blockmintxfee to coin-age priority selection - #446
connorslab wants to merge 1 commit into
Conversation
e26c2ee to
164f735
Compare
|
Please rebase onto |
Honor the configured mining fee floor using modified fees and policy virtual size before adding coin-age priority candidates. Keep below-floor parents eligible for CPFP through package selection. Cover fee boundaries, priority ordering, manual fee deltas, explicit zero floors, and stranded anchor parents recovering through child sponsorship. Keep relay policy defaults unchanged.
164f735 to
c9a6b46
Compare
|
@kwsantiago Rebased onto The C++ patch is unchanged. The regression and release note now use only features available on that topic branch; fee-boundary, priority-ordering, manual-delta, zero-floor, and parent/child package checks are retained. Standalone validation passed: Linux build, 18 targeted unit suites, seven functional tests, and a negative control that fails at the expected fee-floor assertion without the fix. The commit also applies cleanly to the current
|
Apply the configured mining fee floor to coin-age priority selection. This path can otherwise include a transaction whose modified fee is below
blockmintxfee, although fee-based package selection enforces that floor. This follows the review suggestion on #439 to apply the floor generically.Compare each candidate's modified fee with the mining fee rate applied to its policy virtual size before building the priority queue. Transactions meeting the floor retain coin-age ordering. A skipped parent remains eligible for fee-based package selection when a descendant pays enough for the package. A zero floor permits zero modified fees; negative modified fees still require sufficient package sponsorship.
Based directly on
mining_priorityat1c3e5c6e8e73866348702a20d047b2fa105a07cc, as requested. One squashed commit. Scope is mining selection, source help, a hand-written release note, and regression tests; no generated files or relay-policy defaults change.The regression covers one-satoshi fee boundaries, priority ordering, manual fee deltas, zero floors, and a stranded parent obtaining a new fee-paying child. It uses the options available on the topic branch. The separate release-tip integration harness covers template fee overrides and the dust-penalty interaction with #438.
Validation of rebased head
c9a6b466ec4fdf2651461a0b822bbd2c4bb76093passed: standalone topic-branch build, 18 targeted unit suites, seven functional tests, and a negative control that fails at the fee-floor assertion without the fix. Python syntax andgit diff --checkalso pass.Release-tip assembly validation passed after applying this commit cleanly to
58398baf33e588779685ead478e6397bb28ed3d6: build, 18 targeted unit suites, eight functional variants, integration with #438's unchanged C++ fee-admission patch, and the negative control. This run uses the existing release-tip integration harness to exercise options absent from the topic branch. The legacy-wallet anchor variant was skipped because Berkeley DB is disabled. Validation infrastructure is outside this PR.