2024-10-28
一文读懂Breakpoint上备受瞩目的Firedancer
一文读懂Breakpoint上备受瞩目的Firedancer
原文作者:Karen,Foresight News
在上周的 Solana Breakpoint 大会上,现场气氛活跃,生态产品发布接踵而至,各类丰富多彩的周边活动更是锦上添花。在这场盛宴中,尤为引人注目的亮点是 Solana 验证器客户端 Firedancer 的早期版本正式登陆主网,这一里程碑式的成就被赋予了特别的关注,标志着 Solana 网络将在性能上将实现质的飞跃,同时可避免 Solana 上单一客户端崩溃导致网络宕机的风险。
Firedancer 的开发历程可追溯至于 2021 年至 2022 年,作为由 Jump Trading Group 主导开发的 Solana 第二个验证器客户端(原有客户端 Agave 由 Anza 开发),其设计初衷在于消除单点故障隐患,增强网络的整体稳健性和坚韧性。与原有基于 Rust 的验证器不同,Firedancer 采用 C 语言编写,不包含 Rust 代码,这一选择显著降低了潜在漏洞对整个网络的影响,为 Solana 的安全性加上了又一道坚固的防线。
具体来说,每个线程执行 11 个不同的作业之一。有些作业只需要一个线程来完成它们,但某些作业需要许多线程并行执行相同的工作。另外,每个线程都有一个 CPU core 来运行,并且线程拥有该 core 的所有权:永远不会休眠或让操作系统将其用于其他目的。
Firedancer 还引入了一个名为「tiles」的架构,每种 tile 代表了一个作业及其运行的线程和分配的 CPU core。这种组合方式使得性能调优变得灵活而高效。例如,net 和 quic 的每 tile 可处理 >100 万 TPS,而 verify 和 bank tiles 则专注于交易验证和区块执行,尽管它们的处理速度相对较低,但足以满足高并发场景下的需求。
Firedancer 官方文档中列出了 11 种 tile,分别为:
net:从网络设备发送和接收网络数据包(每 tile 可处理 >100 万 TPS);
quic:接收来自客户端的交易,执行所有连接管理和数据包处理以管理和实施 QUIC 协议(每 tile 可处理 >100 万 TPS);
verify:验证传入交易的加密签名,过滤无效交易(每 tile 可处理 20-4 万 TPS);
dedup:检查并过滤掉重复的传入交易;
pack:当成为 leader 时,打包传入的交易并智能地安排它们执行;
bank:执行被安排的交易(每 tiles 可处理 20-4 万 TPS);
poh:是一种连续在后台进行哈希运算的机制,将生成的哈希值与已执行的交易混合在一起,从而证明顺序性和时间性。
shred:当成为 leader 时,向网络分发区块数据;非 leader 时,接收并重传区块数据(吞吐量主要取决于集群大小。在基准测试中,如果集群规模较小, 1 个 tile 可以处理>100 万 TPS);
store:当成为 leader 时接收区块数据,或者当其他节点是 leader 时从其他节点接收区块数据,并将其存储在本地磁盘上的数据库中;
metric:收集有关其他 tiles 的监控信息并将其提供给 HTTP 端点;
sign:持有验证者私钥,并接收和响应来自其他 tile 的签名请求。
值得注意的是,在 Firedancer 成熟之前,其过渡版本 Frankendancer 已先行一步进入 Solana 主网。Frankendancer 是 Firedancer 和 Agave 部分代码的混合体,结合了 Firedancer 在网络堆栈和区块生产方面的优势,同时保留了 Agave 在执行和共识方面的功能。而 Firedancer 则是完全从头开始构建,不包含任何 Agave 的代码。
Firedancer 有何影响?
无疑,Firedancer 的推出对 Solana 生态系统具有重大影响,将极大地丰富验证器的多样性,进一步削弱单点故障对网络稳定性的影响,为 Solana 网络的可靠性筑起一座更加坚固的堡垒。
此外,Firedancer 保持了与现有协议的向后兼容性,能够确保生态系统的平稳过渡,无需 DApp 开发者及用户做出重大调整。
尽管目前 Firedancer 仍处于非投票模式,且需经历持续不断的优化与审核,但这为 Solana 网络的未来发展描绘了一幅更加充满希望的蓝图。
参考:
1、https://www.youtube.com/watch?v=InGI7BDUeX4&list=PLilwLeBwGuK4eY3nT0vvvJ4GmcJLImcQE&index=14
2、https://firedancer-io.github.io/firedancer/guide/tuning.html
3、https://solanacompass.com/learn/Validated/firedancer-w-kevin-bowers