> ## Documentation Index
> Fetch the complete documentation index at: https://www.helius.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# getSlotLeadersの使用方法

> getSlotLeadersのユースケース、コード例、リクエストパラメータ、レスポンス構造、ヒントを学びます。

[`getSlotLeaders`](https://www.helius.dev/docs/api-reference/rpc/http/getslotleaders) RPCメソッドを使用すると、特定のスロット範囲にリーダーとして予定されているバリデータの公開鍵リストを取得できます。これは、今後のブロックプロデューサのシーケンスを理解するのに役立ちます。

## 一般的なユースケース

* **近未来のブロックプロデューサーを予測する:** 限られたスロット範囲内でブロックを生成する予定のバリデータを特定します。
* **リーダー分布の分析:** エポックのセグメントにおけるリーダーのシーケンスを観察します。
* **ネットワーク分析ツール:** ネットワークの挙動を監視または分析するツールが、リーダーパターンを理解するためにこれを使用するかもしれません。

## リクエストパラメータ

1. **`startSlot`** (`u64`): (必須) リーダースケジュールを取得するための最初のスロット（含む）。
2. **`limit`** (`u64`): (必須) 連続するスロットのリーダーを取得する数。この制限は1から5,000の間でなければなりません。

## レスポンス構造

JSON-RPCレスポンスの`result`フィールドは、base-58エンコードされた文字列の配列です。各文字列はバリデータの公開鍵（アイデンティティ）です。配列内の公開鍵の順序は、リクエスト範囲における各スロットのリーダーに対応しています。

**例: 3スロットの制限の場合のレスポンス:**

```json theme={"system"}
{
  "jsonrpc": "2.0",
  "result": [
    "ValidatorPubkey1XXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    "ValidatorPubkey2XXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    "ValidatorPubkey3XXXXXXXXXXXXXXXXXXXXXXXXXXXX"
  ],
  "id": 1
}
```

## 例

### 1. 特定範囲のスロットリーダーを取得する

この例では、指定されたスロットから始まる5スロットのリーダーを取得します。

<CodeGroup>
  ```bash cURL theme={"system"}
  # Replace <api-key> with your Helius API key
  # Replace STARTING_SLOT with a recent or future slot number
  curl https://mainnet.helius-rpc.com/?api-key=<api-key> -X POST -H "Content-Type: application/json" -d \
    '{
      "jsonrpc": "2.0",
      "id": 1,
      "method": "getSlotLeaders",
      "params": [
        180000000, 
        5          
      ]
    }'
  ```

  ```javascript JavaScript (using @solana/web3.js) theme={"system"}
  // Replace <api-key> with your Helius API key
  const { Connection } = require('@solana/web3.js');

  async function getUpcomingSlotLeaders() {
    const connection = new Connection('https://mainnet.helius-rpc.com/?api-key=<api-key>');
    const startSlot = 180000000; // Replace with a recent or future slot number
    const limit = 5;

    try {
      const leaders = await connection.getSlotLeaders(startSlot, limit);
      console.log(`Slot leaders starting from slot ${startSlot} (limit ${limit}):`);
      leaders.forEach((leader, index) => {
        console.log(`  Slot ${startSlot + index}: ${leader}`);
      });
    } catch (error) {
      console.error('Error fetching slot leaders:', error);
    }
  }

  getUpcomingSlotLeaders();
  ```
</CodeGroup>

## 開発者へのヒント

* **制限:** `limit`パラメータは、連続するスロットリーダーを返す数を指定します。最大5,000まで可能です。これは、エポック内でかなりの数のスロットを前もって確認することができます。
* **エポックの境界:** リーダースケジュールはエポック全体で決定されます。[スロット、ブロック、エポックについてのガイド](https://www.helius.dev/blog/solana-slots-blocks-and-epochs)に詳細があります。このメソッドを使用して、そのスケジュールの一部を照会できます。範囲がエポックの境界を超える場合でも、リーダーは`startSlot`が属するエポックのスケジュールに基づいて返されます。リミットまたはエポックの終了までの既知スケジュールが返されます。

`getSlotLeaders`を使用して、定義された今後のスロットセグメントのブロックプロデューサーのシーケンスを知る必要があります。

## 関連メソッド

<CardGroup cols={2}>
  <Card title="getLeaderSchedule" href="/ja/api-reference/rpc/http/getleaderschedule">
    エポック全体のリーダースケジュールを取得する
  </Card>

  <Card title="getSlotLeader" href="/ja/api-reference/rpc/http/getslotleader">
    現在のスロットリーダーを取得する
  </Card>
</CardGroup>
