Solana中的流水线:交易处理单元

本文深入探讨了Solana网络在实现快速交易确认和高效事务复制过程中的技术细节,重点介绍了采用了流水线设计的交易处理单元(TPU),以及其在网络节点间高效传播区块的策略(Turbine)。此外,文中还提及Solana的其他关键创新,如历史证明(Proof of History)和并行处理能力等,进一步阐释了其成为web级区块链的可行性与技术优势。

找出 Solana 网络利用的验证和复制交易的过程,以实现网页规模的速度和功能。

为了达到亚秒确认时间和 Solana 成为全球首个网页规模区块链所需的交易能力,仅仅快速达成共识是不够的。团队必须开发一种快速验证大量交易块,并快速在网络上复制它们的方式。为此,Solana 网络的交易验证过程广泛使用了一种在 CPU 设计中常见的优化技术,称为流水线(pipelining)。

流水线是一个合适的过程,当有一系列步骤需要处理一串输入数据,而每个步骤都有不同的硬件负责时。解释这一概念的经典隐喻是洗衣机和烘干机,它们按顺序清洗/干燥/折叠几批衣物。洗涤必须在干燥之前进行,而干燥必须在折叠之前进行,但这三个操作都是由单独的单元执行的。

为了最大化效率,人们创建了一个阶段流水线。我们将洗衣机称作一个阶段,将烘干机称作另一个阶段,将折叠过程称作第三个阶段。为了运行流水线,在第一个负荷被加入到烘干机后,立即将第二个负荷加入到洗衣机。同样,在第二个负荷在烘干机中时,将第三个负荷加入到洗衣机,并且第一个负荷正在被折叠。通过这种方式,可以同时推进三批衣物。假如负荷无限,流水线将始终以流水线中最慢阶段的速度完成一批。

“我们需要寻找一种方法,让所有硬件始终保持忙碌状态。这包括网络卡、CPU 核心和所有 GPU 核心。为了做到这一点,我们借鉴了 CPU 设计的经验,”Solana 创始人兼首席技术官 Greg Fitzgerald 解释道。“我们在软件中创建了一个四阶段的交易处理器。我们称之为 TPU,即交易处理单元。”

在 Solana 网络中,流水线机制 — 交易处理单元(TPU) — 通过 数据获取(Data Fetching,内核级别)、签名验证(Signature Verification,GPU 级别)、银行业务(Banking,CPU 级别)和 写入(Writing,内核空间)逐步推进。当 TPU 开始向验证者发送区块时,它已经获取了下一组数据包,验证了它们的签名,并开始入账代币。

验证节点同时运行两个流水线处理过程,一个在领导模式下使用,称为 TPU,另一个在验证者模式下使用,称为 TVU。在这两种情况下,被流水线处理的硬件是相同的,包括网络输入、GPU 卡、CPU 核心、写入磁盘和网络输出。它对这些硬件所做的事情是不同的。TPU 用于创建账本条目,而 TVU 用于验证这些条目。

“我们知道签名验证会成为瓶颈,但也知道这是一个可以卸载到 GPU 上的无上下文操作,”Fitzgerald 说。“即使卸载了这一最昂贵的操作,仍然存在许多其他瓶颈,如与网络驱动程序交互和管理智能合约中的数据依赖性,这限制了并发性。”

在这个四阶段流水线中,通过 GPU 并行化,在任何给定时刻,Solana TPU 可以同时推进 50,000 笔交易。“这所有的一切都可以通过一台价值不超过 $5000 的普通计算机实现,”Fitzgerald 解释说。“并不是某种超级计算机。”

通过将 GPU 卸载到 Solana 的交易处理单元,网络能够提高单节点的效率。实现这一目标一直是 Solana 自创立以来的目标。

“下一个挑战是以某种方式将区块从领导节点传送到所有验证节点,并确保不阻塞网络而导致吞吐量减慢,”Fitzgerald 继续说道。“为此,我们提出了一种称为 Turbine 的区块传播策略。”

“通过 Turbine,我们将验证节点结构分为多个级别,每个级别的大小至少是上一个级别的两倍。通过这种结构,这些不同的级别,确认时间最终与树的高度成正比,而不是其节点数量,这个数量大得多。每当网络大小翻倍时,你会看到确认时间轻微上升,但仅此而已。”

除了像流水线这样的技术实现外,还有几个关键创新使得 Solana 的网页规模区块链功能成为可能。要更深入地了解它们,你可以在 Solana 博客上阅读相关内容:

有 8 项关键创新使 Solana 网络成为可能:

  • 原文链接: medium.com/solana-labs/p...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
andrewhyde
andrewhyde
江湖只有他的大名,没有他的介绍。