> ## 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.

# Как использовать getFirstAvailableBlock

> Изучите варианты использования getFirstAvailableBlock, примеры кода, параметры запроса, структуру ответа и рекомендации.

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

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

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

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

Этот метод не принимает параметров.

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

Поле `result` ответа JSON-RPC содержит значение типа `u64` (беззнаковое 64-битное целое число), представляющее номер слота первого доступного блока.

## Примеры

### 1. Получение слота первого доступного блока

В этом примере запрашивается слот самого старого блока, доступного на указанном узле.

<CodeGroup>
  ```bash cURL theme={"system"}
  curl https://mainnet.helius-rpc.com/?api-key=<api-key> -X POST -H "Content-Type: application/json" -d \
    '{
      "jsonrpc": "2.0",
      "id": 1,
      "method": "getFirstAvailableBlock"
    }'
  ```

  ```javascript JavaScript (using @solana/web3.js) theme={"system"}
  const { Connection } = require('@solana/web3.js');

  async function logFirstAvailableBlock() {
    const connection = new Connection('https://mainnet.helius-rpc.com/?api-key=<api-key>');
    try {
      const firstAvailableBlock = await connection.getFirstAvailableBlock();
      console.log(`First Available Block Slot: ${firstAvailableBlock}`);
    } catch (error) {
      console.error('Error fetching first available block:', error);
    }
  }

  logFirstAvailableBlock();
  ```
</CodeGroup>

## Рекомендации для разработчиков

* **Зависит от узла:** Первый доступный блок может значительно различаться на разных узлах RPC. Узлы могут быть настроены на удаление данных реестра с разной скоростью, поэтому один узел может хранить гораздо более глубокую историю, чем другой.
* **Значение не фиксировано:** Значение, возвращаемое `getFirstAvailableBlock`, со временем увеличивается, поскольку старые слоты в итоге удаляются из реестра для экономии места.
* **Подтвержденные блоки:** Этот метод относится к подтвержденным блокам. Обработанные, но еще не подтвержденные или финализированные блоки не учитываются.

В этом руководстве объясняется, как использовать метод RPC `getFirstAvailableBlock`, чтобы определить слот самого старого доступного блока на узле Solana.


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