区块链素养:闪电网络应用开发快速指南_期货基金_转赚网

区块链素养:闪电网络应用开发快速指南

转赚网 0 0

如果您想开始学习lightning网络编程,请不要';不要在意所谓的正确和最佳实践,这篇文章非常适合你。换句话说,这个指南是高度主观的。如果你喜欢O'雷利式的权威文本,下面的文章可能不合你的口味。但是如果你想了解闪电网的最低开发环境和基本内容,不妨看看。写这篇文章的目的是提炼出创建雷电网络应用的基础知识点,让新手快速搭建和实验。

相信只要掌握了基础知识点,,您可以编写更复杂、更安全的应用程序。然而,每个人都必须有一个开始。个人感觉是万事开头难。我觉得整合这些想法可以帮助一些迷途羔羊减轻痛苦。

在进入细节之前,请允许我简单介绍一下我的背景:

大约一个月前,我辞去了数据架构师这份稳定的工作,开始研究日新月异的比特币生态。你会发现下面这篇文章,说明你已经迈出了这一步(或者正在考虑这么做)。

总之,我认为比特币是我见过的最有趣的技术创新。对比特币了解越多,就越被它吸引。比特币技术有望改变甚至重塑今天的交互方式,使其脱胎换骨。希望贡献自己的一份力量。

那';这就是我选择在比特币上开发的原因。希望以下文章能让不熟悉闪电网生态及其潜力的开发者受益,鼓励更多开发者为比特币领域注入创造力。

说实话,关于比特币生态,我想写的太多了(其中,概念"能源支持货币"排名第一),不过只能改天再说了。现在让';言归正传:

-来源:lnrouter.app-

雷电网络的基本设计是利用通道实现节点间的一对一连接。开通通道需要存入一定数量的比特币,交易会被记录在比特币区块链中。然后,用户可以使用特殊的离线合约在节点之间的通道中转移比特币。不需要向区块链提交新的事务。

实际做法是实时跟踪渠道中的余额变化。比如你和爱丽丝开的通道里有100个聪。你的转账限额是100satoshi左右(减去链上的交易费),可以直接转给爱丽丝,也可以通过爱丽丝间接转给别人。这些转账几乎是瞬间的,因为我们只需要根据每笔交易来调整渠道的平衡。。这种调整是通过在付款人和收款人之间传递加密消息来实现的。

lightning应用运行在lightning网络上(即所谓的比特币第二层)。闪电应用也使用比特币作为支付方式,但结算速度更快,交易费用更低。

虽然我只是简单总结了一下雷电网络协议,但是已经足够入门了。如果你想更多地了解闪电网络是如何工作的,这里有一些很好的阅读材料。注意不要沉迷于知识的海洋,坐在电脑前看书看到很晚。,但没有';不要敲一行代码。它';这并不一定是不好的,但我们的目的仍然是练习。此外,保证充足的睡眠也很重要。

我觉得如果你想了解闪电网及其节点的运行情况,更好的方法是自己运行一个节点,并弄清楚如何通过该节点路由支付。虽然这种方法需要更多的时间和金钱,但它既有趣又能增长见识。1

Lightning网络是一种开放式协议。这意味着闪电网络有一个标准的信息交流和解释方式。。正如HTTPS和TCP/IP不属于任何人一样,闪电网络协议也不属于任何人。任何遵守标准的人都可以加入闪电网络。不仅如此,随着开发人员不断加强协议和添加新功能,该标准将继续发展。

目前在雷电网络协议开发中处于核心地位的有四家公司:雷电实验室、Blockstream、ACINQ和SquareCrypto,并且都有自己的实现:

LightningLabs—lnd(Go)

blockstream—C-lighting(C)

ACINQ—eclair(Scala)

方形隐锈闪电(Rust)

以上所有实现都可以通过闪电网络进行通信。区别在于这些实现的API。。本文只关注闪电实验室的lnd,因为这是第一次接触,也是我掌握的最多的知识。虽然最终选择了有偶然成分在里面的Ind,但是不得不赞一下。LightningLabs的Ind文档写得很好,开发者可以通过官方Slack渠道获得很多帮助和支持。

请注意,下面将重点讨论Ind。但是基本概念适用于所有的闪电网络实现。

不废话,就用Polar。

好吧,多说两句。无论你是开发者还是用户,搭建闪电网最大的障碍就是如何创建后端。。我';我说的不仅仅是钱包,因为有很多简单快捷的托管解决方案。我指的是真正的运行比特币和闪电网络的后端——个节点。

我这样说是因为您的应用程序需要在节点上有一些权限。以便完成一些重要的操作,比如创建发票,通过API/gRPC调用监控支付。如果一个节点操作员授予您访问该节点的权限,您也可以完成这些操作,但最好是自己运行一个节点。

可用于闪电网络开发的节点必须运行两个进程:(1)同步到比特币区块链最新区块的比特币客户端;(2)已开通通道的闪电网客户端(可收发支付)。

如果使用普通家庭宽带,同步区块链至少需要几天时间。可以试试中微子(一种轻量级的比特币钱包),不过听说用它在闪电网上开发可能会出一些问题。我还没有';我自己没试过。无论如何,如果你刚刚开始使用这种工具。我认为它';最好去除那些可能有负面影响的变量。因此,如果你能负担得起,我建议你同步完整的区块链。

如果我们把比特币的各层进行排序,闪电网络层就是比特币的第二层。正如我上面提到的。我们需要在闪电网上开一个通道进行交易。虽然在闪电网上开通通道并不难,但是需要一定的规划和协调,而且要交比特币。当然可以质押比特币开通通道开始交易。但是,你不';我们不必冒这样的财务风险。二唐';暂时不要担心这些。Polar是一个很棒的工具,它允许你在笔记本电脑上的Docker容器中模拟这些过程。此外,它还提供了一个漂亮的UI界面,向您展示网络的视觉效果。

-看!能';不要等着同步!(Polar接口)-

Polar的好处是,当你准备将应用转移到测试网后端或者主网时,只需要更新一些配置即可。。我已经能够轻松地在本地、测试网络和主网络后端之间切换,只需在应用程序中添加或注释掉几行代码。我去拿。env文件。当然,评估工具不是本文的目的。)

Polar还支持lnd、c-lighting和eclair节点。这意味着您可以灵活地尝试其他实现。

还是那句话,用Polar就好。这是一种快速简单的入门方式。此外,如果你不';我一点也不喜欢在闪电网络上开发?尽早发现这一点比在一个你可能不知道如何使用的系统上浪费太多时间和金钱要好。另一方面,如果你发现自己沉迷于史蒂芬利维拉';的播客,每晚听一遍,可以建立一个更认真的开发环境。

点击"创建网络"在Polar中轻松创建模拟闪电网络环境。。你可以随意命名这个网络(我个人认为"测试"是明智的选择)并添加两个lnd节点和一个比特币核心节点。其实对于新手来说,这些只是最起码的。您可以稍后添加更多节点。创建网络后,您可以启动它。第一次启动网络可能需要更长时间,因为你要下载所有Docker镜像。对了,你需要在自己的设备上运行Docker。正如我之前所说,在这里还是要自己去感受。

最后,你会看到一个类似下图的极坐标界面:

在上面显示的界面中,我们可以看到Alice和Bob的Ind节点。并且两个节点都连接到比特币核心后端进程。还要注意,此时的块高度是1。这是我们的创作板块!与实时区块链不同,Polar只有在开发和测试期间提交交易时才会发布。

下一步是在Alice和Bob之间创建闪电支付渠道。点击爱丽丝';的节点,右边的控制面板将显示我们与节点交互的不同方式。点击"动作"。我们将看到为爱丽丝充电所需的所有工具。s钱包来模拟比特币,打开爱丽丝和鲍勃之间的通道。接下来,让';充值爱丽丝';的钱包,然后打开爱丽丝和鲍勃之间的通道。。

点击"存款",然后充值100万聪变成爱丽丝';的钱包。如果一切按计划进行,你会看到积木的高度和爱丽丝';的钱包余额已经改变。如果没有,请寻求帮助。它';这不是你的错。3

现在,我们可以在爱丽丝和鲍勃之间打开一个通道。现在,爱丽丝有钱了我们可以让她打开一个和鲍勃的通话频道。所谓转出渠道,就是爱丽丝可以通过这个渠道将一定数量的比特币转给鲍勃。。Alice和Bob可以进行多次转账交易,只要通道中有余额。但是,请注意,通道刚开通时,只有爱丽丝可以给鲍勃转账,因为所有可用余额都在她的地方。当然在爱丽丝把账户转给鲍勃之后,鲍勃可以把账户转给爱丽丝。

这种渠道资金管理方式是为了保证交易双方都有交易能力,也就是我们所说的闪电网的流动性。实际上,用户只能使用渠道中的余额。进一步说,只有在付款人和收款人之间的通道中有足够的余额(并且资金流向正确)时,支付才能成功。否则支付会失败。。如何管理闪电网有限的流动资金,如何寻找变通办法,是一个值得探讨的话题。

坦白说,我在使用Polar打开通道时遇到过一些问题。我怀疑这是UI和后端的状态差异造成的。但是我';我不确定。有时关闭和重启一个节点(或整个网络)会有所帮助。完全退出并重启Polar也是有效的。此外,在这种情况下,闲逛10分钟可以放松你的头脑和精神。

不管是什么原因,我发现操作这些节点的最佳方式是通过Polar提供的CLI。虽然UI不一定会显示更改,但是我们可以直接查询数据库(可以这么说)来确定UI是否真正反映了更改。。Polar让它变得简单。让';让我们现在开始吧。

选择爱丽丝';sInd节点首先进入"动作"界面。,单击"启动"在"终端",然后会出现一个命令提示符,如下图:

现在,,我们可以使用Ind节点的lncli工具来打开渠道、创建发票和进行支付。首先,运行以下命令以获得概述:

我们可以通过运行以下命令,在Alice和Bob之间打开一个余额为100,000satoshi的通道:

您将看到一个带有"funding_txid"。,对应于Alice和Bob向我们模拟的比特币区块链广播的充值交易。运行以下命令来查看我们新创建的通道:

如果该命令返回的列表为空,,请尝试使用比特币节点挖几个区块(在"动作"接口)。这样做应该有助于确认交易,打开渠道。

现在我们通过listchannels的响应可以看到,Alice和Bob之间的通道已经成功打开,通道余额约为10万satoshi(减去交易费)。。这不到10万的satoshi是Alice可以通过闪电网络支付给Bob的可用余额。

到目前为止,闪电网上最简单的(我相信也是最常见的)支付流程是通过发票。。发票本质上是一套带有"金额"和"收款人"。还有其他参数和变量可以帮助支付指令解锁更多有趣的可能性(例如,hodlinvoice和BOLT12proposal),但本文只关注最基本的模式。

继续建立我们的极地。让';让我们先创建一张发票,但这次我们将使用Bob's节点。因此,我们需要启动鲍勃';s终端并运行以下命令:

上面的命令创建了一张价值100satoshi的发票(实际上,我在执行这些步骤时遇到了一个连接错误。如果您遇到同样的问题,请停止并重新启动Bob's节点)。我们可以通过返回的响应看到这张发票的信息:

现在我们只关注"付款请求"部分,因为这部分数据包含了Alice需要付给Bob的所有信息,即、付款金额和收款人地址5。如果我们切换回爱丽丝';s节点终端,我们可以获取支付请求,并将其作为参数传递给下面的命令:

结果是:

成功。此时

您应该有足够的基础知识和工具来开始构建应用程序。上图概述了一个简单的示例应用程序,它使用我们在Polar中使用的API调用来创建和支付发票。这就是构建基本应用程序架构所需的全部内容。。当然,这只是一个例子。我们在开发过程中会遇到很多其他的问题(目前只是开始),但是你会逐渐想清楚自己需要什么,如何解决这些问题。

一些附加建议和参考:

有许多库可以帮助开发人员编写更少的示例代码并抓住要点。就我个人而言,学习如何使用这些库给我带来的更多的是挫败感,而不是更高的效率。主要问题是我。抽象真的很棒,但前提是你对被抽象的东西有一个基本的理解。。我没有';我开始时没有意识到这一点。我觉得Ind的API文档是最容易学的。当我根据这个指南用Javascript编写gRPC客户端时,我的思路是正确的。如果您想查看更具体的应用示例,看看LightningLabsBuilder的教程';s指南。如果你熟悉教程中用到的工具,比如express,mobx,React,那么我强烈推荐这个教程。如果您不熟悉这些工具你可能从这个教程中得不到太多的帮助,但是你仍然可以学到一些东西。我喜欢这个教程的原因之一是它展示了一些有趣的功能,这些功能可以通过使用lightningnetwork(和密码学证明)来构建应用程序来实现。

最后如果你认为这篇文章不清楚或不准确,请随时给我反馈或问题。

如果你想运行一个节点,Umbrel非常适合初学者。听说MyNode,RaspiBolt,RaspiBlitz也不错。。如果你喜欢打补丁软件系统(或者SimCity),运行节点往坏里说是一种有趣的消遣,往好里说是一种高成本无止境的优化游戏(需要真金白银的那种)。也可以在测试网上做实验。通过比特币龙头获得一些实验性的比特币。这些硬币不值钱,但是当守财奴的经历会很有趣。如果您对自己配置和管理节点不感兴趣,可以使用Voltage之类的服务。Voltage是云上的一种现收现付服务。,支持测试网络和主网络节点。嗯,我们可以';我不能百分之百确定。谨慎,请查看lndSlack的开发者频道。我在这里遇到过很多构建和维护这些工具的开发者。你可能会看到我!有人可能经历过你面临的问题。。如果没有,那就太好了。每个人都能从你的问题中学到一些东西。区块链是公共数据库,每个人都有root权限。更多信息请看发票中其他字段的详细说明,可以看到这个汇总。。有关基础合同的更多信息,请阅读下面的文章。

以上是《区块链素养:闪电网络应用开发快速指南》的详细内容。更多闪电网应用开发速成指南请关注78财经(www.dadaqq.coM)Dadaqq.Com其他相关文章!

本站提醒投资有风险,入市需谨慎。此内容不作为投资理财建议。

相关内容

标签: 节点 quot 闪电

区块链素养:闪电网络应用开发快速指南文档下载: PDF DOC TXT