Connecting to a lightning node remotely
LND | prefix | d | server | d | auth | d | tls | d |
---|---|---|---|---|---|---|---|---|
lndconnect | lndconnect:// | | grpc_host:10009 | ? | macaroon=base64_macaroon | & | cert=base64_cert | |
BoS | | { | "socket": "grpc_host:10009" | , | "macaroon": "base64_macaroon" | , | "cert": "base64_cert" | } |
BTCPay | type=lnd-rest | ; | ; | macaroon=hex_macaroon | ; | certthumbprint=hex_cert | |
C-lightning | prefix | d | server | d | auth | d | tls |
---|---|---|---|---|---|---|---|
Spark Wallet / Sparko | | | spark_rpc_host | ? | access-key=accessKey | | |
BTCPay unix socket | type=clightning | ; | server=unix://home/user/.lightning/lightning-rpc | | | | |
BTCPay TCP | type=clightning | ; | server=tcp://tcp_host:27743/ | | | | |
BTCPay Charge | type=clightning | ; | ; | api-token=myapitoken... | | | |
C-lightning REST | | | rest_host | ? | hex_macaroon | | |
Eclair | prefix | d | server | d | auth | d | tls |
---|---|---|---|---|---|---|---|
BTCPay | type=eclair | ; | ; | password=eclairpassword... | | |
- lnclilncli --rpcserver=IP_ADDRESS:GRPC_PORT --tlscertpath=./../tls.cert --macaroonpath=./../admin.macaroon
poetry run ./suez --client-args=--rpcserver=IP_ADDRESS:GRPC_PORT --client-args=--tlscertpath=./../tls.cert --client-args=--macaroonpath=./../admin.macaroon
lndconnect://<host>:<port>?[cert=<base64url_DER_certificate>&]macaroon=<base64url_macaroon>
# generate data parts
macaroon=$(sudo base64 /mnt/hdd/app-data/lnd/data/chain/${network}/${chain}net/admin.macaroon | tr -d '=' | tr '/+' '_-' | tr -d '\n')
cert=$(sudo grep -v 'CERTIFICATE' /mnt/hdd/lnd/tls.cert | tr -d '=' | tr '/+' '_-' | tr -d '\n')
# generate URI parameters
macaroonParameter="?macaroon=${macaroon}"
certParameter="&cert=${cert}"
lndconnect="lndconnect://${host}:${port}${macaroonParameter}${certParameter}"
- stored in~/.bos/YOUR_NODE_NAME/credentials.json
- with base64 values
{
"cert": "base64 tls.cert value",
"macaroon": "base64 .macaroon value",
"socket": "host:port"
}
# For `cert`
base64 ~/.lnd/tls.cert | tr -d '\n'
# For `macaroon`
base64 ~/.lnd/data/chain/bitcoin/mainnet/admin.macaroon | tr -d '\n'
- with path{"cert_path": "/path/lnd/tls.cert","macaroon_path": "/path/lnd/data/chain/bitcoin/mainnet/admin.macaroon","socket": "LND_IP:10009"}
- LND via the REST proxy:type=lnd-rest;server=https://mylnd:8080/;macaroon=abef263adfe...type=lnd-rest;server=https://mylnd:8080/;macaroon=abef263adfe...;certthumbprint=abef263adfe...
- macaroonxxd -plain /root/.lnd/data/chain/bitcoin/mainnet/admin.macaroon | tr -d '\n'
- certthumbprint:openssl x509 -noout -fingerprint -sha256 -in /root/.lnd/tls.cert | sed -e 's/.*=//;s/://g'
- optional:allowinsecure=true
https://github.com/fiatjaf/sparko
Currently only works with a CA signed certificate.
See: https://github.com/shesek/spark-wallet/blob/master/doc/tls.md#add-as-trusted-certificate-to-android
- Simply:URL?access-key=accessKeythe
accessKey
has macaroon-like permissions
- No standard yet, but needs:URL?hex_macaroon
- generate the
hex_macaroon
:xxd -plain /home/bitcoin/c-lightning-REST/certs/access.macaroon | tr -d '\n'
- c-lightning via TCP or unix domain socket connection:type=clightning;server=unix://root/.lightning/lightning-rpctype=clightning;server=tcp://1.1.1.1:27743/
- Lightning Charge via HTTPS:type=charge;server=https://charge:8080/;api-token=myapitoken...
- Eclair via HTTPS:type=eclair;server=https://eclair:8080/;password=eclairpassword...
- common dependenciessudo apt install qrencode base64 xxd
- generate a QRcode in the terminal (press
CTRL
+-
to reduce the size)string="desired content or $(command output)"qrencode -t ANSIUTF8 "$string" - base64_macaroonbase64 ~/.lnd/data/chain/bitcoin/mainnet/admin.macaroon | tr -d '\n'
- hex_macaroon:xxd -plain /home/bitcoin/c-lightning-REST/certs/access.macaroon | tr -d '\n'
- base64_certbase64 ~/.lnd/tls.cert | tr -d '\n'
- certthumbprint:openssl x509 -noout -fingerprint -sha256 -in /root/.lnd/tls.cert | sed -e 's/.*=//;s/://g'
- inspect a
tls.cert
openssl x509 -in /mnt/hdd/lnd/tls.cert -noout -text - display a Tor Hidden Service more at: https://openoms.github.io/bitcoin-tutorials/tor_hidden_service_example.htmlsudo cat /var/lib/tor/SERVICE_NAME/hostname# or on a RaspiBlitzsudo cat /mnt/hdd/tor/SERVICE_NAME/hostname
Last modified 1yr ago