github.com/decred/dcrlnd@v0.7.6/sample-dcrlnd.conf (about) 1 ; Example configuration for dcrlnd. 2 ; 3 ; The default location for this file is in ~/.dcrlnd/dcrlnd.conf on POSIX OSes, 4 ; $LOCALAPPDATA/Dcrlnd/dcrlnd.conf on Windows, 5 ; ~/Library/Application Support/Dcrlnd/dcrlnd.conf on Mac OS and $home/dcrlnd/dcrlnd.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. 11 12 [Application Options] 13 14 ; The directory that dcrlnd stores all wallet, chain, and channel related data 15 ; within The default is ~/.dcrlnd/data on POSIX OSes, $LOCALAPPDATA/Dcrlnd/data on 16 ; Windows, ~/Library/Application Support/Dcrlnd/data on Mac OS, and $home/dcrlnd/data 17 ; on Plan9. Environment variables are expanded so they may be used. NOTE: 18 ; Windows environment variables are typically %VARIABLE%, but they must be 19 ; accessed with $VARIABLE here. Also, ~ is expanded to $LOCALAPPDATA on Windows. 20 ; datadir=~/.dcrlnd/data 21 22 ; The directory that logs are stored in. The logs are auto-rotated by default. 23 ; Rotated logs are compressed in place. 24 ; logdir=~/.dcrlnd/logs 25 26 ; Number of logfiles that the log rotation should keep. Setting it to 0 disables deletion of old log files. 27 ; maxlogfiles=3 28 ; 29 ; Max log file size in MB before it is rotated. 30 ; maxlogfilesize=10 31 32 ; Time after which an RPCAcceptor will time out and return false if 33 ; it hasn't yet received a response. 34 ; acceptortimeout=15s 35 36 ; Path to TLS certificate for lnd's RPC and REST services. 37 ; tlscertpath=~/.lnd/tls.cert 38 39 ; Path to TLS private key for lnd's RPC and REST services. 40 ; tlskeypath=~/.lnd/tls.key 41 42 ; Adds an extra ip to the generated certificate. Setting multiple tlsextraip= entries is allowed. 43 ; (old tls files must be deleted if changed) 44 ; tlsextraip= 45 46 ; Adds an extra domain to the generate certificate. Setting multiple tlsextradomain= entries is allowed. 47 ; (old tls files must be deleted if changed) 48 ; tlsextradomain= 49 50 ; If set, then all certs will automatically be refreshed if they're close to 51 ; expiring, or if any parameters related to extra IPs or domains in the cert 52 ; change. 53 ; tlsautorefresh=true 54 55 ; The duration from generating the self signed certificate to the certificate 56 ; expiry date. Valid time units are {s, m, h}. 57 ; The below value is about 14 months (14 * 30 * 24 = 10080) 58 ; tlscertduration=10080h 59 60 ; Do not include the interface IPs or the system hostname in TLS certificate, 61 ; use first --tlsextradomain as Common Name instead, if set. 62 ; tlsdisableautofill=true 63 64 ; A list of domains for lnd to periodically resolve, and advertise the resolved 65 ; IPs for the backing node. This is useful for users that only have a dynamic IP, 66 ; or want to expose the node at a domain. 67 ; externalhosts=my-node-domain.com 68 69 ; Sets the directory to store Let's Encrypt certificates within 70 ; letsencryptdir=~/.lnd/letsencrypt 71 72 ; The IP:port on which lnd will listen for Let's Encrypt challenges. Let's 73 ; Encrypt will always try to contact on port 80. Often non-root processes are 74 ; not allowed to bind to ports lower than 1024. This configuration option allows 75 ; a different port to be used, but must be used in combination with port 76 ; forwarding from port 80. This configuration can also be used to specify 77 ; another IP address to listen on, for example an IPv6 address. 78 ; letsencryptlisten=localhost:8080 79 80 ; Request a Let's Encrypt certificate for this domain. Note that the certicate 81 ; is only requested and stored when the first rpc connection comes in. 82 ; letsencryptdomain=example.com 83 84 ; Disable macaroon authentication. Macaroons are used are bearer credentials to 85 ; authenticate all RPC access. If one wishes to opt out of macaroons, uncomment 86 ; the line below. 87 ; no-macaroons=true 88 89 ; Enable free list syncing for the default bbolt database. This will decrease 90 ; start up time, but can result in performance degradation for very large 91 ; databases, and also result in higher memory usage. If "free list corruption" 92 ; is detected, then this flag may resolve things. 93 ; sync-freelist=true 94 95 ; Path to write the admin macaroon for dcrlnd's RPC and REST services if it 96 ; doesn't exist. This can be set if one wishes to store the admin macaroon in a 97 ; distinct location. By default, it is stored within dcrlnd's network directory. 98 ; Applications that are able to read this file, gain admin macaroon access. 99 ; adminmacaroonpath=~/.dcrlnd/data/chain/decred/simnet/admin.macaroon 100 101 ; Path to write the read-only macaroon for lnd's RPC and REST services if it 102 ; doesn't exist. This can be set if one wishes to store the read-only macaroon 103 ; in a distinct location. The read only macaroon allows users which can read 104 ; the file to access RPCs which don't modify the state of the daemon. By 105 ; default, it is stored within lnd's network directory. 106 ; readonlymacaroonpath=~/.dcrlnd/data/chain/decred/simnet/readonly.macaroon 107 108 ; Path to write the invoice macaroon for lnd's RPC and REST services if it 109 ; doesn't exist. This can be set if one wishes to store the invoice macaroon in 110 ; a distinct location. By default, it is stored within lnd's network directory. 111 ; The invoice macaroon allows users which can read the file to gain read and 112 ; write access to all invoice related RPCs. 113 ; invoicemacaroonpath=~/.dcrlnd/data/chain/decred/simnet/invoice.macaroon 114 115 ; The strategy to use for selecting coins for wallet transactions. Only 'random' 116 ; is currently supported. 117 ; coin-selection-strategy=random 118 119 ; A period to wait before for closing channels with outgoing htlcs that have 120 ; timed out and are a result of this nodes instead payment. In addition to our 121 ; current block based deadline, if specified this grace period will also be taken 122 ; into account. Valid time units are {s, m, h}. 123 ; payments-expiration-grace-period=30s 124 125 ; Specify the interfaces to listen on for p2p connections. One listen 126 ; address per line. 127 ; All ipv4 on port 9735: 128 ; listen=0.0.0.0:9735 129 ; On all ipv4 interfaces on port 9735 and ipv6 localhost port 9736: 130 ; listen=0.0.0.0:9735 131 ; listen=[::1]:9736 132 133 ; Disable listening for incoming p2p connections. This will override all 134 ; listeners. 135 ; nolisten=1 136 137 ; Specify the interfaces to listen on for gRPC connections. One listen 138 ; address per line. 139 ; Only ipv4 localhost on port 10009: 140 ; rpclisten=localhost:10009 141 ; On ipv4 localhost port 10009 and ipv6 port 10010: 142 ; rpclisten=localhost:10009 143 ; rpclisten=[::1]:10010 144 ; On an Unix socket: 145 ; rpclisten=unix:///var/run/lnd/lnd-rpclistener.sock 146 147 ; Specify the interfaces to listen on for REST connections. One listen 148 ; address per line. 149 ; All ipv4 interfaces on port 8080: 150 ; restlisten=0.0.0.0:8080 151 ; On ipv4 localhost port 80 and 443: 152 ; restlisten=localhost:80 153 ; restlisten=localhost:443 154 ; On an Unix socket: 155 ; restlisten=unix:///var/run/lnd-restlistener.sock 156 157 ; A series of domains to allow cross origin access from. This controls the CORs 158 ; policy of the REST RPC proxy. 159 ; restcors=https://my-special-site.com 160 161 ; Adding an external IP will advertise your node to the network. This signals 162 ; that your node is available to accept incoming channels. If you don't wish to 163 ; advertise your node, this value doesn't need to be set. Unless specified 164 ; (with host:port notation), the default port (9735) will be added to the 165 ; address. 166 ; externalip= 167 ; 168 ; Instead of explicitly stating your external IP address, you can also enable 169 ; UPnP or NAT-PMP support on the daemon. Both techniques will be tried and 170 ; require proper hardware support. In order to detect this hardware support, 171 ; `lnd` uses a dependency that retrieves the router's gateway address by using 172 ; different built-in binaries in each platform. Therefore, it is possible that 173 ; we are unable to detect the hardware and `lnd` will exit with an error 174 ; indicating this. This option will automatically retrieve your external IP 175 ; address, even after it has changed in the case of dynamic IPs, and advertise 176 ; it to the network using the ports the daemon is listening on. This does not 177 ; support devices behind multiple NATs. 178 ; nat=true 179 180 ; Disable REST API. 181 ; norest=true 182 183 ; Disable TLS for the REST API. 184 ; no-rest-tls=true 185 186 ; The ping interval for REST based WebSocket connections, set to 0 to disable 187 ; sending ping messages from the server side. Valid time units are {s, m, h}. 188 ; ws-ping-interval=30s 189 190 ; The time we wait for a pong response message on REST based WebSocket 191 ; connections before the connection is closed as inactive. Valid time units are 192 ; {s, m, h}. 193 ; ws-pong-wait=5s 194 195 ; Shortest backoff when reconnecting to persistent peers. Valid time units are 196 ; {s, m, h}. 197 ; minbackoff=1s 198 199 ; Longest backoff when reconnecting to persistent peers. Valid time units are 200 ; {s, m, h}. 201 ; maxbackoff=1h 202 203 ; The timeout value for network connections in seconds, default to 120 seconds. 204 ; Valid uints are {ms, s, m, h}. 205 ; connectiontimeout=120s 206 207 ; Debug logging level. 208 ; Valid levels are {trace, debug, info, warn, error, critical} 209 ; You may also specify <global-level>,<subsystem>=<level>,<subsystem2>=<level>,... to set 210 ; log level for individual subsystems. Use dcrlnd --debuglevel=show to list 211 ; available subsystems. 212 ; debuglevel=debug,PEER=info 213 214 ; Write CPU profile to the specified file. 215 ; cpuprofile= 216 217 ; Enable HTTP profiling on given port -- NOTE port must be between 1024 and 218 ; 65536. The profile can be access at: http://localhost:<PORT>/debug/pprof/. 219 ; profile= 220 221 ; DEPRECATED: Allows the rpcserver to intentionally disconnect from peers with 222 ; open channels. THIS FLAG WILL BE REMOVED IN 0.10.0. 223 ; unsafe-disconnect=false 224 225 ; Causes a link to replay the adds on its commitment txn after starting up, this 226 ; enables testing of the sphinx replay logic. 227 ; unsafe-replay=true 228 229 ; The maximum number of incoming pending channels permitted per peer. 230 ; maxpendingchannels=1 231 232 ; The target location of the channel backup file. 233 ; backupfilepath=~/.dcrlnd/data/chain/decred/simnet/channel.backup 234 235 ; The maximum capacity of the block cache in bytes. Increasing this will result 236 ; in more blocks being kept in memory but will increase performance when the 237 ; same block is required multiple times. 238 ; The example value below is 40 MB (1024 * 1024 * 40) 239 ; blockcachesize=41943040 240 241 ; Optional URL for external fee estimation. If no URL is specified, the method 242 ; for fee estimation will depend on the chosen backend and network. 243 ; 244 ; Note: this is only used for integration tests in decred. 245 ; feeurl= 246 247 ; If true, then automatic network bootstrapping will not be attempted. This 248 ; means that your node won't attempt to automatically seek out peers on the 249 ; network. 250 ; nobootstrap=1 251 252 ; If true, NO SEED WILL BE EXPOSED -- EVER, AND THE WALLET WILL BE ENCRYPTED 253 ; USING THE DEFAULT PASSPHRASE. THIS FLAG IS ONLY FOR TESTING AND SHOULD NEVER 254 ; BE USED ON MAINNET. 255 ; noseedbackup=true 256 257 ; The full path to a file (or pipe/device) that contains the password for 258 ; unlocking the wallet; if set, no unlocking through RPC is possible and lnd 259 ; will exit if no wallet exists or the password is incorrect; if 260 ; wallet-unlock-allow-create is also set then lnd will ignore this flag if no 261 ; wallet exists and allow a wallet to be created through RPC. 262 ; wallet-unlock-password-file=/tmp/example.password 263 264 ; Don't fail with an error if wallet-unlock-password-file is set but no wallet 265 ; exists yet. Not recommended for auto-provisioned or high-security systems 266 ; because the wallet creation RPC is unauthenticated and an attacker could 267 ; inject a seed while lnd is in that state. 268 ; wallet-unlock-allow-create=true 269 270 ; The smallest channel size (in atoms) that we should accept. Incoming 271 ; channels smaller than this will be rejected, default value 20000. 272 ; minchansize= 273 274 ; The largest channel size (in atoms) that we should accept. Incoming 275 ; channels larger than this will be rejected. For non-Wumbo channels this 276 ; limit remains 1073741823 atoms by default as specified in BOLT-0002. 277 ; For wumbo channels this limit is 500*1e8 atoms (500 DCR). 278 ; Set this config option explicitly to restrict your maximum channel size 279 ; to better align with your risk tolerance 280 ; maxchansize= 281 282 ; The target number of blocks in which a cooperative close initiated by a remote 283 ; peer should be confirmed. This target is used to estimate the starting fee 284 ; rate that will be used during fee negotiation with the peer. This target is 285 ; is also used for cooperative closes initiated locally if the --conf_target 286 ; for the channel closure is not set. 287 ; coop-close-target-confs=10 288 289 ; The maximum time that is allowed to pass between receiving a channel state 290 ; update and signing the next commitment. Setting this to a longer duration 291 ; allows for more efficient channel operations at the cost of latency. 292 ; channel-commit-interval=50ms 293 294 ; The maximum number of channel state updates that is accumulated before signing 295 ; a new commitment. 296 ; channel-commit-batch-size=10 297 298 ; The default max_htlc applied when opening or accepting channels. This value 299 ; limits the number of concurrent HTLCs that the remote party can add to the 300 ; commitment. The maximum possible value is 483. 301 ; default-remote-max-htlcs=150 302 303 ; The duration that a peer connection must be stable before attempting to send a 304 ; channel update to reenable or cancel a pending disables of the peer's channels 305 ; on the network. (default: 19m0s) 306 ; chan-enable-timeout=22m 307 308 ; The duration that must elapse after first detecting that an already active 309 ; channel is actually inactive and sending channel update disabling it to the 310 ; network. The pending disable can be canceled if the peer reconnects and becomes 311 ; stable for chan-enable-timeout before the disable update is sent. 312 ; (default: 20m0s) 313 ; chan-disable-timeout=22m 314 315 ; The polling interval between attempts to detect if an active channel has become 316 ; inactive due to its peer going offline. (default: 1m0s) 317 ; chan-status-sample-interval=2m 318 319 ; Disable queries from the height-hint cache to try to recover channels stuck in 320 ; the pending close state. Disabling height hint queries may cause longer chain 321 ; rescans, resulting in a performance hit. Unset this after channels are unstuck 322 ; so you can get better performance again. 323 ; height-hint-cache-query-disable=true 324 325 ; The polling interval between historical graph sync attempts. Each historical 326 ; graph sync attempt ensures we reconcile with the remote peer's graph from the 327 ; genesis block. (default: 1h0m0s) 328 ; historicalsyncinterval=2h 329 330 ; If true, will not reply with historical data that matches the range specified 331 ; by a remote peer's gossip_timestamp_filter. Doing so will result in lower 332 ; memory and bandwidth requirements. 333 ; ignore-historical-gossip-filters=true 334 335 ; If true, lnd will not accept channel opening requests with non-zero push 336 ; amounts. This should prevent accidental pushes to merchant nodes. 337 ; rejectpush=true 338 339 ; If true, lnd will not forward any HTLCs that are meant as onward payments. This 340 ; option will still allow lnd to send HTLCs and receive HTLCs but lnd won't be 341 ; used as a hop. 342 ; rejecthtlc=true 343 344 ; If true, will apply a randomized staggering between 0s and 30s when 345 ; reconnecting to persistent peers on startup. The first 10 reconnections will be 346 ; attempted instantly, regardless of the flag's value 347 ; stagger-initial-reconnect=true 348 349 ; The maximum number of blocks funds could be locked up for when forwarding 350 ; payments. (default: 2016) 351 ; max-cltv-expiry=2016 352 353 ; The maximum percentage of total funds that can be allocated to a channel's 354 ; commitment fee. This only applies for the initiator of the channel. Valid 355 ; values are within [0.1, 1]. (default: 0.5) 356 ; max-channel-fee-allocation=0.9 357 358 ; The maximum fee rate in atoms/byte that will be used for commitments of 359 ; channels of the anchors type. Must be large enough to ensure transaction 360 ; propagation (default: 10) 361 ; max-commit-fee-rate-anchors=5 362 363 ; A threshold defining the maximum amount of dust a given channel can have 364 ; after which forwarding and sending dust HTLC's to and from the channel will 365 ; fail. This amount is expressed in atoms. (default: 500000) 366 ; dust-threshold=1000000 367 368 ; If true, lnd will abort committing a migration if it would otherwise have been 369 ; successful. This leaves the database unmodified, and still compatible with the 370 ; previously active version of lnd. 371 ; dry-run-migration=true 372 373 ; If true, option upfront shutdown script will be enabled. If peers that we open 374 ; channels with support this feature, we will automatically set the script to 375 ; which cooperative closes should be paid out to on channel open. This offers the 376 ; partial protection of a channel peer disconnecting from us if cooperative 377 ; close is attempted with a different script. 378 ; enable-upfront-shutdown=true 379 380 ; If true, spontaneous payments through keysend will be accepted. 381 ; This is a temporary solution until AMP is implemented which is expected to be soon. 382 ; This option will then become deprecated in favor of AMP. 383 ; accept-keysend=true 384 385 ; If non-zero, keysend payments are accepted but not immediately settled. If the 386 ; payment isn't settled manually after the specified time, it is canceled 387 ; automatically. [experimental] 388 ; keysend-hold-time=true 389 390 ; If true, spontaneous payments through AMP will be accepted. Payments to AMP 391 ; invoices will be accepted regardless of this setting. 392 ; accept-amp=true 393 394 ; If set, lnd will use anchor channels by default if the remote channel party 395 ; supports them. Note that lnd will require 1 UTXO to be reserved for this 396 ; channel type if it is enabled. 397 ; protocol.anchors=true 398 399 ; If true, we'll attempt to garbage collect canceled invoices upon start. 400 ; gc-canceled-invoices-on-startup=true 401 402 ; If true, we'll delete newly canceled invoices on the fly. 403 ; gc-canceled-invoices-on-the-fly=true 404 405 ; If true, our node will allow htlc forwards that arrive and depart on the same 406 ; channel. 407 ; allow-circular-route=true 408 409 ; Time in milliseconds between each release of announcements to the network 410 ; trickledelay=180000 411 412 ; The number of peers that we should receive new graph updates from. This option 413 ; can be tuned to save bandwidth for light clients or routing nodes. (default: 3) 414 ; numgraphsyncpeers=9 415 416 ; If true, lnd will start the Prometheus exporter. Prometheus flags are 417 ; behind a build/compile flag and are not available by default. lnd must be built 418 ; with the monitoring tag; `make && make install tags=monitoring` to activate them. 419 ; prometheus.enable=true 420 421 ; Specify the interface to listen on for Prometheus connections. 422 ; prometheus.listen=0.0.0.0:8989 423 424 ; The alias your node will use, which can be up to 32 UTF-8 characters in 425 ; length. 426 ; alias=My Lightning ☇ 427 428 ; The color of the node in hex format, used to customize node appearance in 429 ; intelligence services. 430 ; color=#3399FF 431 432 ; The directory to store the chain's data within. 433 ; chaindir=~/.dcrlnd/data/chain/decred 434 435 ; Use Decred's test network. 436 ; testnet=1 437 ; 438 ; Use Decred's simulation test network 439 ; simnet=1 440 ; 441 ; Use Decred's regression test network 442 ; regtest=false 443 444 ; Which node to use for on-chain operations. Either 'dcrd' or 'dcrw'. 445 ; * 'dcrd' intructs dcrlnd to connect to a dcrd instance and perform on-chain 446 ; operations through it. 447 ; * 'dcrw' instructs dcrlnd to use the wallet for on-chain operations. 448 ; node=dcrd 449 450 ; The default number of confirmations a channel must have before it's considered 451 ; open. We'll require any incoming channel requests to wait this many 452 ; confirmations before we consider the channel active. 453 ; defaultchanconfs=3 454 455 ; The default number of blocks we will require our channel counterparty to wait 456 ; before accessing its funds in case of unilateral close. If this is not set, we 457 ; will scale the value according to the channel size. 458 ; defaultremotedelay=288 459 460 ; The maximum number of blocks we will limit the wait that our own funds are 461 ; encumbered by in the case when our node unilaterally closes. If a remote peer 462 ; proposes a channel with a delay above this amount, lnd will reject the 463 ; channel. 464 ; maxlocaldelay=2016 465 466 ; The smallest HTLC we are willing to accept on our channels, in milliatoms. 467 ; minhtlc=1000 468 469 ; The smallest HTLC we are willing to send out on our channels, in milliatoms. 470 ; minhtlcout=1000 471 472 ; The base fee in milliatoms we will charge for forwarding payments on our 473 ; channels. 474 ; basefee=1000 475 476 ; The fee rate used when forwarding payments on our channels. The total fee 477 ; charged is basefee + (amount * feerate / 1000000), where amount is the 478 ; forwarded amount. 479 ; feerate=1 480 481 ; The CLTV delta we will subtract from a forwarded HTLC's timelock value. 482 ; timelockdelta=80 483 484 ; Output a memory profiling pprof file after execution completes. 485 ; memprofile=/path/to/mem.pprof 486 487 ; The seed DNS server(s) to use for initial peer discovery. Must be specified as 488 ; a '<primary_dns>[,<soa_primary_dns>]' tuple where the SOA address is needed 489 ; for DNS resolution through Tor but is optional for clearnet users. Multiple 490 ; tuples can be specified, will overwrite the default seed servers. 491 ; 492 ; Decred currently does not have any DNS seeder for LN nodes. 493 ; 494 ; Example for custom DNS servers: 495 ; dnsseed=seed1.test.lightning 496 ; dnsseed=seed2.test.lightning,soa.seed2.test.lightning 497 498 ; Output a CPU profiling pprof file after execution completes. 499 ; cpuprofile=/path/to/cpu.pprof 500 501 ; File descriptor or handle of write end pipe to enable child -> parent process 502 ; communication. This is usually only set through command line arguments. 503 ; pipetx= 504 505 ; File descriptor or handle of read end pipe to enable parent -> child process 506 ; communication. This is usually only set through command line arguments. 507 ; piperx= 508 509 ; Notify JSON-RPC and gRPC listener addresses over the TX pipe. 510 ; rpclistenerevents=0 511 512 [Dcrd] 513 514 ; The host that your local dcrd daemon is listening on. By default, this 515 ; setting is assumed to be localhost with the default port for the current 516 ; network. 517 ; dcrd.rpchost=localhost 518 519 ; Username for RPC connections to dcrd. By default, lnd will attempt to 520 ; automatically obtain the credentials, so this likely won't need to be set 521 ; (other than for simnet mode). 522 ; dcrd.rpcuser=kek 523 524 ; Password for RPC connections to dcrd. By default, lnd will attempt to 525 ; automatically obtain the credentials, so this likely won't need to be set 526 ; (other than for simnet mode). 527 ; dcrd.rpcpass=kek 528 529 ; File containing the daemon's certificate file. This only needs to be set if 530 ; the node isn't on the same host as lnd. 531 ; dcrd.rpccert=~/.dcrd/rpc.cert 532 533 ; The raw bytes of the daemon's PEM-encoded certificate chain which will be used 534 ; to authenticate the RPC connection. This only needs to be set if the dcrd 535 ; node is on a remote host. 536 ; dcrd.rawrpccert= 537 538 [dcrwallet] 539 540 ; The following options are used when a remote connection to a running dcrwallet 541 ; is used instead of an embedded wallet in the dcrlnd daemon. 542 543 ; Host of the running dcrwallet. If port is omitted, 544 ; then the default port for selected chain parameters will be used. 545 ; dcrwallet.grpchost= 546 547 ; Path to the file that contains the wallet's RPC cert file. 548 ; dcrwallet.certpath= 549 550 ; Account number from the wallet that should be used to derive keys for LN 551 ; operations. 552 ; dcrwallet.accountnumber= 553 554 ; Path to the client key file needed to authenticate on the remote wallet's gRPC 555 ; endpoint. 556 ; dcrwallet.clientkeypath = /path/to/client-ca.key 557 558 ; Path to the client certificate file needed to authenticate on the remote 559 ; wallet's gRPC endpoint. 560 ; dcrwallet.clientcertpath = /path/to/client-ca.cert 561 562 ; Whether to run in SPV mode when running with an embedded wallet. Note that 563 ; when this is specified the 'node' parameter MUST be set to 'dcrw'. 564 ; dcrwallet.spv = 1 565 566 ; When using SPV mode, connect only to the following node via its P2P interface, 567 ; instead of performing node address discovery. 568 ; dcrwallet.spvconnect = 127.0.0.1:9108 569 570 ; Whether to disable receiving mempool transactions from other peers when in SPV 571 ; mode. 572 ; dcrwallet.disablerelaytx = 1 573 574 [autopilot] 575 576 ; If the autopilot agent should be active or not. The autopilot agent will 577 ; attempt to automatically open up channels to put your node in an advantageous 578 ; position within the network graph. 579 ; autopilot.active=1 580 581 ; The maximum number of channels that should be created. 582 ; autopilot.maxchannels=5 583 584 ; The fraction of total funds that should be committed to automatic channel 585 ; establishment. For example 0.6 means that 60% of the total funds available 586 ; within the wallet should be used to automatically establish channels. The total 587 ; amount of attempted channels will still respect the maxchannels param. 588 ; autopilot.allocation=0.6 589 590 ; Heuristic to activate, and the weight to give it during scoring. (default: 591 ; top_centrality:1) 592 ; autopilot.heuristic=preferential:1 593 594 ; The smallest channel that the autopilot agent should create (default: 20000) 595 ; autopilot.minchansize=20000 596 597 ; The largest channel that the autopilot agent should create (default: 16777215) 598 ; autopilot.maxchansize=20000 599 600 ; Whether the channels created by the autopilot agent should be private or not. 601 ; Private channels won't be announced to the network. 602 ; autopilot.private=true 603 604 ; The minimum number of confirmations each of your inputs in funding transactions 605 ; created by the autopilot agent must have. (default: 1) 606 ; autopilot.minconfs=2 607 608 ; The confirmation target (in blocks) for channels opened by autopilot. (default: 609 ; 3) 610 ; autopilot.conftarget=2 611 612 [automation] 613 614 ; In seconds, how long the total difference between sent and received ChannelReestablish 615 ; messages may grow after which a channel is force-closed. When this difference 616 ; is large, it means the local node has connected to the remote peer and has sent 617 ; ChannelReestablish messages, but the remote peer has not done the same, which 618 ; is a hint that the channel is not usable anymore. Note that this is the 619 ; total time a peer has been connected without reestablishing the channel 620 ; across restarts and reconnections. 621 ; 622 ; If this is <= 0, then autoclosing due to this heuristic is disabled. 623 ; closechanreestablishwait = 259200 624 625 [tor] 626 627 ; Allow outbound and inbound connections to be routed through Tor 628 ; tor.active=true 629 630 ; Allow the node to connect to non-onion services directly via clearnet. This 631 ; allows the node operator to use direct connections to peers not running behind 632 ; Tor, thus allowing lower latency and better connection stability. 633 ; WARNING: This option will reveal the source IP address of the node, and should 634 ; be used only if privacy is not a concern. 635 ; tor.skip-proxy-for-clearnet-targets=true 636 637 ; The port that Tor's exposed SOCKS5 proxy is listening on. Using Tor allows 638 ; outbound-only connections (listening will be disabled) -- NOTE port must be 639 ; between 1024 and 65535 640 ; tor.socks=9050 641 642 ; The DNS server as IP:PORT that Tor will use for SRV queries - NOTE must have 643 ; TCP resolution enabled. The current active DNS server for Testnet listening is 644 ; nodes.lightning.directory 645 ; tor.dns=nodes.lightning.directory 646 647 ; Enable Tor stream isolation by randomizing user credentials for each 648 ; connection. With this mode active, each connection will use a new circuit. 649 ; This means that multiple applications (other than lnd) using Tor won't be mixed 650 ; in with lnd's traffic. 651 ; 652 ; This option may not be used while direct connections are enabled, since direct 653 ; connections compromise source IP privacy by default. 654 ; tor.streamisolation=true 655 656 ; The host:port that Tor is listening on for Tor control connections (default: 657 ; localhost:9051) 658 ; tor.control=localhost:9091 659 660 ; IP address that Tor should use as the target of the hidden service 661 ; tor.targetipaddress= 662 663 ; The password used to arrive at the HashedControlPassword for the control port. 664 ; If provided, the HASHEDPASSWORD authentication method will be used instead of 665 ; the SAFECOOKIE one. 666 ; tor.password=plsdonthackme 667 668 ; Automatically set up a v2 onion service to listen for inbound connections 669 ; tor.v2=true 670 671 ; Automatically set up a v3 onion service to listen for inbound connections 672 ; tor.v3=true 673 674 ; The path to the private key of the onion service being created 675 ; tor.privatekeypath=/path/to/torkey 676 677 ;The path to the private key of the watchtower onion service being created 678 ; tor.watchtowerkeypath=/other/path/ 679 680 681 [watchtower] 682 683 ; Enable integrated watchtower listening on :9911 by default. 684 ; watchtower.active=1 685 686 ; Specify the interfaces to listen on for watchtower client connections. One 687 ; listen address per line. If no port is specified the default port of 9911 will 688 ; be added implicitly. 689 ; All ipv4 on port 9911: 690 ; watchtower.listen=0.0.0.0:9911 691 ; On all ipv4 interfaces on port 9911 and ipv6 localhost port 9912: 692 ; watchtower.listen=0.0.0.0:9911 693 ; watchtower.listen=[::1]:9912 694 695 ; Configure the external IP address of your watchtower. Setting this field does 696 ; not have any behavioral changes to the tower or enable any sort of discovery, 697 ; however it will make the full URI (pubkey@host:port) available via 698 ; WatchtowerRPC.GetInfo and `lncli tower info`. 699 ; watchtower.externalip=1.2.3.4 700 701 ; Configure the default watchtower data directory. The default directory is 702 ; data/watchtower relative to the chosen lnddir. This can be useful if one needs 703 ; to move the database to a separate volume with more storage. In the example 704 ; below, the database will be stored at: 705 ; /path/to/towerdir/bitcoin/<network>/watchtower.db. 706 ; watchtower.towerdir=/path/to/towerdir 707 708 ; Duration the watchtower server will wait for messages to be received before 709 ; hanging up on client connections. 710 ; watchtower.readtimeout=15s 711 712 ; Duration the watchtower server will wait for messages to be written before 713 ; hanging up on client connections 714 ; watchtower.writetimeout=15s 715 716 717 [wtclient] 718 719 ; Activate Watchtower Client. To get more information or configure watchtowers 720 ; run `lncli wtclient -h`. 721 ; wtclient.active=true 722 723 ; Specify the fee rate with which justice transactions will be signed. This fee 724 ; rate should be chosen as a maximum fee rate one is willing to pay in order to 725 ; sweep funds if a breach occurs while being offline. The fee rate should be 726 ; specified in sat/byte, the default is 10 sat/byte. 727 ; wtclient.sweep-fee-rate=10 728 729 ; (Deprecated) Specifies the URIs of private watchtowers to use in backing up 730 ; revoked states. URIs must be of the form <pubkey>@<addr>. Only 1 URI is 731 ; supported at this time, if none are provided the tower will not be enabled. 732 ; wtclient.private-tower-uris= 733 734 735 [healthcheck] 736 737 ; The number of times we should attempt to query our chain backend before 738 ; gracefully shutting down. Set this value to 0 to disable this health check. 739 ; healthcheck.chainbackend.attempts=3 740 741 ; The amount of time we allow a call to our chain backend to take before we fail 742 ; the attempt. This value must be >= 1s. 743 ; healthcheck.chainbackend.timeout=10s 744 745 ; The amount of time we should backoff between failed attempts to query chain 746 ; backend. This value must be >= 1s. 747 ; healthcheck.chainbackend.backoff=30s 748 749 ; The amount of time we should wait between chain backend health checks. This 750 ; value must be >= 1m. 751 ; healthcheck.chainbackend.interval=1m 752 753 ; The minimum ratio of free disk space to total capacity that we require. 754 ; healthcheck.diskspace.diskrequired=0.1 755 756 ; The number of times we should attempt to query our available disk space before 757 ; gracefully shutting down. Set this value to 0 to disable this health check. 758 ; healthcheck.diskspace.attempts=2 759 760 ; The amount of time we allow a query for our available disk space to take 761 ; before we fail the attempt. This value must be >= 1s. 762 ; healthcheck.diskspace.timeout=5s 763 764 ; The amount of time we should backoff between failed attempts to query 765 ; available disk space. This value must be >= 1s. 766 ; healthcheck.diskspace.backoff=1m 767 768 ; The amount of time we should wait between disk space health checks. This 769 ; value must be >= 1m. 770 ; healthcheck.diskspace.interval=6h 771 772 ; The number of times we should attempt to check for certificate expiration before 773 ; gracefully shutting down. Set this value to 0 to disable this health check. 774 ; healthcheck.tls.attempts=2 775 776 ; The amount of time we allow a query for certificate expiration to take 777 ; before we fail the attempt. This value must be >= 1s. 778 ; healthcheck.tls.timeout=5s 779 780 ; The amount of time we should backoff between failed attempts to query 781 ; certificate expiration. This value must be >= 1s. 782 ; healthcheck.tls.backoff=1m 783 784 ; The amount of time we should wait between certificate expiration health checks. 785 ; This value must be >= 1m. 786 ; healthcheck.tls.interval=1m 787 788 ; The number of times we should attempt to check our tor connection before 789 ; gracefully shutting down. Set this value to 0 to disable this health check. 790 ; healthcheck.torconnection.attempts=3 791 792 ; The amount of time we allow a call to our tor connection to take before we 793 ; fail the attempt. This value must be >= 1s. 794 ; healthcheck.torconnection.timeout=10s 795 796 ; The amount of time we should backoff between failed attempts to check tor 797 ; connection. This value must be >= 1s. 798 ; healthcheck.torconnection.backoff=30s 799 800 ; The amount of time we should wait between tor connection health checks. This 801 ; value must be >= 1m. 802 ; healthcheck.torconnection.interval=1m 803 804 805 [signrpc] 806 807 ; Path to the signer macaroon. 808 ; signrpc.signermacaroonpath=~/.dcrlnd/data/chain/decred/simnet/signer.macaroon 809 810 811 [walletrpc] 812 813 ; Path to the wallet kit macaroon. 814 ; walletrpc.walletkitmacaroonpath=~/.dcrlnd/data/chain/decred/simnet/walletkit.macaroon 815 816 817 [chainrpc] 818 819 ; Path to the chain notifier macaroon. 820 ; chainrpc.notifiermacaroonpath=~/.dcrlnd/data/chain/decred/simnet/chainnotifier.macaroon 821 822 823 [routerrpc] 824 825 ; Minimum required route success probability to attempt the payment (default: 826 ; 0.01) 827 ; routerrpc.minrtprob=1 828 829 ; Assumed success probability of a hop in a route when no other information is 830 ; available. (default: 0.6) 831 ; routerrpc.apriorihopprob=0.2 832 833 ; Weight of the a priori probability in success probability estimation. Valid 834 ; values are in [0, 1]. (default: 0.5) 835 ; routerrpc.aprioriweight=0.3 836 837 ; Defines the duration after which a penalized node or channel is back at 50% 838 ; probability (default: 1h0m0s) 839 ; routerrpc.penaltyhalflife=2h 840 841 ; The (virtual) fixed cost in atoms of a failed payment attempt (default: 100) 842 ; routerrpc.attemptcost=90 843 844 ; The (virtual) proportional cost in ppm of the total amount of a failed payment 845 ; attempt (default: 1000) 846 ; routerrpc.attemptcostppm=900 847 848 ; The maximum number of payment results that are held on disk by mission control 849 ; (default: 1000) 850 ; routerrpc.maxmchistory=900 851 852 ; The time interval with which the MC store state is flushed to the DB. 853 ; routerrpc.mcflushinterval=1m 854 855 ; Path to the router macaroon 856 ; routerrpc.routermacaroonpath=~/.dcrlnd/data/chain/decred/simnet/router.macaroon 857 858 859 [workers] 860 861 ; Maximum number of concurrent read pool workers. This number should be 862 ; proportional to the number of peers. (default: 100) 863 ; workers.read=200 864 865 ; Maximum number of concurrent write pool workers. This number should be 866 ; proportional to the number of CPUs on the host. (default: 8) 867 ; workers.write=8 868 869 ; Maximum number of concurrent sig pool workers. This number should be 870 ; proportional to the number of CPUs on the host. (default: 8) 871 ; workers.sig=4 872 873 874 [caches] 875 876 ; Maximum number of entries contained in the reject cache, which is used to speed 877 ; up filtering of new channel announcements and channel updates from peers. Each 878 ; entry requires 25 bytes. (default: 50000) 879 ; caches.reject-cache-size=900000 880 881 ; Maximum number of entries contained in the channel cache, which is used to 882 ; reduce memory allocations from gossip queries from peers. Each entry requires 883 ; roughly 2Kb. (default: 20000) 884 ; caches.channel-cache-size=9000000 885 886 ; The duration that the response to DescribeGraph should be cached for. Setting 887 ; the value to zero disables the cache. (default: 1m) 888 ; caches.rpc-graph-cache-duration=10m 889 890 891 [protocol] 892 893 ; If set, then lnd will create and accept requests for channels larger than 0.16 894 ; BTC 895 ; protocol.wumbo-channels=true 896 897 ; Set to enable experimental support for anchor commitments, won't work with watchtowers yet. 898 ; protocol.anchors=true 899 900 ; Set to enable support for script enforced lease channel commitments. If 901 ; set, lnd will accept these channels by default if the remote channel party 902 ; proposes them. Note that lnd will require 1 UTXO to be reserved for this 903 ; channel type if it is enabled. 904 ; protocol.script-enforced-lease=false 905 906 907 [db] 908 909 ; The selected database backend. The current default backend is "bolt". lnd 910 ; also has experimental support for etcd, a replicated backend. 911 ; db.backend=bolt 912 913 ; The maximum interval the graph database will wait between attempting to flush 914 ; a batch of modifications to disk. Defaults to 500 milliseconds. 915 ; db.batch-commit-interval=500ms 916 917 ; Don't use the in-memory graph cache for path finding. Much slower but uses 918 ; less RAM. Can only be used with a bolt database backend. 919 ; db.no-graph-cache=true 920 921 [etcd] 922 923 ; Etcd database host. 924 ; db.etcd.host=localhost:2379 925 926 ; Etcd database user. 927 ; db.etcd.user=userscopedforlnd 928 929 ; Password for the database user. 930 ; db.etcd.pass=longandsekrit 931 932 ; Etcd namespace to use. 933 ; db.etcd.namespace=lnd 934 935 ; Whether to disable the use of TLS for etcd. 936 ; db.etcd.disabletls=false 937 938 ; Path to the TLS certificate for etcd RPC. 939 ; db.etcd.cert_file=/key/path 940 941 ; Path to the TLS private key for etcd RPC. 942 ; db.etcd.key_file=/a/path 943 944 ; Whether we intend to skip TLS verification 945 ; db.etcd.insecure_skip_verify=true 946 947 ; Whether to collect etcd commit stats. 948 ; db.etcd.collect_stats=true 949 950 ; If set LND will use an embedded etcd instance instead of the external one. 951 ; Useful for testing. 952 ; db.etcd.embedded=false 953 954 ; If non zero, LND will use this as client port for the embedded etcd instance. 955 ; db.etcd.embedded_client_port=1234 956 957 ; If non zero, LND will use this as peer port for the embedded etcd instance. 958 ; db.etcd.embedded_peer_port=1235 959 960 ; If set the embedded etcd instance will log to the specified file. Useful when 961 ; testing with embedded etcd. 962 ; db.etcd.embedded_log_file=/path/etcd.log 963 964 ; The maximum message size in bytes that we may send to etcd. Defaults to 32 MiB. 965 ; db.etcd.max_msg_size=33554432 966 967 [postgres] 968 ; Postgres connection string. 969 ; db.postgres.dsn=postgres://lnd:lnd@localhost:45432/lnd?sslmode=disable 970 971 ; Postgres connection timeout. Valid time units are {s, m, h}. Set to zero to 972 ; disable. 973 ; db.postgres.timeout= 974 975 ; Postgres maximum number of connections. Set to zero for unlimited. It is 976 ; recommended to set a limit that is below the server connection limit. 977 ; Otherwise errors may occur in lnd under high-load conditions. 978 ; db.postgres.maxconnections= 979 980 [bolt] 981 982 ; If true, prevents the database from syncing its freelist to disk. 983 ; db.bolt.nofreelistsync=1 984 985 ; Whether the databases used within lnd should automatically be compacted on 986 ; every startup (and if the database has the configured minimum age). This is 987 ; disabled by default because it requires additional disk space to be available 988 ; during the compaction that is freed afterwards. In general compaction leads to 989 ; smaller database files. 990 ; db.bolt.auto-compact=true 991 992 ; How long ago the last compaction of a database file must be for it to be 993 ; considered for auto compaction again. Can be set to 0 to compact on every 994 ; startup. (default: 168h) 995 ; db.bolt.auto-compact-min-age=0 996 997 ; Specify the timeout to be used when opening the database. 998 ; db.bolt.dbtimeout=60s 999 1000 1001 [cluster] 1002 1003 ; Enables leader election if set. 1004 ; cluster.enable-leader-election=true 1005 1006 ; Leader elector to use. Valid values: "etcd" (default). 1007 ; cluster.leader-elector=etcd 1008 1009 ; Election key prefix when using etcd leader elector. Defaults to "/leader/". 1010 ; cluster.etcd-election-prefix=/leader/ 1011 1012 ; Identifier for this node inside the cluster (used in leader election). 1013 ; Defaults to the hostname. 1014 ; cluster.id=example.com 1015 1016 ; The session TTL in seconds after which a new leader is elected if the old 1017 ; leader is shut down, crashed or becomes unreachable. 1018 ; cluster.leader-session-ttl=30 1019 1020 [rpcmiddleware] 1021 1022 ; Enable the RPC middleware interceptor functionality. 1023 ; rpcmiddleware.enable=true 1024 1025 ; Time after which a RPC middleware intercept request will time out and return 1026 ; an error if it hasn't yet received a response. 1027 ; rpcmiddleware.intercepttimeout=2s 1028 1029 ; Add the named middleware to the list of mandatory middlewares. All RPC 1030 ; requests are blocked/denied if any of the mandatory middlewares is not 1031 ; registered. Can be specified multiple times. 1032 ; rpcmiddleware.addmandatory=my-example-middleware 1033 ; rpcmiddleware.addmandatory=other-mandatory-middleware 1034 1035 [bolt] 1036 1037 ; If true, prevents the database from syncing its freelist to disk. 1038 ; db.bolt.nofreelistsync=1 1039 1040 ; Whether the databases used within lnd should automatically be compacted on 1041 ; every startup (and if the database has the configured minimum age). This is 1042 ; disabled by default because it requires additional disk space to be available 1043 ; during the compaction that is freed afterwards. In general compaction leads to 1044 ; smaller database files. 1045 ; db.bolt.auto-compact=true 1046 1047 ; How long ago the last compaction of a database file must be for it to be 1048 ; considered for auto compaction again. Can be set to 0 to compact on every 1049 ; startup. (default: 168h) 1050 ; db.bolt.auto-compact-min-age=0 1051 1052 ; Specify the timeout to be used when opening the database. 1053 ; db.bolt.dbtimeout=60s 1054 1055 1056 [gossip] 1057 1058 ; Specify a set of pinned gossip syncers, which will always be actively syncing 1059 ; whenever the corresponding peer is online. A pinned syncer does not count 1060 ; towards the configured `numgraphsyncpeers` since pinned syncers are not 1061 ; rotated. Configuring a pinned syncer does not ensure a persistent connection 1062 ; to the target peer, they will only be pinned if the connection remains active 1063 ; via some other mechanism, e.g. having an open channel. 1064 ; 1065 ; This feature is useful when trying to ensure that a node keeps its 1066 ; routing table tightly synchronized with a set of remote peers, e.g. multiple 1067 ; lightning nodes operated by the same service. 1068 ; 1069 ; Each value should be a hex-encoded pubkey of the pinned peer. Multiple pinned 1070 ; peers can be specified by setting multiple flags/fields in the config. 1071 ; gossip.pinned-syncers=pubkey1 1072 ; gossip.pinned-syncers=pubkey2 1073 1074 ; The maximum number of updates for a specific channel and direction that lnd 1075 ; will accept over the channel update interval. 1076 ; gossip.max-channel-update-burst=10 1077 ; gossip.channel-update-interval=1m 1078 1079 1080 [invoices] 1081 1082 ; If a hold invoice has accepted htlcs that reach their expiry height and are 1083 ; not timed out, the channel holding the htlc is force closed to resolve the 1084 ; invoice's htlcs. To prevent force closes, lnd automatically cancels these 1085 ; invoices before they reach their expiry height. 1086 ; 1087 ; Hold expiry delta describes the number of blocks before expiry that these 1088 ; invoices should be canceled. Setting this value to 0 will ensure that hold 1089 ; invoices can be settled right up until their expiry height, but will result 1090 ; in the channel they are on being force closed if they are not resolved before 1091 ; expiry. 1092 ; 1093 ; Lnd goes to chain before the expiry for a htlc is reached so that there is 1094 ; time to resolve it on chain. This value needs to be greater than the 1095 ; DefaultIncomingBroadcastDelta set by lnd, otherwise the channel will be force 1096 ; closed anyway. A warning will be logged on startup if this value is not large 1097 ; enough to prevent force closes. 1098 ; 1099 ; invoices.holdexpirydelta=15 1100 1101 [routing] 1102 1103 ; Skip checking channel spentness and existence during graph validation for 1104 ; SPV. Enabling this option means that nodes will not need to 1105 ; perform long rescans which block initial usage of the daemon, but comes at 1106 ; the cost of not validating channels in your routing graph. Skipping this 1107 ; validation means that your node may have an incorrect view of the network 1108 ; if it receives updates for closed or non-existent channels. This could affect 1109 ; routing. 1110 ; --routing.assumechanvalid=true 1111 1112 ; If set to true, then we'll prune a channel if only a single edge is seen as 1113 ; being stale. This results in a more compact channel graph, and also is helpful 1114 ; for neutrino nodes as it means they'll only maintain edges where both nodes are 1115 ; seen as being live from it's PoV. 1116 ; --routing.strictgraphpruning=true