mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-01-19 14:53:43 +01:00
86beee0579Use waste metric for deciding which selection to use (Andrew Chow)b3df0caf7ctests: Test GetSelectionWaste (Andrew Chow)4f5ad43b1eAdd waste metric calculation function (Andrew Chow)935b3ddf72scripted-diff: tests: Use KnapsackSolver directly (Andrew Chow)6a023a6f90tests: Add KnapsackGroupOutputs helper function (Andrew Chow)d5069fc1aatests: Use SelectCoinsBnB directly instead of AttemptSelection (Andrew Chow)54de7b4746Allow the long term feerate to be configured, default of 10 sat/vb (Andrew Chow) Pull request description: Branch and Bound introduced a metric that we call waste. This metric is used as part of bounding the search tree, but it can be generalized to all coin selection solutions, including those with change. As such, this PR introduces the waste metric at a higher level so that we can run both of our coin selection algorithms (BnB and KnapsackSolver) and choose the one which has the least waste. In the event that both find a solution with the same change, we choose the one that spends more inputs. Also this PR sets the long term feerate to 10 sat/vb rather than using the 1008 block estimate. This allows the long term feerate to be the feerate that we switch between consolidating and optimizing for fees. This also removes a bug where the long term feerate would incorrectly be set to the fallback fee. While this doesn't matter prior to this PR, it does have an effect following this. The long term feerate can be configured by the user through a new `-consolidatefeerate` option. ACKs for top commit: Xekyo: reACK86beee0via git range-diff fe47558...86beee0 meshcollider: re-utACK86beee0579Tree-SHA512: 54b154b346538eca68ae2a3b83a033b495c1605c14f842bfc43ded2256b110983ce674c647fe753cf0305b1b178403d8d60d6d4203c7a712bec784be52e90d42