您现在的位置是:首页 > 区块链 > 区块链项目区块链项目

Solana:拥有web规模的去中心化网络

2019-08-19来源:作者:经济常识笔记栏目:区块链项目

简介Solana:拥有web规模的去中心化网络 Solana让去中心的节点网络与单个节点的性能匹配,为了创建一个去中心化的,去许可的网络,以匹配单个节点的性能,Solana团队开发了6项关键技术

Solana是在2017年构想出来的,当时它的创始人Anatoly Yakovenko找到了一种方法,让去中心的节点网络与单个节点的性能匹配,目前,没有一个主要的区块链接近于实现这一特性。

比特币和以太坊等PoW系统支持大约每秒10笔交易(TPS)。基于实际拜占庭容错(PBFT)的PoS系统,如Tendermint,支持大约1000个TPS和100-200个节点。Solana是一个类似于PBFT的PoS区块链,在当前的测试网迭代中支持超过200个节点及50000TPS,使其成为性能最好的区块链和世界上第一个web规模的去中心化网络。

Solana

自成立以来,Solana团队——由高通、英特尔、Netscape和谷歌的技术先驱组成,一直致力于构建Solana实现这些突破性性能标准所需的技术。为了创建一个去中心化的、去许可的网络,以匹配单个节点的性能,Solana团队开发了6项关键技术:

1.PoH证明

如果区块链网络作为一个整体要匹配单个节点的性能,这意味着瓶颈不是带宽,而是计算。为了实现这一点,我们需要首先优化网络中的节点如何通信。

无线蜂窝网络与基于区块链的网络有许多相似之处,长期以来一直致力于优化网络通信。从规模上看,没有哪一个无线发射塔有足够的带宽让每部手机都有自己的无线频率来传输,因此电信公司需要“多种接入技术”来在同一频率上拨打多个电话。

TDMA是实现蜂窝网络大规模可扩展性的主要技术之一。TDMA指定发射塔将每个无线电频率划分为时间段,并将这些时间段分配给每个电话呼叫。通过这种方式,计算单元塔为网络提供了一个全局可用的时钟。这极大地提高了有限带宽的可伸缩性,允许每个频率支持多个同步数据通道,并减少来自多个手机在同一频率上同时广播的干扰。

当今基于区块链的网络存在时钟问题。每当产生新的块时,它们的时钟不一致。对于以太坊来说,这种情况每15秒发生一次,而在一个块中只能容纳这么多信息。对于基于区块链的网络,TDMA等效的时钟粒度应该小于秒,所有验证节点都同意这种粒度,这样它们就可以更有效地处理交易。

Solana的核心创新是“历史证明”(Proof of History, POH),这是一个全球性的、不受许可的时间来源,可以在达成共识之前在网络中运行。POH不是共识协议或反Sybil机制,相反,POH是时钟问题的解决方案。

其他区块链要求验证者相互通信以确认时间已经过去,而每个Solana验证者通过将时间通过编码为一个简单的SHA-256序列哈希可验证延迟函数(VDF)来维护自己的时钟。Solana没有为随机性使用VDF。相反,每个验证者使用VDF来维护自己的时钟。因为每个验证者维护自己的时钟,所以在整个历元中提前安排了领导者的选择。就像Tendermint一样,大纪元的时间表可以持续数千个区块。然而,与Tendermint不同的是,网络从不等待失败的节点。每个验证器运行VDF,以证明它获得了传输块和验证者的插槽。每个验证者都会因为这样做而得到补偿,因为块生成器会因为生成块而获得奖励。

2.Tower BFT

在历史证明的基础上,Solana运行Tower 共识,这是一种类似PBFT的协商一致算法,专门用于利用同步时钟。与PBFT不同,Tower 共识更偏向活力而不是一致性。与PBFT一样,节点会成倍地增加超时时间以达成协议,但由于分类帐也是一个不可靠的时间源,节点可以观察和检查网络中所有其他验证者的超时时间。

3.Turbine

由于Solana共识层不依赖于对等消息,所以Solana能够独立于共识优化块在网络中传输的方式。Turbine,Solana的块传播技术,借鉴了BitTorrent。

当一个块被流化时,它与擦除码一起被分解成小数据包,然后在一组随机的大对等点上散开。使用200个区块,网络的第二层可以覆盖40000个验证器。因此,验证者能够传播对最终结果具有log200(n)影响的块。如果每个连接都是100 ms,那么对于40000个节点网络,复制可以在400 ms内完成,最终完成只需500 ms。

扇出机构必须能抵抗故障。因此,验证器使用Reed-Solomon擦除代码编码数据,提供一定程度的容错。

4.Gulf Stream

在高性能网络中,mempool管理是一种新的问题,其他链并不需要解决。Gulf Stream的功能是通过推送交易缓存和转发到网络边缘。因为每个验证者都知道Solana体系结构中即将到来的领导者的顺序,所以客户端和验证者会提前将交易转发给预期的领导者。这允许验证者提前执行交易,减少确认时间,更快地切换领导人,并减少来自未确认交易池的验证器的内存压力。

客户端(如钱包)签署引用特定块哈希的交易,客户端选择一个最近才被网络完全确认的块哈希。块被提议大约每800ms一次,并且需要指数级增长的超时来展开每一个额外的块。使用我们的默认超时曲线,在最坏的情况下,完全确认的块哈希值为32个块。假设阻塞时间为800毫秒,则相当于25.6秒。

一旦交易被转发到任何验证者,验证者就会将其转发给即将到来的领导者之一。客户端可以订阅来自验证者的交易确认。客户端知道块哈希在有限的时间内过期,或者交易由网络确认,这允许客户端签署保证执行或失败的事务。一旦网络通过回滚点,使得交易引用块哈希过期,客户端就可以保证交易现在无效,并且永远不会在链上执行。

5.Pipeline VM

为了利用Solana的高性能网络,我们构建了Pipeline VM,这是一个超级并行的交易处理引擎,旨在横向扩展到GPU和SSD。注意,所有其他区块链都是单线程计算机,Solana是唯一一个在单个分片中支持并行事务执行(不仅仅是签名验证)的链。

这个问题的解决方案很大程度上借鉴了操作系统驱动程序技术(称为散点-聚集)。交易预先指定它们在执行时将读取和写入的状态。运行时能够找到在一个块中发生的所有非重叠状态转换函数,并并行地执行它们(称为并行执行),同时优化如何在RAID 0 SSD阵列中调度对状态的读写操作。尽管Pipeline本身是一个调度交易的VM,但Pipeline实际上并不在VM中执行交易。相反,Pipeline将交易传递给本地硬件上执行的交易,使用一种业界验证过的字节码Berkeley Packet Filter (BPF),该字节码是为高性能包过滤器设计的。

6.Cloudbreak——水平伸缩内存

仅仅按比例计算是不够的。用于跟踪帐户的内存很快成为大小和访问速度方面的瓶颈。例如,一般认为,许多现代区块链使用的本地数据库引擎LevelDB不能支持超过5000个TPS。

一个简单的解决方案是在RAM中维护全局状态。然而,期望消费级计算机拥有足够的RAM来存储全局状态是不合理的。对于Solana,我们设计了Cloudbreak,这是一种状态体系结构,它针对分散在ssd RAID 配置中的并发读写进行了优化。每个附加磁盘都增加了链上程序可用的存储容量,并增加了程序在执行时可以执行的并发读写次数。

Solana

很赞哦! ()

    股票