Browse Source
Replaced by doc/lightningd-config.5.md. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>travis-debug
Rusty Russell
5 years ago
1 changed files with 0 additions and 383 deletions
@ -1,383 +0,0 @@ |
|||
LIGHTNINGD-CONFIG(5) |
|||
==================== |
|||
:doctype: manpage |
|||
|
|||
NAME |
|||
---- |
|||
lightningd-config - Lightning daemon configuration file |
|||
|
|||
SYNOPSIS |
|||
-------- |
|||
*~/.lightning/config* |
|||
|
|||
DESCRIPTION |
|||
----------- |
|||
|
|||
When lightningd(8) starts up, it reads a configuration file. By |
|||
default that is 'config' in the *.lightning* subdirectory of the home |
|||
directory (if it exists), but that can be changed by the |
|||
'--lightning-dir' or '--conf' options on the lightningd(8) command |
|||
line. |
|||
|
|||
Configuration file options are processed first, then command line |
|||
options: later options override earlier ones except 'addr' options |
|||
which accumulate. |
|||
|
|||
All these options are mirrored as commandline arguments to |
|||
lightningd(8), so '--foo' becomes simply 'foo' in the configuration |
|||
file, and '--foo=bar' becomes 'foo=bar' in the configuration file. |
|||
|
|||
Blank lines and lines beginning with '#' are ignored. |
|||
|
|||
DEBUGGING |
|||
--------- |
|||
|
|||
'--help' will show you the defaults for many options; they vary with |
|||
network settings so you can specify '--network' before '--help' to see |
|||
the defaults for that network. |
|||
|
|||
The lightning-listconfigs(7) command will output a valid configuration |
|||
file using the current settings. |
|||
|
|||
OPTIONS |
|||
------- |
|||
|
|||
General options |
|||
~~~~~~~~~~~~~~~ |
|||
|
|||
*allow-deprecated-apis*='BOOL':: |
|||
Enable deprecated options, JSONRPC commands, fields, etc. It |
|||
defaults to 'true', but you should set it to 'false' when testing |
|||
to ensure that an upgrade won't break your configuration. |
|||
|
|||
*help*:: |
|||
Print help and exit. Not very useful inside a configuration file, but |
|||
fun to put in other's config files while their computer is unattended. |
|||
|
|||
*version*:: |
|||
Print version and exit. Also useless inside a configuration file, |
|||
but putting this in someone's config file may convince them to |
|||
read this man page. |
|||
|
|||
Bitcoin control options: |
|||
|
|||
*network*='NETWORK':: |
|||
Select the network parameters ('bitcoin', 'testnet', or 'regtest'). |
|||
|
|||
*testnet*:: |
|||
Alias for 'network=testnet'. |
|||
|
|||
*signet*:: |
|||
Alias for 'network=signet'. |
|||
|
|||
*mainnet*:: |
|||
Alias for 'network=bitcoin'. |
|||
|
|||
*bitcoin-cli*='PATH':: |
|||
The name of 'bitcoin-cli' executable to run. |
|||
|
|||
*bitcoin-datadir*='DIR':: |
|||
'-datadir' argument to supply to bitcoin-cli(1). |
|||
|
|||
*bitcoin-rpcuser*='USER':: |
|||
The RPC username for talking to bitcoind(1). |
|||
|
|||
*bitcoin-rpcpassword*='PASSWORD':: |
|||
The RPC password for talking to bitcoind(1). |
|||
|
|||
*bitcoin-rpcconnect*='HOST':: |
|||
The bitcoind(1) RPC host to connect to. |
|||
|
|||
*bitcoin-rpcport*='PORT':: |
|||
The bitcoind(1) RPC port to connect to. |
|||
|
|||
*bitcoin-retry-timeout*='SECONDS':: |
|||
Number of seconds to keep trying a bitcoin-cli(1) command. |
|||
If the command keeps failing after this time, exit with a |
|||
fatal error. |
|||
|
|||
*rescan*='BLOCKS':: |
|||
Number of blocks to rescan from the current head, or absolute blockheight |
|||
if negative. This is only needed if something goes badly wrong. |
|||
|
|||
Lightning daemon options |
|||
~~~~~~~~~~~~~~~~~~~~~~~~ |
|||
|
|||
*lightning-dir*='DIR':: |
|||
Sets the working directory. All files (except '--conf' and '--lightning-dir' |
|||
on the command line) are relative to this. |
|||
|
|||
*pid-file*='PATH':: |
|||
Specify pid file to write to. |
|||
|
|||
*log-level*='LEVEL':: |
|||
What log level to print out: options are io, debug, info, unusual, broken. |
|||
|
|||
*log-prefix*='PREFIX':: |
|||
Prefix for log lines: this can be customized if you want to merge logs with |
|||
multiple daemons. |
|||
|
|||
*log-file*='PATH':: |
|||
Log to this file instead of stdout. Sending lightningd(8) SIGHUP will cause |
|||
it to reopen this file (useful for log rotation). |
|||
|
|||
*rpc-file*='PATH':: |
|||
Set JSON-RPC socket (or /dev/tty), such as for lightning-cli(1). |
|||
|
|||
*daemon*:: |
|||
Run in the background, suppress stdout and stderr. |
|||
|
|||
*conf*='PATH':: |
|||
Sets configuration file (default: *lightning-dir*/'config' ). If this is |
|||
a relative path, it is relative to the starting directory, not |
|||
*lightning-dir* (unlike other paths). 'PATH' must exist and be readable |
|||
(we allow missing files in the default case). |
|||
Using this inside a configuration file is meaningless. |
|||
|
|||
Lightning node customization options |
|||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|||
|
|||
*rgb*='RRGGBB':: |
|||
Your favorite color as a hex code. |
|||
|
|||
*alias*='NAME':: |
|||
Up to 32 UTF-8 characters to tag your node. Completely silly, since anyone |
|||
can call their node anything they want. The default is an |
|||
NSA-style codename derived from your public key, but "Peter Todd" |
|||
and "VAULTERO" are good options, too. |
|||
|
|||
*fee-base*='MILLISATOSHI':: |
|||
Default: 1000. The base fee to charge for every payment which passes |
|||
through. Note that millisatoshis are a very, very small unit! |
|||
Changing this value will only affect new channels and not existing ones. |
|||
If you want to change fees for existing channels, use the RPC call |
|||
lightning-setchannelfee(7). |
|||
|
|||
*fee-per-satoshi*='MILLIONTHS':: |
|||
Default: 10 (0.001%). This is the proportional fee to charge for every |
|||
payment which passes through. As percentages are too coarse, it's in |
|||
millionths, so 10000 is 1%, 1000 is 0.1%. Changing this value will only |
|||
affect new channels and not existing ones. If you want to change fees for |
|||
existing channels, use the RPC call lightning-setchannelfee(7). |
|||
|
|||
*min-capacity-sat*='SATOSHI':: |
|||
Default: 10000. This value defines the minimal effective channel capacity |
|||
in satoshi to accept for channel opening requests. If a peer tries to open |
|||
a channel smaller than this, the opening will be rejected. |
|||
|
|||
*ignore-fee-limits*='BOOL':: |
|||
Allow nodes which establish channels to us to set any fee they |
|||
want. This may result in a channel which cannot be closed, should |
|||
fees increase, but make channels far more reliable since we never |
|||
close it due to unreasonable fees. |
|||
|
|||
*commit-time*='MILLISECONDS:: |
|||
How long to wait before sending commitment messages to the peer: in |
|||
theory increasing this would reduce load, but your node would have to be |
|||
extremely busy node for you to even notice. |
|||
|
|||
Lightning channel and HTLC options |
|||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|||
|
|||
*watchtime-blocks*='BLOCKS':: |
|||
How long we need to spot an outdated close attempt: on opening a channel |
|||
we tell our peer that this is how long they'll have to wait if they perform |
|||
a unilateral close. |
|||
|
|||
*max-locktime-blocks*='BLOCKS':: |
|||
The longest our funds can be delayed (ie. the longest *watchtime-blocks* |
|||
our peer can ask for, and also the longest HTLC timeout we will accept). |
|||
If our peer asks for longer, we'll refuse to create a channel, and if an |
|||
HTLC asks for longer, we'll refuse it. |
|||
|
|||
*funding-confirms*='BLOCKS':: |
|||
Confirmations required for the funding transaction when the other side |
|||
opens a channel before the channel is usable. |
|||
|
|||
*commit-fee*='PERCENT':: |
|||
The percentage of 'estimatesmartfee 2' to use for the bitcoin |
|||
transaction which funds a channel: can be greater than 100. |
|||
|
|||
*commit-fee-min*='PERCENT':: |
|||
*commit-fee-max*='PERCENT':: |
|||
Limits on what onchain fee range we'll allow when a node opens a |
|||
channel with us, as a percentage of 'estimatesmartfee 2'. If |
|||
they're outside this range, we abort their opening attempt. Note |
|||
that *commit-fee-max* can (should!) be greater than 100. |
|||
|
|||
*max-concurrent-htlcs*='INTEGER':: |
|||
Number of HTLCs one channel can handle concurrently in each direction. |
|||
Should be between 1 and 483 (default 30). |
|||
|
|||
*cltv-delta*='BLOCKS':: |
|||
The number of blocks between incoming payments and outgoing payments: |
|||
this needs to be enough to make sure that if we have to, we can close |
|||
the outgoing payment before the incoming, or redeem the incoming once |
|||
the outgoing is redeemed. |
|||
|
|||
*cltv-final*='BLOCKS':: |
|||
The number of blocks to allow for payments we receive: if we have to, |
|||
we might need to redeem this on-chain, so this is the number of blocks |
|||
we have to do that. |
|||
|
|||
Invoice control options: |
|||
|
|||
*autocleaninvoice-cycle*='SECONDS':: |
|||
Perform cleanup of expired invoices every 'SECONDS' seconds, or |
|||
disable if 0. Usually unpaid expired invoices are uninteresting, |
|||
and just take up space in the database. |
|||
|
|||
*autocleaninvoice-expired-by*='SECONDS':: |
|||
Control how long invoices must have been expired before they are |
|||
cleaned (if 'autocleaninvoice-cycle' is non-zero). |
|||
|
|||
Networking options |
|||
~~~~~~~~~~~~~~~~~~ |
|||
|
|||
Note that for simple setups, the implicit 'autolisten' option does the |
|||
right thing: it will try to bind to port 9735 on IPv4 and IPv6, and |
|||
will announce it to peers if it seems like a public address. |
|||
|
|||
You can instead use 'addr' to override this (eg. to change the port), |
|||
or precisely control where to bind and what to announce with the |
|||
'bind-addr' and 'announce-addr' options. These will *disable* the |
|||
'autolisten' logic, so you must specifiy exactly what you want! |
|||
|
|||
*addr*='[IPADDRESS[:PORT]]|autotor:TORIPADDRESS[:TORPORT]':: |
|||
|
|||
Set an IP address (v4 or v6) or automatic Tor address to listen on |
|||
and (maybe) announce as our node address. |
|||
|
|||
An empty 'IPADDRESS' is a special value meaning bind to IPv4 and/or |
|||
IPv6 on all interfaces, '0.0.0.0' means bind to all IPv4 |
|||
interfaces, '::' means 'bind to all IPv6 interfaces'. If 'PORT' is |
|||
not specified, 9735 is used. If we can determine a public IP |
|||
address from the resulting binding, and no other addresses of the |
|||
same type are already announced, the address is announced. |
|||
|
|||
If the argument begins with 'autotor:' then it is followed by the |
|||
IPv4 or IPv6 address of the Tor control port (default port 9051), |
|||
and this will be used to configure a Tor hidden service for port |
|||
9735. The Tor hidden service will be configured to point to the |
|||
first IPv4 or IPv6 address we bind to. |
|||
|
|||
This option can be used multiple times to add more addresses, and |
|||
its use disables autolisten. If necessary, and 'always-use-proxy' |
|||
is not specified, a DNS lookup may be done to resolve 'IPADDRESS' |
|||
or 'TORIPADDRESS'. |
|||
|
|||
*bind-addr*='[IPADDRESS[:PORT]]|SOCKETPATH':: |
|||
|
|||
Set an IP address or UNIX domain socket to listen to, but do not |
|||
announce. A UNIX domain socket is distinguished from an IP address |
|||
by beginning with a '/'. |
|||
|
|||
An empty 'IPADDRESS' is a special value meaning bind to IPv4 and/or |
|||
IPv6 on all interfaces, '0.0.0.0' means bind to all IPv4 |
|||
interfaces, '::' means 'bind to all IPv6 interfaces'. 'PORT' is |
|||
not specified, 9735 is used. |
|||
|
|||
This option can be used multiple times to add more addresses, and |
|||
its use disables autolisten. If necessary, and 'always-use-proxy' |
|||
is not specified, a DNS lookup may be done to resolve 'IPADDRESS'. |
|||
|
|||
*announce-addr*='IPADDRESS[:PORT]|TORADDRESS.onion[:PORT]':: |
|||
|
|||
Set an IP (v4 or v6) address or Tor address to announce; a Tor address is |
|||
distinguished by ending in '.onion'. 'PORT' defaults to 9735. |
|||
|
|||
Empty or wildcard IPv4 and IPv6 addresses don't make sense here. |
|||
Also, unlike the 'addr' option, there is no checking that your |
|||
announced addresses are public (e.g. not localhost). |
|||
|
|||
This option can be used multiple times to add more addresses, and |
|||
its use disables autolisten. The spec says you can't announce |
|||
more that one address of the same type (eg. two IPv4 or two IPv6 |
|||
addresses) so `lightningd` will refuse if you specify more than one. |
|||
|
|||
If necessary, and 'always-use-proxy' is not specified, a DNS |
|||
lookup may be done to resolve 'IPADDRESS'. |
|||
|
|||
*offline*:: |
|||
Do not bind to any ports, and do not try to reconnect to any peers. |
|||
This can be useful for maintenance and forensics, so is usually |
|||
specified on the command line. Overrides all 'addr' and 'bind-addr' |
|||
options. |
|||
|
|||
*autolisten*='BOOL':: |
|||
By default, we bind (and maybe announce) on IPv4 and IPv6 interfaces if |
|||
no 'addr', 'bind-addr' or 'announce-addr' options are specified. Setting |
|||
this to 'false' disables that. |
|||
|
|||
*proxy*='IPADDRESS[:PORT]':: |
|||
Set a socks proxy to use to connect to Tor nodes (or for all connections if |
|||
*always-use-proxy* is set). |
|||
|
|||
*always-use-proxy*='BOOL':: |
|||
Always use the *proxy*, even to connect to normal IP addresses (you |
|||
can still connect to Unix domain sockets manually). This also disables |
|||
all DNS lookups, to avoid leaking information. |
|||
|
|||
*disable-dns*:: |
|||
Disable the DNS bootstrapping mechanism to find a node by its node ID. |
|||
|
|||
*tor-service-password*='PASSWORD':: |
|||
Set a Tor control password, which may be needed for 'autotor:' to |
|||
authenticate to the Tor control port. |
|||
|
|||
|
|||
Lightning Plugins |
|||
~~~~~~~~~~~~~~~~~ |
|||
|
|||
lightningd(8) supports plugins, which offer additional configuration |
|||
options and JSON-RPC methods, depending on the plugin. Some are |
|||
supplied by default (usually located in |
|||
*libexec/c-lightning/plugins/*). If a *plugins* directory exists |
|||
under 'lightning-dir' that is searched for plugins along with |
|||
any immediate subdirectories). You can specify additional paths too: |
|||
|
|||
*plugin*='PATH':: |
|||
Specify a plugin to run as part of c-lightning. This can be specified |
|||
multiple times to add multiple plugins. |
|||
|
|||
*plugin-dir*='DIRECTORY':: |
|||
Specify a directory to look for plugins; all executable files |
|||
not containing punctuation (other than '.', '-' or '_) in 'DIRECTORY' |
|||
are loaded. 'DIRECTORY' must exist; |
|||
this can be specified multiple times to add multiple directories. |
|||
|
|||
*clear-plugins*:: |
|||
This option clears all 'plugin' and 'plugin-dir' options |
|||
preceeding it, including the default built-in plugin directory. |
|||
You can still add 'plugin-dir' and 'plugin' options following |
|||
this and they will have the normal effect. |
|||
|
|||
*disable-plugin*='PLUGIN':: |
|||
If 'PLUGIN' contains a /, plugins with the same path as 'PLUGIN' |
|||
are disabled. Otherwise, any plugin with that base name is |
|||
disabled, whatever directory it is in. |
|||
|
|||
BUGS |
|||
---- |
|||
You should report bugs on our github issues page, and maybe submit a |
|||
fix to gain our eternal gratitude! |
|||
|
|||
AUTHOR |
|||
------ |
|||
Rusty Russell <rusty@rustcorp.com.au> wrote this man page, and much |
|||
of the configuration language, but many others did the hard work |
|||
of actually implementing these options. |
|||
|
|||
SEE ALSO |
|||
-------- |
|||
lightning-listconfigs(7) lightning-setchannelfee(7) |
|||
lightningd(8) |
|||
|
|||
RESOURCES |
|||
--------- |
|||
Main web site: https://github.com/ElementsProject/lightning |
|||
|
|||
COPYING |
|||
------- |
|||
Note: the modules in the ccan/ directory have their own licenses, but |
|||
the rest of the code is covered by the BSD-style MIT license. |
Loading…
Reference in new issue