当社の@solanaアーカイブ方法は、市場にある他のどの方法よりも最大20倍速いです。私たちはそのスタック全体をオープンソース化しました。これを🔖ブックマークしてください Solanaのアーカイブクエリは非常に遅く信頼性に欠けており、ブロックの欠落、応答の遅延、データのドロップなどがあります。 私たちが直🧵した方法はこうです
標準的なSolanaアーカイブスタック(Bigtable + Validator RPCノード)はデプロイは簡単ですが、スケールは難しいです。 CPU負荷が高く、メモリも多く、大規模なバッチリクエストには苦戦します。過去のデータが最も遅延に影響を及ぼします。
Bigtableの最適化を試みました。カスタムテーブルを追加し、クエリを調整し、できる限りのレベルまで押し上げました。しかし、変更するたびにノード全体を再起動する必要があります。1回あたり30分から数時間かかります。 そこでそれを破棄し、取り込み、ストレージ、RPCサーバーをすべて再構築しました。
新しい積み重ね: → ArchivalRPC:数秒で立ち上がります。RPSは20万RPSまでスケールします。 → カスタムインジェスター:コストと故障箇所を削減するための選択的取り込み。 → HBase over Bigtable:セルフホスティング、共置、ほぼゼロのレイテンシ。
データが間違っていれば速度は意味がありません。 私たちは三重検証された取り込みを構築しました。すべてのレコードは2回書き込まれ、プログラム的に検証され、継続的にスキャンされます。 ギャップが検出されると、自己修復パイプラインが自動的に再取り込みし修復します。
地域ごとの結果は以下の通りです: • getTransaction に対して100,000 RPS • getSignaturesForAddress 用 50,000 RPS • getBlock 2,000 RPS 市場のどのソリューションよりも最大20倍速く。
551