c-lightning beta版本上线
Lightning Network

c-lightning beta版本上线

Christian Decker
Christian Decker, Rusty Russell

今天标志着闪电网络成长和发展的重要一天:所有三个闪电设置(Eclair,lnd和c-lightning)现在都处于beta阶段!自1月份推出Blockstream商店以来,闪电网络发展迅速。在Blockstream商店宣布前,闪电网络共有46个开放通道和0.682 BTC容量。今天,大约有7,800个开放通道、26 BTC的容量。6个月内,通道增加了16,856%,通道容量增加了4,084%!​

​漫长的等待终于结束了:c-lightning团队很激动地宣布c-lightning 0.6版本终于上线了,这是这个项目的一个重要的里程碑。这个版本完全重写了之前的版本,是第一个完全规格兼容的c-lightning版本。这个版本将之前设计规格时的协议迁移到了新的架构上,这个新的架构更加模块化,也易于进行扩展,使得新版本更容易进行改造以适应用户的需求和基础设施。

新功能

这次新推出的0.6版本有太多新功能了,以下是最有趣、影响最大的几个新功能:

  • 闪电节点: 上一个版本需要一个bitcoind全节点和c-lightning一起运行才能连接到比特币网络。这个版本仍然需要一个bitcoind全节点和c-lightning一起运行,但现在也可以与远程的节点进行交流了,包括一些轻量的节点如spruned。这使得用户在树莓派以及其他配置较低的设备上也能运行c-lightning节点了。
  • 八卦协议 已经进行升级,使用更加轻量的带宽机制来请求某些特定的信息,而不是像上一版本那样交换整个网络视图。这对于低配置设备以及移动设备非常重要,使得他们不需要浪费很多带宽和能量来下载以及验证他们本来就有的信息。
  • API稳定性: 新版本重新设计了c-lightning JSON-RPC界面以及所支持的库来减少将来再次进行更新的时候所要进行的改动。API稳定性的提高让其他项目能够更容易地在c-lightning上进行搭建,因为在可预见的未来,如果不发生变动的话,我们都会支持这个版本的API。
  • 钱包及同步: c-lightning现已包含一个完全成熟的钱包,能够管理链上及链下资金,不再需要处理原始交易了!所有的资金都会被自动追踪并且会尽快返回内部钱包,而不需要用户手动操作。此外,区块链追踪可以提供对区块链的内部视图,不再需要花费时间来重新扫描区块链了。
  • 支持TOR: c-lightning现已支持通过TOR网络来连接上节点了,会自动登记为一个隐藏服务,通过TOR来接收传入的连接。
  • 支付逻辑 进行了重大的修改以支持路径失败时自动重试,对路径选择过程进行随机化,以及提供更好的交易当前状态反馈。
  • 还有一如既往的:性能提升、性能提升、性能提升。

模块化带来的灵活性

C-lightning的架构基于一系列独立的沟通过程,每个过程都有其职责。这使得c-lightning能够更好地整合进用户的基础设施之中,也能更好地适应用户的需求。这里特别要提到两个守护进程,使用的是模块化的设计,适用于所有通道、gossipd以及hsmd。

Gossipd管理网络的本地视图,负责寻找一笔交易从其源头到目的地的路径。默认设置会试图寻找在费用、超时和稳定性方面都比较平衡的路径,还会从一组备选路径中随机选择一个,修改数量和超时来隐藏该交易的真正目的地。如果用户有特定的路径需求或者想要制定一些特定的路径政策,如总是选择超时最低或者费用最低的路径的话,默认设置也很容易修改。

hsmd管理所有与加密材料相关的运营,并控制通道中的资金。这是唯一一个能够接触节点的私钥的子系统,这意味着其他子系统并不拥有任何私密信息,如果要签名或者解密任何东西的话,就必须要通过hsmd守护进程。通过这种方式来把加密运营中心化可以降低需要被安全保护的表面,并开放一系列有趣的应用。默认的hsmd设置通过分离过程已经能够提供很高的安全性能了,还能通过操作系统级别的安全来进一步提供保障,如SELinux以及AppArmor。但是这可以轻易用另一个设置来替代,这个设置能够与物理的硬件加密模块。替换hsmd设置可以让运营更加无人化,比如说,在家里运行一个c-lightning节点,用一个配对的手机应用来管理私钥、开启交易或者创建收据。

将c-lightning的功能分散到几个守护进程中不仅及大地提高了灵活性,也提高了节点的安全性,因为攻击者无法直接与任何接触私钥的部分进行直接的操作。每个子系统独立地验证内部状态的一致性,如果发现不一致,则会切断该同伴节点的连接并终止进程。这个多守护进程的架构同样使得用户能够使用Docker、SELinux以及AppArmor来指定每个守护进程能够接触到哪些信息以及能够进行哪些功能。

下一步是什么?

我们在c-lightning还远远没有完成,并且会不断地推出新的功能和优化, 并提高性能 、稳定性以及可用性。如果你有哪些想要的功能,或者有用的反馈,可以在Github上面提交一个issue,在mailing list上给我们留言,或者在IRC上联系我们。

同时我们也在为闪电网络规格的推进作出贡献,并且正在通过参考如我们的eltoo提案以及上游的比特币提案如SIGHASH_NOINPUT,来积极研究下一代c-lightning。

我们在此感谢许多热心的贡献者们,他们不仅为c-lightning贡献了代码,同时还#横冲直撞地进行了测试,并给出哪里做得很好、哪里需要改进的反馈。最后我们要感谢另一支闪电网络团队、ACINQ、闪电网络实验室,以及所有的个人贡献者,他们的努力使得闪电网络社区成为如此和谐、团结、开放的环境。​​​​

If you have specific preferences, please, mark the topic(s) you would like to read: