Agave 2.3 版本带来了验证器性能、开发者工具和生活质量方面的改进。包括快照处理的更新、SBPF 工具链的增强和改进的 TPU 客户端。在性能方面,优化了 epoch 转换,并降低了 I/O 开销。此外,还改进了 CLI 工具,并添加了 wen-restart 集群恢复功能。
Agave 2.3 在验证器性能、开发者工具和生活质量方面提供了一系列改进。此版本包含快照处理的更新、SBPF 工具链的增强和改进后的 TPU 客户端。
特性 | 总结 |
贪婪调度器默认 | central-scheduler-greedy 现在是默认设置,通过减少调度冲突和空闲处理时间来提高性能。 |
快照更改 | 新增 --no-snapshots 标志,用于明确禁用快照;现在每 5 万个插槽进行一次完整快照;之前的禁用方法已弃用。从快照恢复时,不再删除 Geyser 的帐户通知重复项。 |
TimedTracedEvent ABI | ABI 已更新;验证器必须更新依赖于跟踪日志的外部工具。 |
SBPF 工具链 | 开发者现在可以显式地以 SBPF 版本(v0-v3)为目标;SBPFv3 程序专门使用 Rust;添加了 --optimize-size 标志,以减小二进制文件的大小。 |
CLI 改进 | 通过 withdraw-stake AVAILABLE 简化了 stake 提款;solana-test-validator 现在默认安全地绑定到 localhost。 |
新的 TPU 客户端 | tpu-client-next 是 TPU 转发器客户端的新实现,专注于提高吞吐量和减少延迟。 |
Gossip Shred 版本 | 确保 gossip 中的 shred_version 正确,防止配置不正确的节点错误地加入集群。 |
RPC 更新 | simulateTransaction 现在包含 loadedAccountsDataSize,它报告在模拟期间加载的帐户数据的总字节数。 |
我们在 Agave 2.3 中添加了多项优化,以改进 epoch 过渡并减少 I/O 开销。
我们在此版本中对快照进行了一些生活质量方面的更改,以提高清晰度。
添加了 --no-snapshots
,它禁用快照生成,旧的 --snapshot-interval-slots 0
方法已弃用。
默认完整快照间隔:25,000 -> 50,000 个插槽。
从快照恢复时,Geyser 插件帐户通知不再删除重复项。
这是一个我们希望永远不需要使用的特性。它在链崩溃时自动重启集群。有备无患。
wen-restart
集群恢复特性。我们更新了事件跟踪接口以包含一些新的诊断信息,这需要在外部工具中进行相应的更新。
贪婪调度器在测试中表现良好,并且通过避免旧中央调度器中使用的完整依赖关系图来减少开销,因此我们默认情况下启用它。
central-scheduler-greedy
现在默认激活。我们正在对 SBPF 工具链上的开发者进行一些生活质量方面的更改,并弃用很少使用的基于 C 的 SBPFv3 工具链。
开发者现在可以在构建程序时以特定的 BPF VM 版本(v0-v3)为目标。
SBPFv3 程序现在仅限 Rust。不再支持基于 C 的 SBPFv3 工具链。
添加了一个新的构建标志 --optimize-size
,以生成更小的程序二进制文件以进行部署。此优化可能会导致 CU 使用量略有增加。
命令行工具中的生活质量增强功能简化了常见工作流程,并提高了本地测试的默认安全性。
添加了 withdraw-stake AVAILABLE
命令以提取所有可用的未抵押 lamports。(#4483)
更改了 solana-test-validator
以默认将 RPC 服务绑定到 localhost。
我们改进了 TPU 网络瓶颈,专注于提高事务处理中的吞吐量并减少延迟。
将长期存在的 ConnectionCache 替换为 tpu-client-next
作为新的默认 TPU 转发器。这个新客户端大大提高了数据包吞吐量,并减少了发送到集群领导者的事务中的延迟和抖动。它还降低了负载下验证器的 CPU 和内存使用率。
新的 TPU 客户端是完全向后兼容的。使用它不需要采取任何特殊操作,但如果出现任何问题,操作员可以通过使用 --use-connection-cache
标志启动来恢复到旧的行为,从而恢复 2.2 实现。
在综合负载下成功提交给领导者的事务数量。
左侧是 ConnectionCache, tpu-client-next
在右侧。
我们的网络gossip协议得到了改进,以确保只有配置正确的节点加入集群,从而防止配置错误的节点加入集群。
Gossip 现在在节点尝试加入网络时强制执行正确的 shred_version
。只有当节点的 shred 版本与集群的版本匹配时,才会接受入站 gossip 连接,从而尽早拒绝不匹配的节点。
之前允许没有 shred 版本匹配的“gossip 侦察”节点连接的例外情况已被删除。运行侦察或观察者节点的操作员现在必须从集群入口点获取正确的 shred 版本,或通过命令行显式设置它才能成功加入。
我们添加了一个新的 Solana RPC API,以提高开发人员模拟资源使用情况的透明度。
simulateTransaction RPC
方法现在返回一个新字段:loadedAccountsDataSize
,它报告在事务模拟期间加载的帐户数据的总字节数。使用 --snapshot-interval-slots
0 禁用快照现已弃用;请使用 --no-snapshots
标志。
TimedTracedEvent 日志记录 ABI 已更新;任何使用这些日志的外部跟踪工具都需要更新,并且应清除旧的跟踪数据。
SBPFv3 现在仅支持 Rust 工具链。对于 SBPFv3 程序,不再支持 C 工具链。
Agave 2.3 显着提高了验证器性能和可用性。鼓励验证器和开发者升级。请继续关注未来的更新,因为 Agave 将继续解锁更多区块容量、提高硬件效率并帮助 Solana 在规模上保持竞争力。
- 原文链接: anza.xyz/blog/agave-2-3-...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!