getBlockProduction RPCメソッドは、現在のエポックまたは指定されたスロット範囲でのブロック生成に関する情報を提供します。すべてのバリデータまたは特定のバリデータIDのデータを取得するために使用できます。これは、バリデータのパフォーマンスを監視し、ネットワーク上のブロック生成パターンを理解するのに役立ちます。
共通の使用例
- バリデータのパフォーマンス監視: 特定のバリデータの生成されたブロック数とリーダースロットを追跡します。
- エポックパフォーマンスの分析: 現在または過去のエポックでのすべてのバリデータのブロック生成の概要を取得します。
- ミススロットの特定: バリデータが割り当てられたリーダースロットを逃していないか確認します。
- ネットワークヘルスチェック: 全体的なブロック生成効率に関するデータを収集します。
リクエストパラメータ
getBlockProduction メソッドは、以下のパラメータを含むオプションの設定オブジェクトを受け入れます。
commitment(string, optional): クエリで使用するコミットメントレベルを指定します。省略した場合、ノードのデフォルトのコミットメントが使用されます。range(object, optional): クエリするスロット範囲を定義します。firstSlot(u64): ブロック生成情報を取得する最初のスロット(含む)。lastSlot(u64, optional): ブロック生成情報を取得する最後のスロット(含む)。省略した場合、現在のエポックのブロック生成が最後のスロットまで返されます。
identity(string, optional): バリデータIDのbase58でエンコードされた公開鍵。指定した場合、レスポンスにはこの特定のバリデータのブロック生成情報のみが含まれます。省略した場合、指定された範囲または現在のエポック内のすべてのバリデータの情報が返されます。
identityまたはrange.firstSlotのいずれかを提供する必要があります。identityを提供しない場合、rangeパラメータが必要です。
レスポンス構造
JSON-RPC レスポンスのresult フィールドは次のオブジェクトを含みます。
context(object):slot(u64): 情報が取得されたスロット。
value(object):byIdentity(object): キーがバリデータIDの文字列(base58でエンコードされた公開鍵)で、値が次のオブジェクトを含むオブジェクトです。leaderSlots(u64): クエリされた範囲/エポックでこのバリデータに割り当てられたリーダースロットの数。blocksProduced(u64): クエリされた範囲/エポックでこのバリデータにより生成されたブロック数。
range(object):firstSlot(u64): クエリされた範囲の最初のスロット。lastSlot(u64): クエリされた範囲の最後のスロット。
開発者向けヒント
- エポックの境界を理解する:
identityが指定されておりrangeが指定されていない場合、返されるデータは現在のエポックのもので、ノードが最新まで処理したスロットまでのものです。特定のバリデータの過去の完全なエポックのデータが必要な場合は、エポックのfirstSlotとlastSlotを特定する必要があります。 - ノードデータの利用可能性:歴史的なブロック生成データの範囲は、RPCノードにより異なる場合があります。非常に古いスロット範囲はすべてのノードで利用できるとは限りません。
- パフォーマンスの監視:
getBlockProductionは、バリデータの稼働時間やブロック生成成功率に関連するダッシュボードやアラートを構築するための鍵です。 getLeaderScheduleとの組み合わせ:より深い分析のために、getBlockProductionデータをgetLeaderScheduleの出力と相関させて、どの特定のリーダースロットが成功または失敗したかを確認できます。- ID対すべてのバリデータ:
identityなしでクエリすると、特にrangeや広いrangeを指定しない場合、大量のデータを返すことがあります。レスポンスサイズや処理要件に注意してください。
例
1. 現在のエポックのブロック生成を取得(すべてのバリデータ)
この例は、現在のエポックにおけるすべてのバリデータのブロック生成データを取得します。2. 特定のバリデータの現在のエポックにおけるブロック生成を取得
この例は、現在のエポックにおける特定のバリデータIDのブロック生成を取得します。3. 特定のスロット範囲とバリデータのブロック生成を取得
この例は、特定のスロット範囲内で特定のバリデータのブロック生成データを取得します。getBlockProduction RPCメソッドを使用する方法を十分に理解するのに役立ちます。
関連するメソッド
getLeaderSchedule
生成データと相関するための完全なリーダースケジュールを取得
getVoteAccounts
すべての投票バリデータに関する情報を取得