深入了解Breakpoint上备受关注的Firedancer

By admin 1 月 1, 2023
深入了解Breakpoint上备受关注的Firedancer深入了解Breakpoint上备受关注的Firedancer

在上周的Solana Breakpoint大会上,现场气氛活跃,生态产品发布接踵而至,各类丰富多彩的周边活动更是锦上添花。在这场盛宴中,尤为引人注目的亮点是Solana验证器客户端Firedancer的早期版本正式登陆主网,这一里程碑式的成就被赋予了特别的关注,标志着Solana网络将在性能上将实现质的飞跃,同时可避免Solana上单一客户端崩溃导致网络宕机的风险。

Firedancer的开发历程可追溯至于2021年至2022年,作为由Jump Trading Group主导开发的Solana第二个验证器客户端(原有客户端Agave由Anza开发),其设计初衷在于消除单点故障隐患,增强网络的整体稳健性和坚韧性。与原有基于Rust的验证器不同,Firedancer采用C语言编写,不包含Rust代码,这一选择显著降低了潜在漏洞对整个网络的影响,为Solana的安全性加上了又一道坚固的防线。

Firedancer表现如何?
根据Jump Crypto首席科学官Kevin Bowers在Solana Breakpoint大会上的演示,Firedancer展示了每秒处理超过100万笔交易的能力,这一数字远超Solana当前理论上的几万TPS极限。Kevin Bowers还将这一成就形象地比喻为将「乡间小路」拓宽为「州际公路」,预示着网络成本和容量的双重优化。

Jump Trading的核心工程师Liam Heeger则分享了Firedancer在测试网上的进展,该客户端已成功产出超过2万个区块,并实现了1%的质押比例。

另一工程师Aryaman Jain的演示进一步揭示了Firedancer在特定条件下的表现,如在10个验证器环境下,其TPS可达百万级别,每秒处理计算单元超过12亿次,同时展现出3.5Gbps的Blockspace能力和50万TPS的VM执行效率。

Firedancer如何运行?
Firedancer围绕高性能计算堆栈和网络堆栈、Runtime和共识机制三个主要组成部分构建。Firedancer之所以能够将Solana网络的性能提升至100万TPS(当前协议级别的限制将性能限制在81,000 TPS左右),关键在于其创新的架构设计和数据流优化。

该验证器采用了一种并发模型,通过少量线程执行多样化的作业,每个线程都专注于特定的任务,如网络数据包处理、交易验证、区块打包等。这种设计实现了资源的最大化利用与交易处理速度的显著提升。

具体来说,每个线程执行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网络的未来发展描绘了一幅更加充满希望的蓝图。

By admin

Related Post

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注