Skip to main content

Gulf Stream Solana Mempool-less Transaction Forwarding Protocol

· 7 min read
Davirain

在这篇博文中,我们将探讨 Gulf Stream,这是 Solana 用于高性能对抗网络的内存池管理解决方案。在进一步的博客文章中,我们将列出所有 7 个关键创新。

内存池解释

内存池是一组已提交但尚未被网络处理的交易。您现在可以看到比特币和以太坊内存池。

30 天的比特币内存池(以字节为单位)。

以交易量衡量的 30 天以太坊内存池

对于比特币和以太坊来说,未经确认的交易数量通常约为 20K-100K,如上所示。内存池的大小(通常以未确认交易的数量来衡量)取决于区块空间的供需。即使在区块链时代的早期,当内存池上升时,这也会对整个网络产生显着的瓶颈效应。

那么,Solana 如何做得更好呢?在不增加网络吞吐量的情况下,Solana 验证器可以管理 100,000 的内存池大小。这意味着在网络吞吐量为 50,000 TPS 的情况下,100,000 个交易内存池只需几秒钟即可执行。这就是 Solana 成为世界上性能最高的无需许可区块链的原因。

令人印象深刻,对吧?但这个简单的分析忽略了很多重要因素……

以太坊和比特币中的内存池使用八卦协议以点对点方式在随机节点之间传播。网络中的节点定期构建代表本地内存池的布隆过滤器,并向网络上的其他节点请求与该过滤器不匹配的任何交易(以及其他一些交易,例如最低费用)。将单个事务传播到网络的其余部分将至少需要 log(N) 步骤,消耗过滤它所需的带宽、内存和计算资源。

当基准客户端开始每秒生成 100,000 个事务时,八卦协议就会不堪重负。计算过滤器以及在机器之间应用过滤器同时维护内存中的所有事务的成本变得非常高。领导者(区块生产者)还必须在区块中重新传输相同的交易,这意味着每笔交易至少通过网络传播两次。这既不高效也不实用。

Introducing Gulf Stream 墨西哥湾流简介

我们在 Solana 网络上解决这个问题的解决方案是将事务缓存和转发推到网络边缘。我们称之为湾流。由于每个验证者都知道即将到来的领导者的顺序,因此客户端和验证者会提前将交易转发给预期的领导者。这使得验证者可以提前执行交易,减少确认时间,更快地切换领导者,并减少未确认交易池对验证者的内存压力。该解决方案在具有非确定性领导者的网络中是不可能的

那么它是怎样工作的?客户端(例如钱包)签署引用特定区块哈希的交易。客户端选择一个最近的、已被网络完全确认的区块哈希值。区块大约每 800 毫秒提议一次,并且每增加一个区块就需要指数级增加的超时时间来展开。使用我们的默认超时曲线,在最坏的情况下,完全确认的块哈希值是 32 个块旧的。该交易仅在引用块的子块中有效,并且仅对 X 个块有效。虽然 X 尚未最终确定,但我们预计区块哈希的 TTL(生存时间)约为 32 个区块。假设区块时间为 800 毫秒,相当于 24 秒。

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

https://podcasts.apple.com/us/podcast/anatoly-yakovenko-ceo-co-founder-solana-what-sharding/id1434060078?i=1000439218245&source=post_page-----d342e72186ad--------------------------------

这种架构固有的许多积极的副作用。首先,负载下的验证器可以提前执行交易并丢弃任何失败的交易。其次,领导者可以根据转发交易的验证器的权益权重来优先处理交易。这允许网络在大规模拒绝服务期间正常降级。

到目前为止,很明显,区块链网络的功能只有在其内存池最小的情况下才能发挥作用。虽然交易吞吐量有限的网络承担着尝试改造全新扩展技术以解决不断增长的内存池的崇高努力,但 Solana 自构思以来一直通过历史证明、湾流和海平面等优化来解决第一代的问题区块链网络并实现巨大的交易吞吐量。从一开始,这就是全球范围内的惊人速度,也是为世界各地的企业、经济和人民创建功能强大的去中心化基础设施的根本性发展。