Solana RPCメソッドとドキュメント

JSON RPC APIを介してHTTPおよびWebsocketメソッドを使用して、Solanaノードと直接やり取りします。

状態コミットメントの設定

プリフライトチェックとトランザクション処理のために、Solanaノードはクライアントによって設定されたコミットメント要件に基づいて、どのバンク状態を照会するかを選択します。コミットメントは、その時点でブロックがどの程度確定しているかを示します。台帳の状態を照会する際には、進行状況を報告するために低いレベルのコミットメントを使用し、状態がロールバックされないことを確認するために高いレベルを使用することが推奨されます。

コミットメントの降順(最も確定したものから最も確定していないものまで)で、クライアントは以下を指定できます:

  • finalized - ノードは、クラスターの過半数によって最大ロックアウトに達したことが確認された最新のブロックを照会します。これはクラスターがこのブロックを確定したものとして認識していることを意味します
  • confirmed - ノードは、クラスターの過半数によって投票された最新のブロックを照会します。
    • これはゴシップとリプレイからの投票を組み込みます。
    • ブロックの子孫に対する投票はカウントせず、そのブロックへの直接の投票のみをカウントします。
    • このコンファメーションレベルは、リリース1.3以降で「楽観的コンファメーション」の保証も維持します。
  • processed - ノードは最新のブロックを照会します。ただし、このブロックはクラスターによってスキップされる可能性があることに注意してください。

一連の多くの依存トランザクションを処理する場合は、速度とロールバックの安全性のバランスを取るconfirmedコミットメントを使用することが推奨されます。完全な安全性のためには、finalizedコミットメントを使用することが推奨されます。

デフォルトのコミットメント

コミットメント設定が提供されていない場合、ノードは finalized コミットメントをデフォルトとして使用します

バンクの状態を照会するメソッドのみがコミットメントパラメータを受け付けます。これらは以下のAPI参照に示されています。

RpcResponse構造

コミットメントパラメータを取る多くのメソッドは、2つの部分から構成されるRpcResponse JSONオブジェクトを返します:

  • context :操作が評価された slot フィールドを含むRpcResponseContext JSON構造。
  • value :操作自体によって返される値。

パース済みレスポンス

一部のメソッドは encoding パラメータをサポートしており、"encoding":"jsonParsed" が要求され、ノードが所有プログラム用のパーサーを持っている場合、アカウントまたはinstruction dataをパース済みのJSON形式で返すことができます。Solanaノードは現在、以下のネイティブおよびSPLプログラム用のJSONパースをサポートしています:

プログラムアカウント状態instructions
Address Lookupv1.15.0v1.15.0
BPF Loadern/astable
BPF Upgradeable Loaderstablestable
Configstable
SPL Associated Token Accountn/astable
SPL Memon/astable
SPL Tokenstablestable
SPL Token 2022stablestable
Stakestablestable
Votestablestable

アカウントパーサーのリストはこちらで、instructionパーサーはこちらで確認できます。

フィルター条件

一部のメソッドでは、RpcResponse JSONオブジェクト内で返されるデータの事前フィルタリングを可能にする filters オブジェクトの提供をサポートしています。以下のフィルターが存在します:

  • memcmp: object - 特定のオフセットでプログラムアカウントデータと提供されたバイト列を比較します。フィールド:

    • offset: usize - 比較を開始するプログラムアカウントデータ内のオフセット
    • bytes: string - エンコードされた文字列として一致するデータ
    • encoding: string - フィルター bytes データのエンコーディング、「base58」または「base64」のいずれか。データサイズはデコード後128バイト以下に制限されています。
      新機能:このフィールドおよびbase64サポート全般は、solana-core v1.14.0以降でのみ利用可能です。それより前のバージョンのノードに問い合わせる場合は省略してください
  • dataSize: u64 - プログラムアカウントデータの長さを提供されたデータサイズと比較します

Is this page helpful?

目次

ページを編集