Solana RPC HTTPメソッド
SolanaノードはJSON-RPC 2.0仕様を使用したHTTPリクエストを受け付けます。
JavaScriptアプリケーションの場合、Solanaノードと対話するためのRPCメソッドの便利なインターフェースとして @solana/web3.jsライブラリを使用してください。SolanaノードへのPubSub接続には、 Websocket APIを使用してください。
RPC HTTPエンドポイント
デフォルトポート: 8899
リクエストフォーマット
JSON-RPCリクエストを行うには、Content-Type: application/json
ヘッダーを含むHTTP
POSTリクエストを送信します。JSONリクエストデータには4つのフィールドが含まれている必要があります:
jsonrpc
-"2.0"
に設定id
- クライアントによって生成されたリクエストの一意の識別子。通常は文字列または数値ですが、技術的にはnullも許可されていますが推奨されませんmethod
- 呼び出すメソッドを含む文字列params
- 順序付けられたパラメータ値のJSON配列
curlを使用した例:
curl http://localhost:8899 -X POST -H "Content-Type: application/json" -d '{"jsonrpc": "2.0","id": 1,"method": "getBalance","params": ["83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri"]}'
レスポンス出力は以下のフィールドを持つJSONオブジェクトになります:
jsonrpc
- リクエスト仕様に一致id
- リクエスト識別子に一致result
- リクエストされたデータまたは成功確認
リクエストは、JSON-RPCリクエストオブジェクトの配列を単一のPOSTのデータとして送信することで、バッチで送信できます。
リクエスト例
commitmentパラメータはparams
配列の最後の要素として含める必要があります:
{"jsonrpc": "2.0","id": 1,"method": "getBalance","params": ["83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri",{ "commitment": "finalized" }]}
定義
- ハッシュ: データのチャンクのSHA-256ハッシュ。
- pubkey: Ed25519キーペアの公開鍵。
- トランザクション: クライアントのkeypairによって署名されたSolana instructionsのリストで、これらのアクションを承認します。
- 署名: instructionsを含むトランザクションのペイロードデータのEd25519署名。これを使用してトランザクションを識別できます。
ヘルスチェック
JSON RPC APIではありませんが、RPC
HTTPエンドポイントへのGET /health
は、ロードバランサーやその他のネットワークインフラストラクチャが使用するヘルスチェックメカニズムを提供します。このリクエストは常にHTTP
200 OKレスポンスを返し、ボディは「ok」、「behind」または「unknown」となります:
ok
:ノードはクラスターの最新の確認済みslotからHEALTH_CHECK_SLOT_DISTANCE
slot以内にあるbehind { distance }
:ノードはクラスターの最新の確認済みslotからdistance
slot以上遅れている(distance > HEALTH_CHECK_SLOT_DISTANCE
)unknown
:ノードはクラスターとの関係を判断できない
Is this page helpful?