LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 新闻观点 > SolanaUniverse|认识海湾流(GulfStream)以及海平面(Sealevel)

SolanaUniverse|认识海湾流(GulfStream)以及海平面(Sealevel)

2021-07-12 Solana_Universe 来源:区块链网络

Solana在技术底层架构上,不得不提到的两个技术层面一个就是海湾流(Gulf Stream)以及海平面(Sealvel),这两个技术相辅相成,是支撑Solana成为新的世界级公链的两大支柱。今天Solana Universe将为大家展示这两股力量的如何推动Solana的运行。

海湾流(Gulf Stream):无内存交易转发协议

内存池(MemPool)是一组已经提交,但尚未被网络处理的交易。

比特币和以太坊而言,内存池的大小通常以未确认交易的数量来衡量,取决于区块空间的供应和需求。即使在区块链时代早期,当内存池增加时,也会对整个网络造成严重的瓶颈影响。

那么,Solana是如何精益求精的?

在不增加网络吞吐量的情况下,Solana验证器可以管理10万笔交易的内存池大小。这意味着,在网络吞吐量为5万TPS的情况下,10万笔交易的内存池在几秒钟内就能执行。这就是让Solana成为世界上性能最强无许可区块链的原因。

Solana网络对这个问题的解决方案是将交易缓存和转发(forwarding)推送到网络边缘,这被称之为海湾流(Gulf Stream)。

由于每个验证器都知道未来领导者的顺序,客户和验证器提前将交易转发给预期的领导者。这使得验证器可以提前执行交易,减少确认时间,更快地切换领导者,并减少未确认交易池对验证器的内存压力,让Solana每秒可处理5万笔交易。这种解决方案在领导者不确定的区块链网络中是不可能的。

它又是如何工作的呢?

客户端(比如钱包)签署引用特定区块哈希的交易。客户端选择一个已经被网络完全确认的、最近的区块哈希。区块大约每800毫秒被提出一次,每增加一个区块都需要成倍的增加时间来展开。使用默认的超时曲线,在最坏的情况下,完全确认的区块哈希是32个区块。

一旦一笔交易被转发到任何验证器,验证器就会将其转发到未来的领导者之一。客户端可以订阅验证器的交易确认信息。客户端知道区块哈希在有限的时间内过期,或者交易被网络确认。这允许客户端签署对保证执行或失败的交易进行签名。

一旦网络过了回滚点,交易引用的区块哈希就会过期,客户就可以保证交易现在是无效的,且永远不会在链上执行。

到目前为止,很明显,区块链网络的功能只有在其内存池最小的情况下才会发挥作用。

当交易吞吐量有限的网络承担着尝试改造全新的扩展技术来解决不断增加的内存池的努力时,Solana从一开始就通过海湾流等优化设计来解决第一代区块链网络的问题,并实现巨大的交易吞吐量。

海平面(Sealevel):智能合约运作并行引擎

以太坊的EVM和EOS的基于WASM的runtime都是单线程的。这意味着每次都会有一个智能合约修改区块链的状态。

而Solana建立的智能合约运作并行引擎——海平面(Sealevel),可以并行处理数以万计的合约,并使用验证器作为核心。它可以使Solana的执行时间更有效率,还可让交易在相同状态的区块链上同时执行。

Solana之所以能够并行处理交易,是因为Solana的一笔交易在执行时,将读取或写入所有状态。这不仅允许非重叠的交易并发执行,而且允许只读取相同状态的交易也并发执行。

Solana的帐户数据库Cloudbreak是一个公钥到帐户的映射。所有者是管理账户状态转换的程序的公钥。程序是代码,无状态。它们依靠分配给它们的账户中的数据向量进行状态转换。

默认情况下,所有账户开始时都是由系统程序拥有的。用户定义的程序由加载器程序加载。加载器程序能够将账户中的数据标记为可执行。

此时,加载器验证了字节码,字节码被加载到的账户可以作为一个可执行程序使用。新账户可以被标记为由用户定义的程序所拥有。

这里的关键是,程序是代码,在键值存储中,存在一些键的子集,这个程序并且只有这个程序有写访问权限。

交易指定一个指令向量。每条指令都包含程序、程序指令和交易要读写的账户列表。

像readv或writeev这样的接口会提前告诉内核用户想要读取或写入的内存。这允许操作系统预取、准备设备并在设备允许的情况下同时执行操作。

在Solana上,每条指令都会提前告诉虚拟机它要读和写哪些账户。

SIMD指令允许单段代码在多个数据流上执行。这意味着Sealevel可以执行一个额外的优化,这是Solana设计所特有的。

在性能方面没有免费的午餐。为了使SIMD优化可行,所执行的指令应该包含少量的分支,而且应该都采取相同的分支。

通过海平面的并行处理,与单线程运行时相比,Solana能够实现极高的吞吐量和可用性。

—-

编译者/作者:Solana_Universe

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...