committed by
Rusty Russell
5 changed files with 197 additions and 10 deletions
@ -0,0 +1,185 @@ |
|||||
|
LIGHTNINGD(8) |
||||
|
============= |
||||
|
:doctype: manpage |
||||
|
|
||||
|
NAME |
||||
|
---- |
||||
|
lightningd - Daemon for running a Lightning Network node |
||||
|
|
||||
|
SYNOPSIS |
||||
|
-------- |
||||
|
lightningd [--conf=<config-file>] ['OPTIONS']... |
||||
|
|
||||
|
DESCRIPTION |
||||
|
----------- |
||||
|
*lightningd* starts the C-Lightning daemon, which implements a |
||||
|
standards-compliant Lightning Network node. |
||||
|
|
||||
|
CONFIGURATION OPTIONS |
||||
|
--------------------- |
||||
|
*--conf*='FILE':: |
||||
|
Specify configuration file. |
||||
|
If not an absolute path, will be relative from the lightning-dir |
||||
|
location. |
||||
|
Defaults to 'config'. |
||||
|
*--lightning-dir*='DIR':: |
||||
|
Set the directory for the C-Lightning daemon. |
||||
|
Defaults to '$HOME/.lightning'. |
||||
|
|
||||
|
MORE OPTIONS |
||||
|
------------ |
||||
|
Command line options are mirrored as configuration options in the |
||||
|
configuration file, so 'foo' in the configuration file simply |
||||
|
becomes '--foo' on the command line, and 'foo=bar' becomes |
||||
|
'--foo=bar'. |
||||
|
|
||||
|
See lightningd-config(5) for a comprehensive list of all |
||||
|
available options. |
||||
|
|
||||
|
LOGGING AND COMMANDING C-LIGHTNING |
||||
|
----------------------------- |
||||
|
By default, C-Lightning will log to the standard output. |
||||
|
To log to a specific file, use '--log-file=PATH'. |
||||
|
Sending SIGHUP will cause C-Lightning to reopen this file, |
||||
|
for example to do log rotation. |
||||
|
|
||||
|
C-Lightning will set up a Unix domain socket for receiving |
||||
|
commands. |
||||
|
By default this will be the file 'lightning-rpc' in your |
||||
|
specified 'lightning-dir'. |
||||
|
You can use lightning-cli(1) to send commands to C-Lightning |
||||
|
once 'lightningd' has started; you need to match the |
||||
|
'--lightning-dir' and '--rpc-file' options between them. |
||||
|
|
||||
|
Commands for C-Lightning are described in various manpages |
||||
|
in section 7, with the common prefix 'lightning-'. |
||||
|
|
||||
|
QUICK START |
||||
|
----------- |
||||
|
First, decide on and create a directory for 'lightning-dir', |
||||
|
or just use the default '$HOME/.lightning'. |
||||
|
Then create a 'config' file in this directory containing your |
||||
|
configuration. |
||||
|
|
||||
|
Your other main preparation would be to set up a mainnet Bitcoin |
||||
|
fullnode, i.e. run a bitcoind(1) instance. |
||||
|
The rest of this quick start guide will assume you are reckless |
||||
|
and want to spend real funds on Lightning. |
||||
|
Indicate 'network=bitcoin' in your 'config' file explicitly. |
||||
|
|
||||
|
C-Lightning needs to communicate with the Bitcoin Core RPC. |
||||
|
You can set this up using 'bitcoin-datadir', 'bitcoin-rpcconnect', |
||||
|
'bitcoin-rpcport', 'bitcoin-rpcuser', and 'bitcoin-rpcpassword' |
||||
|
options in your 'config' file. |
||||
|
|
||||
|
Finally, just to keep yourself sane, decide on a log file name |
||||
|
and indicate it using 'log-file=lightningd.log' in your 'config' file. |
||||
|
You might be interested in viewing it periodically as you follow |
||||
|
along on this guide. |
||||
|
|
||||
|
Once the *bitcoind* instance is running, start lightningd(8): |
||||
|
|
||||
|
$ lightningd --lightning-dir=$HOME/.lightning --daemon |
||||
|
|
||||
|
This starts *lightningd* in the background due to the '--daemon' |
||||
|
option. |
||||
|
|
||||
|
Check if things are working: |
||||
|
|
||||
|
$ lightning-cli --lightning-dir=%HOME/.lightning help |
||||
|
$ lightning-cli --lightning-dir=%HOME/.lightning getinfo |
||||
|
|
||||
|
The *getinfo* command in particular will return a 'blockheight' |
||||
|
field, which indicates the block height to which *lightningd* |
||||
|
has been synchronized to (this is separate from the block height |
||||
|
that your *bitcoind* has been synchronized to, and will always |
||||
|
lag behind *bitcoind*). |
||||
|
You will have to wait until the 'blockheight' has reached the |
||||
|
actual blockheight of the Bitcoin network. |
||||
|
|
||||
|
Before you can get funds offchain, you need to have some funds |
||||
|
onchain owned by *lightningd* (which has a separate wallet from |
||||
|
the *bitcoind* it connects to). |
||||
|
Get an address for *lightningd* via lightning-newaddr(7) command |
||||
|
as below ('--lightning-dir' option has been elided, specify it if |
||||
|
you selected your own 'lightning-dir'): |
||||
|
|
||||
|
$ lightning-cli newaddr |
||||
|
|
||||
|
This will provide a native SegWit bech32 address. |
||||
|
In case all your money is in services that do not support native |
||||
|
SegWit and have to use P2SH-wrapped addresses, instead use: |
||||
|
|
||||
|
$ lightning-cli newaddr p2sh-segwit |
||||
|
|
||||
|
Transfer a small amount of onchain funds to the given address. |
||||
|
Check the status of all your funds (onchain and on-Lightning) via |
||||
|
lightning-listfunds(7): |
||||
|
|
||||
|
$ lightning-cli listfunds |
||||
|
|
||||
|
Now you need to look for an arbitrary Lightning node to connect to, |
||||
|
which you can do by using dig(1) and querying 'lseed.bitcoinstats.com': |
||||
|
|
||||
|
$ dig lseed.bitcoinstats.com A |
||||
|
|
||||
|
This will give 25 IPv4 addresses, you can select any one of those. |
||||
|
You will also need to learn the corresponding public key, which you can |
||||
|
determine by searching the IP addrss on https://1ml.com/ . |
||||
|
The public key is a long hex string, like so: |
||||
|
'024772ee4fa461febcef09d5869e1238f932861f57be7a6633048514e3f56644a1'. |
||||
|
(this example public key is not used as of this writing) |
||||
|
|
||||
|
After determining a public key, use lightning-connect(7) to |
||||
|
connect to that public key: |
||||
|
|
||||
|
$ lightning-cli connect $PUBLICKEY |
||||
|
|
||||
|
Then open a channel to that node using lightning-fundchannel(7): |
||||
|
|
||||
|
$ lightning-cli fundchannel $PUBLICKEY $SATOSHI |
||||
|
|
||||
|
This will require that the funding transaction be confirmed before |
||||
|
you can send funds over Lightning. |
||||
|
To track this, use lightning-listpeers(7) and look at the 'state' |
||||
|
of the channel: |
||||
|
|
||||
|
$ lightning-cli listpeers $PUBLICKEY |
||||
|
|
||||
|
The channel will initially start with a 'state' of |
||||
|
'CHANNELD_AWAITING_LOCKIN'. |
||||
|
You need to wait for the channel 'state' to become 'CHANNELD_NORMAL', |
||||
|
meaning the funding transaction has been confirmed deeply. |
||||
|
|
||||
|
Once the channel 'state' is 'CHANNELD_NORMAL', you can start paying |
||||
|
merchants over Lightning. |
||||
|
Acquire a Lightning invoice from your favorite merchant, and use |
||||
|
lightning-pay(7) to pay it: |
||||
|
|
||||
|
$ lightning-cli pay $INVOICE |
||||
|
|
||||
|
BUGS |
||||
|
---- |
||||
|
You should report bugs on our github issues page, and maybe submit a |
||||
|
fix to gain our eternal gratitude! |
||||
|
|
||||
|
AUTHOR |
||||
|
------ |
||||
|
ZmnSCPxj <ZmnSCPxj@protonmail.com> wrote the initial version of this |
||||
|
man page, but many others did the hard work of actually implementing |
||||
|
a standards-compliant Lightning Network node implementation. |
||||
|
|
||||
|
SEE ALSO |
||||
|
-------- |
||||
|
lightning-listconfigs(7), lightning-config(5), lightning-cli(1), |
||||
|
lightning-newaddr(7), lightning-listfunds(7), lightning-connect(7), |
||||
|
lightning-fundchannel(7), lightning-listpeers(7), lightning-pay(7) |
||||
|
|
||||
|
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