Turbine—solana的块传播协议解决了可扩展性的三难困境

了解使Solana成为世界上性能最好的区块链的7项关键技术之一 Solana是世界上性能最好的免证区块链。在Solana测试网的当前迭代中,当使用GPU运行时,由200个物理上不同的节点组成的网络支持每秒超过50,000个事务的持续吞吐量。实现这一目标需要实现一些优化和新技术,其结果是网络容量的突破,标志着区块链开发进入了一个新阶段。 有7项关键创新使得Solana网络成为可能: 历史证明 (POH):共识之前的时序; Tower BFT:PBFT 的 PoH 优化版本; Turbine:区块传播协议; Gulf Stream :快速事务转发协议; Pipeline VM :并行智能合约运行时; Cloudbreak :水平缩放的帐户数据库; 复制器 :分布式帐本存储 在这篇文章中,我们将探讨Solana的块传播协议Turbine-灵感来自BitTorrent -解决了区块链可伸缩性三难困境。 可伸缩性三难困境 区块链技术中的可伸缩性三难困境都与带宽有关。在当今大多数区块链网络中,给定每个节点的固定带宽,增加节点数将增加将所有数据传播到所有节点所需的时间。这是个大问题。 然而,有无数的机会可以优化数据的传播方式。有许多新的数据传播技术,每种技术都针对特定的应用程序进行了优化。例如,BitTorrent被优化为使用TCP向大量人群提供大文件,而MediaFLO则是一种在物理层对数据传播进行优化的协议,以提高无线网络上组播的效率。 在此背景下,让我们了解下Turbine,Solana的块传播协议,来解释Solana网络如何传播数据来解决区块链可伸缩性三难困境。 Turbine Solana——可伸缩的区块链 高性能区块链面临的挑战之一是网络如何将大量数据传播到大量对等节点。例如,让我们假定一个由20,000个验证器组成的网络。领导者需要向所有20,000个验证器传输一个128 MB的块(大约500,000个事务, 250字节/事务)。简单的实现要求领导者与每个验证器有唯一的连接,并传输完整的128mb 20,000次。根本没有足够的带宽来容纳这么多的连接。 我们对这个问题的解决方案,Turbine,借鉴了大量的BitTorrent思路,但是这两者在一些主要的技术细节有区别。Turbine是优化流,并传输数据只使用UDP,实现通过网络的每个数据包的随机路径,作为领导(块生产者)流他们的数据。领导者将块分成大小为64KB的包。对于一个128MB的块,领导者生成2000个64KB的包,并将每个包传输到不同的验证器。 Solana——可伸缩的区块链 然后,每个验证器将数据包重新传输给一组对等点,我们称之为邻居。将网络可视化为邻居树,允许网络增长到远远超过1000个验证器: Solana——可伸缩的区块链 每个邻域负责将其数据的一部分传输到它下面的每个邻域。 Solana——可伸缩的区块链 如果每个邻域由200个节点组成,那么一个三级网络(从根节点的一个leader开始)可以在2个中继段内达到40000个验证器——假设每个网络链路平均100ms,则大约200毫秒。 我们使用这种技术所面临的挑战是安全性。例如:敌对节点可以选择不重播数据,或重播不正确的数据。为了处理敌对节点,领导者生成Reed-Solomon擦除码。擦除码允许每个验证器在不接收所有数据包的情况下重构整个块。 Solana——可伸缩的区块链 如果领导者传输了33%的分组作为擦除码,那么网络可以在不丢失分组的情况下丢弃任何33%的分组。领导者甚至可以根据网络条件动态调整这个数字。这些决定是由前一个块中的领队观察到的丢包率来决定的。 ” 并不是所有的验证器都是平等的。一个权益加权选择算法构造树,使得更高权益的验证器位于更靠近领导者的邻域。每个验证器独立计算同一棵树。虽然擦除代码可以修复故障,但是敌对节点也有可能将自己放置在树中,从而导致比它们的组合权益大小更高的故障,尤其是在与拒绝服务攻击相结合时。” 我们如何处理这种Eclipse攻击?我们的扇出算法使用基于数据包数字签名的随机源,为每个数据包生成一个权益加权树。由于每个包都采用不同的路径,而且路径并不预先知道,所以邻居级别的Eclipse攻击需要几乎完全控制网络。 Solana——可伸缩的区块链,了解更多关于Tour de SOL的激励测试网活动。 在一个级别上,这种技术可以扩展到200到1000个节点之间。支持1Gbps的网卡每秒可以传输100万个数据包。如果网络连接允许,一个验证器可以在一秒钟内发送高达64 KB的数据包到1,000台机器。 Solana利用Turbine的传播,以及历史证明、Pipeline VM、复制证明和Gulf Stream等突破,共同创造了世界上性能最好的区块链。Solana的测试网今天是实时的。您可以在http://explorer.solana.com/上看到它。出于成本考虑,我们只运行少数几个节点。但是,我们已经在许多实例上将它扩展到超过200个物理上不同的节点(不在共享硬件上),这些节点跨越了AWS、GCE和Azure上的23个数据中心,用于基准测试。 运行时今天运行正常,开发人员现在就可以在testnow上部署代码。开发人员现在可以在C语言中构建智能合约,我们正在积极地开发Rust工具链。Rust将成为Solana智能合约开发的旗舰语言。Rust工具链作为Solana Javascript SDK的一部分公开可用,我们正在进一步迭代软件开发工具包。 Solana将很快推出一个公开测试版,鼓励验证器通过Tour de SOL运行节点(类似于 Cosmos 的 Game of Stakes ,这向公众提出了一个挑战,即在测试Solana网络的极限的同时,还要为此获得令牌。