1个不稳定版本
0.0.1 | 2024年4月19日 |
---|
#13 in #lnd
590KB
1K SLoC
LNDK
LNDK是一个独立的守护进程,连接到LND(通过其grpc API),旨在在外部实现LND的bolt 12功能。LNDK利用lightning开发套件提供功能,作为LND的API和LDK的闪电库之间的薄层“适配器”。
项目里程碑
请注意,此项目仍处于实验阶段。
资源
设置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
用于宣传洋葱消息功能位。
您可以通过以下两种方式完成此操作
- 在运行时将这些选项直接传递给
LND
lnd--协议.自定义-消息=513 --协议.自定义-节点公告=39 --协议.自定义-初始化=39
- 将这些添加到配置文件
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 地址和身份验证凭据。有两种方法可以实现这一点
- 这些值可以在运行
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:// 开头,程序才能正常运行。
- 或者,您可以使用配置文件来添加所需的参数。
- 在 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