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 の安全性に対してさらに強固な防御線を追加しました。
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.5 Gbps のブロックスペース能力と 50 万 TPS の VM 実行効率を示しました。
Firedancer はどのように機能するのか?
Firedancer は、高性能計算スタック、ネットワークスタック、ランタイム、コンセンサスメカニズムの 3 つの主要な構成要素を中心に構築されています。Firedancer が Solana ネットワークの性能を 100 万 TPS に引き上げることができるのは、その革新的なアーキテクチャ設計とデータフローの最適化にあります。
このバリデーターは、少数のスレッドを使用して多様な作業を実行する並行モデルを採用しており、各スレッドはネットワークデータパケットの処理、トランザクションの検証、ブロックのパッキングなど、特定のタスクに集中しています。この設計により、リソースの最大限の活用とトランザクション処理速度の大幅な向上が実現されました。
具体的には、各スレッドは 11 の異なる作業のいずれかを実行します。一部の作業は 1 つのスレッドで完了できますが、他の作業は多数のスレッドが並行して同じ作業を実行する必要があります。また、各スレッドには CPU コアが割り当てられ、そのスレッドはそのコアの所有権を持ちます:決してスリープ状態になったり、オペレーティングシステムによって他の目的に使用されたりすることはありません。
Firedancer は「タイル」と呼ばれるアーキテクチャも導入しており、各タイルは作業とその実行スレッドおよび割り当てられた CPU コアを表しています。この組み合わせにより、性能調整が柔軟かつ効率的に行えるようになります。例えば、net と quic の各タイルは >100 万 TPS を処理でき、verify と bank タイルはトランザクションの検証とブロックの実行に集中していますが、処理速度は相対的に低いものの、高い同時処理のニーズを満たすのに十分です。
Firedancer の公式ドキュメントには、次の 11 種類のタイルが列挙されています:
- net:ネットワークデバイスからネットワークデータパケットを送受信する(各タイルは >100 万 TPS を処理可能);
- quic:クライアントからのトランザクションを受信し、QUIC プロトコルを管理および実施するためのすべての接続管理とデータパケット処理を実行する(各タイルは >100 万 TPS を処理可能);
- verify:受信トランザクションの暗号署名を検証し、無効なトランザクションをフィルタリングする(各タイルは 20-4 万 TPS を処理可能);
- dedup:重複する受信トランザクションをチェックしてフィルタリングする;
- pack:リーダーになると、受信トランザクションをパッキングし、それらの実行をスマートにスケジュールする;
- bank:スケジュールされたトランザクションを実行する(各タイルは 20-4 万 TPS を処理可能);
- poh:バックグラウンドで連続的にハッシュ計算を行うメカニズムで、生成されたハッシュ値を実行されたトランザクションと混合し、順序性と時間性を証明する。
- shred:リーダーになると、ネットワークにブロックデータを配信する;非リーダーの場合、ブロックデータを受信して再送信する(スループットは主にクラスターのサイズに依存します。ベンチマークテストでは、クラスターの規模が小さい場合、1 つのタイルが >100 万 TPS を処理できます);
- store:リーダーになるとブロックデータを受信するか、他のノードがリーダーの場合に他のノードからブロックデータを受信し、それをローカルディスクのデータベースに保存する;
- metric:他のタイルに関する監視情報を収集し、それを HTTP エンドポイントに提供する;
- sign:バリデーターの秘密鍵を保持し、他のタイルからの署名リクエストを受信して応答する。
Firedancer が成熟する前に、その移行バージョンである Frankendancer が先に Solana メインネットに登場しました。Frankendancer は Firedancer と Agave の一部のコードを混合したもので、Firedancer のネットワークスタックとブロック生成の利点を組み合わせつつ、Agave の実行とコンセンサスの機能を保持しています。一方、Firedancer は完全にゼロから構築されており、Agave のコードは含まれていません。
Firedancer の影響は?
間違いなく、Firedancer の導入は Solana エコシステムに重大な影響を与え、バリデーターの多様性を大いに豊かにし、単一障害点がネットワークの安定性に与える影響をさらに弱め、Solana ネットワークの信頼性をより強固なものにします。
さらに、Firedancer は既存のプロトコルとの後方互換性を維持しており、エコシステムのスムーズな移行を確保し、DApp 開発者やユーザーが大きな調整を行う必要がありません。
現在、Firedancer はまだ非投票モードにあり、継続的な最適化と監査を経る必要がありますが、これは Solana ネットワークの将来の発展に対して、より希望に満ちた青写真を描いています。