Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
LIGHTNINGD(8)			  lightningd			 LIGHTNINGD(8)

       lightningd - Daemon for running a Lightning Network node

	      lightningd [--conf=<config-file>]	[OPTIONS]a|

       lightningd starts the C-Lightning daemon, which implements a standards-
       compliant Lightning Network node.

	--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. De-
       faults to $HOME/.lightning.

       Command line options are	mirrored as configuration options in the  con-
       figuration  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  op-

       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-Light-
       ning 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	light-
       ning-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-.

       First, decide on	and create a directory for lightning-dir, or just  use
       the  default $HOME/.lightning. Then create a config file	in this	direc-
       tory containing your configuration.

       Your other main preparation would be to set up a	mainnet	Bitcoin	fulln-
       ode,  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 in-
       dicate it using log-file=lightningd.log in your config file. You	 might
       be  interested  in  viewing it periodically as you follow along on this

       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 synchro-
       nized 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-

	      $	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

	      $	dig 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 de-
       termine by searching the	IP addrss on .	The public key
       is	 a	  long	      hex	 string,	like	   so:
       (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 at that IP:

	      $	lightning-cli connect $PUBLICKEY $IP

       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-list-
       peers(7)	and look at the	state of the channel:

	      $	lightning-cli listpeers	$PUBLICKEY

       The channel will	 initially  start  with	 a  state  of  CHANNELD_AWAIT-
       ING_LOCKIN.  You	 need  to  wait	 for the channel state to become CHAN-
       NELD_NORMAL, meaning the	funding	transaction has	been confirmed deeply.

       Once the	channel	state is CHANNELD_NORMAL, you can  start  paying  mer-
       chants  over  Lightning.	Acquire	a Lightning invoice from your favorite
       merchant, and use lightning-pay(7) to pay it:

	      $	lightning-cli pay $INVOICE

       You should report bugs on our github issues page, and  maybe  submit  a
       fix to gain our eternal gratitude!

       ZmnSCPxj>  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.

       lightning-listconfigs(7), lightning-config(5), lightning-cli(1),	light-
       ning-newaddr(7),	lightning-listfunds(7),	 lightning-connect(7),	light-
       ning-fundchannel(7), lightning-listpeers(7), lightning-pay(7)

       Main web	site:

       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.



Want to link to this manual page? Use this URL:

home | help