core

package
v0.0.0-...-0b08b37 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 4, 2022 License: MIT Imports: 27 Imported by: 0

Documentation

Overview

Copyright (C) 2015-2018 Lightning Labs and The Lightning Network Developers Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Copyright (C) 2015-2018 Lightning Labs and The Lightning Network Developers Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Index

Constants

View Source
const (
	ErrLndNotFound = errors.Error("lnd command not found. Please install lnd to use conduit")
	ErrLndVersion  = errors.Error("lnd --version called. Gracefully exiting now...")
)

Variables

This section is empty.

Functions

func InitLogger

func InitLogger(config *Config) (zerolog.Logger, error)

InitLogger creates a new instance of the `zerolog.Logger` type. If `console_out` is true, it will output the logs to the console as well as the logfile

func Main

func Main(shutdownInterceptor *intercept.Interceptor, cfg *Config, log zerolog.Logger) error

Main is the true entry point for Conduit

func NewSubLogger

func NewSubLogger(l *zerolog.Logger, subsystem string) *subLogger

NewSubLogger takes a `zerolog.Logger` and string for the name of the subsystem and creates a `subLogger` for this subsystem

Types

type Config

type Config struct {
	DefaultDir            bool     `yaml:"DefaultDir" long:"defaultdir" description:"Whether Conduit writes files to default directory or not"`
	ConduitDir            string   `yaml:"ConduitDir" long:"conduitdir" description:"Path to conduit configuration file"`
	ConsoleOutput         bool     `yaml:"ConsoleOutput" long:"console-output" description:"Whether or not Conduit prints the log to the console"`
	ShowVersion           bool     `short:"v" long:"version" description:"Display version information and exit"`
	LndConfigPath         string   `short:"C" long:"configfile" description:"Path to configuration file"`
	LndShowVersion        bool     `short:"V" long:"lnd-version" description:"Display LND version information and exit"`
	LndDataDir            string   `short:"b" long:"datadir" description:"The directory to store lnd's data within"`
	LndSyncFreelist       bool     `` /* 233-byte string literal not displayed */
	LndTLSCertPath        string   `long:"tlscertpath" description:"Path to write the TLS certificate for lnd's RPC and REST services"`
	LndTLSKeyPath         string   `long:"tlskeypath" description:"Path to write the TLS private key for lnd's RPC and REST services"`
	LndTLSExtraIPs        []string `long:"tlsextraip" description:"Adds an extra ip to the generated certificate"`
	LndTLSExtraDomains    []string `long:"tlsextradomain" description:"Adds an extra domain to the generated certificate"`
	LndTLSAutoRefresh     bool     `long:"tlsautorefresh" description:"Re-generate TLS certificate and key if the IPs or domains are changed"`
	LndTLSDisableAutofill bool     `` /* 173-byte string literal not displayed */
	LndTLSCertDuration    string   `long:"tlscertduration" description:"The duration for which the auto-generated TLS certificate will be valid for"`
	LndNoMacaroons        bool     `` /* 133-byte string literal not displayed */
	LndAdminMacPath       string   `long:"adminmacaroonpath" description:"Path to write the admin macaroon for lnd's RPC and REST services if it doesn't exist"`
	LndReadMacPath        string   `` /* 130-byte string literal not displayed */
	LndInvoiceMacPath     string   `` /* 126-byte string literal not displayed */
	LndLogDir             string   `long:"logdir" description:"Directory to log output."`
	LndMaxLogFiles        string   `long:"maxlogfiles" description:"Maximum logfiles to keep (0 for no rotation)"`
	LndMaxLogFileSize     string   `long:"maxlogfilesize" description:"Maximum logfile size in MB"`
	LndAcceptorTimeout    string   `` /* 136-byte string literal not displayed */
	LndLetsEncryptDir     string   `long:"letsencryptdir" description:"The directory to store Let's Encrypt certificates within"`
	LndLetsEncryptListen  string   `` /* 471-byte string literal not displayed */
	LndLetsEncryptDomain  string   `` /* 184-byte string literal not displayed */
	LndRawRPCListeners    []string `long:"rpclisten" description:"Add an interface/port/socket to listen for RPC connections"`
	LndRawRESTListeners   []string `long:"restlisten" description:"Add an interface/port/socket to listen for REST connections"`
	LndRawListeners       []string `long:"listen" description:"Add an interface/port to listen for peer connections"`
	LndRawExternalIPs     []string `` /* 200-byte string literal not displayed */
	LndExternalHosts      []string `long:"externalhosts" description:"A set of hosts that should be periodically resolved to announce IPs for"`
	LndRestCORS           []string `long:"restcors" description:"Add an ip:port/hostname to allow cross origin access from. To allow all origins, set as \"*\"."`
	LndDisableListen      bool     `long:"nolisten" description:"Disable listening for incoming peer connections"`
	LndDisableRest        bool     `long:"norest" description:"Disable REST API"`
	LndDisableRestTLS     bool     `long:"no-rest-tls" description:"Disable TLS for REST connections"`
	LndWSPingInterval     string   `` /* 156-byte string literal not displayed */
	LndWSPongWait         string   `` /* 158-byte string literal not displayed */
	LndNAT                bool     `` /* 210-byte string literal not displayed */
	LndMinBackoff         string   `long:"minbackoff" description:"Shortest backoff when reconnecting to persistent peers. Valid time units are {s, m, h}."`
	LndMaxBackoff         string   `long:"maxbackoff" description:"Longest backoff when reconnecting to persistent peers. Valid time units are {s, m, h}."`
	LndConnectionTimeout  string   `long:"connectiontimeout" description:"The timeout value for network connections. Valid time units are {ms, s, m, h}."`
	LndDebugLevel         string   `` /* 290-byte string literal not displayed */
	LndCPUProfile         string   `long:"cpuprofile" description:"Write CPU profile to the specified file"`
	LndProfile            string   `long:"profile" description:"Enable HTTP profiling on either a port or host:port"`
	LndUnsafeDisconnect   bool     `` /* 166-byte string literal not displayed */
	LndUnsafeReplay       bool     `` /* 157-byte string literal not displayed */
	LndMaxPendingChannels string   `long:"maxpendingchannels" description:"The maximum number of incoming pending channels permitted per peer."`
	LndBackupFilePath     string   `long:"backupfilepath" description:"The target location of the channel backup file"`
	LndFeeURL             string   `` /* 207-byte string literal not displayed */

	LndBitcoinActive              bool     `long:"bitcoin.active" description:"If the chain should be active or not."`
	LndBitcoinChainDir            string   `long:"bitcoin.chaindir" description:"The directory to store the chain's data within."`
	LndBitcoinNode                string   `` /* 173-byte string literal not displayed */
	LndBitcoinMainNet             bool     `long:"bitcoin.mainnet" description:"Use the main network"`
	LndBitcoinTestNet3            bool     `long:"bitcoin.testnet" description:"Use the test network"`
	LndBitcoinSimNet              bool     `long:"bitcoin.simnet" description:"Use the simulation test network"`
	LndBitcoinRegTest             bool     `long:"bitcoin.regtest" description:"Use the regression test network"`
	LndBitcoinSigNet              bool     `long:"bitcoin.signet" description:"Use the signet test network"`
	LndBitcoinSigNetChallenge     string   `` /* 196-byte string literal not displayed */
	LndBitcoinSigNetSeedNode      []string `` /* 148-byte string literal not displayed */
	LndBitcoinDefaultNumChanConfs string   `` /* 205-byte string literal not displayed */
	LndBitcoinDefaultRemoteDelay  string   `` /* 256-byte string literal not displayed */
	LndBitcoinMaxLocalDelay       string   `` /* 232-byte string literal not displayed */
	LndBitcoinMinHTLCIn           string   `long:"bitcoin.minhtlc" description:"The smallest HTLC we are willing to accept on our channels, in millisatoshi"`
	LndBitcoinMinHTLCOut          string   `long:"bitcoin.minhtlcout" description:"The smallest HTLC we are willing to send out on our channels, in millisatoshi"`
	LndBitcoinBaseFee             string   `long:"bitcoin.basefee" description:"The base fee in millisatoshi we will charge for forwarding payments on our channels"`
	LndBitcoinFeeRate             string   `` /* 199-byte string literal not displayed */
	LndBitcoinTimeLockDelta       string   `long:"bitcoin.timelockdelta" description:"The CLTV delta we will subtract from a forwarded HTLC's timelock value"`
	LndBitcoinDNSSeeds            []string `` /* 333-byte string literal not displayed */

	LndBtcdDir        string `long:"btcd.dir" description:"The base directory that contains the node's data, logs, configuration file, etc."`
	LndBtcdRPCHost    string `` /* 161-byte string literal not displayed */
	LndBtcdRPCUser    string `long:"btcd.rpcuser" description:"Username for RPC connections"`
	LndBtcdRPCPass    string `long:"btcd.rpcpass" default-mask:"-" description:"Password for RPC connections"`
	LndBtcdRPCCert    string `long:"btcd.rpccert" description:"File containing the daemon's certificate file"`
	LndBtcdRawRPCCert string `` /* 151-byte string literal not displayed */

	LndBitcoindDir                string `long:"bitcoind.dir" description:"The base directory that contains the node's data, logs, configuration file, etc."`
	LndBitcoindRPCHost            string `` /* 165-byte string literal not displayed */
	LndBitcoindRPCUser            string `long:"bitcoind.rpcuser" description:"Username for RPC connections"`
	LndBitcoindRPCPass            string `long:"bitcoind.rpcpass" default-mask:"-" description:"Password for RPC connections"`
	LndBitcoindZMQPubRawBlock     string `long:"bitcoind.zmqpubrawblock" description:"The address listening for ZMQ connections to deliver raw block notifications"`
	LndBitcoindZMQPubRawTx        string `long:"bitcoind.zmqpubrawtx" description:"The address listening for ZMQ connections to deliver raw transaction notifications"`
	LndBitcoindEstimateMode       string `long:"bitcoind.estimatemode" description:"The fee estimate mode. Must be either ECONOMICAL or CONSERVATIVE."`
	LndBitcoindPrunedNodeMaxPeers string `` /* 184-byte string literal not displayed */

	LndNeutrinoAddPeers           []string `short:"a" long:"neutrino.addpeer" description:"Add a peer to connect with at startup"`
	LndNeutrinoConnectPeers       []string `long:"neutrino.connect" description:"Connect only to the specified peers at startup"`
	LndNeutrinoMaxPeers           string   `long:"neutrino.maxpeers" description:"Max number of inbound and outbound peers"`
	LndNeutrinoBanDuration        string   `` /* 127-byte string literal not displayed */
	LndNeutrinoBanThreshold       string   `long:"neutrino.banthreshold" description:"Maximum allowed ban score before disconnecting and banning misbehaving peers."`
	LndNeutrinoFeeURL             string   `` /* 180-byte string literal not displayed */
	LndNeutrinoAssertFilterHeader string   `` /* 262-byte string literal not displayed */
	LndNeutrinoUserAgentName      string   `long:"neutrino.useragentname" description:"Used to help identify ourselves to other bitcoin peers"`
	LndNeutrinoUserAgentVersion   string   `long:"neutrino.useragentversion" description:"Used to help identify ourselves to other bitcoin peers"`
	LndNeutrinoValidateChannels   bool     `` /* 467-byte string literal not displayed */
	LndNeutrinoBroadcastTimeout   string   `` /* 126-byte string literal not displayed */
	LndNeutrinoPersistFilters     bool     `` /* 126-byte string literal not displayed */

	LndLitecoinActive              bool     `long:"litecoin.active" description:"If the chain should be active or not."`
	LndLitecoinChainDir            string   `long:"litecoin.chaindir" description:"The directory to store the chain's data within."`
	LndLitecoinNode                string   `` /* 174-byte string literal not displayed */
	LndLitecoinMainNet             bool     `long:"litecoin.mainnet" description:"Use the main network"`
	LndLitecoinTestNet3            bool     `long:"litecoin.testnet" description:"Use the test network"`
	LndLitecoinSimNet              bool     `long:"litecoin.simnet" description:"Use the simulation test network"`
	LndLitecoinRegTest             bool     `long:"litecoin.regtest" description:"Use the regression test network"`
	LndLitecoinSigNet              bool     `long:"litecoin.signet" description:"Use the signet test network"`
	LndLitecoinSigNetChallenge     string   `` /* 197-byte string literal not displayed */
	LndLitecoinSigNetSeedNode      []string `` /* 149-byte string literal not displayed */
	LndLitecoinDefaultNumChanConfs string   `` /* 206-byte string literal not displayed */
	LndLitecoinDefaultRemoteDelay  string   `` /* 257-byte string literal not displayed */
	LndLitecoinMaxLocalDelay       string   `` /* 233-byte string literal not displayed */
	LndLitecoinMinHTLCIn           string   `long:"litecoin.minhtlc" description:"The smallest HTLC we are willing to accept on our channels, in millisatoshi"`
	LndLitecoinMinHTLCOut          string   `long:"litecoin.minhtlcout" description:"The smallest HTLC we are willing to send out on our channels, in millisatoshi"`
	LndLitecoinBaseFee             string   `long:"litecoin.basefee" description:"The base fee in millisatoshi we will charge for forwarding payments on our channels"`
	LndLitecoinFeeRate             string   `` /* 200-byte string literal not displayed */
	LndLitecoinTimeLockDelta       string   `long:"litecoin.timelockdelta" description:"The CLTV delta we will subtract from a forwarded HTLC's timelock value"`
	LndLitecoinDNSSeeds            []string `` /* 334-byte string literal not displayed */

	LndLtcdDir        string `long:"ltcd.dir" description:"The base directory that contains the node's data, logs, configuration file, etc."`
	LndLtcdRPCHost    string `` /* 161-byte string literal not displayed */
	LndLtcdRPCUser    string `long:"ltcd.rpcuser" description:"Username for RPC connections"`
	LndLtcdRPCPass    string `long:"ltcd.rpcpass" default-mask:"-" description:"Password for RPC connections"`
	LndLtcdRPCCert    string `long:"ltcd.rpccert" description:"File containing the daemon's certificate file"`
	LndLtcdRawRPCCert string `` /* 151-byte string literal not displayed */

	LndLitecoindDir                string `long:"litecoind.dir" description:"The base directory that contains the node's data, logs, configuration file, etc."`
	LndLitecoindRPCHost            string `` /* 166-byte string literal not displayed */
	LndLitecoindRPCUser            string `long:"litecoind.rpcuser" description:"Username for RPC connections"`
	LndLitecoindRPCPass            string `long:"litecoind.rpcpass" default-mask:"-" description:"Password for RPC connections"`
	LndLitecoindZMQPubRawBlock     string `long:"litecoind.zmqpubrawblock" description:"The address listening for ZMQ connections to deliver raw block notifications"`
	LndLitecoindZMQPubRawTx        string `long:"litecoind.zmqpubrawtx" description:"The address listening for ZMQ connections to deliver raw transaction notifications"`
	LndLitecoindEstimateMode       string `long:"litecoind.estimatemode" description:"The fee estimate mode. Must be either ECONOMICAL or CONSERVATIVE."`
	LndLitecoindPrunedNodeMaxPeers string `` /* 185-byte string literal not displayed */

	LndBlockCacheSize string `long:"blockcachesize" description:"The maximum capacity of the block cache"`

	LndAutopilotActive         string            `long:"autopilot.active" description:"If the autopilot agent should be active or not."`
	LndAutopilotHeuristic      map[string]string `long:"autopilot.heuristic" description:"Heuristic to activate, and the weight to give it during scoring."`
	LndAutopilotMaxChannels    string            `long:"autopilot.maxchannels" description:"The maximum number of channels that should be created"`
	LndAutopilotAllocation     string            `` /* 131-byte string literal not displayed */
	LndAutopilotMinChannelSize string            `long:"autopilot.minchansize" description:"The smallest channel that the autopilot agent should create"`
	LndAutopilotMaxChannelSize string            `long:"autopilot.maxchansize" description:"The largest channel that the autopilot agent should create"`
	LndAutopilotPrivate        bool              `` /* 168-byte string literal not displayed */
	LndAutopilotMinConfs       string            `` /* 161-byte string literal not displayed */
	LndAutopilotConfTarget     string            `long:"autopilot.conftarget" description:"The confirmation target (in blocks) for channels opened by autopilot."`

	LndTorActive                      bool   `long:"tor.active" description:"Allow outbound and inbound connections to be routed through Tor"`
	LndTorSOCKS                       string `long:"tor.socks" description:"The host:port that Tor's exposed SOCKS5 proxy is listening on"`
	LndTorDNS                         string `` /* 130-byte string literal not displayed */
	LndTorStreamIsolation             bool   `long:"tor.streamisolation" description:"Enable Tor stream isolation by randomizing user credentials for each connection."`
	LndTorSkipProxyForClearNetTargets bool   `` /* 139-byte string literal not displayed */
	LndTorControl                     string `long:"tor.control" description:"The host:port that Tor is listening on for Tor control connections"`
	LndTorTargetIPAddress             string `long:"tor.targetipaddress" description:"IP address that Tor should use as the target of the hidden service"`
	LndTorPassword                    string `` /* 210-byte string literal not displayed */
	LndTorV2                          bool   `long:"tor.v2" description:"Automatically set up a v2 onion service to listen for inbound connections"`
	LndTorV3                          bool   `long:"tor.v3" description:"Automatically set up a v3 onion service to listen for inbound connections"`
	LndTorPrivateKeyPath              string `long:"tor.privatekeypath" description:"The path to the private key of the onion service being created"`
	LndTorWatchtowerKeyPath           string `long:"tor.watchtowerkeypath" description:"The path to the private key of the watchtower onion service being created"`

	LndSignRPCSignerMacPath         string `long:"signrpc.signermacaroonpath" description:"Path to the signer macaroon"`
	LndWalletRPCWalletKitMacPath    string `long:"walletrpc.walletkitmacaroonpath" description:"Path to the wallet kit macaroon"`
	LndChainRPCChainNotifierMacPath string `long:"chainrpc.notifiermacaroonpath" description:"Path to the chain notifier macaroon"`
	LndRouterRPCRouterMacPath       string `long:"routerrpc.routermacaroonpath" description:"Path to the router macaroon"`
	LndRouterRPCMinRtProb           string `long:"routerrpc.minrtprob" description:"Minimum required route success probability to attempt the payment"`
	LndRouterRPCAPrioriHopProb      string `` /* 133-byte string literal not displayed */
	LndRouterRPCAPrioriWeight       string `` /* 142-byte string literal not displayed */
	LndRouterRPCPenaltyHalfLife     string `` /* 134-byte string literal not displayed */
	LndRouterRPCAttemptCost         string `long:"routerrpc.attemptcost" description:"The fixed (virtual) cost in sats of a failed payment attempt"`
	LndRouterRPCAttemptCostPPM      string `` /* 172-byte string literal not displayed */
	LndRouterRPCMaxMcHistory        string `long:"routerrpc.maxmchistory" description:"the maximum number of payment results that are held on disk by mission control"`
	LndRouterRPCMcFlushInterval     string `long:"routerrpc.mcflushinterval" description:"the timer interval to use to flush mission control state to the DB"`

	LndHodlExitSettle     bool `` /* 137-byte string literal not displayed */
	LndHodlAddIncoming    bool `long:"hodl.add-incoming" description:"Instructs the node to drop incoming ADDs before processing them in the incoming link"`
	LndHodlSettleIncoming bool `` /* 129-byte string literal not displayed */
	LndHodlFailIncoming   bool `long:"hodl.fail-incoming" description:"Instructs the node to drop incoming FAILs before processing them in the incoming link"`
	LndHodlAddOutgoing    bool `long:"hodl.add-outgoing" description:"Instructs the node to drop outgoing ADDs before applying them to the channel state"`
	LndHodlSettleOutgoing bool `` /* 127-byte string literal not displayed */
	LndHodlFailOutgoing   bool `long:"hodl.fail-outgoing" description:"Instructs the node to drop outgoing FAILs before applying them to the channel state"`
	LndHodlCommit         bool `` /* 169-byte string literal not displayed */
	LndHodlBogusSettle    bool `long:"hodl.bogus-settle" description:"Instructs the node to settle back any incoming HTLC with a bogus preimage"`

	LndNoNetBootstrap                bool   `long:"nobootstrap" description:"If true, then automatic network bootstrapping will not be attempted."`
	LndNoSeedBackup                  bool   `` /* 205-byte string literal not displayed */
	LndWalletUnlockPasswordFile      string `` /* 394-byte string literal not displayed */
	LndWalletUnlockAllowCreate       bool   `` /* 136-byte string literal not displayed */
	LndResetWalletTransactions       bool   `` /* 342-byte string literal not displayed */
	LndCoinSelectionStrategy         string `` /* 142-byte string literal not displayed */
	LndPaymentsExpirationGracePeriod string `` /* 190-byte string literal not displayed */
	LndTrickleDelay                  string `long:"trickledelay" description:"Time in milliseconds between each release of announcements to the network"`
	LndChanEnableTimeout             string `` /* 214-byte string literal not displayed */
	LndChanDisableTimeout            string `` /* 338-byte string literal not displayed */
	LndChanStatusSampleInterval      string `` /* 168-byte string literal not displayed */
	LndHeightHintCacheQueryDisable   bool   `` /* 329-byte string literal not displayed */
	LndAlias                         string `long:"alias" description:"The node alias. Used as a moniker by peers and intelligence services"`
	LndColor                         string `` /* 139-byte string literal not displayed */
	LndMinChanSize                   string `` /* 148-byte string literal not displayed */
	LndMaxChanSize                   string `` /* 146-byte string literal not displayed */
	LndCoopCloseTargetConfs          string `` /* 243-byte string literal not displayed */
	LndChannelCommitInterval         string `` /* 262-byte string literal not displayed */
	LndChannelCommitBatchSize        string `` /* 143-byte string literal not displayed */
	LndDefaultRemoteMaxHtlcs         string `` /* 243-byte string literal not displayed */
	LndNumGraphSyncPeers             string `` /* 184-byte string literal not displayed */
	LndHistoricalSyncInterval        string `` /* 213-byte string literal not displayed */
	LndIgnoreHistoricalGossipFilters bool   `` /* 240-byte string literal not displayed */
	LndRejectPush                    bool   `` /* 170-byte string literal not displayed */
	LndRejectHTLC                    bool   `` /* 203-byte string literal not displayed */
	LndStaggerInitialReconnect       bool   `` /* 246-byte string literal not displayed */
	LndMaxOutgoingCltvExpiry         string `long:"max-cltv-expiry" description:"The maximum number of blocks funds could be locked up for when forwarding payments."`
	LndMaxChannelFeeAllocation       string `` /* 224-byte string literal not displayed */
	LndMaxCommitFeeRateAnchors       string `` /* 204-byte string literal not displayed */
	LndDryRunMigration               bool   `` /* 230-byte string literal not displayed */
	LndEnableUpfrontShutdown         bool   `` /* 397-byte string literal not displayed */
	LndAcceptKeySend                 bool   `long:"accept-keysend" description:"If true, spontaneous payments through keysend will be accepted. [experimental]"`
	LndAcceptAMP                     bool   `long:"accept-amp" description:"If true, spontaneous payments via AMP will be accepted."`
	LndKeysendHoldTime               string `` /* 219-byte string literal not displayed */
	LndGcCanceledInvoicesOnStartup   bool   `long:"gc-canceled-invoices-on-startup" description:"If true, we'll attempt to garbage collect canceled invoices upon start."`
	LndGcCanceledInvoicesOnTheFly    bool   `long:"gc-canceled-invoices-on-the-fly" description:"If true, we'll delete newly canceled invoices on the fly."`
	LndDustThreshold                 string `` /* 129-byte string literal not displayed */

	LndInvoicesHoldExpiryDelta string `` /* 265-byte string literal not displayed */

	LndRoutingAssumeChannelValid  bool `` /* 206-byte string literal not displayed */
	LndRoutingStrictZombiePruning bool `` /* 205-byte string literal not displayed */

	LndGossipPinnedSyncersRaw      []string `` /* 387-byte string literal not displayed */
	LndGossipMaxChannelUpdateBurst string   `` /* 174-byte string literal not displayed */
	LndGossipChannelUpdateInterval string   `` /* 170-byte string literal not displayed */

	LndWorkersRead  string `` /* 140-byte string literal not displayed */
	LndWorkersWrite string `` /* 154-byte string literal not displayed */
	LndWorkersSig   string `` /* 149-byte string literal not displayed */

	LndCachesRejectCacheSize       string `` /* 229-byte string literal not displayed */
	LndCachesChannelCacheSize      string `` /* 212-byte string literal not displayed */
	LndCachesRPCGraphCacheDuration string `` /* 174-byte string literal not displayed */

	LndPrometheusListen string `long:"prometheus.listen" description:"the interface we should listen on for Prometheus"`
	LndPrometheusEnable bool   `long:"prometheus.enable" description:"enable Prometheus exporting of lnd gRPC performance metrics."`

	LndWtClientActive           bool     `long:"wtclient.active" description:"Whether the daemon should use private watchtowers to back up revoked channel states."`
	LndWtClientPrivateTowerURIs []string `` /* 272-byte string literal not displayed */
	LndWtClientSweepFeeRate     string   `` /* 153-byte string literal not displayed */

	LndWatchtowerActive         bool     `long:"watchtower.active" description:"If the watchtower should be active or not"`
	LndWatchtowerTowerDir       string   `long:"watchtower.towerdir" description:"Directory of the watchtower.db"`
	LndWatchtowerRawListeners   []string `long:"watchtower.listen" description:"Add interfaces/ports to listen for peer connections"`
	LndWatchtowerRawExternalIPs []string `long:"watchtower.externalip" description:"Add interfaces/ports where the watchtower can accept peer connections"`
	LndWatchtowerReadTimeout    string   `` /* 141-byte string literal not displayed */
	LndWatchtowerWriteTimeout   string   `` /* 152-byte string literal not displayed */

	LndProtocolOptionsWumboChans            bool `` /* 127-byte string literal not displayed */
	LndProtocolOptionsNoAnchors             bool `long:"protocol.no-anchors" description:"disable support for anchor commitments"`
	LndProtocolOptionsNoScriptEnforcedLease bool `long:"protocol.no-script-enforced-lease" description:"disable support for script enforced lease commitments"`

	LndLegacyOnionFormat     bool `long:"legacy.onion" description:"force node to not advertise the new modern TLV onion format"`
	LndLegacyCommitmentTweak bool `long:"legacy.committweak" description:"force node to not advertise the new commitment format"`

	LndAllowCircularRoute bool `` /* 128-byte string literal not displayed */

	LndChainBackendHealthInterval string `long:"healthcheck.chainbackend.interval" description:"How often to run a health check."`
	LndChainBackendHealthAttempts string `` /* 157-byte string literal not displayed */
	LndChainBackendHealthTimeout  string `` /* 137-byte string literal not displayed */
	LndChainBackendHealthBackoff  string `long:"healthcheck.chainbackend.backoff" description:"The amount of time to back-off between failed health checks."`

	LndDiskHealthRequiredRemaining string `` /* 157-byte string literal not displayed */
	LndDiskHealthInterval          string `long:"healthcheck.diskspace.interval" description:"How often to run a health check."`
	LndDiskHealthAttempts          string `` /* 154-byte string literal not displayed */
	LndDiskHealthTimeout           string `` /* 134-byte string literal not displayed */
	LndDiskHealthBackoff           string `long:"healthcheck.diskspace.backoff" description:"The amount of time to back-off between failed health checks."`

	LndTLSHealthInterval string `long:"healthcheck.tls.interval" description:"How often to run a health check."`
	LndTLSHealthAttempts string `` /* 148-byte string literal not displayed */
	LndTLSHealthTimeout  string `` /* 128-byte string literal not displayed */
	LndTLSHealthBackoff  string `long:"healthcheck.tls.backoff" description:"The amount of time to back-off between failed health checks."`

	LndTorConnectionHealthInterval string `long:"healthcheck.torconnection.interval" description:"How often to run a health check."`
	LndTorConnectionHealthAttempts string `` /* 158-byte string literal not displayed */
	LndTorConnectionHealthTimeout  string `` /* 138-byte string literal not displayed */
	LndTorConnectionHealthBackoff  string `long:"healthcheck.torconnection.backoff" description:"The amount of time to back-off between failed health checks."`

	LndRemoteSignerHealthInterval string `long:"healthcheck.remotesigner.interval" description:"How often to run a health check."`
	LndRemoteSignerHealthAttempts string `` /* 157-byte string literal not displayed */
	LndRemoteSignerHealthTimeout  string `` /* 137-byte string literal not displayed */
	LndRemoteSignerHealthBackoff  string `long:"healthcheck.remotesigner.backoff" description:"The amount of time to back-off between failed health checks."`

	LndDBBackend             string `long:"db.backend" description:"The selected database backend."`
	LndDBBatchCommitInterval string `` /* 227-byte string literal not displayed */
	LndDBNoGraphCache        bool   `` /* 170-byte string literal not displayed */

	LndEtcdEmbedded           bool   `long:"db.etcd.embedded" description:"Use embedded etcd instance instead of the external one. Note: use for testing only."`
	LndEtcdEmbeddedClientPort string `long:"db.etcd.embedded_client_port" description:"Client port to use for the embedded instance. Note: use for testing only."`
	LndEtcdEmbeddedPeerPort   string `long:"db.etcd.embedded_peer_port" description:"Peer port to use for the embedded instance. Note: use for testing only."`
	LndEtcdEmbeddedLogFile    string `` /* 127-byte string literal not displayed */
	LndEtcdHost               string `long:"db.etcd.host" description:"Etcd database host."`
	LndEtcdUser               string `long:"db.etcd.user" description:"Etcd database user."`
	LndEtcdPass               string `long:"db.etcd.pass" description:"Password for the database user."`
	LndEtcdNamespace          string `long:"db.etcd.namespace" description:"The etcd namespace to use."`
	LndEtcdDisableTLS         bool   `long:"db.etcd.disabletls" description:"Disable TLS for etcd connection. Caution: use for development only."`
	LndEtcdCertFile           string `long:"db.etcd.cert_file" description:"Path to the TLS certificate for etcd RPC."`
	LndEtcdKeyFile            string `long:"db.etcd.key_file" description:"Path to the TLS private key for etcd RPC."`
	LndEtcdInsecureSkipVerify bool   `long:"db.etcd.insecure_skip_verify" description:"Whether we intend to skip TLS verification"`
	LndEtcdCollectStats       bool   `long:"db.etcd.collect_stats" description:"Whether to collect etcd commit stats."`
	LndEtcdMaxMsgSize         string `long:"db.etcd.max_msg_size" description:"The maximum message size in bytes that we may send to etcd."`

	LndBoltNoFreelistSync    bool   `` /* 282-byte string literal not displayed */
	LndBoltAutoCompact       bool   `` /* 373-byte string literal not displayed */
	LndBoltAutoCompactMinAge string `` /* 205-byte string literal not displayed */
	LndBoltDBTimeout         string `long:"db.bolt.dbtimeout" description:"Specify the timeout value used when opening the database."`

	LndPostgresDsn            string `long:"db.postgres.dsn" description:"Database connection string."`
	LndPostgresTimeout        string `long:"db.postgres.timeout" description:"Database connection timeout. Set to zero to disable."`
	LndPostgresMaxConnections string `` /* 130-byte string literal not displayed */

	LndClusterEnableLeaderElection bool   `long:"cluster.enable-leader-election" description:"Enables leader election if set."`
	LndClusterLeaderElector        string `long:"cluster.leader-elector" choice:"etcd" description:"Leader elector to use. Valid values: \"etcd\"."`
	LndClusterEtcdElectionPrefix   string `` /* 127-byte string literal not displayed */
	LndClusterID                   string `` /* 128-byte string literal not displayed */

	LndRPCMiddlewareEnable           bool     `long:"rpcmiddleware.enable" description:"Enable the RPC middleware interceptor functionality."`
	LndRPCMiddlewareInterceptTimeout string   `` /* 175-byte string literal not displayed */
	LndRPCMiddlewareMandatory        []string `` /* 234-byte string literal not displayed */

	Enable           bool   `` /* 287-byte string literal not displayed */
	RPCHost          string `long:"remotesigner.rpchost" description:"The remote signer's RPC host:port"`
	MacaroonPath     string `long:"remotesigner.macaroonpath" description:"The macaroon to use for authenticating with the remote signer"`
	TLSCertPath      string `long:"remotesigner.tlscertpath" description:"The TLS certificate to use for establishing the remote signer's identity"`
	Timeout          string `` /* 148-byte string literal not displayed */
	MigrateWatchOnly bool   `` /* 350-byte string literal not displayed */
}

Config is the object which will hold all of the config parameters

func InitConfig

func InitConfig(isTesting bool) (*Config, error)

InitConfig returns the `Config` struct with either default values, values specified in `config.yaml` or command line flags

func (*Config) GetConfigTagValues

func (c *Config) GetConfigTagValues() []string

GetConfigTagValues returns a map of the LND config parameters and there values as parsed from the command line

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL