今天,我们迎来了最新的 Core Lightning 版本 v23.11,代号为 Bitcoin Orangepaper(由 Shahana Farooqui 提供)。在巨大的 v23.08 版本发布之后,本次更新的范围略小,主要提供改进和后续功能。尽管如此,它还是包含了一些值得注意的功能,我们很高兴与大家分享。
双重资助达到兼容水平:经过漫长的历程,双重资助进程终于达到了交叉实施的兼容性。
RPC 命令更新:此版本为 Core Lightning API 添加了一些令人兴奋的内容和更新,包括功能更强大的检查命令和全新的还原命令。
面向开发人员的核心闪电:核心闪电的各种界面不断增加,符文也有了令人兴奋的新领域。我们还增加了一些新选项!
双重资助触手可及!
双倍资金提案已经提出好几年了。由于 Core Lightning 是第一个正式支持双重资助的 Lightning 节点,我们成为它的粉丝也就不足为奇了,让我们再讨论一次吧!
在传统的渠道融资过程中,融资交易仅由发起新渠道的一方提供资金。这意味着,尽管新渠道是合作创建的,但只有这一方才能为资金交易增加输入和输出。
使用交互式双重资助协议,双方可通过为资助交易提供投入和产出(交互式-tx 子协议)来参与资助过程。这可以通过在协商阶段共享有关其所需输入和输出的最新信息来实现。一旦双方就其对供资交易的补充达成一致,他们就会交换一组必要的签名,并可着手最终确定供资交易和初始承诺交易。
这一过程允许创建两端余额都不为零的通道。这样做的一个好处是,可以建立即时发送和接收付款的通道,而无需事先转移余额。
现在我们来看看新闻:
BOLT 规范流程的一个基本方面是,在将任何建议纳入 BOLT 之前,必须对其进行两个独立且兼容的实施。
丽莎-内古特(Lisa Neigut)最近为在核心闪电(Core Lightning)中实施双重资助做出了贡献,使资助过程在暂时失去连接的情况下仍能继续。这是 Core Lightning 和 Eclair 实现交叉兼容的最后一步。
RPC 命令更新
此次发布的 Core Lightning 为应用程序接口带来了一些值得注意的更新和新增功能。
在上一版本 --recover 选项的基础上,这一版本将其提升为 RPC 命令恢复,可通过插件和各种接口访问。在后台,该命令会使节点在启用 --recover 选项后重新启动。这一功能对前端应用程序尤为有利。
在引入恢复功能的同时,检查功能也进行了重大升级,变得更加强大。除了验证命令格式和参数外,检查还能在不改变系统状态的情况下进行全面分析。
将这两个命令结合使用,可以在不实际操作的情况下检查是否可以进行恢复,这对构建强大的用户界面很有帮助。
delinvoice 利用标签和状态参数从数据库中删除发票。以前,检查命令通过确保存在这两个必要参数来验证命令的形式。此次更新后,check 会进行更深入的分析,检查是否存在带有给定标签的发票,并确认状态是否一致。
例如:
$ lightning-cli check delinvoice "l1" "paid"
{
"code": 906,
"message": "Invoice status is unpaid not paid",
"data": {
"current_status": "unpaid",
"expected_status": "paid"
}
}
解码(decode) 命令也已更新。解码现在可以处理紧急恢复字符串,允许用户验证 emergency.recover 文件的完整性和有效性。紧急恢复字符串可通过 hsmtool 的新 getemergencyrecover 命令获得。
这些更新提供了一个强大的框架,使用户更容易以安全的方式操作其 Core Lightning 节点。
说到安全运行核心闪电节点,符文获得了一个新的限制,允许更灵活、更精细的访问管理。按次限制允许一般速率限制,并可容纳一系列时间单位,如秒、毫秒等。为了实现这一点,Core Lightning 现在会跟踪每个符文的最后使用时间戳,该时间戳也会添加到 showrunes 命令中。
此版本还将所有时间字段更新为纳秒。这将影响 listforwards 的 received_time、resolved_time 字段以及 listpays 和 listsendpays 的 created_at 字段。
除了使前端应用程序更容易访问 Core Lightning 的恢复功能外,还扩展了等待和分页 API。wait 现在又支持两个子系统:listforwards 和 listsendpay。这些更新允许等待转发的 HTLC 和付款的任何状态变化,并为 listforwards 和 listsendpays 添加了分页功能。这些新增功能对于前端开发人员改善用户体验特别有用。为了让更多人使用这些功能,等待系统已在 Rust 和 gRPC 接口上启用。
Core Lightning 工具库中新增的另一个实用命令是数据存储使用情况(datastoreusage)。该命令可以清楚地显示数据存储条目占用的数据库空间,而无需手动量化数据。
这套命令更新不仅增强了 Core Lightning 的功能,还改善了用户和开发人员的体验,突显了平台的持续发展。
其他值得注意的更新
在此版本中,Core Lightning 屏蔽了在节点上启用开发人员功能的旧方法。以前,需要从头开始编译 Core Lightning。现在,要启用开发人员功能,只需在启动 lightningd 时使用 --developer 运行时变量即可。这极大地简化了开发人员的工作。
核心闪电现在默认启用大通道。在闪电网络的早期开发过程中,开发人员决定暂时将最大通道规模限制在 0.16777216 BTC 以下。做出这一决定是为了限制用户可能因软件错误而损失的金额。现在,通道可以超过这一限制,但节点必须发出支持和愿意这样做的信号。该版本默认设置了 "wumbology for all "指标。用户仍可通过设置 --large-channels=false 选项来禁用 wumbo 通道。
最后,该版本还增加了创建包含后备 P2TR 地址的发票的功能。这样,发票也可以在链上支付,例如,在支付时没有足够的入站流动资金。Core Lightning 现在可以跟踪后备地址的付款情况,并解决任何等待命令。可通过设置配置选项 invoices-onchain-fallback 启用后备地址。
加入 CLN 社区
我们要向贡献者(v23.11 版共有 29 位贡献者)致敬,他们继续帮助我们改进 CLN 的每次更新。我们非常感谢你们的支持;是你们的奉献和反馈让新版本得以发布。
一如既往,请在 Build On L2 上发起一个主题,让我们知道您喜欢什么或我们可以改进什么,我们在那里有专门的开发人员和节点运行人员页面,以帮助促进长篇讨论。注册是免费的,我们非常欢迎新用户!
您也可以通过我们常用的社交渠道联系我们:Twitter、Telegram 或 Discord。 还有一个惊喜:请关注 BlockstreamYouTube 频道。我们将播出一系列播客特辑,由 Rusty Russell、Christian Decker 和其他 CLN 撰稿人主讲,详细介绍新版本。
再次感谢社区和所有继续为核心闪电做出贡献的人们!