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

# getBlockProduction

> Возвращает последние сведения о производстве блоков из текущего или предыдущего epoch

## Параметры

<ParamField query="config" type="object" optional>
  Объект конфигурации, содержащий следующие необязательные поля:

  <Expandable title="поля config">
    <ParamField query="commitment" type="string" optional>
      Уровень commitment для использования:

      * `processed`: Последний блок (неподтверждённый)
      * `confirmed`: Подтверждён супербольшинством
      * `finalized`: Финализирован супербольшинством
    </ParamField>

    <ParamField query="range" type="object" optional>
      Диапазон слотов для возврата информации о производстве блоков:

      * `firstSlot`: number - Первый слот для возврата информации о производстве блоков (включительно)
      * `lastSlot`: number - Последний слот для возврата информации о производстве блоков (включительно)
    </ParamField>

    <ParamField query="identity" type="string" optional>
      Возвращать результаты только для данного идентификатора валидатора (закодирован в base-58)
    </ParamField>
  </Expandable>
</ParamField>

## Ответ

<ResponseField name="result" type="object">
  <Expandable title="поля result">
    <ResponseField name="context" type="object">
      <ResponseField name="slot" type="number">
        Слот, при котором был обработан запрос
      </ResponseField>
    </ResponseField>

    <ResponseField name="value" type="object">
      <ResponseField name="byIdentity" type="object">
        Словарь идентификаторов валидаторов, каждый из которых содержит:

        * `leader_slots`: number - Слоты, назначенные в качестве лидера
        * `blocks_produced`: number - Блоки, произведённые в данном epoch
      </ResponseField>

      <ResponseField name="range" type="object">
        <ResponseField name="firstSlot" type="number">
          Первый слот информации о производстве блоков (включительно)
        </ResponseField>

        <ResponseField name="lastSlot" type="number">
          Последний слот информации о производстве блоков (включительно)
        </ResponseField>
      </ResponseField>
    </ResponseField>
  </Expandable>
</ResponseField>

## Примеры кода

### Базовый запрос

```bash theme={null}
curl https://fra.rpc.orbitflare.com?api_key=YOUR-API-KEY -X POST -H "Content-Type: application/json" -d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getBlockProduction"
}'
```

### Запрос с диапазоном и идентификатором

```bash theme={null}
curl https://fra.rpc.orbitflare.com?api_key=YOUR-API-KEY -X POST -H "Content-Type: application/json" -d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getBlockProduction",
  "params": [
    {
      "range": {
        "firstSlot": 100000000,
        "lastSlot": 100000100
      },
      "identity": "GH7ome3EiwEr17v3Fn6XY4RjS1YERxYzwXSW8kZ8kBYq"
    }
  ]
}'
```

### Использование web3.js

```typescript theme={null}
import { Connection } from '@solana/web3.js';

const connection = new Connection('https://fra.rpc.orbitflare.com?api_key=YOUR-API-KEY');

const blockProduction = await connection.getBlockProduction();
console.log('Block production:', blockProduction);

// Get production for specific range and validator
const config = {
  range: {
    firstSlot: 100000000,
    lastSlot: 100000100
  },
  identity: 'GH7ome3EiwEr17v3Fn6XY4RjS1YERxYzwXSW8kZ8kBYq'
};
const specificProduction = await connection.getBlockProduction(config);
```

## Примечания

1. Без параметров возвращает производство для всех валидаторов в текущем epoch
2. Параметр `range` может охватывать несколько epoch
3. Статистика производства блоков используется для отслеживания производительности валидатора
4. Результаты включают как назначенные слоты лидера, так и фактически произведённые блоки

## Лучшие практики

1. Используйте `range` для ограничения данных при запросе исторической информации
2. Используйте `identity` для отслеживания производительности конкретного валидатора
3. Сравнивайте `leader_slots` с `blocks_produced` для оценки надёжности валидатора
4. Кэшируйте результаты при необходимости для снижения нагрузки на RPC

## Распространённые ошибки

| Код    | Сообщение                                | Решение                                                             |
| ------ | ---------------------------------------- | ------------------------------------------------------------------- |
| -32602 | Invalid param: WrongSize                 | Убедитесь, что идентификатор валидатора действителен                |
| -32602 | Invalid param: not base58 encoded string | Убедитесь, что идентификатор валидатора закодирован в base58        |
| -32602 | Invalid param: slot range too large      | Уменьшите размер диапазона слотов                                   |
| -32007 | Block production not available           | Узел может выполнять начальную загрузку или диапазон слишком старый |
