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

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

> Узнайте о сценариях использования getSlot, примерах кода, параметрах запроса, структуре ответа и рекомендациях.

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

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

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

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

Этот метод принимает необязательный объект конфигурации в качестве первого параметра:

1. **`options`** (`object`, необязательный): Необязательный объект конфигурации со следующими полями:
   * **`commitment`** (`string`, необязательный): Задает [уровень подтверждения](https://www.helius.dev/blog/solana-commitment-levels) для запроса. Поддерживаемые значения: `finalized`, `confirmed` или `processed`. Если параметр не указан, используется уровень подтверждения узла RPC по умолчанию (обычно `finalized`).
     * `processed`: Узел запросит свой последний слот. Обратите внимание, что этот слот может быть еще не подтвержден кластером и потенциально может быть пропущен.
     * `confirmed`: Узел запросит последний слот, за который проголосовало квалифицированное большинство кластера.
     * `finalized`: Узел запросит последний слот, для которого квалифицированное большинство кластера подтвердило достижение максимальной блокировки (его нельзя откатить).
   * **`minContextSlot`** (`number`, необязательный): Минимальный слот, на котором может быть обработан запрос. Этот параметр задает минимальный слот для контекста узла. Если состояние узла старше этого слота, узел может вернуть ошибку или номер слота, отражающий его текущее, более старое состояние относительно указанного минимума.

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

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

**Пример ответа:**

```json theme={"system"}
{
  "jsonrpc": "2.0",
  "result": 123456789,
  "id": 1
}
```

## Примеры

### 1. Получение текущего слота (уровень подтверждения по умолчанию)

В этом примере текущий слот запрашивается с уровнем подтверждения узла по умолчанию (обычно `finalized`).

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

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

  async function getCurrentSlot() {
    const connection = new Connection('https://mainnet.helius-rpc.com/?api-key=<api-key>');
    try {
      const slot = await connection.getSlot();
      console.log('Current slot (default commitment):', slot);
    } catch (error) {
      console.error('Error fetching current slot:', error);
    }
  }

  getCurrentSlot();
  ```
</CodeGroup>

### 2. Получение текущего слота с определенным уровнем подтверждения

В этом примере запрашивается текущий слот, достигший уровня подтверждения `confirmed`.

<CodeGroup>
  ```bash cURL theme={"system"}
  # Replace <api-key> with your Helius API key
  curl https://mainnet.helius-rpc.com/?api-key=<api-key> -X POST -H "Content-Type: application/json" -d \
    '{
      "jsonrpc": "2.0",
      "id": 1,
      "method": "getSlot",
      "params": [
        {
          "commitment": "confirmed"
        }
      ]
    }'
  ```

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

  async function getConfirmedSlot() {
    const connection = new Connection('https://mainnet.helius-rpc.com/?api-key=<api-key>');
    try {
      const slot = await connection.getSlot('confirmed');
      console.log('Current slot (confirmed commitment):', slot);
      // Note: For @solana/web3.js v1.30.0 and later, you can pass commitment directly.
      // For older versions or more complex options, use an object:
      // const slot = await connection.getSlot({ commitment: 'confirmed' });
    } catch (error) {
      console.error('Error fetching confirmed slot:', error);
    }
  }

  getConfirmedSlot();
  ```
</CodeGroup>

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

* **Уровень подтверждения имеет значение:** Возвращаемый номер слота существенно зависит от указанного уровня `commitment`. Подробную информацию см. в статье [«Уровни подтверждения Solana»](https://www.helius.dev/blog/solana-commitment-levels). `processed` будет самым высоким (последним) слотом, известным узлу, а `finalized` — более старым слотом, подтвержденным всей сетью. Выберите уровень подтверждения, соответствующий требованиям вашего сценария к окончательности данных.
* **Различия между узлами:** Из-за задержек распространения данных по сети или текущего состояния обработки разные узлы RPC могут возвращать немного отличающиеся номера слотов для одного уровня подтверждения. Это особенно актуально для уровней `processed` и `confirmed`.
* **`minContextSlot`:** Этот параметр гарантирует, что узел, обрабатывающий запрос, достиг как минимум слота `minContextSlot`. Если узел отстает от этого слота, его поведение может различаться: например, он может вернуть ошибку или текущий самый высокий слот узла, который меньше `minContextSlot`. Обычно этот параметр используется в сложных сценариях, когда необходимо убедиться, что запрос выполняется для достаточно актуального состояния.

`getSlot` — простой, но важный метод для взаимодействия с блокчейном Solana и понимания его текущего состояния.


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