メインコンテンツへスキップ

LaserStream WebSocketとは?

LaserStream WebSocketは、LaserStream のWebSocketプロトコル版です。標準のSolana JSON-RPCサブスクリプションメソッド(accountSubscribe, programSubscribe, logsSubscribe, signatureSubscribe, slotSubscribe, …)をHelius専用の拡張機能と共に提供し、高度なフィルタリングのためのtransactionSubscribeなど、同じ統合エンドポイントwss://mainnet.helius-rpc.comで提供されています。 WebSocketは持続的でリアルタイムな接続を提供します。つまり、「何か変わったか?」と繰り返しポーリングするのではなく、何かが起こるとすぐにブロックチェーンが通知します。

リアルタイム更新

Solanaアカウントが変わったり、トランザクションが発生したり、新しいブロックが生成されると即座に通知を受け取ります。

効率的なリソース使用

数百のHTTPリクエストをポーリングする代わりに、1つの持続的な接続

低レイテンシー

標準のAgave RPCベースのWebSocketより最大で200 ms速く、LaserStreamによって提供

Helius拡張

transactionSubscribeと標準Solanaメソッド上に高度なフィルタリングのための拡張accountSubscribe

エンドポイント

WebSocketは標準のSolanaメソッドとHelius専用拡張機能の両方で、ネットワークごとに単一の統一エンドポイントから提供されます: メインネット: wss://mainnet.helius-rpc.com/?api-key=<API_KEY> 開発ネット: wss://devnet.helius-rpc.com/?api-key=<API_KEY>

Gatekeeper (ベータ)

最速のWebSocketオファリングをテストするには、新しいGatekeeper (ベータ) エンドポイントを試してください: wss://beta.helius-rpc.com/?api-key=<API_KEY>

料金と計測

WebSocketの使用は、ストリームされたデータの0.1 MBごとに2クレジットで計測されます。接続を開くには1クレジットが必要です。 Professionalプランの高ボリュームワークロードには、予測可能なコストで月次データ許容量(5TB〜100TB)を提供するデータアドオンをご利用いただけます。データアドオンはLaserStreamとWebSocketに適用できます。
Helius専用メソッドtransactionSubscribeaccountSubscribe(Heliusフィルタを含む)は、DeveloperBusiness、またはProfessional プランが必要です。標準SolanaメソッドprogramSubscribelogsSubscribe、とsignatureSubscribeはすべてのプランで利用できます。

コアコンセプト

サブスクリプションタイプ

特定のアカウントの変更(ウォレット残高、トークンアカウント、プログラムデータなど)を監視します。ユースケース:
  • ウォレット残高の追跡
  • トークンアカウントの監視
  • スマートコントラクトの状態変更
  • NFT所有権の更新
特定のプログラムが所有するすべてのアカウントを監視し、変更を見守ります。ユースケース:
  • DEX取引の監視
  • DeFiプロトコルトラッキング
  • NFTマーケットプレイスの活動
  • ゲーム資産の変更
特定のトランザクションが承認された際、または特定のアカウントに関連するトランザクションが発生した際に通知を受け取ります。ユースケース:
  • 支払い確認
  • トランザクションステータストラッキング
  • マルチシグネチャ承認
  • コントラクト実行の監視
ブロックチェーンの進行状況とファイナリティをスロットレベルで監視します。ユースケース:
  • ブロックエクスプローラーアプリケーション
  • ネットワークの健康状態の監視
  • コンセンサストラッキング
  • パフォーマンス分析

コミットメントレベル

コミットメントレベルを理解することは信頼性の高いアプリケーションにとって重要です:
最速 - バリデーターによって処理されたが確認されていないトランザクション
  • レイテンシー:約400ms
  • リスク:取り消しや順序変更の可能性
  • 用途:リアルタイムUI更新(注意が必要)
コミットメントレベルについてもっと知りたいですか? 詳細なブログポストをお読みください:Solana Commitment Levelsの理解

利用可能なWebSocketメソッド

Heliusは、完全なSolana WebSocketサブスクリプションメソッドセットとHelius専用拡張をサポートしています。すべてのメソッドは同じwss://mainnet.helius-rpc.comエンドポイントを共有します。

Helius拡張

2つのメソッドは、Solana標準を超えたリッチなフィルタリングを提供します:
  • transactionSubscribe — インクルード/エクスクルード/必須アカウントリスト、投票/失敗フラグ、特定の署名を含むトランザクションを購読
  • accountSubscribe — Heliusは標準のaccountSubscribe形状に高度なフィルタを追加

標準Solanaメソッド

accountSubscribe, blockSubscribe, logsSubscribe, programSubscribe, rootSubscribe, signatureSubscribe, slotSubscribe, slotsUpdatesSubscribe, voteSubscribeとそれらに対応する*Unsubscribeペア。

完全なAPIリファレンス

18以上のWebSocketメソッドを探索。各メソッドには詳細なパラメータ、応答フォーマット、例が含まれています。

再接続ロジックの実装方法

WebSocket接続は、ネットワーク問題、サーバーメンテナンス、または一時的な障害など、さまざまな理由で切断されることがあります。本番アプリケーションは、信頼性を確保するために再接続ロジックを実装する必要があります

切断が発生する理由

  • インターネット接続の問題
  • モバイルデバイスでのWiFiハンドオフ
  • 企業ファイアウォールのタイムアウト
  • ISPルーティングの変更
  • 計画されたメンテナンス期間
  • ロードバランサの再起動
  • RPCノードの更新
  • 一時的なオーバーロード保護
  • ブラウザタブのバックグラウンド化
  • モバイルアプリのサスペンド
  • コンピュータのスリープ/ハイバーネーション
  • プロセスクラッシュや再起動

切断の検出

再接続戦略

再接続ロジックのテスト

本番環境では重要: 適切な再接続ロジックの実装は、本番アプリケーションにおいて必須です。WebSocket接続は切断されます - それに備え、テストし、本番環境で監視してください。

トラブルシューティング

症状: WebSocketが最初に接続に失敗解決策:
  • APIキーが正しく、十分なクレジットを持っていることを確認する
  • エンドポイントURLの形式を確認する: wss://mainnet.helius-rpc.com?api-key=YOUR_KEY
  • WebSocket接続がポート443で許可されていることをファイアウォールで確認する
  • 基本的な接続性を確認するために、まずシンプルなpingを試す
症状: 数分ごとに接続が切れる解決策:
  • WebSocketは10分の非アクティブタイマーを持っています。接続を維持するために少なくとも1分ごとにpingを送信する(上記の再接続例とWebSocket FAQを参照)
  • 適切なping/pongハートビートを実装する(再接続例で示されています)
  • ネットワークの安定性と企業ファイアウォールの設定を確認する
  • サブスクリプションの数を監視する - 多すぎると不安定になる可能性がある
  • 接続ライフサイクルを適切に処理していることを確認する
症状: 予想されるサブスクリプション更新が受け取れない解決策:
  • サブスクリプションが確認されていることを確認する(応答を確認)
  • 監視しているアカウント/プログラムに実際の活動があることを確認する
  • 接続状態を監視する - 欠落したメッセージは通常切断を示す
症状: メッセージの配信が遅く、更新に遅延がある解決策:
  • “finalized”ではなく”confirmed”コミットメントを使用
  • アクティブなサブスクリプションの数を減らす
  • メッセージ処理ロジックを最適化する
  • 複数の接続を使用して負荷を分散することを検討する
  • ネットワーク接続品質を確認する
症状: アプリケーションのメモリ使用量が時間と共に増加する解決策:
  • 適切なサブスクリプションクリーニングを実装する
  • コンポーネントがアンマウントされたときにイベントリスナーを削除する
  • 定期的にメッセージログをクリアする
  • サブスクリプション数を監視し、制限を設ける
  • 可能な場合はコールバック関数に弱参照を使用する

標準RPCからの移行

HTTPポーリングを現在使用している場合、WebSocketへの移行方法は以下の通りです:

拡張機能

さらに高度な機能を必要とするアプリの場合は、LaserStream gRPCをご検討ください:

24時間の履歴再生

アプリがオフライン中に逃したデータをキャッチアップ

マルチノード集約

複数のバリデーターからのデータでより高い信頼性

高スループット

より多くのサブスクリプションと高いメッセージレートを処理する

エンタープライズ機能

高度なモニタリング、分析、データパイプライン

始める

始める準備はできましたか? WebSocketクイックスタートガイドをチェックして、実用的な例とステップバイステップの実装を確認してください。