FAQ - Geyser gRPC ストリーム

Q. WebSocketしか使ったことがないのですが、gRPCを使えますか?サンプルはありますか?

SLVを使えばすぐにgRPCをテスト・開発スタートできます。
詳しくはgRPC クイックスタートガイドをご覧ください。

Q. 2つのIPを登録したいです。

1つのサブスクリプションにつき1つのエンドポイントをご利用いただけます。2つのIPを利用したい場合は、2つのサブスクリプションをご購読ください。

Q. なにか制限はありますか?

プランごとのコネクション制限に加え、共用エンドポイント(Standard, Premium)ではフィルター制限があります。詳細な仕様は以下をご参照ください。
パフォーマンスを最大化するには、フィルターを細かく分割し、並列でデータ取得を行うことをおすすめします。この方法により、処理負荷を分散させ、レイテンシを低減できます。
**専有gRPCノード(1280€/m〜)**では、フィルター制限は一切なく、他のお客様によるリソース共有も発生しません。そのため、常に最高のパフォーマンスでご利用いただけます。
詳しくはDiscordにてお問い合わせください。

Q. 少なくとも ~400ms のレイテンシが必要です。

~400ms以内のレイテンシを確保するために重要なポイントは以下の通りです。
  • ping値の現実的理解: Ping値は理想環境での数値であり、実際のストリーム通信では約5倍のレイテンシとなります。例えば、大陸間のpingが100msの場合、実際のレイテンシは約500ms程度です。そのため、~400msのレイテンシを目指す場合、必ず同じリージョン内でインフラを構築する必要があります。
    • Ping値の一般的な目安:
      • 同一ネットワーク内:約0.1ms
      • プライベート接続(PNI):約0.2ms
      • 同一データセンター:約0.3ms
      • 同一都市:約1ms
      • 隣国:約5〜10ms
      • 大陸間:約100〜300ms
  • 平均レイテンシに惑わされない: Solanaのバリデータは世界中に分散しており、「エポック」という周期ごとにランダムにリーダースケジュールが組まれ、リーダーバリデータが変わります。平均レイテンシを目安に~400msを目指すのは現実的ではなく、自分のリージョンのバリデータスケジュールを正確に把握し、近い時間帯のスロットを特定する必要があります。常に最短のレイテンシを求める場合、すべてのリージョンにインフラを構築する必要があります。同じリージョン内であれば、ストリーム通信でも数十msのネットワークレイテンシでデータ取得が可能であり、送信も数msで実行できます。
  • リーダースケジュールの確認: Solana Beach APIやSolana RPC API(getSlotLeadersやgetClusterNodes)を活用して、自分のリージョンにおけるリーダーバリデータのスケジュールを常に把握してください。これにより、自分のインフラで最も効率的にトレードが行えるスロットを特定できます。
Solana Validators Solana Beach

Q. ゼロブロックトレードを達成したいです。

ゼロブロック(ゼロスロット)でのトレードを成功させるためには、以下のようなより高度な戦略が必要です。
  • チャンスゾーンの把握: Solanaのバリデータは世界中に分散しており、すべてのスロットで最適なレイテンシを実現することは物理的に不可能です。そのため、自分のインフラがあるリージョンでリーダーとなるバリデータのスケジュールを把握し、自分にとって最適なチャンスゾーンを特定する必要があります。場合によっては複数リージョンにインフラを設置することも有効です。特にフランクフルトはバリデータが集中しているため、リーダーとして選ばれる頻度が高く、チャンスが多い人気のリージョンとなっています。
  • 専有ノードの導入: 競合と比べて優位性がない場合は、専有ノードの導入を検討してください。共用ノードは他のユーザーの影響を受けレイテンシが増大するため推奨しません。また、自分のアプリケーションと専有ノードを同じネットワーク内に設置することで、ネットワークコストを最小限に抑えることが可能です。

Q. 特定のエンドポイントを利用したいです。

低レイテンシ環境を確保するために、必ず最も近いノードが自動的に選択されます。特定のエンドポイントを指定したい場合は、そのエンドポイントに最も近い場所にサーバーを借りてテストすることを推奨します。

Q. 401 エラーが起きるのですが?

低レイテンシ環境を提供するためにIP制限を設けています。サブスクリプションがない、または登録されていないIPからのアクセスは401エラーとなります。
登録されているIPとアクセス元のIPが一致しているか再度ご確認ください。

Q. 429エラーが起きるのですが?

プランごとのコネクション制限に達した場合にこのエラーが表示されます。
このエラーが表示されたらプランのアップグレードをご検討ください。特にプレミアムより多くのコネクションが必要な場合は、専有gRPCノードが適しています。

Q. なぜ専有エンドポイントは速いのですか?

共有エンドポイントは複数のお客様でリソースを分け合って利用しているため、トラフィック量が増えるにつれてレイテンシ(遅延)が発生しやすくなります。サーバーのリソースには物理的な限界があり、処理できる仕事量が決まっています。多くのリクエストが同時に集中すると、処理を順番に行う必要があるため、レスポンス速度が低下します。
私たちは共有エンドポイントでも様々な対策を講じてパフォーマンスを最適化していますが、専有エンドポイントでは、あなただけがそのリソースを専有できるため、他のユーザーの影響を一切受けません。その結果、常に安定した高速なレスポンスが得られます。
さらに専有エンドポイントでは、HTTPなどTLSを利用しない通信オプションを提供しています。TLSハンドシェイクの処理を省略することで、HTTPSと比較してさらに通信速度が向上します。

Q. 最高の低レイテンシ環境を実現したい。

専有gRPCノードとベアメタルサーバーの組み合わせをおすすめします。
これらは同じネットワークを共有し、インターネットを介さずプライベートなゼロ距離通信が可能です。実際の環境ではping値で0.1msという低遅延を達成しています。
詳しくはDiscordにてお問い合わせください。

Q. レイテンシはどのくらいですか?

レイテンシは計測方法やご利用環境によって異なります。具体的な数値よりも、実際のご利用シナリオで必要な性能を満たすかどうかが重要です。
すべてのプランで無料のフリートライアルをご用意していますので、実際の環境でぜひお試しください。また、TypeScriptやRustを利用して簡単にレイテンシを測定できるツールも提供しています。フリートライアルと合わせてご活用ください。

Q. このRPC(gRPC, Shreds)は他より速いですか?

ぜひ無料のフリートライアルで他のサービスと比較してみてください。もし他のサービスより遅い場合は、具体的な条件や比較対象についてDiscordでお知らせいただけると幸いです。原因を特定し、さらなる速度改善を行います。
私たちはお客様からのフィードバックをもとに、継続的にレイテンシの改善に取り組んでいます。最速のエンドポイントをお求めの方は、ぜひ詳細な情報を共有してください。競合他社と比較した具体的な数値や条件をお伝えいただければ、それをもとにより優れたパフォーマンスを実現します。これまでも、このような改善を重ねてきました。

Q. どのプランが一番速いですか?

一般的には、最上位のプランが最も高速です。これは、より高性能なCPUや大容量のメモリなど、強力なハードウェア構成を使用しているためです。
さらに強力なサーバーをお求めの場合はカスタマイズも可能ですが、基本的なプランは最適なコストパフォーマンスを追求して設計しています。
私たちはどの価格帯でも世界最高水準のパフォーマンスを提供していると自負しています。同じ価格帯で当社より高速なサービスがあれば、ぜひお知らせください。原因を特定し、改善に努めます。

Q. レイテンシが大きいのですが?

エンドポイントからの距離がレイテンシに大きく影響します。提供されているエンドポイントに近いサーバーからのアクセスを推奨します。最も速い接続を提供できるのはベアメタルサーバーおよびVPSサービスです。

Q. WebSockets, gRPC, Shreds はどれが一番速いの?

多くのお客様からのご意見はほぼ一致しており、速度は次の順序です。
Shreds > gRPC > WebSockets
異なる結果があればご報告ください。

Q. 聞いていたレイテンシと違います

使用するプログラミング言語によってパフォーマンスが異なります。言語ごとの一般的な速度順序は以下の通りです。
Rust > Go > TypeScript (JavaScript) > Python
詳しくは以下の比較ソースをご覧ください。
最速を求めるならRustの利用を強くおすすめします。