multi: make ZmqReadDeadline configurable

Make the Bitcoind ZMQReadDeadline option configurable.
This commit is contained in:
Elle Mouton 2022-04-28 15:36:45 +02:00
parent 5a08788a05
commit c76d04ef91
No known key found for this signature in database
GPG key ID: D7D916376026F177
4 changed files with 21 additions and 11 deletions

View file

@ -409,7 +409,7 @@ func NewPartialChainControl(cfg *Config) (*PartialChainControl, func(), error) {
ZMQConfig: &chain.ZMQConfig{ ZMQConfig: &chain.ZMQConfig{
ZMQBlockHost: bitcoindMode.ZMQPubRawBlock, ZMQBlockHost: bitcoindMode.ZMQPubRawBlock,
ZMQTxHost: bitcoindMode.ZMQPubRawTx, ZMQTxHost: bitcoindMode.ZMQPubRawTx,
ZMQReadDeadline: 5 * time.Second, ZMQReadDeadline: bitcoindMode.ZMQReadDeadline,
}, },
Dialer: cfg.Dialer, Dialer: cfg.Dialer,
PrunedModeMaxPeers: bitcoindMode.PrunedNodeMaxPeers, PrunedModeMaxPeers: bitcoindMode.PrunedNodeMaxPeers,

View file

@ -83,6 +83,10 @@ const (
defaultTorV2PrivateKeyFilename = "v2_onion_private_key" defaultTorV2PrivateKeyFilename = "v2_onion_private_key"
defaultTorV3PrivateKeyFilename = "v3_onion_private_key" defaultTorV3PrivateKeyFilename = "v3_onion_private_key"
// defaultZMQReadDeadline is the default read deadline to be used for
// both the block and tx ZMQ subscriptions.
defaultZMQReadDeadline = 5 * time.Second
// DefaultAutogenValidity is the default validity of a self-signed // DefaultAutogenValidity is the default validity of a self-signed
// certificate. The value corresponds to 14 months // certificate. The value corresponds to 14 months
// (14 months * 30 days * 24 hours). // (14 months * 30 days * 24 hours).
@ -483,6 +487,7 @@ func DefaultConfig() Config {
RPCHost: defaultRPCHost, RPCHost: defaultRPCHost,
EstimateMode: defaultBitcoindEstimateMode, EstimateMode: defaultBitcoindEstimateMode,
PrunedNodeMaxPeers: defaultPrunedNodeMaxPeers, PrunedNodeMaxPeers: defaultPrunedNodeMaxPeers,
ZMQReadDeadline: defaultZMQReadDeadline,
}, },
Litecoin: &lncfg.Chain{ Litecoin: &lncfg.Chain{
MinHTLCIn: chainreg.DefaultLitecoinMinHTLCInMSat, MinHTLCIn: chainreg.DefaultLitecoinMinHTLCInMSat,

View file

@ -1,16 +1,19 @@
package lncfg package lncfg
import "time"
// Bitcoind holds the configuration options for the daemon's connection to // Bitcoind holds the configuration options for the daemon's connection to
// bitcoind. // bitcoind.
type Bitcoind struct { type Bitcoind struct {
Dir string `long:"dir" description:"The base directory that contains the node's data, logs, configuration file, etc."` Dir string `long:"dir" description:"The base directory that contains the node's data, logs, configuration file, etc."`
ConfigPath string `long:"config" description:"Configuration filepath. If not set, will default to the default filename under 'dir'."` ConfigPath string `long:"config" description:"Configuration filepath. If not set, will default to the default filename under 'dir'."`
RPCCookie string `long:"rpccookie" description:"Authentication cookie file for RPC connections. If not set, will default to .cookie under 'dir'."` RPCCookie string `long:"rpccookie" description:"Authentication cookie file for RPC connections. If not set, will default to .cookie under 'dir'."`
RPCHost string `long:"rpchost" description:"The daemon's rpc listening address. If a port is omitted, then the default port for the selected chain parameters will be used."` RPCHost string `long:"rpchost" description:"The daemon's rpc listening address. If a port is omitted, then the default port for the selected chain parameters will be used."`
RPCUser string `long:"rpcuser" description:"Username for RPC connections"` RPCUser string `long:"rpcuser" description:"Username for RPC connections"`
RPCPass string `long:"rpcpass" default-mask:"-" description:"Password for RPC connections"` RPCPass string `long:"rpcpass" default-mask:"-" description:"Password for RPC connections"`
ZMQPubRawBlock string `long:"zmqpubrawblock" description:"The address listening for ZMQ connections to deliver raw block notifications"` ZMQPubRawBlock string `long:"zmqpubrawblock" description:"The address listening for ZMQ connections to deliver raw block notifications"`
ZMQPubRawTx string `long:"zmqpubrawtx" description:"The address listening for ZMQ connections to deliver raw transaction notifications"` ZMQPubRawTx string `long:"zmqpubrawtx" description:"The address listening for ZMQ connections to deliver raw transaction notifications"`
EstimateMode string `long:"estimatemode" description:"The fee estimate mode. Must be either ECONOMICAL or CONSERVATIVE."` ZMQReadDeadline time.Duration `long:"zmqreaddeadline" description:"The read deadline for reading ZMQ messages from both the block and tx subscriptions"`
PrunedNodeMaxPeers int `long:"pruned-node-max-peers" description:"The maximum number of peers lnd will choose from the backend node to retrieve pruned blocks from. This only applies to pruned nodes."` EstimateMode string `long:"estimatemode" description:"The fee estimate mode. Must be either ECONOMICAL or CONSERVATIVE."`
PrunedNodeMaxPeers int `long:"pruned-node-max-peers" description:"The maximum number of peers lnd will choose from the backend node to retrieve pruned blocks from. This only applies to pruned nodes."`
} }

View file

@ -604,6 +604,7 @@ bitcoin.node=btcd
; likely won't need to be set (other than for a remote bitcoind instance). ; likely won't need to be set (other than for a remote bitcoind instance).
; bitcoind.zmqpubrawblock=tcp://127.0.0.1:28332 ; bitcoind.zmqpubrawblock=tcp://127.0.0.1:28332
; bitcoind.zmqpubrawtx=tcp://127.0.0.1:28333 ; bitcoind.zmqpubrawtx=tcp://127.0.0.1:28333
; bitcoind.zmqreaddeadline=10s
; Fee estimate mode for bitcoind. It must be either "ECONOMICAL" or "CONSERVATIVE". ; Fee estimate mode for bitcoind. It must be either "ECONOMICAL" or "CONSERVATIVE".
; If unset, the default value is "CONSERVATIVE". ; If unset, the default value is "CONSERVATIVE".
@ -811,6 +812,7 @@ litecoin.node=ltcd
; likely won't need to be set (other than for a remote litecoind instance). ; likely won't need to be set (other than for a remote litecoind instance).
; litecoind.zmqpubrawblock=tcp://127.0.0.1:28332 ; litecoind.zmqpubrawblock=tcp://127.0.0.1:28332
; litecoind.zmqpubrawtx=tcp://127.0.0.1:28333 ; litecoind.zmqpubrawtx=tcp://127.0.0.1:28333
; litecoind.zmqreaddeadline=10s
; Fee estimate mode for litecoind. It must be either "ECONOMICAL" or "CONSERVATIVE". ; Fee estimate mode for litecoind. It must be either "ECONOMICAL" or "CONSERVATIVE".
; If unset, the default value is "CONSERVATIVE". ; If unset, the default value is "CONSERVATIVE".