Anza 的 2025 年使命:迈向 100 万 TPS
本文探讨了 Agave 在过去一年中取得的一些关键进步以及我们 2025 年的路线图。TL ;DR – 我们今年将把区块空间增加一倍,而 Agave 未来将达到 1M TPS。增加带宽和减少延迟 (IBRL) 对于 Solana 保持竞争力至关重要。复杂系统不是通过一个神奇的修复来优化的,而是通过数千个微进步的积累来优化的。这就是为什么我们专注于加速改进为 Solana 网络提供支持的 Agave 客户端。
龙舌兰今日
由于主网采用了 Agave v2.1 版本,运营商和用户注意到了巨大的改进。跳过率(由于领导者节点违约或速度缓慢而跳过某个时隙的时间百分比)已降至 0.5% 以下。
时隙时间变得非常快,最近几个时期的平均时隙时间低于 400 毫秒。第 746 个时期 - 结束于 2025 年 2 月 24 日 5:16 UTC 的时期 - 在 47.5 小时内通过了 432k 个时隙,平均时隙时间低于 396 毫秒!
交易延迟也得到了类似的改善,典型的确认延迟在 1 秒以下!TPS 始终高于 4k 大关。
图片来自 Validators.app Ping Thing
但我们还没完……上图的另一条线显示,4800 万 CU 的人为限制始终是带宽的限制因素。计划是大幅提高这一上限,首先作为SIMD-0207的一部分适度增加到 50M 。
为什么不明天就将 CU 限制增加一倍?目前有两个主要问题正在积极解决:
- 确保围绕链的基础设施能够跟上。我们已经观察到 CEX 和最低规格的 RPC 节点难以跟上增加的 TPS。如果写入层的速度大大超过读取层,用户体验就会随之下降。为了解决这个问题,除了链性能本身之外,我们还积极对周围的基础设施进行 IBRL。
- 按时将块传送到集群。Agave 客户端面临的下一个最大瓶颈是将块从领导节点传送到集群的其余部分。在当前 CU 限制下,这不是问题,但随着块的字节数显著增加,某些工作负载的中位块分发时间可能会开始超过 400 毫秒。破解的 Anza 开发人员正在缓解这一瓶颈,同时确保块打包优先于最关键的资源并受到约束。
让我们深入探讨一些技术细节,以了解为何 Agave 今年能够如此迅速地扩张。
扩大龙舌兰 TPS:2025 年重点领域
2025 年,我们将推动 Agave 处理更高的交易吞吐量并实现更大的区块容量。让我们深入探讨几个具体的优化领域:
TPU 调度程序优化:调度程序是任何验证器客户端的关键组件,因为它决定了区块生产者的交易处理顺序和优先级。Agave 将在此领域实施多项改进。
- 更智能的调度系统可以平衡相互冲突的问题,例如:优先考虑费用最高的支付者、避免账户冲突以及保持工作线程加载和忙于执行。新的贪婪调度程序算法将减少批处理,以确保执行线程获得稳定的工作流。这更好地匹配了实际的主网工作负载,它由更重的交换类型交易组成,而不是合成测试中使用的小而简单的交易。
- 减少内存分配,以避免页面错误时管道停顿。动态内存分配可能非常昂贵,尤其是当内存分配器尝试使用 madvise 系统调用将内存返回给内核时。减少总体分配有助于在返回此内存时最大限度地减少管道停顿。
- 将某些过滤职责推向管道的上层,以便更小、更精心策划的交易流进入调度程序。目前,按优先级进行过滤是在调度程序中完成的,这在其他昂贵的操作(例如签名验证)之后完成。这意味着可能会在永远不会被调度的低价值数据包上浪费大量精力。通过更早地进行过滤,可以节省大量验证器资源。
这些改进不仅会提高吞吐量,而且还会确保以更高效、及时和公平的方式处理交易。
- Turbine 带宽扩展: Turbine 是 Solana 的区块传播协议,其快速向验证者传递数据的能力对于性能至关重要。Agave 将专注于通过增强带宽来改进其涡轮设计的实现,从而实现更快的区块在网络中传播。通过优化涡轮性能,我们可以显著减少区块传播时间并提高整体网络效率,尤其是在交易量较高的时期。
目前的问题之一是计算涡轮树所需的时间,涡轮树使用权益加权混洗来确定给定节点需要发送到哪些对等节点。为每个单独的碎片计算一个唯一的树,并且必须在将碎片发送到下游节点之前进行。通过提高此计算的效率并在空闲期间推测性地计算未来碎片的树,碎片管道可以更加无缝地流动并缩短出块时间。
另一个问题与如何高效地将数据提供给网络接口卡 (NIC) 以便通过网络发送有关。通过减少中间内存副本,可以实现每秒发送的碎片数量增加。
- 状态缓存改进:状态缓存保存有关已处理交易的关键信息,并确保交易在给定分叉上仅处理一次。为了提高可扩展性,Agave 将引入更高效的状态缓存管理和锁定策略。这将允许更快的查找和插入,并产生更好的整体验证器性能。
当前状态缓存使用全局锁。下一个版本将通过使用每个块哈希/槽的锁来使锁定更加细化,这将允许对状态缓存进行更多并行访问。
- 块存储插入增强功能:块存储碎片插入是区块链数据存储的一个关键方面。这很大程度上与块元数据的序列化、存储、反序列化和获取方式有关。Agave 将实施优化,以便更快、更高效地将块和元数据插入数据库,从而使系统能够随着交易量的增加而更有效地扩展。
其中一个例子是块存储如何跟踪块完成。B 树中维护了一个碎片索引,以了解已收到给定块的哪些碎片。序列化和反序列化包含数千个索引的 B 树的成本很高。通过切换到简单的位图,可以显著减少每秒执行数千次的此操作的 SerDes 时间。
- 更快的哈希算法:更简单但更有影响力的优化之一是切换到更快的哈希算法。Agave 正在将不需要更高级保护的结构转换为 ahash,而不是默认的 siphash。Ahash 旨在实现更高的吞吐量和更好的性能,这将带来更快的交易处理和响应更快的区块链。这一变化有望显著减少哈希所花费的时间,并有助于实现更高的可扩展性。
查看这个Github 项目,查看计划的性能改进的完整列表并实时跟踪进度!
结论
Anza 的 2025 年路线图遵循了我们对 Agave 的愿景:使其成为 Solana 主网上最好的客户端。与 Firedancer 的合作也帮助两个团队改进了各自的客户端。团队之间的合作(现在每年涉及多次面对面会面)以及各个领域的深度协调,有助于展开和审查 Agave 代码库的每个部分。良性竞争推动两个团队创新并不断突破优化性能的极限。通过不懈地解决交易和碎片处理管道中的瓶颈,Anza 将应对 2025 年及以后的挑战,确保 Agave 和 Solana 保持快速、可靠和极具竞争力。
请继续关注更多更新,我们将继续对 Agave 进行迭代,以充分发挥硬件的所有性能、解锁更多的块容量,并使越来越多的用例能够上链!
原文:https://www.anza.xyz/blog/anzas-2025-mission-on-the-road-to-1m-tps