mirror of
https://github.com/lightninglabs/lightning-terminal.git
synced 2026-08-13 12:33:36 +02:00
* Update WALKTHROUGH.md * Update accounts.md * Update config-lnd-integrated.md * Update WALKTHROUGH.md * Update accounts.md * Update config-lnd-integrated.md
375 lines
11 KiB
Markdown
375 lines
11 KiB
Markdown
# Configuring LiT with integrated lnd node
|
|
|
|
The "integrated" mode means that `lnd` is started within the same process as
|
|
`litd`, alongside the UI server. Once the integrated `lnd` has been unlocked,
|
|
`litd` then goes ahead and starts `faraday`, `pool` and `loop` and connects them
|
|
to the integrated `lnd` node.
|
|
|
|
Currently the UI server cannot connect to `loop`, `pool` or `faraday` daemons
|
|
that aren't running in the same process. But that feature will also be available
|
|
in future versions.
|
|
|
|
## Use command line parameters only
|
|
|
|
In addition to the LiT specific parameters, you must also provide configuration
|
|
to the `lnd`, `loop` and `faraday` daemons. For `lnd`, each flag must be
|
|
prefixed with `lnd.` (ex: `lnd.lnddir=~/.lnd`). Please see the
|
|
[sample-lnd.conf](https://github.com/lightningnetwork/lnd/blob/master/sample-lnd.conf)
|
|
file for more details on the available parameters. Note that `loopd` and
|
|
`faraday` will automatically connect to the in-process `lnd` node, so you do not
|
|
need to provide them with any additional parameters unless you want to override
|
|
them. If you do override them, be sure to add the `loop.` and `faraday.`
|
|
prefixes.
|
|
|
|
To see all available command line options, run `litd --help`.
|
|
|
|
Here is an example command to start `litd` on testnet with a local `bitcoind`
|
|
node:
|
|
|
|
```shell
|
|
⛰ litd \
|
|
--httpslisten=0.0.0.0:8443 \
|
|
--uipassword=My$trongP@ssword \
|
|
--letsencrypt \
|
|
--letsencrypthost=loop.merchant.com \
|
|
--network=testnet \
|
|
--lnd-mode=integrated \
|
|
--lnd.lnddir=/root/.lnd \
|
|
--lnd.alias=merchant \
|
|
--lnd.externalip=loop.merchant.com \
|
|
--lnd.rpclisten=0.0.0.0:10009 \
|
|
--lnd.listen=0.0.0.0:9735 \
|
|
--lnd.bitcoin.node=bitcoind \
|
|
--lnd.bitcoind.rpchost=localhost \
|
|
--lnd.bitcoind.rpcuser=testnetuser \
|
|
--lnd.bitcoind.rpcpass=testnetpw \
|
|
--lnd.bitcoind.zmqpubrawblock=localhost:28332 \
|
|
--lnd.bitcoind.zmqpubrawtx=localhost:28333 \
|
|
--lnd.debuglevel=debug \
|
|
--loop.loopoutmaxparts=5 \
|
|
--faraday.min_monitored=48h \
|
|
--faraday.connect_bitcoin \
|
|
--faraday.bitcoin.host=localhost \
|
|
--faraday.bitcoin.user=testnetuser \
|
|
--faraday.bitcoin.password=testnetpw
|
|
```
|
|
|
|
## Use a configuration file
|
|
|
|
You can also store the configuration in a persistent `~/.lit/lit.conf` file, so
|
|
you do not need to type in the command line arguments every time you start the
|
|
server. Just remember to use the appropriate prefixes as necessary.
|
|
|
|
Make sure you don't add any section headers (the lines starting with `[` and
|
|
ending with `]`, for example `[Application Options]`) as these don't work with
|
|
the additional levels of sub configurations. You can replace them with a
|
|
comment (starting with the `#` character) to get the same grouping effect as
|
|
before.
|
|
|
|
Example `~/.lit/lit.conf`:
|
|
|
|
```text
|
|
# Application Options
|
|
httpslisten=0.0.0.0:8443
|
|
tlscertpath=~/.lit/tls.cert
|
|
tlskeypath=~/.lit/tls.key
|
|
letsencrypt=true
|
|
letsencrypthost=loop.merchant.com
|
|
lnd-mode=integrated
|
|
network=testnet
|
|
|
|
# Lnd
|
|
lnd.lnddir=~/.lnd
|
|
lnd.alias=merchant
|
|
lnd.externalip=loop.merchant.com
|
|
lnd.rpclisten=0.0.0.0:10009
|
|
lnd.listen=0.0.0.0:9735
|
|
lnd.debuglevel=debug
|
|
|
|
# Lnd - bitcoin
|
|
lnd.bitcoin.node=bitcoind
|
|
|
|
# Lnd - bitcoind
|
|
lnd.bitcoind.rpchost=localhost
|
|
lnd.bitcoind.rpcuser=testnetuser
|
|
lnd.bitcoind.rpcpass=testnetpw
|
|
lnd.bitcoind.zmqpubrawblock=localhost:28332
|
|
lnd.bitcoind.zmqpubrawtx=localhost:28333
|
|
|
|
# Loop
|
|
loop.loopoutmaxparts=5
|
|
|
|
# Pool
|
|
pool.newnodesonly=true
|
|
|
|
# Faraday
|
|
faraday.min_monitored=48h
|
|
|
|
# Faraday - bitcoin
|
|
faraday.connect_bitcoin=true
|
|
faraday.bitcoin.host=localhost
|
|
faraday.bitcoin.user=testnetuser
|
|
faraday.bitcoin.password=testnetpw
|
|
```
|
|
|
|
The default location for the `lit.conf` file will depend on your operating
|
|
system:
|
|
|
|
- **On MacOS**: `~/Library/Application Support/Lit/lit.conf`
|
|
- **On Linux**: `~/.lit/lit.conf`
|
|
- **On Windows**: `~/AppData/Roaming/Lit/lit.conf`
|
|
|
|
## LiT and LND interfaces
|
|
|
|
Port 10009 is the port that LND uses to expose its gRPC interface. LND's tls
|
|
cert and macaroons will be required when making requests to this interface.
|
|
|
|
Port 8443 is a port that LiT uses to expose a variety of interfaces: gRPC,
|
|
REST, grpc-web. When making requests using this interface, LiT's tls cert and
|
|
macaroons should be used.
|
|
|
|
## Upgrade Existing Nodes
|
|
|
|
If you already have existing `lnd`, `loop`, or `faraday` nodes, you can easily
|
|
upgrade them to the LiT single executable while keeping all of your past data.
|
|
|
|
For `lnd`:
|
|
|
|
- if you use an `lnd.conf` file for configurations, copy that file to your
|
|
LiT directory (`~/.lit` for example, see last section for other operating
|
|
system's default directories) and call it `lit.conf`. Then edit `lit.conf`
|
|
and add the `lnd.` prefix to each of the configuration parameters. You also
|
|
have to remove any section headers (the lines starting with `[` and ending
|
|
with `]`, for example `[Application Options]`) as these don't work with
|
|
the additional levels of sub configurations. You can replace them with a
|
|
comment (starting with the `#` character) to get the same grouping effect as
|
|
before.
|
|
|
|
Before:
|
|
|
|
```text
|
|
[Application Options]
|
|
alias=merchant
|
|
|
|
[bitcoin]
|
|
bitcoin.active=true
|
|
```
|
|
|
|
After:
|
|
|
|
```text
|
|
# New flag to tell LiT to run its own lnd in integrated mode. We need to set
|
|
# this because "remote" is the new default value if we don't specify anything.
|
|
# We also don't need to explicitly activate the Bitcoin network anymore as
|
|
# that is the default for LiT.
|
|
lnd-mode=integrated
|
|
|
|
# Application Options
|
|
lnd.alias=merchant
|
|
```
|
|
|
|
- if you use command line arguments for configuration, add the `lnd.` prefix to
|
|
each argument to `litd`
|
|
|
|
Before:
|
|
|
|
```shell
|
|
⛰ lnd --lnddir=~/.lnd --alias=merchant ...
|
|
```
|
|
|
|
After:
|
|
|
|
```shell
|
|
⛰ litd lnd.lnddir=~/.lnd --lnd.alias=merchant ...
|
|
```
|
|
|
|
For `loop`:
|
|
|
|
- if you use an `loop.conf` file for configurations, copy the parameters into
|
|
the `lit.conf` and add the `loop.` prefix to each of the configuration
|
|
parameters. Also remove any section headers or replace them with comments.
|
|
|
|
Before: (in `loop.conf`)
|
|
|
|
```text
|
|
[Application Options]
|
|
loopoutmaxparts=5
|
|
```
|
|
|
|
After: (in `lit.conf`)
|
|
|
|
```text
|
|
# Loop
|
|
loop.loopoutmaxparts=5
|
|
```
|
|
|
|
- if you use command line arguments for configuration, add the `loop.` prefix to
|
|
each argument to `litd`
|
|
|
|
Before:
|
|
|
|
```shell
|
|
⛰ loop --loopoutmaxparts=5 --debuglevel=debug ...
|
|
```
|
|
|
|
After:
|
|
|
|
```shell
|
|
⛰ litd --loop.loopoutmaxparts=5 --loop.debuglevel=debug ...
|
|
```
|
|
|
|
For `faraday`:
|
|
|
|
- the standalone `faraday` daemon does not load configuration from a file, but
|
|
you can now store the parameters into the `lit.conf` file. Just add the
|
|
`faraday.` prefix to each of the configuration parameters.
|
|
|
|
Before: (from command line)
|
|
|
|
```shell
|
|
⛰ faraday --min_monitored=48h
|
|
```
|
|
|
|
After: (in `lit.conf`)
|
|
|
|
```text
|
|
# Faraday
|
|
faraday.min_monitored=48h
|
|
```
|
|
|
|
- if you use command line arguments for configuration, add the `faraday.` prefix
|
|
to each argument to `litd`
|
|
|
|
Before:
|
|
|
|
```shell
|
|
⛰ faraday --min_monitored=48h --debuglevel=debug ...
|
|
```
|
|
|
|
After:
|
|
|
|
```shell
|
|
⛰ litd --faraday.min_monitored=48h --faraday.debuglevel=debug...
|
|
```
|
|
|
|
## Upgrading from LiT v0.1.1-alpha or earlier
|
|
|
|
If you used command line arguments only, you don't need to change anything when
|
|
updating from LiT `v0.1.1-alpha` or earlier.
|
|
|
|
If you used an `lnd.conf` file for LiT configurations, move that file to your
|
|
LiT directory (`~/.lit` for example, see last section for other operating
|
|
system's default directories) and call it `lit.conf`. Then edit `lit.conf`
|
|
and remove any section headers (the lines starting with `[` and ending
|
|
with `]`, for example `[Application Options]`) as these don't work with
|
|
the additional levels of sub configurations. You can replace them with a
|
|
comment (starting with the `#` character) to get the same grouping effect as
|
|
before.
|
|
|
|
## Example commands for interacting with the command line
|
|
|
|
Because not all functionality of `lnd` (or `loop`/`faraday` for that matter) is
|
|
available through the web UI, it will still be necessary to interact with those
|
|
daemons through the command line.
|
|
|
|
We are going through an example for each of the command line tools and will
|
|
explain the reasons for the extra flags.
|
|
The examples assume that LiT is started with the following configuration (only
|
|
relevant parts shown here):
|
|
|
|
```text
|
|
lnd-mode=integrated
|
|
network=testnet
|
|
|
|
lnd.lnddir=~/.lnd
|
|
lnd.rpclisten=0.0.0.0:10009
|
|
```
|
|
|
|
Because all components listen on the same gRPC port and use the same TLS
|
|
certificate, some command line calls now need some extra options that weren't
|
|
necessary before.
|
|
|
|
**NOTE**: All mentioned command line tools have the following behavior in
|
|
common: You either specify the `--network` flag and the `--tlscertpath` and
|
|
`--macaroonpath` are implied by looking inside the default directories for that
|
|
network. Or you specify the `--tlscertpath` and `--macaroonpath` flags
|
|
explicitly, then you **must not** set the `--network` flag. Otherwise, you will
|
|
get an error like `[lncli] could not load global options: unable to read macaroon
|
|
path (check the network setting!): open /home/<user>/.lnd/data/chain/bitcoin/testnet/admin.macaroon:
|
|
no such file or directory`.
|
|
|
|
### Example `lncli` command
|
|
|
|
The `lncli` commands in the "integrated" mode are the same as if `lnd` was
|
|
running standalone. The `--lnddir` flag does not need to be specified as long
|
|
as it is the default directory (`~/.lnd` on Linux).
|
|
|
|
```shell
|
|
⛰ lncli --rpcserver=localhost:10009 --tlscertpath=~/.lnd/tls.cert getinfo
|
|
```
|
|
|
|
### Example `loop` command
|
|
|
|
This is where things get a bit tricky, because as mentioned above, `loopd` also
|
|
runs on the same gRPC server as `lnd`. That's why we have to both specify the
|
|
`host:port` as well as the TLS certificate of `lnd`. But `loopd` verifies its
|
|
own macaroon, so we have to specify that one from the `.loop` directory.
|
|
|
|
```shell
|
|
⛰ loop --rpcserver=localhost:8443 --tlscertpath=~/.lit/tls.cert \
|
|
--macaroonpath=~/.loop/testnet/loop.macaroon \
|
|
quote out 500000
|
|
```
|
|
|
|
You can easily create an alias for this by adding the following line to your
|
|
`~/.bashrc` file:
|
|
|
|
```shell
|
|
⛰ alias lit-loop="loop --rpcserver=localhost:8443 --tlscertpath=~/.lit/tls.cert --macaroonpath=~/.loop/testnet/loop.macaroon"
|
|
```
|
|
|
|
### Example `pool` command
|
|
|
|
Again, `poold` also runs on the same gRPC server as `lnd` and we have to specify
|
|
the `host:port` and the TLS certificate of `lnd` but use the macaroon from the
|
|
`.pool` directory.
|
|
|
|
```shell
|
|
⛰ pool --rpcserver=localhost:8443 --tlscertpath=~/.lit/tls.cert \
|
|
--macaroonpath=~/.pool/testnet/pool.macaroon \
|
|
accounts list
|
|
```
|
|
|
|
You can easily create an alias for this by adding the following line to your
|
|
`~/.bashrc` file:
|
|
|
|
```shell
|
|
⛰ alias lit-pool="pool --rpcserver=localhost:8443 --tlscertpath=~/.lit/tls.cert --macaroonpath=~/.pool/testnet/pool.macaroon"
|
|
```
|
|
|
|
### Example `frcli` command
|
|
|
|
Faraday's command line tool follows the same pattern as loop. We also have to
|
|
specify the server and TLS flags for `lnd` but use `faraday`'s macaroon:
|
|
|
|
```shell
|
|
⛰ frcli --rpcserver=localhost:8443 --tlscertpath=~/.lit/tls.cert \
|
|
--macaroonpath=~/.faraday/testnet/faraday.macaroon \
|
|
audit
|
|
```
|
|
|
|
You can easily create an alias for this by adding the following line to your
|
|
`~/.bashrc` file:
|
|
|
|
```shell
|
|
⛰ alias lit-frcli="frcli --rpcserver=localhost:8443 --tlscertpath=~/.lit/tls.cert --macaroonpath=~/.faraday/testnet/faraday.macaroon"
|
|
```
|
|
|
|
## Shutting down LiT
|
|
|
|
In the integrated mode LiT can be shut down by stopping the integrated `lnd`
|
|
node:
|
|
|
|
```shell
|
|
⛰ lncli stop
|
|
```
|