> ## 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, примерах кода, параметрах запроса, структуре ответа и рекомендациях.

Метод RPC [`getSlotLeaders`](https://www.helius.dev/docs/api-reference/rpc/http/getslotleaders) позволяет получить список открытых ключей валидаторов, которые назначены лидерами для указанного диапазона слотов. Это может быть полезно для понимания предстоящей последовательности производителей блоков.

## Распространенные сценарии использования

* **Прогнозирование ближайших производителей блоков:** Определите, какие валидаторы должны производить блоки в ближайшем будущем для ограниченного диапазона слотов.
* **Анализ распределения лидеров:** Просмотрите последовательность лидеров для части эпохи.
* **Инструменты анализа сети:** Инструменты мониторинга и анализа поведения сети могут использовать этот метод для изучения закономерностей назначения лидеров.

## Параметры запроса

1. **`startSlot`** (`u64`): (Обязательный) Первый слот (включительно), для которого нужно получить расписание лидеров.
2. **`limit`** (`u64`): (Обязательный) Количество последовательных слотов, для которых нужно получить лидеров. Значение должно находиться в диапазоне от 1 до 5 000.

## Структура ответа

Поле `result` ответа JSON-RPC представляет собой массив строк в кодировке base58. Каждая строка является открытым ключом (идентификатором) валидатора. Порядок открытых ключей в массиве соответствует лидеру каждого слота в запрошенном диапазоне, начиная с `startSlot`.

**Пример ответа (при лимите в 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`, вплоть до указанного вами лимита или конца известного расписания этой эпохи, если узел RPC не выполняет дальнейший расчет для данного вызова.
* **Будущие слоты:** Вы можете запрашивать лидеров для будущих слотов. Узел RPC вернет назначенных лидеров на основе текущего расписания лидеров для соответствующей эпохи.
* **Точность:** Расписание лидеров фиксируется на всю эпоху, поэтому возвращаемые сведения о лидерах обычно точны, кроме исключительных ситуаций в сети или изменений в наборе валидаторов, которые могут повлиять на расчеты для последующих эпох.
* **Отличие от `getLeaderSchedule`:** В то время как `getSlotLeaders` возвращает непосредственный список для диапазона, `getLeaderSchedule` предоставляет полное расписание для всей эпохи, сопоставляя идентификаторы валидаторов со всеми назначенными им слотами в этой эпохе. `getSlotLeaders` удобнее, если вам нужен только последовательный список для конкретного ограниченного диапазона.

Используйте `getSlotLeaders`, когда необходимо узнать последовательность производителей блоков для заданного предстоящего диапазона слотов.

## Связанные методы

<CardGroup cols={2}>
  <Card title="getLeaderSchedule" href="/docs/ru/api-reference/rpc/http/getleaderschedule">
    Получить полное расписание лидеров для эпохи
  </Card>

  <Card title="getSlotLeader" href="/docs/ru/api-reference/rpc/http/getslotleader">
    Получить лидера текущего слота
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.