私の Solana アプリはなぜ遅い?ネットワーク距離が大切な理由

私の Solana アプリはなぜ遅い?ネットワーク距離が大切な理由

2025.11.18
多くのトレーダーや開発者の皆様から、
  • 同じような戦略のはずなのに、自分の bot だけ約定が遅い
  • 価格はちゃんと見えているのに、トランザクションが間に合わない
  • RPC を変えても、体感があまり変わらない
といった相談をいただきます。
このとき真っ先に疑われるのは、
  • 自分のコードが遅いのではないか
  • サーバースペックが足りないのではないか
という部分です。もちろんどちらも重要ですが、Solana のような高速ネットワークの世界では、それ以上に「ネットワーク距離」が最初のボトルネックになることが少なくありません。
Solana はブロックチェーン上に無数の dApp・DeFi・マーケットが存在し、その多くで bot を通じた自動トレードが行われています。いわゆる高頻度取引(HFT)に近い環境では、競合よりも素早く検知し、素早くプログラムを実行することで、エッジを獲得し収益を狙います。
本記事では、Solana 上で高速な検知・送信を目指す際に、なぜネットワーク距離が決定的に重要になるのかを整理し、あわせて ERPC の Bundle プランおよび VPS がこうした需要にどのように応えているかをご紹介します。

なぜ「自分のアプリだけ遅い」と感じるのか

まず、よくある状況を整理します。
  • メモリにも CPU にも余裕があるのに、トレードの反応がライバルより遅い
  • getProgramAccounts やログ購読で新しいイベントは見えているのに、実際のトランザクション送信が一歩遅れる
  • クラウドサービスや RPC プロバイダーをいくつか試しても、決定的な改善が得られない
このようなとき、多くの開発者はコードやアルゴリズムを徹底的に最適化しようとします。
それ自体は正しいアプローチですが、
  • そもそも「遠いネットワーク」から競合と戦っている
  • リーダーバリデータから見て、自分のアプリケーションが物理的に不利な位置にいる
という前提が残っていると、どれだけソフトウェアを磨いても、勝負できる領域に届きません。
Solana の高速性を本当に使い切るためには、
  • コード
  • ハードウェア
  • ネットワーク
という三つのレイヤーをまとめて考える必要があります。その中でも、最初にテコ入れすべきなのが「ネットワーク距離」です。

速さを決める三つのレイヤー

コード(ソフトウェア・戦略)

Solana 上で bot や HFT を行う場合、
  • どのイベントをトリガーにするか
  • どのような条件でエントリー・エグジットするか
  • どれだけ無駄な I/O を削り、処理を並列化できるか
といったコードや戦略は、成果に直結します。
これは多くの開発者にとって最もイメージしやすい高速化ポイントです。

ハードウェア

次に効いてくるのがサーバーの性能です。容量に余裕があるだけでは不十分で、
  • 高クロックな CPU(1 コアあたりの処理速度)
  • コア数(どれだけ並列に処理できるか)
  • メモリ容量とメモリチャンネル数(広範囲のデータを詰まりなく扱えるか)
  • NVMe などの高速ストレージ(ログやデータの書き込みで詰まらないか)
といった要素が重要になります。
特にトレード系のアプリケーションではインデックスや状態を大量に扱うため、
  • CPU キャッシュが大きい
  • RAM が潤沢で、スワップの心配がない
といった条件は、安定したパフォーマンスに直結します。
もちろん、高性能な環境を目指せばコストは上がります。最終的には自分の戦略の利益と照らし合わせて、「どこまで投資するか」のバランスが必要です。

ネットワーク

そして、最も見落とされがちでありながら、実は一番レイテンシに効いてくるのがネットワークです。
CPU の最適化では数百ナノ秒〜数マイクロ秒レベルの改善を積み上げていきますが、ネットワークでは、改善できる差がいきなり数百ミリ秒になることがあります。桁で言えば、千倍以上のインパクトがある領域です。
  • 強力なサーバー
  • 効率的なソフトウェア
  • 洗練された戦略
これらが揃っていても、ネットワーク距離を間違えると、高速化の努力がほとんど活かされません。まずは「どのデータセンター」「どのネットワーク」に自分のリソースを置くかを正しく選ぶことが、最初の一手になります。

ネットワーク距離の直感を取り戻す

ネットワークの話は目に見えないため、どうしても想像しづらい領域です。ここでは、交通のメタファーを使って直感を取り戻します。
インターネットを考えるときは、
  • 自分のサーバーを出発点
  • 対象の Solana バリデータや RPC を到着点
とした、車や飛行機での移動をイメージするとわかりやすくなります。
近場への移動は、信号や交差点が少なく、渋滞のリスクも小さいため、到着時刻のばらつきが小さく、ほぼ予定どおりに到着できます。
一方、遠距離への移動では、高速道路やトンネル、ハブ空港など、いくつもの経由地を通ることになります。工事や事故、混雑の影響を受けやすく、到着時刻が大きくブレます。
ネットワークもまったく同じで、
  • 光ファイバーのケーブルが短いほど
  • 経由するルーターやスイッチ(交差点や空港)が少ないほど
往復の時間は短く、ばらつきも小さくなります。
また、ネットワーク帯域(1Gbps、10Gbps、25Gbps)は道路の車線数に相当します。車線が多いほど同時に流せるデータの量が増え、混みづらくなります。しかし、いくら車線が多くても、目的地までの距離が長く、経路が遠回りであれば、到着までの時間は伸びてしまいます。
Solana で高速化を目指すときも、帯域(車線数)だけではなく、距離と経路の短さを両方揃えることが重要です。

Solana の構造と「距離」がどう効いてくるか

Solana のブロック生成は、世界中に分散したリーダーバリデータがスロットごとに交代しながら進行します。
Solana Validators Map
現在の Solana ではフランクフルトなど一部のリージョンに多くのバリデータが集中していますが、それでもリーダーは
  • フランクフルト
  • ニューヨーク
  • 東京
  • シンガポール
といった形で世界中を移動します。
このとき、
  • フランクフルトのリーダーに対しては、フランクフルトのネットワーク内にいるノードが圧倒的に有利
  • 東京のリーダーに対しては、東京近傍のノードが有利
という、非常にシンプルな構造が成り立ちます。
大陸間の通信は、ping の往復だけでも 100ms を超えることが多く、
  • フランクフルトから東京のリーダーを追いかける
  • 東京からニューヨークのリーダーを追いかける
といった構成では、Shreds のストリーム受信や処理まで含めると、実効的な検知タイミングが 1000ms 以上遅れることもあります。これは、トレードや監視用途のアプリケーションにとって致命的な差です。

平均レイテンシを追いかけても勝てない理由

多くのご利用者の皆様が最初に確認する指標は、
  • 平均 ping
  • 平均応答時間
です。もちろん、これらは重要な参考指標です。しかし、Solana のようにリーダーがスロットごとに世界を移動していくネットワークでは、「平均値が良いこと」と「勝負したい瞬間に速いこと」は別の話になります。
たとえば、ある構成で平均レイテンシが 200ms だとしても、
  • あるスロットでは 20ms
  • 別のスロットでは 600ms
というように、実際にはばらついているかもしれません。0 スロットトレードや 200〜400ms 以下の領域を狙う場合、重要なのは平均値ではなく、
  • 自分のリージョン内で
  • 勝負したいタイミングに
  • どれだけ低レイテンシで動けるか
です。
別大陸にいるリーダーに対しては、物理的に追いつけないスロットが必ず存在します。この現実を理解せずに平均値だけを追いかけると、「なぜか勝てない」状況から抜け出せません。

自分のアプリはどこで遅くなっているのかを切り分ける

ここからは、実際にご自身のアプリケーションのボトルネックを見つけるための視点を整理します。

現状のレイテンシを計測する

まずは、現在利用している接続先との距離を数値で把握します。
  • 利用中の RPC / gRPC / Shredstream のエンドポイント
  • それらが存在するリージョン近傍のノード
に対して実際に ping を取り、往復遅延の基礎値を把握します。
一度だけでなく、短い間隔で複数回計測し、平均値ではなく中央値を見ることで、その日の「道路状況」に近い値を得ることができます。

ネットワーク時間とアプリ内部の処理時間を分離する

アプリケーション側では、
  • リクエスト送信時刻
  • レスポンス受信時刻
  • 内部処理の開始・終了
といったログを取り、
  • ネットワーク往復にどれだけ時間がかかっているか
  • コードが実際に処理している時間はどの程度か
を切り分けて確認します。
多くの場合、
  • コードの処理時間は数ミリ秒〜数十ミリ秒以内に収まっているのに
  • ネットワーク往復に数百ミリ秒かかっている
という状況が見えてきます。

よくあるボトルネックのパターン

  • 世界のどこからでも同じ RPC エンドポイントにアクセスしている
  • 自宅やオフィスから VPN やプロキシを多段経由している
  • 単一リージョンにだけサーバーを置き、そこから全世界のリーダーを追いかけている
こういった構成では、Solana の構造上、常にどこかのリーダーに対して不利な位置から戦うことになってしまいます。

ネットワーク距離を味方につける設計の基本

ネットワーク距離を正しく扱うためには、次のようなステップが重要です。

どのネットワークで戦うのかを決める

Solana 用途であれば、そのネットワークはバリデータによって構築されています。リーダースロットの多さはステーク量に比例するため、
  • ステーク量の多いバリデータが集まるネットワーク
が、事実上の主要ネットワークになります。
まずは、
  • 自分の戦略にとって重要なマーケットや dApp がどのリージョンと近いか
  • ステーク集中リージョン(例: フランクフルトなど)をどのようにカバーするか
といった観点から、自分が「どのネットワークで戦うのか」を決めます。

データセンター / ネットワーク選定のポイント

Solana 用途においては、
  • 主要バリデータや Jito Block Engine と同一データセンターであること
  • もしくは PNI(Private Network Interconnect)で直接接続されていること
が重要です。
インターネット全体はどこに置いても動作しますが、HFT や高速検知を目指す場合、
  • 外部ネットワークをどれだけ削れるか
  • ゼロ距離に近い構成をどこまで取れるか
が最初の大きな差になります。

マルチリージョン構成へのステップ

理想は世界中に拠点を持つことですが、いきなり全リージョンをカバーする必要はありません。
現実的には、
  • フランクフルト(主要ネットワーク)
  • プラス、自分の戦略上重要なもう一拠点(ニューヨーク、東京、シンガポールなど)
といった形で、少数の拠点から段階的に増やしていくのがおすすめです。
各拠点で現地の Shreds や gRPC を受け取り、現地で処理を完結させるか、最短経路で自前ネットワークにバイパスする構成を取ることで、「常にどこかで最速」を狙いやすくなります。

ERPC のネットワーク設計と Bundle / VPS の位置付け

ここまでの話を、ERPC の設計や提供しているプロダクトに当てはめて整理します。

Solana 主用途ネットワークと PNI ベースの構成

ERPC は、Solana 用途に特化したネットワークとして、
  • ステークが集中している主要リージョン
  • 主要バリデータや Jito Block Engine が存在するデータセンター
  • それらと PNI 接続されたデータセンター
を選定し、Solana ネットワークにおいて最大出力を発揮できる構成を構築しています。
インターネットはそもそもグローバルなので、どこに何を置いても動作は可能です。ただし HFT や高速検知を考えるとき、まず正しいデータセンター選定とネットワーク選定がなければ、高速化は達成できません。ERPC は、この部分を Solana 用途に特化して設計しています。

ping ベース自動ルーティング

共有の Solana RPC エンドポイントでは、IP 位置情報に頼らず、
  • 各リージョンからホワイトリスト登録済み IP に対して自動で ping を計測
  • 実測値にもとづいて、もっとも近いリージョンへルーティング
する仕組みを採用しています。
これにより、
  • 地図上では近そうに見えるが、実際には遠回りになっている経路
  • 古いジオロケーション情報に引きずられるルーティング
を避け、常に実測ベースで最短経路を選択できます。

Solana RPC Bundle プラン

Bundle Plan
Solana RPC Bundle プランは、
  • RPC(HTTP / WebSocket)
  • Geyser gRPC(フィルター制限なし)
  • Shredstream gRPC
を一括で利用できる構成です。
多くの開発者は、まず Geyser gRPC からリアルタイムデータの活用を始めます。既にデコードされたデータを扱えるため、
  • 実装が容易
  • 既存コードやサンプルが豊富
  • 学習コストが低い
というメリットがあります。
一方で、プロフェッショナルはより高速な Shredstream を組み合わせることで、検知と送信のタイミングをさらに前倒しします。
Bundle では、
  • 既に本番で利用している RPC / gRPC を維持しながら
  • 追加コストを抑えて Shredstream を導入できる
よう料金設計を行っています。
本番環境を止めることなく、段階的に Shredstream を取り入れられるため、
  • まずは RPC + gRPC で安定したベースアプリを構築し
  • 同じ環境の中で Shredstream を学びながら高性能化に移行する
という現実的なステップを踏むことができます。

EPYC VPS / Premium Ryzen VPS

ネットワーク距離をさらに詰めるため、ERPC と同一ネットワーク内で動作する VPS 群も提供しています。
EPYC VPS
  • コストパフォーマンス重視の EPYC VPS
  • 5.7GHz 帯 Ryzen CPU を採用した Premium Ryzen VPS
といったラインナップにより、
  • 高クロック CPU
  • ECC DDR5 メモリ
  • NVMe4 ストレージ
  • 25Gbps × 2 のネットワーク
を備えた環境を、Solana 用途に最適化された形でご利用いただけます。
Premium Ryzen VPS
これらの VPS は、
  • Jito Block Engine
  • Shredstream ノード
  • Geyser gRPC ノード
と同一ネットワーク内で動作するゼロ距離構成となっており、外部ネットワークを跨ぐことなく、リーダー近傍でアプリケーションを動かすことができます。
Bundle プランと VPS を組み合わせることで、
  • ネットワーク距離
  • ハードウェア性能
  • ストリームの質
をまとめて最適化し、高頻度用途に必要な土台を一括で整えることが可能です。

まず何から始めれば良いか(チェックリスト)

この記事を読み終えたあと、すぐに実施できるステップを整理します。
  • 現在利用している RPC / gRPC / Shredstream エンドポイントとの ping を測る
    一度だけでなく、短い間隔で複数回計測し、中央値を見ることをおすすめします。
  • アプリケーション内で、ネットワーク時間と処理時間を分けてログを取る
    リクエスト送信〜レスポンス受信と、その間の内部処理時間を分離して計測します。
  • ターゲットとするマーケット / dApp が、どのリージョンに近いかを確認する
    可能であれば、複数リージョンから ping を計測し、体感ではなく数値で把握します。
  • 重要なリージョンに近い場所へ、一拠点だけ VPS や Bundle を導入し、比較テストを行う
    既存環境と新拠点でログを取り、どれだけレイテンシが変わるかを定量的に確認します。
  • 必要に応じて、マルチリージョン構成へ拡張する
    フランクフルト+ニューヨーク、フランクフルト+東京、フランクフルト+シンガポールといった形で、戦略に応じて拠点を増やしていきます。
  • 長期的には、リーダースケジュールやバリデータ位置のデータを取り込み、「どの時間帯にどのリージョンが有利か」を自分のデータとして蓄積する
    エポックごとの変化を追跡しながら、自分のネットワーク設計を継続的にチューニングしていくイメージです。

まとめ:ネットワーク距離から見直す理由

Solana 上で高速なトレードや監視を目指すとき、コード・ハードウェア・ネットワークの三つを同時に考える必要があります。その中でも、ネットワーク距離は改善インパクトが大きく、多くのプロジェクトで見落とされがちな領域です。
別大陸にいるリーダーバリデータを、遠いネットワークから追いかけている限り、どれだけコードやマシンを最適化しても、物理的に勝てないスロットが必ず生じます。
だからこそ、
  • まずはネットワーク距離を正しく測り
  • 自分がどのネットワークで戦っているのかを理解し
  • Solana にとって意味のある場所へアプリケーションを移す
ことが、高速化において最初に取り組むべきステップになります。
ERPC と Validators DAO は、Solana 用途に特化したネットワークとサーバーリソースを通じて、ご利用者の皆様がこうした構成を現実的なコストで実現できるよう支援しています。
ネットワーク距離の最適化や、Bundle・VPS の構成相談については、Validators DAO 公式 Discord からお問い合わせください。