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?

目次

ページを編集