getEpochInfo RPCメソッドは、現在のエポックに関する情報を返します。ネットワークの現在の状態を理解したり、現在のエポックがどの程度進行しているかや次のエポックがいつ始まるかを把握するのに役立ちます。エポック、スロット、ブロックがSolana上でどのように連携するかを理解するには、詳細な記事を参照してください。
よくあるユースケース
- エポック進行状況の監視: エポック内の現在のスロットインデックスとエポック内の総スロット数を追跡し、残り時間を推定します。
- ネットワーク状態分析: 現在のエポック番号、ブロック高、現在のエポックで処理されたトランザクション数を取得します。
- 同期チェック: ノードがネットワークと適切に同期しているかどうかを、そのエポック情報を比較して確認します。
リクエストパラメータ
getEpochInfoメソッドは、以下のパラメータを持つオプションの設定オブジェクトを取ることができます。
commitment(string, optional): 台帳を照会する際に使用するコミットメントレベルを指定します。finalized: ノードは、クラスターの過半数によって最大ロックアウトに達したと確認された最新のブロックを照会します。confirmed: ノードは、クラスターの過半数によって投票された最新のブロックを照会します。processed: ノードは、最も最近のブロックを照会します。ただし、ブロックが完全ではない可能性があります。- 提供されない場合、デフォルトのコミットメントは
finalizedです。
minContextSlot(number, optional): リクエストを評価できる最小スロット。これは、応答が十分に新しい状態からのものであることを保証するために使用できます。
レスポンス構造
JSON-RPC応答のresultフィールドは、以下のフィールドを含むオブジェクトです。
absoluteSlot(u64): 現在の絶対スロット番号。blockHeight(u64): 現在のブロック高。epoch(u64): 現在のエポック番号。slotIndex(u64): 現在のエポックの開始からの現在のスロット。slotsInEpoch(u64): 現在のエポックの総スロット数。transactionCount(u64 | null): 現在のエポックで処理されたトランザクションの総数。データが利用できない場合はnullになることがあります。
例
1. 現在のエポック情報を取得(パラメータなし)
この例では、デフォルトのコミットメントを使用して現在のエポックに関する情報を取得します。2. ‘confirmed’コミットメントで現在のエポック情報を取得
この例では、confirmedコミットメントを使用してエポック情報を取得します。
開発者へのヒント
- コミットメントレベル:
commitmentの選択は、データのタイムリーさと最終性に影響を与える可能性があります。processedは最も速いですが最も安全ではなく、finalizedは最も安全ですが少し遅れる可能性があります。コミットメントレベルの詳細については、こちらをご覧ください。 transactionCountの利用可能性:transactionCountフィールドは、ノードがこの情報をすぐに利用できない場合や、特定のコミットメントレベルで追跡されていない場合、nullになることがあります。- エポックの長さ:
slotsInEpochの数は変わる可能性があります。エポックスケジュールについての詳細は、getEpochScheduleを使用して取得できます。
getEpochInfo RPCメソッドの使用に必要な情報を提供します。
関連メソッド
getEpochSchedule
エポックスケジュールについての詳細を取得
getSlot
現在のスロット番号を取得