观点 | bloXroute:扩展以太坊的思路和经验

bloXroute Labs 为以太坊主网提供网络层扩展方案,使得大型矿池和终端用户之间能更好地连接。在本文中,我们将总结 bloXroute 自 2019 年 11 月上线以来对以太坊网络层性能的影响。

bloXroute 的区块链分发网络

在解释 bloXroute 如何强化以太坊网络层之前,我们先简要回顾一下 bloXroute 的架构。bloXroute 部署了一个区块链分发网络(BDN),帮助以太坊节点更快、效率更高地传输交易和区块,更重要地是,这拓展了网络的处理量,使之可达到每秒几千笔交易的速率。

bloXroute 的 BDN 由 中继网关 组成。中继是彼此相连、组成全球高速 bloXroute 网络的高端服务器,中继间高速传输区块链消息(交易和区块)。网关则是一个小小的软件,一般放在服务器上,与区块链节点间有低延迟;从区块链客户端的角度来看,网关就是网络中的另一个对等节点。网关一边跟以太坊节点用以太坊 “语言” 交流,另一边用 bloXroute “语言” 跟中继沟通。

网关有许多功能,但最重要的功能是压缩和解压区块。具体来说,bloXroute 的 BDN 一开始广播终端用户所生成的交易;此外,它也生成独特的短标识符(SID),即,给每一笔交易生成一个 SID。BDN 也会把 SID 传遍网络,使得所有网关和中继都能接收到它们。因此,一旦某人挖出一个区块,以太坊矿工本地的网关就以 SID 来替换交易,以此压缩区块。所有收到如此区块的网关则执行相反的步骤,即,根据 SID 找回原始交易。如此一来,bloxRoute 加速了区块的传播;更重要的是,整个过程是完全透明的。这一方法使得我们能创建更大的区块,因此能够扩展。

bloXtoure 扩展以太坊的经验

在此,我们要进一步解释一下,上述方法在实践中是如何生效的,也概述我们遇到的主要挑战。

展示明显可见的价值

我们遇到的第一个挑战就是证明即使没有扩展作用(即不使用更大的区块)bloXtoure 仍能为以太坊带来价值。存在这一挑战是因为以太坊使用了非常小的区块(只有几百 kb),而且出块速度很快(平均每 15 秒就出一个块)。一般来说,小区块可以在点对点网络中快速传播,因此,BDN 到底能不能减少传播时间,就成了一个问题。

我们与大型矿池联手进行的 测试 证明了,即使区块很小,区块传播世界也还能节约 50% 左右。不仅如此,我们还展示了,在使用 BDN 时,区块传输时间已经接近了一个理论上的下限。BDN 能在几百毫秒内将交易和区块传输到整个网络,这样的表现为我们安全地提升区块大小铺平了道路。实际上,因为使用了 SID,即使区块大小大幅提高,区块的实质大小和传输时间将仍然保持低水平,而且只会缓慢地增长。

与中国联系

第二大挑战是中国的互联网连接,在交易和区块的传输上都存在挑战。在实战中,我们观察到网络性能会周期性地降低。我们应用了多种方法来解决这个问题。首先,我们在路由算法中加入了动态监控机制和更多冗余。当一条网络路径遭遇性能下降时,我们会在中继之间动态加入冗余路径。举个例子,如果中继 A 与 B 之间的连接变慢了,我们会即时开启并发路径 A-C-B 和 A-D-B。这个办法的效果非常地好。其次,解决交易传输问题需要额外的努力。为使 bloXroute 网络能高效运营,交易的平滑传播是关键,因为交易的充分传播才能发挥区块压缩和平顺传播的作用。为解决这个问题,我们使部署在中国的网关能连接到一个额外的交易中继。这就加入了冗余,并进一步大幅提高了性能。

不间断监控

除了提高性能,我们还让网关的用户能直接监控从 BDN 中得到的性能提升,即,监控从 BDN 获得的交易和区块频次(对比从点对点网络中获得的频次)。在接下来几周内,我们会提供一个开放的 BDN 浏览器,然后任何对分析单笔交易或区块的性能有兴趣的人,乃至对以太坊网络的详尽性能分析感兴趣的人,都可以去做这样的研究。

结论

bloXroute 已成功地服务了 Eth1.0 社区, 我们也持续关注 ETH 2.0 。总而言之,Eth2.0 提出了很多新颖的概念,而 BDN 会踏实地提高性能,并为以太坊社区增强安全性和防御力。

(完)

原文链接: https://medium.com/bloxroute/bloxroutes-experiences-scaling-ethereum-4620e8e434b8

作者:bloXroute Team

翻译:阿剑

本文由作者授权 EthFans 翻译及再出版。