跳转到主要内容
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 节点状态的必要信息。