chainreg: use feerate estimator in regtest, simnet

If feeurl is not provided and LND is running in bitcoind or btcd mode, use
fee estimator provided by bitcoind or btcd instead of using static fee estimator
(which always returns 50 sats/vbyte).

This enables simulating high feerate environment in regtest and simnet not only
via feeurl, but also by filling mempool with high feerate transactions, which is
closer to what happens in mainnet.

Also skip creating bitcoind or btcd fee estimator, if feeurl is provided. Before
LND logged both "Initializing bitcoind backed fee estimator" and "Using external
fee estimator" if running in bitcoind mode with feeurl provided, but actually
feeurl was used, so this is not a change of behavior.
This commit is contained in:
Boris Nagaev 2024-11-07 14:01:13 -03:00
parent ae32c29deb
commit b89387a6da
No known key found for this signature in database

View File

@ -385,8 +385,7 @@ func NewPartialChainControl(cfg *Config) (*PartialChainControl, func(), error) {
)
cc.ChainSource = bitcoindConn.NewBitcoindClient()
// If we're not in regtest mode, then we'll attempt to use a
// proper fee estimator for testnet.
// Initialize config to connect to bitcoind RPC.
rpcConfig := &rpcclient.ConnConfig{
Host: bitcoindHost,
User: bitcoindMode.RPCUser,
@ -396,7 +395,9 @@ func NewPartialChainControl(cfg *Config) (*PartialChainControl, func(), error) {
DisableTLS: true,
HTTPPostMode: true,
}
if !cfg.Bitcoin.RegTest {
// If feeurl is not provided, use bitcoind's fee estimator.
if cfg.Fee.URL == "" {
log.Infof("Initializing bitcoind backed fee estimator "+
"in %s mode", bitcoindMode.EstimateMode)
@ -660,9 +661,8 @@ func NewPartialChainControl(cfg *Config) (*PartialChainControl, func(), error) {
return checkOutboundPeers(chainRPC.Client)
}
// If we're not in simnet or regtest mode, then we'll attempt
// to use a proper fee estimator for testnet.
if !cfg.Bitcoin.SimNet && !cfg.Bitcoin.RegTest {
// If feeurl is not provided, use btcd's fee estimator.
if cfg.Fee.URL == "" {
log.Info("Initializing btcd backed fee estimator")
// Finally, we'll re-initialize the fee estimator, as