Solana Shreds - UDP Forwarding Standard
UDP Forwarding Standard では、ERPC が Raw Shreds を設定済みの受信先へ UDP で転送します。 ダッシュボードで初回設定時に利用可能なリージョンを一つ選び、受信先の公開 IPv4 アドレスとポートを設定してください。選択したリージョンは設定後も固定されます。受信先は後から更新できますが、空欄にはできません。
UDP Forwarding Standard の仕組み
- ERPC は、ダッシュボードに設定した公開 IPv4 アドレスとポートへ Raw Shreds を転送します。
- UDP は接続確立・再送・順序保証を行わないため、受信側で欠落や順不同を扱う前提があります。
- 設定は30秒ごとの更新サイクルで反映されます。Heartbeat による有効化は必要ありません。
※ 共有エンドポイントで提供される Shreds gRPC は TCP ベースのため、UDP より遅い接続です。
SDK のサンプルで試す
- サンプルコード: SDK リポジトリの
shreds-udp-rs(Rust)。問い合わせが多い new-token detection を例にしていますが、ターゲットは自由に差し替え可能です。 - リポジトリ: https://github.com/ValidatorsDAO/solana-stream/tree/main/temp-release/shreds-udp-rs
- UDP Forwarding Standard 利用者: サンプルを公開 IPv4 アドレスとポートでリッスンさせ、そのアドレスとポートをダッシュボードの受信先に設定してください。ERPC が設定先へ転送したパケットを、サンプルで確認できます。
- まだ UDP を使っていない方: リポジトリをクローンし、ローカルまたは手元の Linux サーバー上で実行してみてください。まずはログを眺め、必要に応じてフックを好みの形にカスタムできます。
UDP パケットが届かない場合
宛先を設定すると UDP 転送は自動的に開始されます。Heartbeat による有効化は不要で、Heartbeat が
UNIMPLEMENTED を返しても転送が無効という意味ではありません。最初に、ホストのネットワークインターフェースでパケットを計測します。プレースホルダーは、対象ストリームに表示される ERPC 送信元 IP と、設定した宛先ポートに置き換えてください。
Linux(
tcpdump):bash
sudo tcpdump -ni any 'udp dst port <DESTINATION_PORT> and src host <ERPC_SOURCE_IP>'sudo tcpdump -ni any 'udp dst port <DESTINATION_PORT> and src host <ERPC_SOURCE_IP>'Windows(
Pktmon、管理者権限で実行):powershell
pktmon filter add ERPC-UDP -t UDP -i <ERPC_SOURCE_IP> -p <DESTINATION_PORT>
pktmon start --capture --comp nics --log-mode real-timepktmon filter add ERPC-UDP -t UDP -i <ERPC_SOURCE_IP> -p <DESTINATION_PORT>
pktmon start --capture --comp nics --log-mode real-time- 計測が 0 件のままなら、OS のファイアウォールと OS 外部のファイアウォールを両方確認してください。Hetzner では Cloud Firewall またはスイッチポート側の Robot Firewall、AWS では Security Group とサブネットの Network ACL が通信を遮断している場合があります。
<ERPC_SOURCE_IP>/32から宛先ポート<DESTINATION_PORT>への inbound UDP を許可してください。ERPC の UDP 送信元ポートは動的なため、送信元ポートは制限しないでください。- 計測ではパケットが見えるのにアプリケーションで受信できない場合は、localhost ではなく
0.0.0.0:<DESTINATION_PORT>で受信し、OS のローカルファイアウォールと socket / process 設定を確認してください。
ルール変更後もパケットが届かない場合は、計測時間、パケット数、送信元 IP、宛先 IP、宛先ポートをサポートへお知らせください。
各プロバイダーの公式資料: Hetzner Cloud Firewall、Hetzner Robot Firewall、AWS Security Groups、AWS Network ACLs、Microsoft Pktmon。
リソース
- すべてのコードと README による説明は Solana Stream SDK リポジトリで公開されています。
https://github.com/ValidatorsDAO/solana-stream






