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

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

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

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

Эта конечная точка необходима для мониторинга состояния узлов, особенно для приложений или инфраструктуры, которые зависят от доступности и надежности узла RPC.

## Как это работает

Метод `getHealth` использует стандартный механизм POST-запросов JSON-RPC с методом `getHealth`. Этот метод проверяет, исправен ли узел RPC и синхронизирован ли он с кластером Solana.

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

* **Мониторинг узлов:** Регулярно проверяйте состояние узлов RPC, чтобы убедиться, что они работают и синхронизированы.
* **Балансировка нагрузки:** Используйте проверки состояния, чтобы определить, следует ли направлять трафик на узел в конфигурации с балансировкой нагрузки.
* **Системы аварийного переключения:** Запускайте переключение на резервный узел, если основной узел перестает быть исправным.
* **Диагностика подключения:** Быстро проверяйте, отвечает ли узел RPC.

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

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

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

* **Для POST-запроса JSON-RPC `getHealth`:**
  * **`result`**: `"ok"`, если узел исправен.
  * Если узел неисправен, может возвращаться объект ошибки или другие строковые значения (например, `"behind"` или `"unknown"`), однако точный ответ об ошибке для неисправного узла может быть нестабильным или различаться у разных провайдеров.

## Примеры

### 1. Проверка состояния узла с помощью JSON-RPC (POST-запрос через cURL)

<CodeGroup>
  ```bash cURL (JSON-RPC POST) 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": "getHealth"
    }'
  ```

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

  async function checkRpcHealth(rpcUrl) {
      const connection = new Connection(rpcUrl);
      try {
          const health = await connection.rpcRequest('getHealth', []);
          console.log(`getHealth result for ${rpcUrl}:`, health);
          return health.result;
      } catch (error) {
          console.error(`Error calling getHealth for ${rpcUrl}:`, error.message);
          return null;
      }
  }

  // Example usage:
  checkRpcHealth('https://mainnet.helius-rpc.com/?api-key=<api-key>');
  ```
</CodeGroup>

**Ожидаемый ответ JSON-RPC (для исправного узла):**

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

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

* **Определение исправного состояния:** «Исправный» обычно означает, что узел отвечает и не слишком сильно отстает от актуального состояния кластера. Точную разницу в слотах (`HEALTH_CHECK_SLOT_DISTANCE`) можно настроить на узле.
* **Интерпретация `"behind"` или `"unknown"`:** Если вы получили `"behind {distance}"` или `"unknown"`, узел работает, но может быть не полностью синхронизирован или не способен определить свое состояние относительно кластера. В зависимости от требований вашего приложения вы можете обрабатывать эти состояния по-разному.
* **Различия между провайдерами:** Точное поведение, коды и тела ответов для неисправного узла могут немного различаться у разных провайдеров RPC.
* **Обработка ошибок:** Всегда реализуйте надлежащую обработку ошибок при вызове `getHealth`, поскольку проблемы с сетью или узлом могут привести к полному сбою запроса.

В этом руководстве приведена необходимая информация об использовании конечной точки `getHealth` для мониторинга состояния узла Solana RPC.


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