This is a simple PR that updates the block policy estimator’s MIN_BUCKET_FEERATE
constant to be identical to the policy DEFAULT_MIN_RELAY_TX_FEE
.
It also enables the fee estimator to record transactions with a fee rate up to the DEFAULT_MIN_RELAY_TX_FEE
in its stats, which effectively allows the estimator to return sub-1 sat/vB fee rate estimates.
The change is correct because the estimator creates buckets of fee rates from
MIN_BUCKET_FEERATE
,
MIN_BUCKET_FEERATE
+ FEE_SPACING
,
MIN_BUCKET_FEERATE
+ 2 * FEE_SPACING
,
… up to MAX_BUCKET_FEERATE
.
This means it will record sub-1 sat/vB fee rates in the buckets and may return them as a fee rate estimate when that bucket is the lowest one with sufficient transactions for a given target.
Tying MIN_BUCKET_FEERATE
to DEFAULT_MIN_RELAY_TX_FEE
also makes it dynamic, so we don’t need to update the fee estimator when the minrelaytxfee
default is adjusted in the future.
For the mempool fee rate estimator in #31664, no update is needed since it uses the block assembler and because the node can see sub-1 sat/vB transactions, it can generate block templates with those and therefore return a fee rate estimate accordingly.