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 Lookup | v1.15.0 | v1.15.0 |
BPF Loader | n/a | stable |
BPF Upgradeable Loader | stable | stable |
Config | stable | |
SPL Associated Token Account | n/a | stable |
SPL Memo | n/a | stable |
SPL Token | stable | stable |
SPL Token 2022 | stable | stable |
Stake | stable | stable |
Vote | stable | stable |
アカウントパーサーのリストはこちらで、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?