LND
lnd and lncli
About
lnd is a feature-full implementation of Lightning Network. It can be controlled from other graphical apps like Thunder, RTL or from command line using lncli.
Usage
Installing
lndautomatically installslnd-unlocker, which creates a wallet right after installation and stores the seed in/var/lib/lnd-system-mainnet/.seed.txtThe above behavior can be overridden by
--no-install-recommends, but do not do it unless you prefer false sense of security. Without unlockerlndwill stay down after crash. If long enough others may steal your sats!Check
thunderhubandridethelnpackages for a nice graphical interface.Check
lndconnectpackage to connect to LND with Zap.You can use
sudoto runlnclior add yourself to grouplnd-system-mainnet.If you want to grant some user readonly or invoice access, add them to group
lnd-system-mainnet-readonlyorlnd-system-mainnet-invoiceA special package
lnd-genmacaroontakes care of generating a special macaroon that is a union of readonly and invoice. It's stored at/var/lib/lnd-system-mainnet/invoice/invoice+readonly.macaroon. This is currently used by BTCPayServer.
Accessing LND
In order to conveniently access lnd, lncli is wrapped in a script called xlncli. This is set as the default using great Alternatives system. If you dislike xlncli for any reason, you can easily configure lncli command to use real lncli. However, this should not be needed since xlncli passes all arguments to lncli as needed. It only inserts additional arguments telling lncli to connect to the local lnd if it doesn't detect that you're attempting to connect to some other daemon. In other words, running something like lncli getinfo will connect to your own server (if you have permissions - read below), while lncli --rpcserver somethingelse --macaroonpath somethingelse/admin.macaroon --tlscertpath somethingelse/tls.cert getinfo will connect to a server somethingelse using given credentials.
In order for this to work, the user running lncli must have the permission to read macaroons. The easiest way to do that is run it with sudo, which causes xlncli to automatically identify admin permissions and use admin.macaroon. Giving another user (including yourself) the access to admin macaroon is as simple as running sudo usermod -a -G lnd-system-mainnet username. For invoice macaroon, use sudo usermod -a -G lnd-system-mainnet-invoice username, finally sudo usermod -a -G lnd-system-mainnet-readonly username will give username read-only access to LND.
Last updated
Was this helpful?