getSlotLeader RPCメソッドは、指定されたコミットメントレベルでのノードのビューに基づいて、ブロック生成の現在のリーダーであるバリデーターの公開鍵を返します。リーダーは、現在のスロットのブロック生成を担当します。
一般的な使用例
- 現在のブロックプロデューサーの特定: 現在ブロックを生成する予定のバリデーターを確認します。
- ネットワークモニタリング: スロットリーダーのローテーションを観察します。
- トランザクションの問題のデバッグ: 高度なシナリオでは、トランザクションがリーダーに直接送信される場合、現在のスロットリーダーを知ることが関連するかもしれません(ただし、これは一般的なクライアント側のプラクティスではありません)。
リクエストパラメータ
このメソッドは、最初のパラメータとしてオプションの構成オブジェクトを取ります:options(object, optional): 次のフィールドを含むオプションの構成オブジェクトです:
commitment(string, optional): クエリのコミットメントレベルを指定します。サポートされる値はfinalized、confirmed、またはprocessedです。省略した場合、RPCノードのデフォルトのコミットメントが使用されます(通常はfinalized)。スロットリーダーは、このコミットメントレベルに一致するスロットに基づいて決定されます。minContextSlot(number, optional): リクエストが評価される可能性のある最小スロットです。これにより、ノードのコンテキストの最小スロットが設定されます。
レスポンス構造
JSON-RPCレスポンスのresultフィールドは、現在のスロットリーダーの公開鍵(アイデンティティ)を表す単一のbase-58エンコードされた文字列です。
レスポンス例:
例
1. 現在のスロットリーダーを取得(デフォルトコミットメント)
この例では、ノードのデフォルトのコミットメントレベルを使用して現在のスロットリーダーを取得します(通常はfinalized)。
2. confirmedコミットメントで現在のスロットリーダーを取得
この例では、confirmedコミットメントに到達した最新のスロットのスロットリーダーを取得します。
開発者へのヒント
- ダイナミックな特性: スロットリーダーは頻繁に変わります(通常は数スロットごとに4)。この呼び出しの結果は、ノードの現在のビューと選択されたコミットメントに基づくスナップショットです。
- コミットメントレベル: コミットメントレベルは、リーダーを決定するために「現在」とみなされるスロットに影響します。
processedを使用すると、ノードが認識している最新のスロットのリーダーが得られますが、これは急速に変化し、まだ広範なネットワークによって確認されていない可能性があります。 - リーダースケジュール: スロットリーダーのシーケンスは、各エポックの開始時に計算されるリーダースケジュールによって決定されます。スロット、ブロック、エポックに関するガイドで、このプロセスの詳細を確認できます。将来のリーダーを包括的に見るには、
getLeaderScheduleを使用してください。 - ノードの視点: 返されるスロットリーダーは、クエリしている特定のRPCノードに利用可能な情報に基づいています。ネットワークのレイテンシーにより、異なるノードはわずかに異なるビューを持っているかもしれません。
getSlotLeaderは、現在ブロックを生成する責任があるバリデーターを迅速に特定する方法を提供します。より広範なリーダーローテーションを見るには、getLeaderScheduleを検討してください。
関連メソッド
getLeaderSchedule
エポックの完全なリーダースケジュールを取得する
getSlotLeaders
今後のスロット範囲のリーダーを取得する