/ sample-lnd.conf
sample-lnd.conf
   1  ; Example configuration for lnd.
   2  ;
   3  ; The default location for this file is in ~/.lnd/lnd.conf on POSIX OSes,
   4  ; $LOCALAPPDATA/Lnd/lnd.conf on Windows,
   5  ; ~/Library/Application Support/Lnd/lnd.conf on Mac OS and $home/lnd/lnd.conf on
   6  ; Plan9.
   7  ; The default location of this file can be overwritten by specifying the
   8  ; --configfile= flag when starting lnd.
   9  ;
  10  ; boolean values can be specified as true/false or 1/0. Per default 
  11  ; booleans are always set to false.
  12  
  13  ; If only one value is specified for an option, then this is also the
  14  ; default value used by lnd. In case of multiple (example) values, the default 
  15  ; is explicitly mentioned. 
  16  ; If the part after the equal sign is empty then lnd has no default 
  17  ; for this option.
  18  
  19  [Application Options]
  20  
  21  ; The directory that lnd stores all wallet, chain, and channel related data
  22  ; within The default is ~/.lnd/data on POSIX OSes, $LOCALAPPDATA/Lnd/data on
  23  ; Windows, ~/Library/Application Support/Lnd/data on Mac OS, and $home/lnd/data
  24  ; on Plan9. Environment variables are expanded so they may be used. NOTE:
  25  ; Windows environment variables are typically %VARIABLE%, but they must be
  26  ; accessed with $VARIABLE here. Also, ~ is expanded to $LOCALAPPDATA on Windows.
  27  ; datadir=~/.lnd/data
  28  
  29  ; The directory that logs are stored in. The logs are auto-rotated by default.
  30  ; Rotated logs are compressed in place.
  31  ; logdir=~/.lnd/logs
  32  
  33  ; DEPRECATED: Use logging.file.max-files instead.
  34  ; Number of logfiles that the log rotation should keep. Setting it to 0 disables
  35  ; deletion of old log files.
  36  ; maxlogfiles=10
  37  ;
  38  ; DEPRECATED: Use logging.file.max-file-size instead.
  39  ; Max log file size in MB before it is rotated.
  40  ; maxlogfilesize=20
  41  
  42  ; Time after which an RPCAcceptor will time out and return false if
  43  ; it hasn't yet received a response.
  44  ; acceptortimeout=15s
  45  
  46  ; Path to TLS certificate for lnd's RPC and REST services.
  47  ; tlscertpath=~/.lnd/tls.cert
  48  
  49  ; Path to TLS private key for lnd's RPC and REST services.
  50  ; tlskeypath=~/.lnd/tls.key
  51  
  52  ; Adds an extra ip to the generated certificate. Setting multiple tlsextraip= entries is allowed.
  53  ; (old tls files must be deleted if changed)
  54  ; tlsextraip=
  55  
  56  ; Adds an extra domain to the generate certificate. Setting multiple tlsextradomain= entries is allowed.
  57  ; (old tls files must be deleted if changed)
  58  ; Default:
  59  ;   tlsextradomain=
  60  ; Example: (option can be specified multiple times):
  61  ;   tlsextradomain=my-node-domain.com
  62  
  63  ; If set, then all certs will automatically be refreshed if they're close to
  64  ; expiring, or if any parameters related to extra IPs or domains in the cert
  65  ; change.
  66  ; tlsautorefresh=false
  67  
  68  ; The duration from generating the self signed certificate to the certificate
  69  ; expiry date. Valid time units are {s, m, h}.
  70  ; The below value is about 14 months (14 * 30 * 24 = 10080)
  71  ; tlscertduration=10080h
  72  
  73  ; Do not include the interface IPs or the system hostname in TLS certificate,
  74  ; use first --tlsextradomain as Common Name instead, if set.
  75  ; tlsdisableautofill=false
  76  
  77  ; If set, the TLS private key will be encrypted to the node's seed.
  78  ; tlsencryptkey=false
  79  
  80  ; A list of domains for lnd to periodically resolve, and advertise the resolved
  81  ; IPs for the backing node. This is useful for users that only have a dynamic IP,
  82  ; or want to expose the node at a domain.
  83  ; Default:
  84  ;   externalhosts=
  85  ; Example (option can be specified multiple times):
  86  ;   externalhosts=my-node-domain.com
  87  ;   externalhosts=my-second-domain.com
  88  
  89  ; Sets the directory to store Let's Encrypt certificates within
  90  ; letsencryptdir=~/.lnd/letsencrypt
  91  
  92  ; The IP:port on which lnd will listen for Let's Encrypt challenges. Let's
  93  ; Encrypt will always try to contact on port 80. Often non-root processes are
  94  ; not allowed to bind to ports lower than 1024. This configuration option allows
  95  ; a different port to be used, but must be used in combination with port
  96  ; forwarding from port 80. This configuration can also be used to specify
  97  ; another IP address to listen on, for example an IPv6 address.
  98  ; Default:
  99  ;   letsencryptlisten=:80
 100  ; Example:
 101  ;   letsencryptlisten=localhost:8080
 102  
 103  ; Request a Let's Encrypt certificate for this domain. Note that the certificate
 104  ; is only requested and stored when the first rpc connection comes in.
 105  ; Default:
 106  ;   letsencryptdomain=
 107  ; Example:
 108  ;   letsencryptdomain=example.com
 109  
 110  ; Disable macaroon authentication. Macaroons are used as bearer credentials to
 111  ; authenticate all RPC access. If one wishes to opt out of macaroons, uncomment
 112  ; and set to true the line below.
 113  ; no-macaroons=false
 114  
 115  ; Enable free list syncing for the default bbolt database. This will decrease
 116  ; start up time, but can result in performance degradation for very large
 117  ; databases, and also result in higher memory usage. If "free list corruption"
 118  ; is detected, then this flag may resolve things.
 119  ; sync-freelist=false
 120  
 121  ; Path to write the admin macaroon for lnd's RPC and REST services if it
 122  ; doesn't exist. This can be set if one wishes to store the admin macaroon in a
 123  ; distinct location. By default, it is stored within lnd's network directory.
 124  ; Applications that are able to read this file, gain admin macaroon access.
 125  ; Default:
 126  ;   adminmacaroonpath=~/.lnd/data/chain/bitcoin/${network}/admin.macaroon
 127  ; Example:
 128  ;   adminmacaroonpath=~/.lnd/data/chain/bitcoin/mainnet/admin.macaroon
 129  
 130  ; Path to write the read-only macaroon for lnd's RPC and REST services if it
 131  ; doesn't exist. This can be set if one wishes to store the read-only macaroon
 132  ; in a distinct location. The read only macaroon allows users which can read
 133  ; the file to access RPCs which don't modify the state of the daemon. By
 134  ; default, it is stored within lnd's network directory.
 135  ; Default:
 136  ;   readonlymacaroonpath=~/.lnd/data/chain/bitcoin/${network}/readonly.macaroon
 137  ; Example:
 138  ;   readonlymacaroonpath=~/.lnd/data/chain/bitcoin/mainnet/readonly.macaroon
 139  
 140  ; Path to write the invoice macaroon for lnd's RPC and REST services if it
 141  ; doesn't exist. This can be set if one wishes to store the invoice macaroon in
 142  ; a distinct location. By default, it is stored within lnd's network directory.
 143  ; The invoice macaroon allows users which can read the file to gain read and
 144  ; write access to all invoice related RPCs.
 145  ; Default:
 146  ;   invoicemacaroonpath=~/.lnd/data/chain/bitcoin/${network}/invoice.macaroon
 147  ; Example:
 148  ;   invoicemacaroonpath=~/.lnd/data/chain/bitcoin/mainnet/invoice.macaroon
 149  
 150  ; The strategy to use for selecting coins for wallet transactions. Options are
 151  ; 'largest' and 'random'.
 152  ; coin-selection-strategy=largest
 153  
 154  ; A period to wait before for closing channels with outgoing htlcs that have
 155  ; timed out and are a result of this nodes initiated payments. In addition to
 156  ; our current block based deadline, if specified this grace period will also be
 157  ; taken into account. Valid time units are {s, m, h}.
 158  ; Default:
 159  ;   payments-expiration-grace-period=0s
 160  ; Example:
 161  ;   payments-expiration-grace-period=30s
 162  
 163  ; Specify the interfaces to listen on for p2p connections. One listen
 164  ; address per line.
 165  ; Default:
 166  ;   listen=:9735
 167  ; Example (option can be specified multiple times):
 168  ;  All ipv4 on port 9735:
 169  ;   listen=0.0.0.0:9735
 170  
 171  ;  On all ipv4 interfaces on port 9735 and ipv6 localhost port 9736:
 172  ;   listen=0.0.0.0:9735
 173  ;   listen=[::1]:9736
 174  
 175  ; Disable listening for incoming p2p connections. This will override all
 176  ; listeners.
 177  ; nolisten=false
 178  
 179  ; Specify the interfaces to listen on for gRPC connections. One listen
 180  ; address per line.
 181  ; Default:
 182  ;   rpclisten=localhost:10009
 183  ; Example (option can be specified multiple times):
 184  ;  On ipv4 localhost port 10009 and ipv6 port 10010:
 185  ;   rpclisten=localhost:10009
 186  ;   rpclisten=[::1]:10010
 187  ;  On an Unix socket:
 188  ;   rpclisten=unix:///var/run/lnd/lnd-rpclistener.sock
 189  
 190  ; Specify the interfaces to listen on for REST connections. One listen
 191  ; address per line.
 192  ; Default:
 193  ;   restlisten=localhost:8080
 194  ; Example (option can be specified multiple times):
 195  ;  All ipv4 interfaces on port 8080:
 196  ;   restlisten=0.0.0.0:8080
 197  ;  On ipv4 localhost port 80 and 443:
 198  ;   restlisten=localhost:80
 199  ;   restlisten=localhost:443
 200  ;  On an Unix socket:
 201  ;   restlisten=unix:///var/run/lnd-restlistener.sock
 202  
 203  ; A series of domains to allow cross origin access from. This controls the CORs
 204  ; policy of the REST RPC proxy.
 205  ; Default:
 206  ;   restcors=
 207  ; Example (option can be specified multiple times):
 208  ;   restcors=https://my-special-site.com
 209  
 210  ; Adding an external IP will advertise your node to the network. This signals
 211  ; that your node is available to accept incoming channels. If you don't wish to
 212  ; advertise your node, this value doesn't need to be set. Unless specified
 213  ; (with host:port notation), the default port (9735) will be added to the
 214  ; address.
 215  ;
 216  ; NOTE: If you previously set one or more `externalip` entries and later
 217  ; remove `externalip` entirely from the config, lnd will continue to advertise
 218  ; the last known addresses from the previous run (they are stored with your node
 219  ; information). To stop advertising them, remove those addresses explicitly
 220  ; using the peers RPC/CLI, for example:
 221  ;   `lncli peers updatenodeannouncement --address_remove=1.2.3.4:9735`
 222  ; A restart is not required, a new node announcement will be broadcasted.
 223  ; externalip=
 224  ;
 225  ; Instead of explicitly stating your external IP address, you can also enable
 226  ; UPnP or NAT-PMP support on the daemon. Both techniques will be tried and
 227  ; require proper hardware support. In order to detect this hardware support,
 228  ; `lnd` uses a dependency that retrieves the router's gateway address by using
 229  ; different built-in binaries in each platform. Therefore, it is possible that
 230  ; we are unable to detect the hardware and `lnd` will exit with an error
 231  ; indicating this. This option will automatically retrieve your external IP
 232  ; address, even after it has changed in the case of dynamic IPs, and advertise
 233  ; it to the network using the ports the daemon is listening on. This does not
 234  ; support devices behind multiple NATs.
 235  ; nat=false
 236  
 237  ; Disable REST API.
 238  ; norest=false
 239  
 240  ; Disable TLS for the REST API.
 241  ; no-rest-tls=false
 242  
 243  ; Specify peer(s) to connect to first.
 244  ; addpeer=
 245  
 246  ; The ping interval for REST based WebSocket connections, set to 0 to disable
 247  ; sending ping messages from the server side. Valid time units are {s, m, h}.
 248  ; ws-ping-interval=30s
 249  
 250  ; The time we wait for a pong response message on REST based WebSocket
 251  ; connections before the connection is closed as inactive. Valid time units are
 252  ; {s, m, h}.
 253  ; ws-pong-wait=5s
 254  
 255  ; Shortest backoff when reconnecting to persistent peers. Valid time units are
 256  ; {s, m, h}.
 257  ; minbackoff=1s
 258  
 259  ; Longest backoff when reconnecting to persistent peers. Valid time units are
 260  ; {s, m, h}.
 261  ; maxbackoff=1h
 262  
 263  ; The timeout value for network connections.
 264  ; Valid units are {ms, s, m, h}.
 265  ; connectiontimeout=2m
 266  
 267  ; Debug logging level.
 268  ; Valid levels are {trace, debug, info, warn, error, critical}
 269  ; You may also specify <global-level>,<subsystem>=<level>,<subsystem2>=<level>,...
 270  ; to set log level for individual subsystems. Use lncli debuglevel --show to
 271  ; list available subsystems.
 272  ; Default:
 273  ;   debuglevel=info
 274  ; Example:
 275  ;   debuglevel=debug,PEER=info
 276  
 277  ; DEPRECATED: Use pprof.cpuprofile instead. Write CPU profile to the specified 
 278  ; file.
 279  ; cpuprofile=
 280  
 281  ; DEPRECATED: Use pprof.profile instead.Enable HTTP profiling on given port 
 282  ; -- NOTE port must be between 1024 and 65536. The profile can be access at:
 283  ; http://localhost:<PORT>/debug/pprof/. You can also provide it as host:port to
 284  ; enable profiling for remote debugging. For example 0.0.0.0:<PORT> to enable
 285  ; profiling for all interfaces on the given port.
 286  ; profile=
 287  
 288  ; DEPRECATED: Use pprof.blockingprofile instead. Enable a blocking profile to be
 289  ; obtained from the profiling port. A blocking profile can show where goroutines
 290  ; are blocking (stuck on mutexes, I/O, etc). This takes a value from 0 to 1,
 291  ; with 0 turning off the setting, and 1 sampling every blocking event (it's a
 292  ; rate value).
 293  ; blockingprofile=0
 294  
 295  ; DEPRECATED: Use pprof.mutexprofile instead. Enable a mutex profile to be 
 296  ; obtained from the profiling port. A mutex profile can show where goroutines 
 297  ; are blocked on mutexes, and which mutexes have high contention. This takes a
 298  ; value from 0 to 1, with 0 turning off the setting, and 1 sampling every mutex
 299  ; event (it's a rate value).
 300  ; mutexprofile=0
 301  
 302  
 303  ; DEPRECATED: Allows the rpcserver to intentionally disconnect from peers with
 304  ; open channels. THIS FLAG WILL BE REMOVED IN 0.10.0.
 305  ; unsafe-disconnect=false
 306  
 307  ; Causes a link to replay the adds on its commitment txn after starting up, this
 308  ; enables testing of the sphinx replay logic.
 309  ; unsafe-replay=false
 310  
 311  ; The maximum number of incoming pending channels permitted per peer.
 312  ; maxpendingchannels=1
 313  
 314  ; The target location of the channel backup file.
 315  ; Default:
 316  ;   backupfilepath=~/.lnd/data/chain/bitcoin/${network}/channel.backup
 317  ; Example:
 318  ;   backupfilepath=~/.lnd/data/chain/bitcoin/mainnet/channel.backup
 319  
 320  ; When false (default), old channel backups are archived to a designated location.
 321  ; When true, old backups are simply replaced.
 322  ; no-backup-archive=false
 323  
 324  ; The maximum capacity of the block cache in bytes. Increasing this will result
 325  ; in more blocks being kept in memory but will increase performance when the
 326  ; same block is required multiple times.
 327  ; The default value below is 20 MB (1024 * 1024 * 20)
 328  ; blockcachesize=20971520
 329  
 330  ; DEPRECATED: Use 'fee.url' option. Optional URL for external fee estimation.
 331  ; If no URL is specified, the method for fee estimation will depend on the
 332  ; chosen backend and network. Must be set for neutrino on mainnet.
 333  ; Default:
 334  ;   feeurl=
 335  ; Example:
 336  ;   feeurl=https://nodes.lightning.computer/fees/v1/btc-fee-estimates.json
 337  
 338  ; If true, then automatic network bootstrapping will not be attempted. This
 339  ; means that your node won't attempt to automatically seek out peers on the
 340  ; network.
 341  ; nobootstrap=false
 342  
 343  ; If true, NO SEED WILL BE EXPOSED -- EVER, AND THE WALLET WILL BE ENCRYPTED
 344  ; USING THE DEFAULT PASSPHRASE. THIS FLAG IS ONLY FOR TESTING AND SHOULD NEVER
 345  ; BE USED ON MAINNET.
 346  ; noseedbackup=false
 347  
 348  ; The full path to a file (or pipe/device) that contains the password for
 349  ; unlocking the wallet; if set, no unlocking through RPC is possible and lnd
 350  ; will exit if no wallet exists or the password is incorrect; if
 351  ; wallet-unlock-allow-create is also set then lnd will ignore this flag if no
 352  ; wallet exists and allow a wallet to be created through RPC.
 353  ; Default:
 354  ;   wallet-unlock-password-file=
 355  ; Example:
 356  ;   wallet-unlock-password-file=/tmp/example.password
 357  
 358  ; Don't fail with an error if wallet-unlock-password-file is set but no wallet
 359  ; exists yet. Not recommended for auto-provisioned or high-security systems
 360  ; because the wallet creation RPC is unauthenticated and an attacker could
 361  ; inject a seed while lnd is in that state.
 362  ; wallet-unlock-allow-create=false
 363  
 364  ; Removes all transaction history from the on-chain wallet on startup, forcing a
 365  ; full chain rescan starting at the wallet's birthday. Implements the same
 366  ; functionality as btcwallet's dropwtxmgr command. Should be set to false after
 367  ; successful execution to avoid rescanning on every restart of lnd.
 368  ; reset-wallet-transactions=false
 369  
 370  ; The smallest channel size (in satoshis) that we should accept. Incoming
 371  ; channels smaller than this will be rejected.
 372  ; minchansize=20000
 373  
 374  ; The largest channel size (in satoshis) that we should accept. Incoming
 375  ; channels larger than this will be rejected. For non-Wumbo channels this
 376  ; limit remains 16777215 satoshis by default as specified in BOLT-0002.
 377  ; For wumbo channels this limit is 1,000,000,000 satoshis (10 BTC).
 378  ; Set this config option explicitly to restrict your maximum channel size
 379  ; to better align with your risk tolerance
 380  ; Default:
 381  ;   maxchansize=<see explanations above>
 382  ; Example:
 383  ;   maxchansize=10000000
 384  
 385  ; The target number of blocks in which a cooperative close initiated by a remote
 386  ; peer should be confirmed. This target is used to estimate the starting fee
 387  ; rate that will be used during fee negotiation with the peer. This target is
 388  ; also used for cooperative closes initiated locally if the --conf_target for
 389  ; the channel closure is not set.
 390  ; coop-close-target-confs=6
 391  
 392  ; The maximum time that is allowed to pass between receiving a channel state
 393  ; update and signing the next commitment. Setting this to a longer duration
 394  ; allows for more efficient channel operations at the cost of latency. This is
 395  ; capped at 1 hour.
 396  ; channel-commit-interval=50ms
 397  
 398  ; The maximum time that is allowed to pass while waiting for the remote party
 399  ; to revoke a locally initiated commitment state. Setting this to a longer
 400  ; duration if a slow response is expected from the remote party or large
 401  ; number of payments are attempted at the same time.
 402  ; pending-commit-interval=1m
 403  
 404  ; The maximum number of channel state updates that is accumulated before signing
 405  ; a new commitment.
 406  ; channel-commit-batch-size=10
 407  
 408  ; Keeps persistent record of all failed payment attempts for successfully
 409  ; settled payments.
 410  ; keep-failed-payment-attempts=false
 411  
 412  ; Persistently store the final resolution of incoming htlcs.
 413  ; store-final-htlc-resolutions=false
 414  
 415  ; The default max_htlc applied when opening or accepting channels. This value
 416  ; limits the number of concurrent HTLCs that the remote party can add to the
 417  ; commitment. The maximum possible value is 483.
 418  ; default-remote-max-htlcs=483
 419  
 420  ; The duration that a peer connection must be stable before attempting to send a
 421  ; channel update to re-enable or cancel a pending disables of the peer's channels
 422  ; on the network. 
 423  ; chan-enable-timeout=19m
 424  
 425  ; The duration that must elapse after first detecting that an already active
 426  ; channel is actually inactive and sending channel update disabling it to the
 427  ; network. The pending disable can be canceled if the peer reconnects and becomes
 428  ; stable for chan-enable-timeout before the disable update is sent.
 429  ; chan-disable-timeout=20m
 430  
 431  ; The polling interval between attempts to detect if an active channel has become
 432  ; inactive due to its peer going offline.
 433  ; chan-status-sample-interval=1m
 434  
 435  ; Disable queries from the height-hint cache to try to recover channels stuck in
 436  ; the pending close state. Disabling height hint queries may cause longer chain
 437  ; rescans, resulting in a performance hit. Unset this after channels are unstuck
 438  ; so you can get better performance again.
 439  ; height-hint-cache-query-disable=false
 440  
 441  ; The polling interval between historical graph sync attempts. Each historical
 442  ; graph sync attempt ensures we reconcile with the remote peer's graph from the
 443  ; genesis block. 
 444  ; historicalsyncinterval=1h
 445  
 446  ; If true, will not reply with historical data that matches the range specified
 447  ; by a remote peer's gossip_timestamp_filter. Doing so will result in lower
 448  ; memory and bandwidth requirements.
 449  ; ignore-historical-gossip-filters=false
 450  
 451  ; If true, lnd will not accept channel opening requests with non-zero push
 452  ; amounts. This should prevent accidental pushes to merchant nodes.
 453  ; rejectpush=false
 454  
 455  ; If true, lnd will not forward any HTLCs that are meant as onward payments. This
 456  ; option will still allow lnd to send HTLCs and receive HTLCs but lnd won't be
 457  ; used as a hop.
 458  ; rejecthtlc=false
 459  
 460  ; If true, all HTLCs will be held until they are handled by an interceptor
 461  ; requireinterceptor=false
 462  
 463  ; If true, lnd will also allow setting positive inbound fees. By default, lnd
 464  ; only allows to set negative inbound fees (an inbound "discount") to remain
 465  ; backwards compatible with senders whose implementations do not yet support
 466  ; inbound fees. Therefore, you should ONLY set this setting if you know what you
 467  ; are doing. [experimental]
 468  ; accept-positive-inbound-fees=false
 469  
 470  ; If true, will apply a randomized staggering between 0s and 30s when
 471  ; reconnecting to persistent peers on startup. The first 10 reconnections will be
 472  ; attempted instantly, regardless of the flag's value
 473  ; stagger-initial-reconnect=false
 474  
 475  ; The maximum number of blocks funds could be locked up for when forwarding
 476  ; payments. 
 477  ; max-cltv-expiry=2016
 478  
 479  ; The maximum percentage of total funds that can be allocated to a channel's
 480  ; commitment fee. This only applies for the initiator of the channel. Valid
 481  ; values are within [0.1, 1]. 
 482  ; max-channel-fee-allocation=0.5
 483  
 484  ; The maximum fee rate in sat/vbyte that will be used for commitments of
 485  ; channels of the anchors type. Must be large enough to ensure transaction
 486  ; propagation 
 487  ; max-commit-fee-rate-anchors=10
 488  
 489  ; DEPRECATED: This value will be deprecated please use the new setting 
 490  ; "channel-max-fee-exposure". This value is equivalent to the new fee exposure
 491  ; limit but was removed because the name was ambigious.
 492  ; dust-threshold=
 493  
 494  ; This value replaces the old 'dust-threshold' setting and defines the maximum
 495  ; amount of satoshis that a channel pays in fees in case the commitment 
 496  ; transaction is broadcasted. This is enforced in both directions either when
 497  ; we are the channel intiator hence paying the fees but also applies to the 
 498  ; channel fee if we are NOT the channel initiator. It is
 499  ; important to note that every HTLC adds fees to the channel state. Non-dust 
 500  ; HTLCs add just a new output onto the commitment transaction whereas dust 
 501  ; HTLCs are completely attributed the commitment fee. So this limit can also 
 502  ; influence adding new HTLCs onto the state. When the limit is reached we won't 
 503  ; allow any new HTLCs onto the channel state (outgoing and incoming). So 
 504  ; choosing a right limit here must be done with caution. Moreover this is a 
 505  ; limit for all channels universally meaning there is no difference made due to
 506  ; the channel size. So it is recommended to use the default value. However if
 507  ; you have a very small channel average size you might want to reduce this 
 508  ; value.
 509  ; WARNING: Setting this value too low might cause force closes because the 
 510  ; lightning protocol has no way to roll back a channel state when your peer 
 511  ; proposes a channel update which exceeds this limit. There are only two options 
 512  ; to resolve this situation, either increasing the limit or one side force 
 513  ; closes the channel.
 514  ; channel-max-fee-exposure=500000
 515  
 516  ; If true, lnd will abort committing a migration if it would otherwise have been
 517  ; successful. This leaves the database unmodified, and still compatible with the
 518  ; previously active version of lnd.
 519  ; dry-run-migration=false
 520  
 521  ; If true, option upfront shutdown script will be enabled. If peers that we open
 522  ; channels with support this feature, we will automatically set the script to
 523  ; which cooperative closes should be paid out to on channel open. This offers the
 524  ; partial protection of a channel peer disconnecting from us if cooperative
 525  ; close is attempted with a different script.
 526  ; enable-upfront-shutdown=false
 527  
 528  ; If true, spontaneous payments through keysend will be accepted.
 529  ; This is a temporary solution until AMP is implemented which is expected to be soon.
 530  ; This option will then become deprecated in favor of AMP.
 531  ; accept-keysend=false
 532  
 533  ; If non-zero, keysend payments are accepted but not immediately settled. If the
 534  ; payment isn't settled manually after the specified time, it is canceled
 535  ; automatically. [experimental]
 536  ; Default:
 537  ;   keysend-hold-time=0s
 538  ; Example:
 539  ;   keysend-hold-time=2s
 540  
 541  ; If true, spontaneous payments through AMP will be accepted. Payments to AMP
 542  ; invoices will be accepted regardless of this setting.
 543  ; accept-amp=false
 544  
 545  ; If true, we'll attempt to garbage collect canceled invoices upon start.
 546  ; gc-canceled-invoices-on-startup=false
 547  
 548  ; If true, we'll delete newly canceled invoices on the fly.
 549  ; gc-canceled-invoices-on-the-fly=false
 550  
 551  ; If true, our node will allow htlc forwards that arrive and depart on the same
 552  ; channel.
 553  ; allow-circular-route=false
 554  
 555  ; Time in milliseconds between each release of announcements to the network
 556  ; trickledelay=90000
 557  
 558  ; The number of peers that we should receive new graph updates from. This option
 559  ; can be tuned to save bandwidth for light clients or routing nodes. 
 560  ; numgraphsyncpeers=3
 561  
 562  ; The alias your node will use, which can be up to 32 UTF-8 characters in
 563  ; length.
 564  ; Default is the first 10-bytes of the node's pubkey. 
 565  ; 
 566  ; NOTE: If this is not set lnd will use the last known alias from the previous
 567  ; run.
 568  ;   alias=
 569  ; Example:
 570  ;   alias=My Lightning ☇
 571  
 572  ; The color of the node in hex format, used to customize node appearance in
 573  ; intelligence services.
 574  ;
 575  ; NOTE: If this is not set or is set to the default (#3399FF) lnd will use the 
 576  ; last known color from the previous run.
 577  ; color=#3399FF
 578  
 579  ; The maximum duration that the server will wait before timing out reading
 580  ; the headers of an HTTP request.
 581  ; http-header-timeout=5s
 582  
 583  ; The max number of incoming connections allowed in the server. Outbound
 584  ; connections are not restricted.
 585  ; num-restricted-slots=100
 586  
 587  ; If true, a peer will *not* be disconnected if a pong is not received in time
 588  ; or is mismatched. Defaults to false, meaning peers *will* be disconnected on
 589  ; pong failure.
 590  ; no-disconnect-on-pong-failure=false
 591  
 592  ; The address to which funds will be paid out during a cooperative channel
 593  ; close. This applies to all channels opened after this option is set, unless
 594  ; overridden for a specific channel opening.
 595  ;
 596  ; Note: If this option is set, any channel opening will fail if the peer does
 597  ; not explicitly advertise support for the upfront-shutdown feature bit.
 598  ; upfront-shutdown-address=
 599  
 600  
 601  [fee]
 602  
 603  ; Optional URL for external fee estimation. If no URL is specified, the method
 604  ; for fee estimation will depend on the chosen backend and network. Must be set
 605  ; for neutrino on mainnet.
 606  ; Default:
 607  ;   fee.url=
 608  ; Example:
 609  ;   fee.url=https://nodes.lightning.computer/fees/v1/btc-fee-estimates.json
 610  
 611  ; The minimum interval in which fees will be updated from the specified fee URL.
 612  ; fee.min-update-timeout=5m
 613  
 614  ; The maximum interval in which fees will be updated from the specified fee URL.
 615  ; fee.max-update-timeout=20m
 616  
 617  
 618  [prometheus]
 619  
 620  ; If true, lnd will start the Prometheus exporter. Prometheus flags are
 621  ; behind a build/compile flag and are not available by default. lnd must be built
 622  ; with the monitoring tag; `make && make install tags=monitoring` to activate them.
 623  ; prometheus.enable=false
 624  
 625  ; Specify the interface to listen on for Prometheus connections.
 626  ; Default:
 627  ;   prometheus.listen=127.0.0.1:8989
 628  ; Example:
 629  ;   prometheus.listen=0.0.0.0:8989
 630  
 631  ; If true, then we'll export additional information that allows users to plot
 632  ; the processing latency, and total time spent across each RPC calls+service.
 633  ; This generates additional memory load for the Prometheus server, and will end
 634  ; up using more disk space over time.
 635  ; prometheus.perfhistograms=false
 636  
 637  
 638  [Bitcoin]
 639  
 640  ; DEPRECATED: If the Bitcoin chain should be active. This field is now ignored
 641  ; since only the Bitcoin chain is supported.
 642  ; bitcoin.active=false
 643  
 644  ; The directory to store the chain's data within.
 645  ; bitcoin.chaindir=~/.lnd/data/chain/bitcoin
 646  
 647  ; Use Bitcoin's main network.
 648  ; bitcoin.mainnet=false
 649  
 650  ; Use Bitcoin's test network.
 651  ; bitcoin.testnet=false
 652  ;
 653  ; Use Bitcoin's 4th version test network.
 654  ; bitcoin.testnet4=false
 655  ;
 656  ; Use Bitcoin's simulation test network
 657  ; bitcoin.simnet=false
 658  
 659  ; Use Bitcoin's regression test network
 660  ; bitcoin.regtest=false
 661  
 662  ; Use Bitcoin's signet test network
 663  ; bitcoin.signet=false
 664  
 665  ; Connect to a custom signet network defined by this challenge instead of using
 666  ; the global default signet test network -- Can be specified multiple times
 667  ; bitcoin.signetchallenge=
 668  
 669  ; Specify a seed node for the signet network instead of using the global default
 670  ; signet network seed nodes
 671  ; Default:
 672  ;   bitcoin.signetseednode=
 673  ; Example:
 674  ;   bitcoin.signetseednode=123.45.67.89
 675  
 676  ; Specify the chain back-end. Options are btcd, bitcoind and neutrino.
 677  ;
 678  ; NOTE: Please note that switching between a full back-end (btcd/bitcoind) and
 679  ; a light back-end (neutrino) is not supported.
 680  ; Default:
 681  ;   bitcoin.node=btcd
 682  ; Example:
 683  ;   bitcoin.node=bitcoind
 684  ;   bitcoin.node=neutrino
 685  
 686  ; The default number of confirmations a channel must have before it's considered
 687  ; open. We'll require any incoming channel requests to wait this many
 688  ; confirmations before we consider the channel active. If this is not set, we
 689  ; will scale the value linear to the channel size between 3 and 6. 
 690  ; The maximmum value of 6 confs is applied to all channels larger than 
 691  ; wumbo size (16777215 sats). The minimum value of 3 is applied to all channels
 692  ; smaller than 8388607 sats (16777215 * 3 / 6).
 693  ; Default:
 694  ;   bitcoin.defaultchanconfs=[3; 6]
 695  ; Example:
 696  ;   bitcoin.defaultchanconfs=3
 697  
 698  ; The default number of blocks we will require our channel counterparty to wait
 699  ; before accessing its funds in case of unilateral close. If this is not set, we
 700  ; will scale the value linear to the channel size between 144 and 2016. 
 701  ; The maximum value of 2016 blocks is applied to all channels larger than 
 702  ; wumbo size (16777215). The minimum value of 144 is applied to all channels
 703  ; smaller than 1198372 sats (16777215 * 144 / 2016).
 704  ; Default:
 705  ;   bitcoin.defaultremotedelay=[144; 2016]
 706  ; Example:
 707  ;   bitcoin.defaultremotedelay=144
 708  
 709  ; The maximum number of blocks we will limit the wait that our own funds are
 710  ; encumbered by in the case when our node unilaterally closes. If a remote peer
 711  ; proposes a channel with a delay above this amount, lnd will reject the
 712  ; channel.
 713  ; bitcoin.maxlocaldelay=2016
 714  
 715  ; The smallest HTLC we are willing to accept on our channels, in millisatoshi.
 716  ; bitcoin.minhtlc=1
 717  
 718  ; The smallest HTLC we are willing to send out on our channels, in millisatoshi.
 719  ; bitcoin.minhtlcout=1000
 720  
 721  ; The base fee in millisatoshi we will charge for forwarding payments on our
 722  ; channels.
 723  ; bitcoin.basefee=1000
 724  
 725  ; The fee rate used when forwarding payments on our channels. The total fee
 726  ; charged is basefee + (amount * feerate / 1000000), where amount is the
 727  ; forwarded amount.
 728  ; bitcoin.feerate=1
 729  
 730  ; The CLTV delta we will subtract from a forwarded HTLC's timelock value.
 731  ; bitcoin.timelockdelta=80
 732  
 733  ; The seed DNS server(s) to use for initial peer discovery. Must be specified as
 734  ; a '<primary_dns>[,<soa_primary_dns>]' tuple where the SOA address is needed
 735  ; for DNS resolution through Tor but is optional for clearnet users. Multiple
 736  ; tuples can be specified, will overwrite the default seed servers.
 737  ; The default seed servers are:
 738  ; Default:
 739  ;  mainnet:
 740  ;   bitcoin.dnsseed=nodes.lightning.directory,soa.nodes.lightning.directory
 741  ;   bitcoin.dnsseed=lseed.bitcoinstats.com
 742  ;  testnet:
 743  ;   bitcoin.dnsseed=test.nodes.lightning.directory,soa.nodes.lightning.directory
 744  ;
 745  ; Example for custom DNS servers:
 746  ;   bitcoin.dnsseed=seed1.test.lightning
 747  ;   bitcoin.dnsseed=seed2.test.lightning,soa.seed2.test.lightning
 748  
 749  
 750  [Btcd]
 751  
 752  ; The base directory that contains the node's data, logs, configuration file,
 753  ; etc.
 754  ; btcd.dir=~/.btcd
 755  
 756  ; The host that your local btcd daemon is listening on. By default, this
 757  ; setting is assumed to be localhost with the default port for the current
 758  ; network.
 759  ; btcd.rpchost=localhost
 760  
 761  ; Username for RPC connections to btcd. By default, lnd will attempt to
 762  ; automatically obtain the credentials, so this likely won't need to be set
 763  ; (other than for simnet mode).
 764  ; Default:
 765  ;   btcd.rpcuser=
 766  ; Example:
 767  ;   btcd.rpcuser=kek
 768  
 769  ; Password for RPC connections to btcd. By default, lnd will attempt to
 770  ; automatically obtain the credentials, so this likely won't need to be set
 771  ; (other than for simnet mode).
 772  ; Default:
 773  ;   btcd.rpcpass=
 774  ; Example:
 775  ;   btcd.rpcpass=kek
 776  
 777  ; File containing the daemon's certificate file. This only needs to be set if
 778  ; the node isn't on the same host as lnd.
 779  ; btcd.rpccert=~/.btcd/rpc.cert
 780  
 781  ; The raw bytes of the daemon's PEM-encoded certificate chain which will be used
 782  ; to authenticate the RPC connection. This only needs to be set if the btcd
 783  ; node is on a remote host.
 784  ; btcd.rawrpccert=
 785  
 786  
 787  [Bitcoind]
 788  
 789  ; The base directory that contains the node's data, logs, configuration file,
 790  ; etc.
 791  ; bitcoind.dir=~/.bitcoin
 792  
 793  ; Configuration filepath.
 794  ; Default:
 795  ;   bitcoind.config=
 796  ; Example:
 797  ;   bitcoind.config=~/.bitcoin/bitcoin.conf
 798  
 799  ; Authentication cookie file for RPC connections.
 800  ; Default:
 801  ;   bitcoind.rpccookie=
 802  ; Example:
 803  ;   bitcoind.rpccookie=~/.bitcoin/.cookie
 804  
 805  ; The host that your local bitcoind daemon is listening on. By default, this
 806  ; setting is assumed to be localhost with the default port for the current
 807  ; network.
 808  ; bitcoind.rpchost=localhost
 809  
 810  ; Username for RPC connections to bitcoind. By default, lnd will attempt to
 811  ; automatically obtain the credentials, so this likely won't need to be set
 812  ; (other than for a remote bitcoind instance).
 813  ; Default:
 814  ;   bitcoind.rpcuser=
 815  ; Example:
 816  ;   bitcoind.rpcuser=kek
 817  
 818  ; Password for RPC connections to bitcoind. By default, lnd will attempt to
 819  ; automatically obtain the credentials, so this likely won't need to be set
 820  ; (other than for a remote bitcoind instance).
 821  ; Default:
 822  ;   bitcoind.rpcpass=
 823  ; Example:
 824  ;   bitcoind.rpcpass=kek
 825  
 826  ; ZMQ socket which sends rawblock and rawtx notifications from bitcoind. By
 827  ; default, lnd will attempt to automatically obtain this information, so this
 828  ; likely won't need to be set (other than for a remote bitcoind instance).
 829  ; Default:
 830  ;   bitcoind.zmqpubrawblock=
 831  ; Example:
 832  ;   bitcoind.zmqpubrawblock=tcp://127.0.0.1:28332
 833  
 834  ; Default:
 835  ;   bitcoind.zmqpubrawtx=
 836  ; Example:
 837  ;   bitcoind.zmqpubrawtx=tcp://127.0.0.1:28333
 838  
 839  ; Default:
 840  ;   bitcoind.zmqreaddeadline=5s
 841  
 842  ; Use bitcoind's rpc interface to get block and transaction notifications
 843  ; instead of using the zmq interface. Only the rpcpolling option needs to
 844  ; be set in order to enable this, the rest of the options can be used to
 845  ; change the default values used for this configuration.
 846  ; bitcoind.rpcpolling=false
 847  
 848  ; Default:
 849  ;   bitcoind.blockpollinginterval=0s
 850  ; Example:
 851  ;   bitcoind.blockpollinginterval=1m
 852  
 853  ; Default:
 854  ;   bitcoind.txpollinginterval=0s
 855  ; Example:
 856  ;   bitcoind.txpollinginterval=30s
 857  
 858  ; Fee estimate mode for bitcoind. It must be either "ECONOMICAL" or "CONSERVATIVE".
 859  ; If unset, the default value is "CONSERVATIVE".
 860  ; bitcoind.estimatemode=CONSERVATIVE
 861  
 862  ; The maximum number of peers lnd will choose from the backend node to retrieve
 863  ; pruned blocks from. This only applies to pruned nodes.
 864  ; bitcoind.pruned-node-max-peers=4
 865  
 866  
 867  [neutrino]
 868  
 869  ; Connect only to the specified peers at startup. This creates a persistent
 870  ; connection to a target peer. This is recommended as there aren't many
 871  ; neutrino compliant full nodes on the test network yet.
 872  ; neutrino.connect=
 873  
 874  ; Max number of inbound and outbound peers.
 875  ; neutrino.maxpeers=8
 876  
 877  ; Add a peer to connect with at startup.
 878  ; neutrino.addpeer=
 879  
 880  ; How long to ban misbehaving peers. Valid time units are {s, m, h}. Minimum 1
 881  ; second.
 882  ;
 883  ; NOTE: This value is currently unused.
 884  ; neutrino.banduration=
 885  
 886  ; Maximum allowed ban score before disconnecting and banning misbehaving peers.
 887  ;
 888  ; NOTE: This value is currently unused.
 889  ; neutrino.banthreshold=
 890  
 891  ; Optional filter header in height:hash format to assert the state of neutrino's
 892  ; filter header chain on startup. If the assertion does not hold, then the
 893  ; filter header chain will be re-synced from the genesis block.
 894  ; neutrino.assertfilterheader=
 895  
 896  ; Used to help identify ourselves to other bitcoin peers.
 897  ; neutrino.useragentname=neutrino
 898  
 899  ; Used to help identify ourselves to other bitcoin peers.
 900  ; neutrino.useragentversion=0.12.0-beta
 901  
 902  ; The amount of time to wait before giving up on a transaction broadcast attempt.
 903  ; Default:
 904  ;   neutrino.broadcasttimeout=0s
 905  ; Example:
 906  ;   neutrino.broadcasttimeout=5s
 907  
 908  ; Whether compact filters fetched from the P2P network should be persisted to disk.
 909  ; neutrino.persistfilters=false
 910  
 911  ; Validate every channel in the graph during sync by downloading the containing
 912  ; block. This is the inverse of routing.assumechanvalid, meaning that for
 913  ; Neutrino the validation is turned off by default for massively increased graph
 914  ; sync performance. This speedup comes at the risk of using an unvalidated view
 915  ; of the network for routing. Overwrites the value of routing.assumechanvalid if
 916  ; Neutrino is used. 
 917  ; neutrino.validatechannels=false
 918  
 919  [autopilot]
 920  
 921  ; If the autopilot agent should be active or not. The autopilot agent will
 922  ; attempt to automatically open up channels to put your node in an advantageous
 923  ; position within the network graph.
 924  ; autopilot.active=false
 925  
 926  ; The maximum number of channels that should be created.
 927  ; autopilot.maxchannels=5
 928  
 929  ; The fraction of total funds that should be committed to automatic channel
 930  ; establishment. For example 0.6 means that 60% of the total funds available
 931  ; within the wallet should be used to automatically establish channels. The total
 932  ; amount of attempted channels will still respect the maxchannels param.
 933  ; autopilot.allocation=0.6
 934  
 935  ; Heuristic to activate, and the weight to give it during scoring. 
 936  ; Default:
 937  ;   autopilot.heuristic={top_centrality:1}
 938  ; Example:
 939  ;   autopilot.heuristic={preferential:1}
 940  
 941  ; The smallest channel that the autopilot agent should create 
 942  ; autopilot.minchansize=20000
 943  
 944  ; The largest channel that the autopilot agent should create 
 945  ; autopilot.maxchansize=16777215
 946  
 947  ; Whether the channels created by the autopilot agent should be private or not.
 948  ; Private channels won't be announced to the network.
 949  ; autopilot.private=false
 950  
 951  ; The minimum number of confirmations each of your inputs in funding transactions
 952  ; created by the autopilot agent must have. 
 953  ; autopilot.minconfs=1
 954  
 955  ; The confirmation target (in blocks) for channels opened by autopilot.
 956  ; autopilot.conftarget=3
 957  
 958  
 959  [tor]
 960  
 961  ; Allow outbound and inbound connections to be routed through Tor.
 962  ; tor.active=false
 963  
 964  ; Allow the node to connect to non-onion services directly via clearnet. This
 965  ; allows the node operator to use direct connections to peers not running behind
 966  ; Tor, thus allowing lower latency and better connection stability.
 967  ; WARNING: This option will reveal the source IP address of the node, and should
 968  ; be used only if privacy is not a concern.
 969  ; tor.skip-proxy-for-clearnet-targets=false
 970  
 971  ; The port that Tor's exposed SOCKS5 proxy is listening on. Using Tor allows
 972  ; outbound-only connections (listening will be disabled) -- NOTE port must be
 973  ; between 1024 and 65535.
 974  ; Default:
 975  ;   tor.socks=localhost:9050
 976  ; Example:
 977  ;   tor.socks=9050
 978  
 979  ; The DNS server as IP:PORT that Tor will use for SRV queries - NOTE must have
 980  ; TCP resolution enabled. The current active DNS server for Testnet listening is
 981  ; nodes.lightning.directory.
 982  ; Default:
 983  ;   tor.dns=soa.nodes.lightning.directory:53
 984  ; Example:
 985  ;   tor.dns=nodes.lightning.directory
 986  
 987  ; Enable Tor stream isolation by randomizing user credentials for each
 988  ; connection. With this mode active, each connection will use a new circuit.
 989  ; This means that multiple applications (other than lnd) using Tor won't be mixed
 990  ; in with lnd's traffic.
 991  ;
 992  ; This option may not be used while direct connections are enabled, since direct
 993  ; connections compromise source IP privacy by default.
 994  ; tor.streamisolation=false
 995  
 996  ; The host:port that Tor is listening on for Tor control connections.
 997  ; tor.control=localhost:9051
 998  
 999  ; IP address that Tor should use as the target of the hidden service.
1000  ; tor.targetipaddress=
1001  
1002  ; The password used to arrive at the HashedControlPassword for the control port.
1003  ; If provided, the HASHEDPASSWORD authentication method will be used instead of
1004  ; the SAFECOOKIE one.
1005  ; Default:
1006  ;   tor.password=
1007  ; Example:
1008  ;   tor.password=plsdonthackme
1009  
1010  ; Automatically set up a v2 onion service to listen for inbound connections.
1011  ; tor.v2=false
1012  
1013  ; Automatically set up a v3 onion service to listen for inbound connections.
1014  ; tor.v3=false
1015  
1016  ; The path to the private key of the onion service being created.
1017  ; Default:
1018  ;   tor.privatekeypath=
1019  ; Example:
1020  ;   tor.privatekeypath=/path/to/torkey
1021  
1022  ; The path to the private key of the watchtower onion service being created.
1023  ; Default:
1024  ;   tor.watchtowerkeypath=
1025  ; Example:
1026  ;   tor.watchtowerkeypath=/other/path/
1027  
1028  ; Instructs lnd to encrypt the private key using the wallet's seed.
1029  ; tor.encryptkey=false
1030  
1031  [logging]
1032  
1033  ; Whether to exclude the current build's commit hash from log lines. Note that
1034  ; the commit hash will not currently show up in all LND log lines as this new
1035  ; feature will take a few versions to propagate through the codebase.
1036  ; logging.no-commit-hash=false
1037  
1038  ; Disable logging to stdout and stderror.
1039  ; logging.console.disable=false
1040  
1041  ; Don't add timestamps to logs written to stdout and stderr.
1042  ; logging.console.no-timestamps=false
1043  
1044  ; Include the log call-site in the log line written to stdout
1045  ; and stderr. Options include 'off', 'short' and 'long'.
1046  ; Default:
1047  ;   logging.console.call-site=off
1048  ; Example:
1049  ;   logging.console.call-site=short
1050  
1051  ; Disable logging to the standard LND log file.
1052  ; logging.file.disable=false
1053  
1054  ; Number of log files that the log rotation should keep. Setting
1055  ; it to 0 disables deletion of old log files.
1056  ; logging.file.max-files=10
1057  
1058  ; Max log file size in MB before it is rotated.
1059  ; logging.file.max-file-size=20
1060  
1061  ; Compression algorithm to use when rotating logs.
1062  ; Default:
1063  ;   logging.file.compressor=gzip
1064  ; Example:
1065  ;   logging.file.compressor=zstd
1066  
1067  ; Don't add timestamps to logs written to the standard LND log file.
1068  ; logging.file.no-timestamps=false
1069  
1070  ; Include the log call-site in the log line written the standard LND
1071  ; log file. Options include 'off', 'short' and 'long'.
1072  ; Default:
1073  ;   logging.file.call-site=off
1074  ; Example:
1075  ;   logging.file.call-site=short
1076  
1077  [watchtower]
1078  
1079  ; Enable integrated watchtower listening on :9911 by default.
1080  ; watchtower.active=false
1081  
1082  ; Specify the interfaces to listen on for watchtower client connections. One
1083  ; listen address per line. If no port is specified the default port of 9911 will
1084  ; be added implicitly.
1085  ; Default:
1086  ;   watchtower.listen=
1087  ; Example (option can be specified multiple times):
1088  ; All ipv4 on port 9911:
1089  ;   watchtower.listen=0.0.0.0:9911
1090  ; On all ipv4 interfaces on port 9911 and ipv6 localhost port 9912:
1091  ;   watchtower.listen=0.0.0.0:9911
1092  ;   watchtower.listen=[::1]:9912
1093  
1094  ; Configure the external IP address of your watchtower. Setting this field does
1095  ; not have any behavioral changes to the tower or enable any sort of discovery,
1096  ; however it will make the full URI (pubkey@host:port) available via
1097  ; WatchtowerRPC.GetInfo and `lncli tower info`.
1098  ; Default:
1099  ;   watchtower.externalip=
1100  ; Example:
1101  ;   watchtower.externalip=1.2.3.4
1102  
1103  ; Configure the default watchtower data directory. The default directory is
1104  ; data/watchtower relative to the chosen lnddir. This can be useful if one needs
1105  ; to move the database to a separate volume with more storage. 
1106  ; Default:
1107  ;   watchtower.towerdir=~/.lnd/data/watchtower
1108  ; Example:
1109  ;   watchtower.towerdir=/path/to/towerdir
1110  
1111  ;   In this example, the database will be stored at: 
1112  ;   /path/to/towerdir/bitcoin/<network>/watchtower.db
1113      
1114  ; Duration the watchtower server will wait for messages to be received before
1115  ; hanging up on client connections.
1116  ; watchtower.readtimeout=15s
1117  
1118  ; Duration the watchtower server will wait for messages to be written before
1119  ; hanging up on client connections
1120  ; watchtower.writetimeout=15s
1121  
1122  
1123  [wtclient]
1124  
1125  ; Activate Watchtower Client. To get more information or configure watchtowers
1126  ; run `lncli wtclient -h`.
1127  ; wtclient.active=false
1128  
1129  ; Specify the fee rate with which justice transactions will be signed. This fee
1130  ; rate should be chosen as a maximum fee rate one is willing to pay in order to
1131  ; sweep funds if a breach occurs while being offline. The fee rate should be
1132  ; specified in sat/vbyte.
1133  ; wtclient.sweep-fee-rate=10
1134  
1135  ; The range over which to choose a random number of blocks to wait after the
1136  ; last channel of a session is closed before sending the DeleteSession message
1137  ; to the tower server. Note that setting this to a lower value will result in
1138  ; faster session cleanup _but_ that this comes along with reduced privacy from
1139  ; the tower server.
1140  ; wtclient.session-close-range=288
1141  
1142  ; The maximum number of updates to include in a tower session.
1143  ; wtclient.max-updates=1024
1144  
1145  ; The maximum number of back-up tasks that should be queued in memory before
1146  ; overflowing to disk.
1147  ; wtclient.max-tasks-in-mem-queue=2000
1148  
1149  
1150  [healthcheck]
1151  
1152  ; The number of times we should attempt to query our chain backend before
1153  ; gracefully shutting down. Set this value to 0 to disable this health check.
1154  ; healthcheck.chainbackend.attempts=3
1155  
1156  ; The amount of time we allow a call to our chain backend to take before we fail
1157  ; the attempt. This value must be >= 1s.
1158  ; healthcheck.chainbackend.timeout=30s
1159  
1160  ; The amount of time we should backoff between failed attempts to query chain
1161  ; backend. This value must be >= 1s.
1162  ; healthcheck.chainbackend.backoff=2m
1163  
1164  ; The amount of time we should wait between chain backend health checks. This
1165  ; value must be >= 1m.
1166  ; healthcheck.chainbackend.interval=1m
1167  
1168  ; The minimum ratio of free disk space to total capacity that we require.
1169  ; healthcheck.diskspace.diskrequired=0.1
1170  
1171  ; The number of times we should attempt to query our available disk space before
1172  ; gracefully shutting down. Set this value to 0 to disable this health check.
1173  ; Default:
1174  ;   healthcheck.diskspace.attempts=0
1175  ; Example:
1176  ;   healthcheck.diskspace.attempts=2
1177  
1178  ; The amount of time we allow a query for our available disk space to take
1179  ; before we fail the attempt. This value must be >= 1s.
1180  ; healthcheck.diskspace.timeout=5s
1181  
1182  ; The amount of time we should backoff between failed attempts to query
1183  ; available disk space. This value must be >= 1s.
1184  ; healthcheck.diskspace.backoff=1m
1185  
1186  ; The amount of time we should wait between disk space health checks. This
1187  ; value must be >= 1m.
1188  ; healthcheck.diskspace.interval=12h
1189  
1190  ; The number of times we should attempt to check for certificate expiration before
1191  ; gracefully shutting down. Set this value to 0 to disable this health check.
1192  ; Default:
1193  ;   healthcheck.tls.attempts=
1194  ; Example:
1195  ;   healthcheck.tls.attempts=2
1196  
1197  ; The amount of time we allow a query for certificate expiration to take
1198  ; before we fail the attempt. This value must be >= 1s.
1199  ; healthcheck.tls.timeout=5s
1200  
1201  ; The amount of time we should backoff between failed attempts to query
1202  ; certificate expiration. This value must be >= 1s.
1203  ; healthcheck.tls.backoff=1m
1204  
1205  ; The amount of time we should wait between certificate expiration health checks.
1206  ; This value must be >= 1m.
1207  ; healthcheck.tls.interval=1m
1208  
1209  ; The number of times we should attempt to check our tor connection before
1210  ; gracefully shutting down. Set this value to 0 to disable this health check.
1211  ; Default:
1212  ;   healthcheck.torconnection.attempts=
1213  ; Example:
1214  ;   healthcheck.torconnection.attempts=3
1215  
1216  ; The amount of time we allow a call to our tor connection to take before we
1217  ; fail the attempt. This value must be >= 1s.
1218  ; Default:
1219  ;   healthcheck.torconnection.timeout=5s
1220  
1221  ; The amount of time we should backoff between failed attempts to check tor
1222  ; connection. This value must be >= 1s.
1223  ; healthcheck.torconnection.backoff=1m
1224  
1225  ; The amount of time we should wait between tor connection health checks. This
1226  ; value must be >= 1m.
1227  ; healthcheck.torconnection.interval=1m
1228  
1229  ; The number of times we should attempt to check our remote signer RPC
1230  ; connection before gracefully shutting down. Set this value to 0 to disable
1231  ; this health check.
1232  ; healthcheck.remotesigner.attempts=1
1233  
1234  ; The amount of time we allow a call to our remote signer RPC connection to take
1235  ; before we fail the attempt. This value must be >= 1s.
1236  ; healthcheck.remotesigner.timeout=1s
1237  
1238  ; The amount of time we should backoff between failed attempts to check remote
1239  ; signer RPC connection. This value must be >= 1s.
1240  ; healthcheck.remotesigner.backoff=30s
1241  
1242  ; The amount of time we should wait between remote signer RPC connection health
1243  ; checks. This value must be >= 1m.
1244  ; healthcheck.remotesigner.interval=1m
1245  
1246  ; The number of times we should attempt to check the node's leader status
1247  ; before gracefully shutting down. Set this value to 0 to disable this health 
1248  ; check.
1249  ; healthcheck.leader.attempts=1
1250  
1251  ; The amount of time after the leader check times out due to unanswered RPC.
1252  ; This value must be >= 1s.
1253  ; healthcheck.leader.timeout=5s
1254  
1255  ; The amount of time we should backoff between failed attempts of leader checks.
1256  ; This value must be >= 1s.
1257  ; healthcheck.leader.backoff=5s
1258  
1259  ; The amount of time we should wait between leader checks. 
1260  ; This value must be >= 1m.
1261  ; healthcheck.leader.interval=1m
1262  
1263  
1264  
1265  [signrpc]
1266  
1267  ; Path to the signer macaroon.
1268  ; Default:
1269  ;   signrpc.signermacaroonpath=~/.lnd/data/chain/bitcoin/${network}/signer.macaroon
1270  ; Example:
1271  ;   signrpc.signermacaroonpath=~/.lnd/data/chain/bitcoin/mainnet/signer.macaroon
1272  
1273  
1274  [walletrpc]
1275  
1276  ; Path to the wallet kit macaroon.
1277  ; Default:
1278  ;   walletrpc.walletkitmacaroonpath=~/.lnd/data/chain/bitcoin/${network}/walletkit.macaroon
1279  ; Example:
1280  ;   walletrpc.walletkitmacaroonpath=~/.lnd/data/chain/bitcoin/mainnet/walletkit.macaroon
1281  
1282  
1283  [chainrpc]
1284  
1285  ; Path to the chain notifier macaroon.
1286  ; Default:
1287  ;   chainrpc.notifiermacaroonpath=~/.lnd/data/chain/bitcoin/${network}/chainnotifier.macaroon
1288  ; Example:
1289  ;   chainrpc.notifiermacaroonpath=~/.lnd/data/chain/bitcoin/mainnet/chainnotifier.macaroon
1290  
1291  
1292  [routerrpc]
1293  
1294  ; Probability estimator used for pathfinding. Two estimators are available:
1295  ; apriori and bimodal.
1296  ; Note that the bimodal estimator is experimental.
1297  ; Default:
1298  ;   routerrpc.estimator=apriori
1299  ; Example:
1300  ;   routerrpc.estimator=bimodal
1301  
1302  ; Minimum required route success probability to attempt the payment.
1303  ; routerrpc.minrtprob=0.01
1304  
1305  ; The maximum number of payment results that are held on disk by mission control.
1306  ; routerrpc.maxmchistory=1000
1307  
1308  ; The time interval with which the MC store state is flushed to the database.
1309  ; routerrpc.mcflushinterval=1s
1310  
1311  ; Path to the router macaroon.
1312  ; Default:
1313  ;   routerrpc.routermacaroonpath=~/.lnd/data/chain/bitcoin/${network}/router.macaroon
1314  ; Example:
1315  ;   routerrpc.routermacaroonpath=~/.lnd/data/chain/bitcoin/mainnet/router.macaroon
1316  
1317  ; The (virtual) fixed cost in sats of a failed payment attempt .
1318  ; routerrpc.attemptcost=100
1319  
1320  ; The (virtual) proportional cost in ppm of the total amount of a failed payment
1321  ; attempt.
1322  ; routerrpc.attemptcostppm=1000
1323  
1324  ; Assumed success probability of a hop in a route when no other information is
1325  ; available. 
1326  ; routerrpc.apriori.hopprob=0.6
1327  
1328  ; Weight of the a priori probability in success probability estimation. Valid
1329  ; values are in [0, 1]. 
1330  ; routerrpc.apriori.weight=0.5
1331  
1332  ; Defines the duration after which a penalized node or channel is back at 50%
1333  ; probability.
1334  ; routerrpc.apriori.penaltyhalflife=1h
1335  
1336  ; Defines the fraction of channels' capacities that is considered liquid in
1337  ; pathfinding, a value between [0.75-1.0]. A value of 1.0 disables this
1338  ; feature. 
1339  ; routerrpc.apriori.capacityfraction=0.9999
1340  
1341  ; Describes the scale over which channels still have some liquidity left on
1342  ; both channel ends. A very low value (compared to typical channel capacities)
1343  ; means that we assume unbalanced channels, a very high value means randomly
1344  ; balanced channels. Value in msat. 
1345  ; routerrpc.bimodal.scale=300000000
1346  
1347  ; Defines how strongly non-routed channels of forwarders should be taken into
1348  ; account for probability estimation. A weight of zero disables this feature.
1349  ; Valid values are in [0, 1]. 
1350  ; routerrpc.bimodal.nodeweight=0.2
1351  
1352  ; Defines the information decay of knowledge about previous successes and
1353  ; failures in channels. 
1354  ; routerrpc.bimodal.decaytime=168h
1355  
1356  ; If set, the router will send `Payment_INITIATED` for new payments, otherwise
1357  ; `Payment_In_FLIGHT` will be sent for compatibility concerns.
1358  ; routerrpc.usestatusinitiated=false
1359  
1360  ; Defines the maximum duration that the probing fee estimation is allowed to
1361  ; take.
1362  ; routerrpc.fee-estimation-timeout=1m
1363  
1364  [workers]
1365  
1366  ; Maximum number of concurrent read pool workers. This number should be
1367  ; proportional to the number of peers. 
1368  ; workers.read=100
1369  
1370  ; Maximum number of concurrent write pool workers. This number should be
1371  ; proportional to the number of CPUs on the host. 
1372  ; workers.write=8
1373  
1374  ; Maximum number of concurrent sig pool workers. This number should be
1375  ; proportional to the number of CPUs on the host. 
1376  ; workers.sig=8
1377  
1378  
1379  [caches]
1380  
1381  ; Maximum number of entries contained in the reject cache, which is used to speed
1382  ; up filtering of new channel announcements and channel updates from peers. Each
1383  ; entry requires 25 bytes. 
1384  ; caches.reject-cache-size=50000
1385  
1386  ; Maximum number of entries contained in the channel cache, which is used to
1387  ; reduce memory allocations from gossip queries from peers. Each entry requires
1388  ; roughly 2Kb. 
1389  ; caches.channel-cache-size=20000
1390  
1391  ; The duration that the response to DescribeGraph should be cached for. Setting
1392  ; the value to zero disables the cache. 
1393  ; Default:
1394  ;   caches.rpc-graph-cache-duration=
1395  ; Example:
1396  ;   caches.rpc-graph-cache-duration=10m
1397  
1398  
1399  [protocol]
1400  
1401  ; If set, then lnd will create and accept requests for channels larger than 0.16
1402  ; BTC
1403  ; protocol.wumbo-channels=false
1404  
1405  ; Set to disable support for anchor commitments. If not set, lnd will use anchor
1406  ; channels by default if the remote channel party supports them. Note that lnd
1407  ; will require 1 UTXO to be reserved for this channel type if it is enabled.
1408  ; (Deprecates the previous "protocol.anchors" setting.)
1409  ; protocol.no-anchors=false
1410  
1411  ; Set to disable support for script enforced lease channel commitments. If not
1412  ; set, lnd will accept these channels by default if the remote channel party
1413  ; proposes them. Note that lnd will require 1 UTXO to be reserved for this
1414  ; channel type if it is enabled.
1415  ; protocol.no-script-enforced-lease=false
1416  
1417  ; Set to enable support for option_scid_alias channels, which can be referred
1418  ; to by an alias instead of the confirmed ShortChannelID. Additionally, is
1419  ; needed to open zero-conf channels.
1420  ; protocol.option-scid-alias=false
1421  
1422  ; Set to enable support for zero-conf channels. This requires the
1423  ; option-scid-alias flag to also be set.
1424  ; protocol.zero-conf=false
1425  
1426  ; Set to disable support for using P2TR addresses (and beyond) for co-op
1427  ; closing.
1428  ; protocol.no-any-segwit=false
1429  
1430  ; Set to disable querying our peers for the timestamps of announcement
1431  ; messages and to disable responding to such queries
1432  ; protocol.no-timestamp-query-option=false
1433  
1434  ; Set to enable support for the experimental taproot channel type.
1435  ; protocol.simple-taproot-chans=false
1436  
1437  ; Set to enable support for the experimental taproot overlay channel type.
1438  ; protocol.simple-taproot-overlay-chans=false
1439  
1440  ; Set to disable blinded route forwarding.
1441  ; protocol.no-route-blinding=false
1442  
1443  ; Set to disable experimental accountability signaling.
1444  ; protocol.no-experimental-accountability=false
1445  
1446  ; DEPRECATED: Use protocol.no-experimental-accountability instead.
1447  ; Set to disable experimental endorsement signaling.
1448  ; protocol.no-experimental-endorsement=false
1449  
1450  ; Set to enable support for RBF based coop close.
1451  ; protocol.rbf-coop-close=false
1452  
1453  ; set to disable onion message support.
1454  ; protocol.no-onion-messages=false
1455  
1456  ; Set to handle messages of a particular type that falls outside of the
1457  ; custom message number range (i.e. 513 is onion messages). Note that you can
1458  ; set this option as many times as you want to support more than one custom
1459  ; message type.
1460  ; Default:
1461  ;   protocol.custom-message=
1462  ; Example:
1463  ;   protocol.custom-message=513
1464  
1465  ; Specifies feature bits — numbers defined in BOLT 9 — to advertise in the
1466  ; node's init message. Note that you can set this option as many times as you
1467  ; want to support more than one feature bit.
1468  ; Default:
1469  ;   protocol.custom-init=
1470  ; Example:
1471  ;   protocol.custom-init=39
1472  
1473  ; Specifies custom feature bits — numbers defined in BOLT 9 — to advertise in
1474  ; the node's announcement message. Note that you can set this option as many
1475  ; times as you want to support more than one feature bit.
1476  ; Default:
1477  ;   protocol.custom-nodeann=
1478  ; Example:
1479  ;   protocol.custom-nodeann=39
1480  
1481  ; Specifies custom feature bits — numbers defined in BOLT 9 — to advertise in
1482  ; the node's invoices. Note that you can set this option as many times as you
1483  ; want to support more than one feature bit.
1484  ; Default:
1485  ;   protocol.custom-invoice=
1486  ; Example:
1487  ;   protocol.custom-invoice=39
1488  
1489  [db]
1490  
1491  ; The selected database backend. The current default backend is "bolt". lnd
1492  ; also has experimental support for etcd, a replicated backend, postgres and
1493  ; sqlite.
1494  ; db.backend=bolt
1495  
1496  ; The maximum interval the graph database will wait between attempting to flush
1497  ; a batch of modifications to disk.
1498  ; db.batch-commit-interval=500ms
1499  
1500  ; Don't use the in-memory graph cache for path finding. Much slower but uses
1501  ; less RAM. Can only be used with a bolt database backend.
1502  ; db.no-graph-cache=false
1503  
1504  ; Specify whether the optional migration for pruning old revocation logs
1505  ; should be applied. This migration will only save disk space if there are open
1506  ; channels prior to lnd@v0.15.0.
1507  ; db.prune-revocation=false
1508  
1509  ; Specify whether the optional migration for garbage collecting the decayed
1510  ; sphinx logs should be applied. By default, the decayed log will be garbage
1511  ; collected.
1512  ; db.no-gc-decayed-log=false
1513  
1514  ; If set to true, then the to-local and to-remote output amount data of revoked
1515  ; commitment transactions will not be stored in the revocation log. Note that
1516  ; this flag can only be set if --wtclient.active is not set. It is not
1517  ; recommended to set this flag if you plan on ever setting wtclient.active in
1518  ; the future.
1519  ; db.no-rev-log-amt-data=false
1520  
1521  ; If set to true, native SQL will be used instead of KV emulation for tables
1522  ; that support it.
1523  ; Subsystems which support native SQL tables:
1524  ; - Invoices
1525  ; - Graph
1526  ; db.use-native-sql=false
1527  
1528  ; If set to true, the KV to native SQL migration will be skipped. Note that
1529  ; this option is intended for users who experience non-resolvable migration
1530  ; errors. Enabling after there is a non-resolvable migration error that resulted
1531  ; in an incomplete migration will cause that partial migration to be abandoned
1532  ; and ignored and an empty database will be used instead. Since invoices are
1533  ; currently the only native SQL database used, our channels will still work but
1534  ; the invoice history will be forgotten. This option has no effect if native SQL
1535  ; is not in use (db.use-native-sql=false).
1536  ; db.skip-native-sql-migration=false
1537  
1538  [etcd]
1539  
1540  ; Etcd database host. Supports multiple hosts separated by a comma.
1541  ; Default:
1542  ;   db.etcd.host=
1543  ; Example:
1544  ;   db.etcd.host=localhost:2379
1545  
1546  ; Etcd database user.
1547  ; Default:
1548  ;   db.etcd.user=
1549  ; Example:
1550  ;   db.etcd.user=userscopedforlnd
1551  
1552  ; Password for the database user.
1553  ; Default:
1554  ;   db.etcd.pass=
1555  ; Example:
1556  ;   db.etcd.pass=longandsekrit
1557  
1558  ; Etcd namespace to use.
1559  ; Default:
1560  ;   db.etcd.namespace=
1561  ; Example:
1562  ;   db.etcd.namespace=lnd
1563  
1564  ; Whether to disable the use of TLS for etcd.
1565  ; db.etcd.disabletls=false
1566  
1567  ; Path to the TLS certificate for etcd RPC.
1568  ; Default:
1569  ;   db.etcd.cert_file=
1570  ; Example:
1571  ;   db.etcd.cert_file=/key/path
1572  
1573  ; Path to the TLS private key for etcd RPC.
1574  ; Default:
1575  ;   db.etcd.key_file=
1576  ; Example:
1577  ;   db.etcd.key_file=/a/path
1578  
1579  ; Whether we intend to skip TLS verification
1580  ; db.etcd.insecure_skip_verify=false
1581  
1582  ; Whether to collect etcd commit stats.
1583  ; db.etcd.collect_stats=false
1584  
1585  ; If set LND will use an embedded etcd instance instead of the external one.
1586  ; Useful for testing.
1587  ; db.etcd.embedded=false
1588  
1589  ; If non zero, LND will use this as client port for the embedded etcd instance.
1590  ; Default:
1591  ;   db.etcd.embedded_client_port=
1592  ; Example:
1593  ;   db.etcd.embedded_client_port=1234
1594  
1595  ; If non zero, LND will use this as peer port for the embedded etcd instance.
1596  ; Default:
1597  ;   db.etcd.embedded_peer_port=
1598  ; Example:
1599  ;   db.etcd.embedded_peer_port=1235
1600  
1601  ; If set the embedded etcd instance will log to the specified file. Useful when
1602  ; testing with embedded etcd.
1603  ; Default:
1604  ;   db.etcd.embedded_log_file=
1605  ; Example:
1606  ;   db.etcd.embedded_log_file=/path/etcd.log
1607  
1608  ; The maximum message size in bytes that we may send to etcd. Defaults to 32 MiB.
1609  ; db.etcd.max_msg_size=33554432
1610  
1611  
1612  [postgres]
1613  
1614  ; Postgres connection string.
1615  ; Default:
1616  ;   db.postgres.dsn=
1617  ; Example:
1618  ;   db.postgres.dsn=postgres://lnd:lnd@localhost:45432/lnd?sslmode=disable
1619  
1620  ; Postgres connection timeout. Valid time units are {s, m, h}. Set to zero to
1621  ; disable.
1622  ; db.postgres.timeout=
1623  
1624  ; Postgres maximum number of connections. Set to zero for unlimited. It is
1625  ; recommended to set a limit that is below the server connection limit.
1626  ; Otherwise errors may occur in lnd under high-load conditions.
1627  ; Default:
1628  ;   db.postgres.maxconnections=50
1629  ; Example:
1630  ;   db.postgres.maxconnections=
1631  
1632  ; Whether to skip executing schema migrations.
1633  ; db.postgres.skipmigrations=false
1634  
1635  ; Use a global lock for channeldb access. This ensures only a single writer at
1636  ; a time but reduces concurrency. This is a temporary workaround until the
1637  ; revocation log is migrated to native SQL.
1638  ; db.postgres.channeldb-with-global-lock=false
1639  
1640  
1641  ; Use a global lock for wallet database access. This is a temporary workaround 
1642  ; until the wallet subsystem is upgraded to a native sql schema.
1643  ; db.postgres.walletdb-with-global-lock=true
1644  
1645  
1646  ; The maximum number of elements to use in a native-SQL batch query IN clause.
1647  ; db.postgres.query.max-batch-size=5000
1648  
1649  ; The maximum number of records to fetch at a time in a paginated query during
1650  ; native-SQL calls.
1651  ; db.postgres.query.max-page-size=10500
1652  
1653  [sqlite]
1654  
1655  ; Sqlite connection timeout. Valid time units are {s, m, h}. Set to zero to
1656  ; disable.
1657  ; Default:
1658  ;   db.sqlite.timeout=
1659  ; Example:
1660  ;   db.sqlite.timeout=0s
1661  
1662  ; Maximum number of connections to the sqlite db. Set to zero for unlimited.
1663  ; db.sqlite.maxconnections=2
1664  
1665  ; The maximum amount of time to wait to execute a query if the db is locked.
1666  ; db.sqlite.busytimeout=5s
1667  
1668  ; The maximum number of elements to use in a native-SQL batch query IN clause.
1669  ; db.sqlite.query.max-batch-size=250
1670  
1671  ; The maximum number of records to fetch at a time in a paginated query during
1672  ; native-SQL calls.
1673  ; db.sqlite.query.max-page-size=100
1674  
1675  ; Raw pragma option pairs to be used when opening the sqlite db. The flag
1676  ; can be specified multiple times to set multiple options.
1677  ; Default:
1678  ;   db.sqlite.pragmaoptions=
1679  ; Example (option can be specified multiple times):
1680  ;   db.sqlite.pragmaoptions=auto_vacuum=incremental
1681  ;   db.sqlite.pragmaoptions=temp_store=MEMORY
1682  
1683  ; Whether to skip executing schema migrations.
1684  ; db.sqlite.skipmigrations=false
1685  
1686  [bolt]
1687  
1688  ; If true, prevents the database from syncing its freelist to disk.
1689  ; db.bolt.nofreelistsync=false
1690  ;
1691  ; Whether the databases used within lnd should automatically be compacted on
1692  ; every startup (and if the database has the configured minimum age). This is
1693  ; disabled by default because it requires additional disk space to be available
1694  ; during the compaction that is freed afterwards. In general compaction leads to
1695  ; smaller database files.
1696  ; db.bolt.auto-compact=false
1697  
1698  ; How long ago the last compaction of a database file must be for it to be
1699  ; considered for auto compaction again. Can be set to 0 to compact on every
1700  ; startup. 
1701  ; Default:
1702  ;   db.bolt.auto-compact-min-age=168h
1703  ; Example:
1704  ;   db.bolt.auto-compact-min-age=0
1705  
1706  ; Specify the timeout to be used when opening the database.
1707  ; db.bolt.dbtimeout=1m
1708  
1709  
1710  [cluster]
1711  
1712  ; Enables leader election if set.
1713  ; cluster.enable-leader-election=false
1714  
1715  ; Leader elector to use. Valid values: "etcd".
1716  ; cluster.leader-elector=etcd
1717  
1718  ; Election key prefix when using etcd leader elector.
1719  ; cluster.etcd-election-prefix=/leader/
1720  
1721  ; Identifier for this node inside the cluster (used in leader election).
1722  ; Defaults to the hostname.
1723  ; cluster.id=example.com
1724  
1725  ; The session TTL in seconds after which a new leader is elected if the old
1726  ; leader is shut down, crashed or becomes unreachable.
1727  ; cluster.leader-session-ttl=90
1728  
1729  
1730  [rpcmiddleware]
1731  
1732  ; Enable the RPC middleware interceptor functionality.
1733  ; rpcmiddleware.enable=false
1734  
1735  ; Time after which a RPC middleware intercept request will time out and return
1736  ; an error if it hasn't yet received a response.
1737  ; rpcmiddleware.intercepttimeout=2s
1738  
1739  ; Add the named middleware to the list of mandatory middlewares. All RPC
1740  ; requests are blocked/denied if any of the mandatory middlewares is not
1741  ; registered. Can be specified multiple times.
1742  ; Default:
1743  ;   rpcmiddleware.addmandatory=
1744  ; Example:
1745  ;   rpcmiddleware.addmandatory=my-example-middleware
1746  ;   rpcmiddleware.addmandatory=other-mandatory-middleware
1747  
1748  
1749  [remotesigner]
1750  
1751  ; Use a remote signer for signing any on-chain related transactions or messages.
1752  ; Only recommended if local wallet is initialized as watch-only. Remote signer
1753  ; must use the same seed/root key as the local watch-only wallet but must have
1754  ; private keys.
1755  ; remotesigner.enable=false
1756  
1757  ; The remote signer's RPC host:port.
1758  ; Default:
1759  ;   remotesigner.rpchost=
1760  ; Example:
1761  ;   remotesigner.rpchost=remote.signer.lnd.host:10009
1762  
1763  ; The macaroon to use for authenticating with the remote signer.
1764  ; Default:
1765  ;   remotesigner.macaroonpath=
1766  ; Example:
1767  ;   remotesigner.macaroonpath=/path/to/remote/signer/admin.macaroon
1768  
1769  ; The TLS certificate to use for establishing the remote signer's identity.
1770  ; Default:
1771  ;   remotesigner.tlscertpath=
1772  ; Example:
1773  ;   remotesigner.tlscertpath=/path/to/remote/signer/tls.cert
1774  
1775  ; The timeout for connecting to and signing requests with the remote signer.
1776  ; Valid time units are {s, m, h}.
1777  ; remotesigner.timeout=5s
1778  
1779  ; If a wallet with private key material already exists, migrate it into a
1780  ; watch-only wallet on first startup.
1781  ; WARNING: This cannot be undone! Make sure you have backed up your seed before
1782  ; you use this flag! All private keys will be purged from the wallet after first
1783  ; unlock with this flag!
1784  ; remotesigner.migrate-wallet-to-watch-only=false
1785  
1786  
1787  [gossip]
1788  
1789  ; Specify a set of pinned gossip syncers, which will always be actively syncing
1790  ; whenever the corresponding peer is online. A pinned syncer does not count
1791  ; towards the configured `numgraphsyncpeers` since pinned syncers are not
1792  ; rotated. Configuring a pinned syncer does not ensure a persistent connection
1793  ; to the target peer, they will only be pinned if the connection remains active
1794  ; via some other mechanism, e.g. having an open channel.
1795  ;
1796  ; This feature is useful when trying to ensure that a node keeps its
1797  ; routing table tightly synchronized with a set of remote peers, e.g. multiple
1798  ; lightning nodes operated by the same service.
1799  ;
1800  ; Each value should be a hex-encoded pubkey of the pinned peer. Multiple pinned
1801  ; peers can be specified by setting multiple flags/fields in the config.
1802  ; Default:
1803  ;   gossip.pinned-syncers=
1804  ; Example:
1805  ;   gossip.pinned-syncers=pubkey1
1806  ;   gossip.pinned-syncers=pubkey2
1807  
1808  ; The maximum number of updates for a specific channel and direction that lnd
1809  ; will accept over the channel update interval.
1810  ; gossip.max-channel-update-burst=10
1811  ; gossip.channel-update-interval=1m
1812  
1813  ; The duration to wait before sending the next announcement batch if there are
1814  ; multiple. Use a small value if there are a lot announcements and they need to
1815  ; be broadcast quickly.
1816  ; gossip.sub-batch-delay=5s
1817  
1818  ; The number of confirmations required before processing channel announcements.
1819  ; gossip.announcement-conf=6
1820  
1821  ; The total rate of outbound gossip messages, expressed in bytes per second.
1822  ; This setting controls the long-term average speed of gossip traffic sent from
1823  ; your node. The rate limit is applied globally across all peers, not per-peer.
1824  ; If the rate of outgoing messages exceeds this value, lnd will start to queue
1825  ; and delay messages to stay within the limit.
1826  ; gossip.msg-rate-bytes=1024000
1827  
1828  ; The maximum burst of outbound gossip data, in bytes, that can be sent at once.
1829  ; This works in conjunction with `gossip.msg-rate-bytes` as part of a token
1830  ; bucket rate-limiting scheme. This value represents the size of the token
1831  ; bucket. It allows for short, high-speed bursts of traffic, with the long-term
1832  ; rate controlled by `gossip.msg-rate-bytes`. This value must be larger than the
1833  ; maximum lightning message size (~65KB) to allow sending large gossip messages.
1834  ; gossip.msg-burst-bytes=2048000
1835  
1836  ; The maximum number of concurrent gossip filter applications that can be
1837  ; processed. Increase this value to handle more simultaneous peer
1838  ; synchronizations at the cost of additional resource usage.
1839  ; See docs/gossip_rate_limiting.md for mor information.
1840  ; gossip.filter-concurrency=5
1841  
1842  ; The score at which a peer is banned. Each time a peer sends a gossip message
1843  ; that is considered invalid, its ban score is incremented. Once the score
1844  ; reaches this threshold, the peer is banned for a default of 48 hours, and we
1845  ; will no longer process gossip messages from them. This is a measure to
1846  ; protect the node from spam and misbehaving peers. Setting this value to 0
1847  ; disables banning completely.
1848  ;
1849  ; A gossip message can be considered invalid for several reasons, including:
1850  ; - Invalid signature on the announcement.
1851  ; - Stale timestamp, older than what we already have.
1852  ; - Too many channel updates for the same channel in a short period.
1853  ; - Announcing a channel that is not found on-chain.
1854  ; - Announcing a channel that has already been closed.
1855  ; - Announcing a channel with an invalid proof.
1856  ;
1857  ; gossip.ban-threshold=100
1858  
1859  ; The peer-specific rate of outbound gossip messages, expressed in bytes per
1860  ; second. This setting controls the long-term average speed of gossip traffic
1861  ; sent from your node. The rate limit is applied to each peer. If the rate of
1862  ; outgoing messages exceeds this value, lnd will start to queue and delay
1863  ; messages sending to that peer to stay within the limit.
1864  ; gossip.peer-msg-rate-bytes=51200
1865  
1866  [invoices]
1867  
1868  ; If a hold invoice has accepted htlcs that reach their expiry height and are
1869  ; not timed out, the channel holding the htlc is force closed to resolve the
1870  ; invoice's htlcs. To prevent force closes, lnd automatically cancels these
1871  ; invoices before they reach their expiry height.
1872  ;
1873  ; Hold expiry delta describes the number of blocks before expiry that these
1874  ; invoices should be canceled. Setting this value to 0 will ensure that hold
1875  ; invoices can be settled right up until their expiry height, but will result
1876  ; in the channel they are on being force closed if they are not resolved before
1877  ; expiry.
1878  ;
1879  ; Lnd goes to chain before the expiry for a htlc is reached so that there is
1880  ; time to resolve it on chain. This value needs to be greater than the
1881  ; DefaultIncomingBroadcastDelta set by lnd, otherwise the channel will be force
1882  ; closed anyway. A warning will be logged on startup if this value is not large
1883  ; enough to prevent force closes.
1884  ; invoices.holdexpirydelta=18
1885  
1886  [routing]
1887  
1888  ; DEPRECATED: This is now turned on by default for Neutrino (use
1889  ; neutrino.validatechannels=true to turn off) and shouldn't be used for any
1890  ; other backend!
1891  ; routing.assumechanvalid=false
1892  
1893  ; If set to true, then we'll prune a channel if only a single edge is seen as
1894  ; being stale. This results in a more compact channel graph, and also is helpful
1895  ; for neutrino nodes as it means they'll only maintain edges where both nodes are
1896  ; seen as being live from it's PoV.
1897  ; routing.strictgraphpruning=false
1898  
1899  ; The minimum number of real (non-dummy) blinded hops to select for a blinded
1900  ; path. This doesn't include our node, so if the maximum is 1, then the
1901  ; shortest paths will contain our node along with an introduction node hop.
1902  ; routing.blinding.min-num-real-hops=1
1903  
1904  ; The number of hops to include in a blinded path. This does not include
1905  ; our node, so if is is 1, then the path will at least contain our node along
1906  ; with an introduction node hop. If it is 0, then it will use this node as
1907  ; the introduction node. This number must be greater than or equal to the
1908  ; the number of real hops (invoices.blinding.min-num-real-hops). Any paths
1909  ; shorter than this number will be padded with dummy hops.
1910  ; routing.blinding.num-hops=2
1911  
1912  ; The maximum number of blinded paths to select and add to an invoice.
1913  ; routing.blinding.max-num-paths=3
1914  
1915  ; The amount by which to increase certain policy values of hops on a blinded
1916  ; path in order to add a probing buffer. The higher this multiplier, the more
1917  ; buffer is added to the policy values of hops along a blinded path meaning
1918  ; that if they were to increase their policy values before the blinded path
1919  ; expires, the better the chances that the path would still be valid meaning
1920  ; that the path is less prone to probing attacks. However, if the multiplier
1921  ; is too high, the resulting buffered fees might be too much for the payer.
1922  ; routing.blinding.policy-increase-multiplier=1.1
1923  
1924  ; The amount by which to decrease certain policy values of hops on a blinded
1925  ; path in order to add a probing buffer. The lower this multiplier, the more
1926  ; buffer is added to the policy values of hops along a blinded path meaning
1927  ; that if they were to increase their policy values before the blinded path
1928  ; expires, the better the chances that the path would still be valid meaning
1929  ; that the path is less prone to probing attacks. However, since this value
1930  ; is being applied to the MaxHTLC value of the route, the lower it is, the
1931  ; lower payment amount will need to be.
1932  ; routing.blinding.policy-decrease-multiplier=0.9
1933  
1934  [sweeper]
1935  
1936  ; DEPRECATED: Duration of the sweep batch window. The sweep is held back during
1937  ; the batch window to allow more inputs to be added and thereby lower the fee
1938  ; per input.
1939  ; sweeper.batchwindowduration=30s
1940  
1941  ; The max fee rate in sat/vb which can be used when sweeping funds. Setting
1942  ; this value too low can result in transactions not being confirmed in time,
1943  ; causing HTLCs to expire hence potentially losing funds.
1944  ; sweeper.maxfeerate=1000
1945  
1946  ; The conf target to use when sweeping non-time-sensitive outputs. This is
1947  ; useful for sweeping outputs that are not time-sensitive, and can be swept at
1948  ; a lower fee rate.
1949  ; sweeper.nodeadlineconftarget=1008
1950  
1951  
1952  ; An optional config group that's used for the automatic sweep fee estimation.
1953  ; The Budget config gives options to limits ones fee exposure when sweeping
1954  ; unilateral close outputs and the fee rate calculated from budgets is capped
1955  ; at sweeper.maxfeerate. Check the budget config options for more details.
1956  ; sweeper.budget=
1957  
1958  [sweeper.budget]
1959  
1960  ; The amount in satoshis to allocate as the budget to pay fees when sweeping
1961  ; the to_local output. If set, the budget calculated using the ratio (if set)
1962  ; will be capped at this value.
1963  ; sweeper.budget.tolocal=
1964  
1965  ; The ratio of the value in to_local output to allocate as the budget to pay
1966  ; fees when sweeping it.
1967  ; sweeper.budget.tolocalratio=0.5
1968  
1969  ; The amount in satoshis to allocate as the budget to pay fees when CPFPing a
1970  ; force close tx using the anchor output. If set, the budget calculated using
1971  ; the ratio (if set) will be capped at this value.
1972  ; sweeper.budget.anchorcpfp=
1973  
1974  ; The ratio of a special value to allocate as the budget to pay fees when 
1975  ; CPFPing a force close tx using the anchor output. The special value is the
1976  ; sum of all time-sensitive HTLCs on this commitment subtracted by their
1977  ; budgets.
1978  ; sweeper.budget.anchorcpfpratio=0.5
1979  
1980  ; The amount in satoshis to allocate as the budget to pay fees when sweeping a
1981  ; time-sensitive (first-level) HTLC. If set, the budget calculated using the
1982  ; ratio (if set) will be capped at this value.
1983  ; sweeper.budget.deadlinehtlc=
1984  
1985  ; The ratio of the value in a time-sensitive (first-level) HTLC to allocate as
1986  ; the budget to pay fees when sweeping it.
1987  ; sweeper.budget.deadlinehtlcratio=0.5
1988  
1989  ; The amount in satoshis to allocate as the budget to pay fees when sweeping a
1990  ; non-time-sensitive (second-level) HTLC. If set, the budget calculated using
1991  ; the ratio (if set) will be capped at this value.
1992  ; sweeper.budget.nodeadlinehtlc=
1993  
1994  ; The ratio of the value in a non-time-sensitive (second-level) HTLC to
1995  ; allocate as the budget to pay fees when sweeping it.
1996  ; sweeper.budget.nodeadlinehtlcratio=0.5
1997  
1998  [htlcswitch]
1999  
2000  ; The timeout value when delivering HTLCs to a channel link. Setting this value
2001  ; too small will result in local payment failures if large number of payments
2002  ; are sent over a short period.
2003  ; htlcswitch.mailboxdeliverytimeout=1m
2004  
2005  ; The max duration that the channel can be quiesced. Any dependent protocols
2006  ; (dynamic commitments, splicing, etc.) must finish their operations under this
2007  ; timeout value, otherwise the node will disconnect.
2008  ; htlcswitch.quiescencetimeout=1m
2009  
2010  [grpc]
2011  
2012  ; How long the server waits on a gRPC stream with no activity before pinging the
2013  ; client. Valid time units are {s, m, h}.
2014  ; grpc.server-ping-time=1m
2015  
2016  ; How long the server waits for the response from the client for the keepalive
2017  ; ping response. Valid time units are {s, m, h}.
2018  ; grpc.server-ping-timeout=20s
2019  
2020  ; The minimum amount of time the client should wait before sending a keepalive
2021  ; ping. Valid time units are {s, m, h}.
2022  ; grpc.client-ping-min-wait=5s
2023  
2024  ; If true, the server allows keepalive pings from the client even when there are
2025  ; no active gRPC streams. This might be useful to keep the underlying HTTP/2
2026  ; connection open for future requests.
2027  ; grpc.client-allow-ping-without-stream=false
2028  
2029  
2030  [pprof]
2031  
2032  ; Enable HTTP profiling on given port -- NOTE port must be between 1024 and
2033  ; 65536. The profile can be access at: http://localhost:<PORT>/debug/pprof/.
2034  ; You can also provide it as host:port to enable profiling for remote debugging.
2035  ; For example 0.0.0.0:<PORT> to enable profiling for all interfaces on the given
2036  ; port. The built-in profiler has minimal overhead, so it is recommended to
2037  ; enable it.
2038  ; pprof.profile=
2039  
2040  ; Write CPU profile to the specified file. This should only be used for 
2041  ; debugging because compared to running a pprof server this will record the cpu
2042  ; profile constantly from the start of the program until the shutdown.
2043  ; pprof.cpuprofile=
2044  
2045  ; Enable a blocking profile to be obtained from the profiling port. A blocking
2046  ; profile can show where goroutines are blocking (stuck on mutexes, I/O, etc).
2047  ; This takes a value from 0 to 1, with 0 turning off the setting, and 1 sampling
2048  ; every blocking event (it's a rate value). The blocking profile has high 
2049  ; overhead and is off by default even when running the pprof server. It should
2050  ; only be used for debugging.
2051  ; pprof.blockingprofile=0
2052  
2053  ; Enable a mutex profile to be obtained from the profiling port. A mutex 
2054  ; profile can show where goroutines are blocked on mutexes, and which mutexes
2055  ; have high contention.  This takes a value from 0 to 1, with 0 turning off the
2056  ; setting, and 1 sampling every mutex event (it's a rate value). The mutex
2057  ; profile has high overhead and is off by default even when running the pprof
2058  ; server. It should only be used for debugging.
2059  ; pprof.mutexprofile=0