getHealth 端点用于检查 Solana RPC 节点的当前健康状态。一个健康的节点通常被认为是可以操作的,并且与集群的其余部分合理同步(特别是在最新集群确认槽位的某个槽位距离内,称为 HEALTH_CHECK_SLOT_DISTANCE)。 此端点对于监控节点健康至关重要,尤其是对于依赖于 RPC 节点的可用性和可靠性的应用程序或基础设施。

工作原理

getHealth 方法使用标准的 JSON-RPC POST 机制,方法为 getHealth。此方法检查 RPC 节点是否健康并与 Solana 集群同步。

常见用例

  • 节点监控: 定期检查 RPC 节点的健康状况,以确保它们可以操作并同步。
  • 负载均衡: 使用健康检查来确定节点是否应在负载均衡设置中接收流量。
  • 故障转移系统: 如果主节点变得不健康,则触发故障转移到备用节点。
  • 调试连接性: 快速确定 RPC 节点是否响应。

请求参数

此方法不需要任何参数。

响应结构

  • 对于 JSON-RPC getHealth POST:
    • result:如果节点健康,则为 "ok"
    • 如果不健康,可能会返回错误对象或其他字符串值(如 "behind""unknown"),尽管不健康节点的确切错误响应可能不稳定或因提供商而异。

示例

1. 使用 JSON-RPC 检查节点健康状况(使用 cURL 的 POST 请求)

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"
  }'
预期的 JSON-RPC 响应(对于健康的节点):
{
  "jsonrpc": "2.0",
  "result": "ok",
  "id": 1
}

开发者提示

  • 健康的定义: “健康” 通常意味着节点响应正常,并且没有落后于集群的最新状态太多。确切的槽位差异(HEALTH_CHECK_SLOT_DISTANCE)可以在节点上配置。
  • 解释 "behind""unknown" 如果收到 "behind {distance}""unknown",则表示节点正在运行,但可能尚未完全同步或无法确定其相对于集群的状态。根据应用程序的要求,您可能会对这些状态进行不同的处理。
  • 提供者差异: 不健康节点的确切行为和响应代码/主体可能在不同的 RPC 提供者之间略有不同。
  • 错误处理: 在调用 getHealth 时始终实现适当的错误处理,因为网络问题或节点问题可能导致请求完全失败。
本指南提供了使用 getHealth 端点监控 Solana RPC 节点状态的必要信息。