bloXroute任务是支持和开放每一个想要扩展的区块链项目。虽然区块链发行网络(BDN)的第一个版本将支持比特币、比特币现金和以太坊,但在这篇博客文章中,我们将从更高的层次解释任何区块链项目如何与bloXroute集成。
bloXroute的发展速度正在加快——我们将很快部署系统的第1版,这只是使所有区块链社区都可以使用bloXroute的第一步。bloXroute是一个对所有区块链开放的中立平台,我们的目标是不断增加对新的区块链项目的支持。我们意识到每个项目都想要扩展,我们不太可能跟上对可扩展性区块链的需求。因此,我们将集成API设计得尽可能简单,以便任何社区都可以实现网关逻辑,并确保BDN是可证明中立的。
背景
在深入讨论细节之前,我们先简要回顾一下bloXroute体系结构。bloXroute部署了一个区块链分发网络(BDN),帮助区块链节点传播事交易,并更快、更有效地阻塞交易,最重要的是,它具有扩展性,即实现每秒数千个交易(TPS)。BDN的架构、中立性和性能在以前的媒体文章中讨论过。
BDN由两种类型的节点组成: Relay和 网关。Relay是相互连接的高端服务器,以形成全局bloXroute主干,以高效的方式快速传输区块链消息(交易和块)。网关是一个小型的开源软件,并排部署在区块链节点上,因此两者运行在同一台机器上。网关的一端使用区块链节点说区块链“语言”,另一端使用RelaybloXroute语言。 它有许多功能;最值得注意的是,它将块从节点压缩和加密到Relay,并将块从Relay解密和解压缩到区块链节点。
实现您自己的网关
bloXroute 网关将是开源的,因此您可以调整网关代码,使其支持任何区块链协议。在高层次上,这包括三项任务:
1. 实现区块链消息(即交易和块),以便bloXroute 网关能够理解它们
2. 实现消息转换(即,编写接受本地区块链消息并将其转换为bloXroute消息的代码,反之亦然)。
3. 定义特定于您的区块链的协议(即,编写协议处理程序。例如,比特币和以太坊的常见处理程序有a) handshake, (b) ping和 pong, inv, (d) transaction message, (e) block message, 等.)
将网关与bloXroute集成
虽然任何人都可以实现bloXroute网关,但是继续前进需要与bloXroute团队进行协调。需要进行协调的理由如下。
首先,我们需要知道bloXroute中当前是否支持协议所需的消息类型。例如,bloXroute已经支持诸如交易和块之类的通用消息。但是,如果您需要支持其他消息类型,我们必须首先在bloXroute中实现它。接下来,是您的区块链节点发送的所有消息在自然界中广播,即,需要到达所有其他区块链节点。如果是这样,广播原语已经部署在bloXroute中。但是,如果您需要支持其他通信类型,例如单播或多播,我们必须首先理解并实现这部分。随着BDN的成熟,我们越来越擅长处理各种消息类型和通信模式,这种讨论将会减少。
其次,出于纯粹的操作原因,我们需要了解您的区块链网络的预期统计数据,以便为部署做好适当的准备。例如,交易在您的网络中保持多长时间有效?积木有多大?预期的TPS率是多少?你目前有多少矿工或验证者?您希望您的网络拥有多少节点(不一定是矿化器或验证器)?节点的地理分布如何?所有这些信息将帮助我们调整我们的系统,例如,在一个新的区域添加一个BDN节点(Relay),以最好地服务于这个项目。
第三,我们将为您的项目分配一个惟一的网络ID,它将部署在Relay和 网关上。由您的网关生成的所有消息都将包含此网络ID,该ID有助于我们的BDN识别和将消息优化路由到属于您的网络的其他网关。
最后,在转入生产模式之前,有必要测试整个系统的功能。为此,我们将配置一个测试环境来支持您所分配的网络ID。我们还将提供非常强大的调试支持,使您能够了解潜在的问题所在以及如何消除它们。
或者,您可以选择将您自己的网关实现到您的区块链代码中,并直接连接到我们的Relay网络。选择让您的节点本机使用bloXroute协议将会提高性能,因为您跳过了网关将区块链协议“转换”为bloXroute协议的过程。网关协议最初很可能会发生更改,所以请确保您的代码考虑到了这一点。
最好的开始方式是什么?
在开始上述任何步骤之前,了解单个区块链节点能够独立维持的最大TPS速率是很有帮助的。如果您不知道,您应该测试它,因为这是您系统可以达到的性能上限。在比特币中,这可以通过观察一个只有一家矿工组成的网络可以处理多少笔交易来验证。bloXroute是一个很好的资产,可以帮助促进任何项目,但是bloXroute不能改善您的区块链节点可能遇到的潜在端点瓶颈。我们可以根据解决此类瓶颈的经验提供指导。
结论
在这篇博客文章中,我们概述了将区块链项目与bloXroute集成以实现规模的高级流程。bloXroute对单个区块链网络中的所有实体都是中立的,同样,它对不同的区块链项目也是中立的。