ZmnSCPxj
5 years ago
committed by
ZmnSCPxj, ZmnSCPxj jxPCSmnZ
3 changed files with 26 additions and 216 deletions
@ -1,185 +0,0 @@ |
|||||
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