ブレイクポイントで期待されるファイアダンサーとは?

先週のSolana Breakpointカンファレンスでは、製品発表や様々な魅力的なサイドイベントで活気に満ちた雰囲気だった。目立ったハイライトは、SolanaバリデータクライアントFiredancerの初期バージョンがメインネットで正式にローンチされたことだ。

このマイルストーン達成は、ソラナネットワークのパフォーマンスの飛躍的な向上を意味すると同時に、単一のクライアント障害によるネットワークダウンのリスクを軽減するものであり、特別な注目を集めた。

Firedancerの開発は2021年から2022年に遡り、Solanaの2番目のバリデータクライアントとしてJump Trading Groupが主導した(最初のクライアントAgaveはAnzaが開発)。その主な目的は、単一障害点を排除し、ネットワーク全体の堅牢性と回復力を強化することだった。

オリジナルのRustベースのバリデータと異なり、FiredancerはRustコードを除いてCで書かれている。この選択により、ネットワーク上の脆弱性の潜在的な影響が大幅に減少し、Solanaに強力なセキュリティ層が追加されます。

ファイヤーダンサーのパフォーマンスは?

Jump Cryptoのチーフ・サイエンティストであるケビン・バウアーズ氏は、Solana Breakpointでのプレゼンテーションの中で、Firedancerが1秒間に100万トランザクション(TPS)を超える処理能力を持つことを紹介した。彼はこの成果を「田舎道」を「州間高速道路」に広げることに喩え、ネットワークコストと容量の二重の最適化を示した。

テストネットのファイヤーダンサー

コアエンジニアのLiam Heeger氏は、Firedancerが1%のステーキング率で20,000以上のブロックを生成することに成功したと述べ、テストネットの進捗状況を共有した。また、別のエンジニアであるAryaman Jain氏は、特定の条件下でFiredancerの性能を実証し、10台のバリデータ環境で最大100万TPS、毎秒12億回以上の計算と3.5Gbpsのブロックスペース容量を明らかにした。

ファイアダンサーTPS

ファイアダンサーはどのように運営されているのですか?

Firedancerは、ハイパフォーマンス・コンピューティング・スタック、ネットワーク・スタック、ランタイムとコンセンサス・メカニズムという3つの主要コンポーネントを中心に構築されている。Solanaのパフォーマンスを100万TPS(現在のプロトコルの限界は約81,000TPS)まで高める能力は、その革新的なアーキテクチャとデータフローの最適化にある。

バリデータは、多様なタスクをいくつかのスレッドにまたがって実行する同時実行モデルを採用し、各スレッドはネットワークパケット処理、トランザクション検証、ブロックパッケージングなどの特定のタスクに集中する。この設計はリソースの利用を最大化し、トランザクション処理を大幅に高速化する。

具体的には、各スレッドは11種類のタスクのいずれかを実行する。1つのスレッドしか必要としないタスクもあれば、複数のスレッドが並行して動作するタスクもある。各スレッドは専用のCPUコアで動作するため、スリープしたり、オペレーティング・システムによって再利用されたりすることはない。

また、Firedancerは「タイル」と呼ばれるアーキテクチャを導入しており、各タイルはジョブ、実行中のスレッド、割り当てられたCPUコアを表しています。この組み合わせにより、柔軟で効率的なパフォーマンスチューニングが可能になります。たとえば、netタイルとquicタイルは100万TPS以上を処理できる一方、verifyタイルとbankタイルはトランザクションの検証とブロックの実行に重点を置いており、高カレンシーシナリオに十分です。

ファイヤーダンサーの公式ドキュメントには、以下の11のタイルが掲載されている:

  • ネット:ネットワークパケットを送受信する(各タイルは100万TPSを処理できる);
  • クイック:クライアントからのトランザクションを受信し、QUICプロトコルの接続とパケット処理を管理する(各タイルは100万TPSを処理可能);
  • ベリファイ:受信トランザクションの暗号署名を検証し、無効なものをフィルタリングする(各タイルは20~40,000TPSを処理できる);
  • デデュープ: 重複する受信トランザクションをチェックし、フィルタリングする;
  • パック: リーダーとして行動する際に、受信トランザクションをパッケージ化し、実行のためにスマートにスケジューリングする;
  • 銀行:スケジュールされたトランザクションを実行する(各タイルは20~40,000TPSを処理できる);
  • ポッ:バックグラウンドで継続的にハッシュを行い、生成されたハッシュと実行されたトランザクションを混ぜて、順序とタイミングを証明する;
  • 断片:リーダーとして動作するときはブロックデータをネットワークに配布し、そうでないときはブロックデータを受信して再送信する(スループットは主にクラスタサイズに依存し、ベンチマークでは小さなクラスタで100万TPSを示す);
  • 店舗:リーダーとして動作するとき、またはリーダーであるときに他のノードからブロックデータを受け取り、ローカルディスクのデータベースに格納する;
  • メトリック:他のタイルに関するモニタリング情報を収集し、HTTPエンドポイントに提供する;
  • サイン: バリデータの秘密鍵を保持し、他のタイルからの署名要求に応答する。

注目すべきは、Firedancerが成熟する前に、その過渡期バージョンであるFrankendancerがすでにソラナメインネットに参入していることだ。FrankendancerはFiredancerとAgaveのコードのハイブリッドであり、Agaveの実行とコンセンサス機能を保持しながら、ネットワークスタックとブロック生成におけるFiredancerの利点を活用している。対照的に、FiredancerはAgaveのコードを一切使わず、完全にゼロから構築されています。

ファイヤーダンサーのインパクトとは?

Firedancerの登場がソラーナのエコシステムにとって重要な意味を持つことは間違いなく、バリデータの多様性を大幅に強化し、単一障害点のリスクをさらに低減することで、ネットワークの信頼性を強化する。

さらに、Firedancerは既存のプロトコルとの後方互換性を維持しており、DApp開発者やユーザーに大幅な調整を求めることなく、エコシステムのスムーズな移行を保証している。

ファイヤーダンサーは現在、非投票モードであり、継続的な最適化と監査が行われているが、ソラナネットワークの今後の発展には希望が持てる。