getSlot RPCメソッドは、RPCノードが特定のコミットメントレベルに達したと考える現在のスロットを返します。これは、ノードから見たブロックチェーンの現在の状態を理解するための基本的なメソッドです。
一般的な使用事例
- 現在のネットワーク進捗の取得: ノードによって処理または確認された最新のスロットを確認します。
- ノード同期の確認: 異なるノードのスロットを比較することで、その同期状態の指標を得ることができます。
- 操作のタイムスタンプ: 現在のスロットを操作の基準点や特定のデータの古さを理解するための参照点として使用します。
- 他のRPC呼び出しの入力: 一部のRPCメソッドではスロット番号を参照点として使用することがあります。
リクエストパラメータ
このメソッドは、最初のパラメータとしてオプションの構成オブジェクトを受け取ります。options(object, オプション): 次のフィールドを含むオプションの構成オブジェクトです。commitment(string, オプション): クエリのコミットメントレベルを指定します。サポートされている値は、finalized、confirmed、またはprocessedです。省略された場合、デフォルトのRPCノードのコミットメントが使用されます(通常はfinalized)。processed: ノードは最新のスロットをクエリします。このスロットはクラスターによって確認されていない可能性があり、スキップされることもあります。confirmed: ノードはクラスターのスーパー多数派によって投票された最新のスロットをクエリします。finalized: ノードはクラスターのスーパー多数派によって最大ロックアウトに達したと確認された最新のスロットをクエリします(ロールバック不可)。
minContextSlot(number, オプション): リクエストが評価される最小スロットを設定します。これによりノードのコンテキストの最小スロットが設定されます。ノードの状態がこのスロットよりも古い場合、エラーを返したり、その時点の状態を反映する古いスロット番号を返したりすることがあります。
レスポンス構造
JSON-RPCレスポンスのresultフィールドは、指定されたコミットメントレベルに従った現在のスロット番号を表す単一のu64(符号なし64ビット整数)です。
例のレスポンス:
例
1. 現在のスロットを取得(デフォルトのコミットメント)
この例は、通常finalizedであるノードのデフォルトのコミットメントレベルを使用して現在のスロットを取得します。
2. 特定のコミットメントで現在のスロットを取得
この例は、confirmedコミットメントに達した現在のスロットを取得します。
開発者向けのヒント
- コミットメントが重要: 戻されるスロット番号は、指定された
commitmentレベルに大きく依存します。詳細情報については、Solana Commitment Levelsを参照してください。processedはノードが認識している最新のスロットであり、finalizedはネットワーク全体によって確認された古いスロットです。データの確定性のニーズに応じて適切なコミットメントレベルを選択してください。 - ノードのばらつき: 異なるRPCノードは、ネットワークの伝播遅延や独自の処理状態により、同じコミットメントレベルでもわずかに異なるスロット番号を返すことがあります。これは特に
processedとconfirmedレベルで顕著です。 minContextSlot: このパラメータは、リクエストを処理するノードが少なくともminContextSlotに到達していることを確認します。ノードがこのスロットよりも遅れている場合、動作が異なる場合があります(例:エラーや、minContextSlotより小さいノードの現在の最高スロット)。これは一般的に、十分に新しい状態に対してクエリが行われる必要がある高度なシナリオで使用されます。
getSlotは、Solanaブロックチェーンと対話し、その現在の進行を理解するためのシンプルでありながら重要なメソッドです。