#lnd #onion #daemon #bolt #aims #standalone #message

app lndk

一个独立的守护进程,旨在使用LDK外部实现LND的BOLT 12功能

1个不稳定版本

0.0.1 2024年4月19日

#13 in #lnd

MIT 许可证

590KB
1K SLoC

LNDK

LNDK是一个独立的守护进程,连接到LND(通过其grpc API),旨在在外部实现LND的bolt 12功能。LNDK利用lightning开发套件提供功能,作为LND的API和LDK的闪电库之间的薄层“适配器”。

项目里程碑

  • v0.1.0:为LND提供洋葱消息转发。
  • v0.2.0:使用盲路径进行支付。

请注意,此项目仍处于实验阶段。

资源

设置LNDK

编译LND

要运行LNDK,假设LND正在运行。您在编译和运行LND时需要做一些调整,以便使其与LNDK兼容。

首先,您需要运行LND的一个特定分支,以允许广告洋葱消息功能位。为此,请按照以下步骤操作

git clone https://github.com/lightningnetwork/lnd
cd lnd
git checkout v0.16.2-patch-customfeatures

在此分支上,编译LND。请确保启用peersrpc和signerrpc服务以及dev标签,如下所示

makeinstall --tags="peersrpc signerrpc dev"

请注意,本指南假定您对设置LND有一定的了解。如果您想提高速度,请尝试本指南

运行LND

一旦准备好运行 LND,二进制文件必须使用以下参数运行:--protocol.custom-message=513 以允许它向 LNDK 报告洋葱消息,以及 --protocol.custom-nodeann=39--protocol.custom-init=39 用于宣传洋葱消息功能位。

您可以通过以下两种方式完成此操作

  1. 在运行时将这些选项直接传递给 LND

lnd--协议.自定义-消息=513 --协议.自定义-节点公告=39 --协议.自定义-初始化=39

  1. 将这些添加到配置文件 lnd.conf
[protocol]
protocol.custom-message=513
protocol.custom-nodeann=39
protocol.custom-init=39

运行 LNDK

现在我们需要设置 LNDK。要开始

git clone https://github.com/lndk-org/lndk
cd lndk

为了使 LNDK 成功连接到 LND,我们需要传入 gRPC 地址和身份验证凭据。有两种方法可以实现这一点

  1. 这些值可以在运行 LNDK 程序时通过命令行传入,如下所示

cargo运行 ----address=<地址> --cert=<证书路径> --macaroon=<macaroon 路径>

或者,在更具体的示例中

cargo运行 ----address=https://127.0.0.1:10009 --cert=/home/<用户名>/.lnd/tls.cert --macaroon=/home/<用户名>/.lnd/data/chain/bitcoin/regtest/admin.macaroon

注意 gRPC 地址必须以 https:// 开头,程序才能正常运行。

  1. 或者,您可以使用配置文件来添加所需的参数。
  • 在 lndk 目录中,创建名为 lndk.conf 的文件。
  • 将以下行添加到文件中
    • 地址="<地址"
    • 证书="<证书路径>"
    • macaroon="<macaroon 路径>"
  • 运行 cargo run -- --conf lndk.conf
  • 使用任何命令的 --help 选项获取有关每个参数的更多信息。

自定义 macaroon

与其使用具有对 LND 节点无限制权限的 admin.macaroon,我们可以使用 lncli 制作具有更多特定权限的 macaroon,以提高安全性。使用此命令,生成一个将仅给 LNDK 指定 gRPC 终端点的 macaroon

lncli --save_to=<FILEPATH>/lndk.macaroon uri:/lnrpc.Lightning/GetInfo uri:/lnrpc.Lightning/ListPeers uri:/lnrpc.Lightning/SubscribePeerEvents uri:/lnrpc.Lightning/SendCustomMessage uri:/lnrpc.Lightning/SubscribeCustomMessages uri:/peersrpc.Peers/UpdateNodeAnnouncement uri:/signrpc.Signer/DeriveSharedKey

安全

注意:建议始终使用 cargo-crev 验证每个依赖项的可信度,包括此依赖项。

依赖项

~27–41MB
~644K SLoC