Blockstream 的 Greenlight:可扩展的非托管闪电基础设施现已向开发者开放
Lightning Network

Blockstream 的 Greenlight:可扩展的非托管闪电基础设施现已向开发者开放

Christian Decker
Christian Decker

就在两年多前,Blockstream构想出了Greenlight:一种开创性的Lightning托管基础架构,可在不影响或监护的情况下扩展您的Lightning部署。过去一年与合作伙伴的测试证明,Greenlight既稳定又简单易用。今天,我们将开源客户端资源库,并向感兴趣的各方开放开发者预览版的注册!

什么是Greenlight?

Greenlight是面向企业、商家和Lightning应用程序的非托管Lightning即服务(LaaS)。您的用户持有他们的钥匙,而我们负责其他一切。作为使用Greenlight的开发者,您只需与我们简单的应用程序接口(API)对话,即可在您的应用程序中无缝集成Lightning支付功能,无需具备Lightning协议专业知识,也无需进行冗长的节点设置。

Greenlight 有两个控制域:用户域和 Blockstream 域。用户域的任意数量客户端都可以连接到 Blockstream 域的单个节点。在Blockstream基础架构上运行的节点接收指令,计算状态变化,然后联系完全由用户控制的签名者,让其检查并签署变化。这样就形成了一个非托管、按需运行的 "闪电 "节点,您的密钥存储在您的设备上,永远不会接触到我们的基础设施。

Greenlight 背后的理念以及它将如何彻底改变闪电托管。

今天有哪些活动?

虽然我们仍在积极开发 Greenlight,但公共界面已经稳定,可供您探索。

客户存储库包含多个组件:

  • gl-client 及其语言绑定提供了与 Greenlight 和用户节点交互的简单应用程序接口。内置的签名器负责管理您的种子,并将其隐藏起来,不让节点以及我们这些服务操作员发现。签名器中的端到端验证(仍在积极开发中,本预览版尚未完成)可确保任何状态变化都经过经过验证的客户端授权,这样,潜在的节点主机泄露不会导致资金损失。
  • gl-testing 提供了一个完整的模拟环境来测试你的代码,而不是真正的 Greenlight 服务。要了解更多信息,请参阅我们的教程:如何在 Python 项目中使用 gl-client-py 中的 Python 绑定来使用 gl-testing。
  • gl-plugin 和 gl-signerproxy 允许任何人复制 Greenlight 节点公开的接口,包括使用远程签名者的功能,而不是将种子保留在公开的服务器上。

后两项是我们离岸计划的基础:如果您不再需要Greenlight,或者希望获得更多控制权,我们可以让您离岸到自己的基础设施中,您的所有应用程序都将继续运行。这意味着,如果您根据Greenlight API开发应用程序,您将自动获得对Core Lightning的支持。您可以在Greenlight官方文档和教程网站上阅读更多关于如何离板的信息。

入门

请访问入门教程并按说明操作。您首先需要一个邀请码才能在服务上注册一个新节点。在服务的早期阶段,邀请系统允许我们以可控的方式逐步扩大规模。我们为您设置了一个申请邀请的表单,我们会尽快发送给您。

在 Python 中,一个注册节点、调度节点并在节点上执行 getinfo 的最小客户端看起来是这样的:

from glclient import TlsConfig, Signer, Scheduler
import secrets  # Make sure to use cryptographically sound randomness

invite_code = "..."seed = secrets.randbits(256)  # 32 bytes of randomnessnetwork = "bitcoin"

tls = TlsConfig()
signer = Signer(seed, network, tls)
scheduler = Scheduler(node_id=signer.node_id(), network=network, tls=tls)

# Now actually register the node, `r` will contain the credentials to use # when talking to the node
r = scheduler.register(signer, invite_code=invite_code)

# Use the credentials when talking to Greenlight from now on. 
Requires a refresh 
# of the `TlsConfig` and the `Scheduler`
tls = tls.with_identity(r.device_cert, r.device_key)
scheduler = Scheduler(
		node_id=signer.node_id,
        network=network,
        tls=tls
)
node = scheduler.node()  # Schedules the node on the service

# And finally we can use `node` to call `getinfo`
print(node.getinfo())

And 这就是全部。无需设置比特币、数据库、备份、瞭望塔、流言蜚语、节点配置等。所有这些都由我们完成,因此您可以专注于对您来说最重要的事情--您的用户及其需求!

下一步是什么?

我们已经收到了合作者的许多反馈意见:

  • Breez 在 Greenlight 上构建了他们的 Breez SDK,通过 LSP 和交换服务扩展了我们的产品,并将他们著名的 Breez 钱包迁移到了 Greenlight 上。
  • 为我们的安全签名基础架构验证 Lightning Signer,帮助我们更接近全面的端到端验证。
  • Blockstream 绿色钱包,用于内部反馈和测试。

Core Lightning 是这种规模的最佳 Lightning 实施方案。

我们迫切希望能发布完整版本,但为此我们仍需要开发人员提供更多反馈。我们邀请您加入 Discord 的 #greenlight 频道或 Build On L2 社区的开发者页面,分享您的想法和经验,您还可以关注即将举行的 Greenlight 研讨会。

如果您正在使用 Greenlight 创建令人兴奋的产品,我们也很乐意听取您的意见!我们可能会在 Blockstream 官方博客上介绍您的作品。

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