闪电网络节点包装器
项目描述
Boltlight - 闪电网络的 BOLT-on 接口
Boltlight 是闪电网络节点包装器。
它本身不是 LN 节点,而是连接到支持实现之一的现有节点,提供统一的接口和一组功能。因此,使用 boltlight 的客户端代码可以不知道哪个节点在后台运行。
这意味着可以随时更改底层 LN 节点实现,只需最少的干预且不会影响客户端代码。
每个底层实现都实现了一些具有“微小”差异的功能。Boltlight 始终努力保持统一的接口,在实现不同的地方划出一条共同的线,并始终选择尽可能地保持 BOLT 兼容。
LAPP 开发人员应该可以自由编写代码,而无需锁定任何特定的实现。
支持的 LN 实现 :zap:
目前,支持主要的 LN 实施1:
- Blockstream 的c-lightning (v0.10.1)
- Acinq的泡芙(v0.6.1)
- 托马斯·沃格特林(Thomas Voegtlin)的电子(v4.1.5)
- 闪电实验室的lnd (v0.13.3-beta)
这个怎么运作
在客户端,boltlight 公开了一个 gRPC 客户端接口,默认情况下在端口 1708 上。在节点端,它将所有接收到的调用代理到底层实现,使用适当的传输和身份验证来连接并应用适当的格式和数据转换到每个实现的调用。
有关每个实现的支持调用表,请参阅支持的 API 。
尚未实现的调用会返回UNIMPLEMENTED错误。
软件依赖性和配置是支持的实现之间的唯一显着差异。
有关依赖于特定闪电实现的配置提示和细微差别的不完整列表,请参阅特定于实现。
笔记
- 目前仅支持指定版本的 LN 节点
要求
首先,boltlight 需要连接到现有且受支持的 LN 节点。
为了运行boltlight,需要对其进行配置,并且必须满足软件依赖性。一些依赖项和配置选择是由选择的实现决定的。将在运行时检查所需依赖项的可用性。
支持的架构是amd64和arm32v7。后者可能需要额外的依赖。
系统依赖
- Linux 1,2
- 蟒蛇 3.9+ 3
- [可选] libscrypt 1.8+(更快的启动)
资源
资源需求应该很低:
- CPU:1核
- RAM:空闲时约 64MB
- 磁盘:docker 图像权重 ~350MB
笔记
- 在 Debian 10 Buster 上测试
- macOS 应该可以工作但没有经过很好的测试,Windows 可能可以工作但没有得到积极的支持
- 用 python 3.9+ 测试
安装
Boltlight 可以安装:
$ pip install boltlight
建议使用 a virtualenv。
配置和保护
Boltlight 需要先进行配置,然后才能连接到 LN 节点并使其发挥作用。配置包含有关如何配置boltlight 的所有说明。
配置完成后还需要最后一步:安全性。
在节点方面,与配置一样,这部分取决于所选的实现。在客户端,使用 gRPC macaroon 处理授权。
为了更快地设置和执行,可以关闭 TLS 和 macaroon。这不适合生产使用,但可用于测试或开发。
要配置必要的机密并设置密码来管理和保护它们,请运行:
$ boltlight-secure
它可以以交互方式或无人值守方式运行,并将创建或更新 boltlight 的数据库和 macaroon 文件。
所有秘密都将被加密并存储在数据库中,因此它们将无法在静止状态下访问。作为解锁过程的一部分,秘密使用 Boltlight 的密码解密,仅在运行时可供 Boltlight 使用,并且永远不会以明文形式写入磁盘。
请阅读安全性了解所有详细信息。
使用
跑步
要开始boltlight运行:
$ boltlight
这将启动它的 gRPC 服务器,通过它可以操作 Boltlight。
定义了要序列化的数据的boltlight.proto结构,可以在此处找到。可以从此文件生成支持语言的 gRPC 客户端库。有关详细信息,请参阅生成说明。
proto 文件包含三个服务:Unlocker、Lightning和Locker。第一个不需要马卡龙授权,只能解锁boltlight,另外两个在boltlight解锁后启动,需要授权并提供所有支持的操作,包括锁定。
API 文档
gRPC API 的文档以及 Python、Go、Node.js 和 Bash 中的示例代码可以在 API 页面找到。
命令行界面
一个名为 的 CLIblink具有 bash 和 zsh 完成支持,可用于交互式使用、维护或测试。
要激活完成支持,请将适当的行添加到 shell 的 RC 文件中:
~/.bashrc:. /path/to/installed/boltlight/share/complete-blink.bash~/.zshrc:. /path/to/installed/boltlight/share/complete-blink.zsh
有关可用 CLI 命令的完整列表,请使用以下--help选项:
$ blink --help
配对
要将boltlight 与客户端配对,请运行:
$ boltlight-pairing
这将生成两个 URI,以便轻松检索连接数据 ( boltlightconnect://<host>:<port>[?cert=<PEM certificate>]) 和 macaroon ( macaroon:<chosen macaroon>)。URI 可以显示为 QR 码,适合从客户端应用程序轻松读取,也可以显示为文本以便于复制。
Globular Android 钱包是一个支持与boltlight配对的示例应用程序。
叉子
Boltlight 已从Lighter分叉 并继续沿同一路径前进,旨在:
- 让上手更容易
- 添加对更多实现的支持
- 使现有支持保持最新
- 添加更多功能
由于名称更改,Boltlight 并非 100% 向后兼容 Lighter,因此需要重新配置才能升级。
贡献
欢迎所有贡献!
如果您是开发人员并想参与其中,请参阅 CONTRIBUTING.md了解有关如何加入工作的信息。
如果 Boltlight 缺少您需要的关键功能,请与我们联系。随意打开问题以请求新功能或报告错误,或发送电子邮件至hashbeam@protonmail.com.
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。