fee_policy: lower min relay fee from 1 sat/byte to 0.1 s/b
- minrelayfee is still server-reported, but the clamps are changed from [1, 50] to [0.1, 50] sat/vbyte - dynamic feerates coming from the estimator are still clamped to [1, 1500] sat/vbyte ref https://github.com/bitcoin/bitcoin/pull/33106
This commit is contained in:
@@ -325,14 +325,14 @@ def construct_script(
|
||||
|
||||
def relayfee(network: 'Network' = None) -> int:
|
||||
"""Returns feerate in sat/kbyte."""
|
||||
from .fee_policy import FEERATE_DEFAULT_RELAY, FEERATE_MAX_RELAY
|
||||
from .fee_policy import FEERATE_MIN_RELAY, FEERATE_DEFAULT_RELAY, FEERATE_MAX_RELAY
|
||||
if network and network.relay_fee is not None:
|
||||
fee = network.relay_fee
|
||||
else:
|
||||
fee = FEERATE_DEFAULT_RELAY
|
||||
# sanity safeguards, as network.relay_fee is coming from a server:
|
||||
fee = min(fee, FEERATE_MAX_RELAY)
|
||||
fee = max(fee, FEERATE_DEFAULT_RELAY)
|
||||
fee = max(fee, FEERATE_MIN_RELAY)
|
||||
return fee
|
||||
|
||||
|
||||
|
||||
@@ -25,8 +25,10 @@ FEERATE_MAX_DYNAMIC = 1500000
|
||||
FEERATE_WARNING_HIGH_FEE = 600000
|
||||
FEERATE_FALLBACK_STATIC_FEE = 150000
|
||||
FEERATE_REGTEST_STATIC_FEE = FEERATE_FALLBACK_STATIC_FEE # hardcoded fee used on regtest
|
||||
FEERATE_DEFAULT_RELAY = 1000
|
||||
FEERATE_MIN_RELAY = 100
|
||||
FEERATE_DEFAULT_RELAY = 1000 # conservative "min relay fee"
|
||||
FEERATE_MAX_RELAY = 50000
|
||||
assert FEERATE_MIN_RELAY <= FEERATE_DEFAULT_RELAY <= FEERATE_MAX_RELAY
|
||||
|
||||
# warn user if fee/amount for on-chain tx is higher than this
|
||||
FEE_RATIO_HIGH_WARNING = 0.05
|
||||
@@ -288,6 +290,8 @@ def impose_hard_limits_on_fee(func):
|
||||
if fee is None:
|
||||
return fee
|
||||
fee = min(FEERATE_MAX_DYNAMIC, fee)
|
||||
# Clamp dynamic feerates with conservative min relay fee,
|
||||
# to ensure txs propagate well:
|
||||
fee = max(FEERATE_DEFAULT_RELAY, fee)
|
||||
return fee
|
||||
return get_fee_within_limits
|
||||
@@ -359,7 +363,7 @@ class FeeHistogram:
|
||||
slot = min(item[1], bytes_limit-bytes_current)
|
||||
bytes_current += slot
|
||||
capped_histogram.append([
|
||||
max(FEERATE_DEFAULT_RELAY/1000, item[0]), # clamped to [FEERATE_DEFAULT_RELAY/1000,inf[
|
||||
max(FEERATE_MIN_RELAY/1000, item[0]), # clamped to [FEERATE_MIN_RELAY/1000,inf[
|
||||
slot, # width of bucket
|
||||
bytes_current, # cumulative depth at far end of bucket
|
||||
])
|
||||
|
||||
Reference in New Issue
Block a user