Solana Geyser gRPC - クイックスタート

SLV をインストール

bash
curl -fsSL https://storage.slv.dev/slv/install | sh

$ slv b init

slv b init
slv b init のコマンドひとつで、高速ストリーム通信を活用したSolana向けのボット開発環境をすぐに構築できます。
bash
slv b init
  • TypeScriptでGeyserを使いたい場合は geyser-ts
  • RustでGeyserを使いたい場合は geyser-rust

ロードバランサーのIPを許可してください

登録されたIPに対し、各リージョンのgRPCロードバランサーからリアルタイムでpingを送り、最も近いノードを自動選択しています。Firewall(ufw、セキュリティグループ等)でICMPがブロックされていると 9999ms となり、最適な近距離リージョンが選択されない場合があります。下記のIPをホワイトリストに追加し、最寄りリージョンが選択されるようにしてください。
RegionDomainIP Address
🇳🇱 Amsterdamgrpc-ams1.erpc.global84.32.103.245
🇳🇱 Amsterdamgrpc-ams1.erpc.global84.32.64.77
🇺🇸 New Yorkgrpc-ny6-1.erpc.global64.130.37.222
🇩🇪 Frankfurtgrpc-fra1-1.erpc.global185.191.118.149
🇩🇪 Frankfurtgrpc-fra1-1.erpc.global185.191.118.177
🇩🇪 Frankfurtgrpc-fra1-1.erpc.global185.191.118.206
🇬🇧 Londongrpc-lon6-1.erpc.global67.209.52.250
🇯🇵 Tokyogrpc-tokyo-6.erpc.global198.13.133.88
🇸🇬 Singaporegrpc-sgp6-1.erpc.global202.8.11.52
🇦🇺 Sydneygrpc-syd-1.erpc.global82.26.116.36
🛰️ Far Pointgrpc-far-point.erpc.global63.254.162.14

Burst gRPC エンドポイント

Geyser gRPC Burst は、低レイテンシな Solana ストリーム用途向けの ERPC 共用 gRPC プランです。通常の gRPC サービスと同じ Yellowstone/Geyser gRPC インターフェースを利用するため、既存の gRPC クライアントは account、transaction、slot、block の購読をそのまま利用できます。
Burst は現在、Frankfurt、Amsterdam、New York、Tokyo、Singapore で稼働しています。レイテンシ選択には、上記の通常 gRPC ping 送信元 IP を引き続き使用します。以下の Burst ロードバランサー IP は、クライアント接続のために許可すべき公開 Burst エンドポイントです。
RegionBurst DomainIP Address
🇩🇪 Frankfurtgrpc-fra1-burst.erpc.global64.130.41.234
🇳🇱 Amsterdamgrpc-ams1-burst.erpc.global64.130.55.180
🇺🇸 New Yorkgrpc-ny6-burst.erpc.global64.130.59.217
🇯🇵 Tokyogrpc-tokyo-burst.erpc.global208.91.107.247
🇸🇬 Singaporegrpc-singapore-burst.erpc.global67.209.55.15
実際に利用するエンドポイントは、IP 登録後に ERPC Web ダッシュボードに表示されるものを使用してください。Burst は full Geyser gRPC ストリームです。Direct Shreds / ShredStream は、raw shred data を扱う UDP ベースの別プロダクトです。

Geyser クライアント例 – TypeScript

  1. .env.sample のファイル名を .env に変更します
  2. .env ファイルの値を実際のものに変更してください:
ini
GEYSER_ENDPOINT=http://grpc-ams1.erpc.global
SOLANA_RPC_ENDPOINT="https://edge.erpc.global?api-key=YOUR_API_KEY"
ご注意ください:
こちらのエンドポイントはサンプルであり、そのまま使用することはできません。実際のエンドポイントはご自身で取得・設定してください。
  1. 依存パッケージをインストールし、スクリプトを実行します:
bash
pnpm i
pnpm dev
Geyser TypeScript VSCode

Geyser クライアント例 – Rust

  1. .env.sample のファイル名を .env に変更します
  2. .env ファイルの値を実際のものに変更してください:
ini
GEYSER_ENDPOINT=http://grpc-ams1.erpc.global
SOLANA_RPC_ENDPOINT="https://edge.erpc.global?api-key=YOUR_API_KEY"
ご注意ください:
こちらのエンドポイントはサンプルであり、そのまま使用することはできません。実際のエンドポイントはご自身で取得・設定してください。
  1. クライアントを実行します:
bash
RUST_LOG=info cargo run
Geyser Rust VSCode

✅ 1-Day の無料トライアルを提供中

Geyser エンドポイントは、ERPC Webダッシュボードにて無料でお試しいただけます。
ダッシュボードはこちら: https://dashboard.erpc.global/ja

Solana Stream SDK

Solana Stream SDK
slv b init コマンドでダウンロードされるスターターコードで使用されている Geyser アダプターは、オープンソースの Solana Stream SDK によって提供されています。
Rust と TypeScript の両方に対応しており、Geyser の購読やトランザクション処理、アカウント更新イベントのリアルタイム監視など、Solana ストリーム通信を効率的に実装できます。
スターターとして入手できるコードは、そのままこの SDK の実例となっており、自身のボット開発や独自ロジックの拡張にも活用できます。
詳細はこちらの GitHub リポジトリをご覧ください:
https://github.com/ValidatorsDAO/solana-stream