Skip to main content
Конечная точка 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)

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

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

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