Solana 节点使用 JSON-RPC 2.0 规范接受 HTTP 请求。
对于 JavaScript 应用程序,请使用@solana/web3.js库作为与 Solana 节点交互的 RPC 方法的便捷接口。对于与 Solana 节点的 PubSub 连接,请使用Websocket API。
默认端口:8899
要发起 JSON-RPC 请求,请发送带有 Content-Type: application/json 标头的 HTTP POST 请求。JSON 请求数据应包含 4 个字段:
jsonrpc: <string> - 设置为 "2.0"id: <string | number | null> - 客户端生成的请求的唯一标识符。通常是字符串或数字,尽管技术上允许为 null,但不建议这样做method: <string> - 包含要调用方法的字符串params: <array> - 一个 JSON 数组,包含按顺序排列的参数值使用 curl 的示例:
curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d '
{
"jsonrpc": "2.0",
"id": 1,
"method": "getBalance",
"params": [
"83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri"
]
}
'
响应输出将是一个包含以下字段的 JSON 对象:
jsonrpc: <string> - 与请求规范匹配id: <number> - 与请求标识符匹配result: <array|number|object|string> - 请求的数据或成功确认可以通过将多个 JSON-RPC 请求对象的数组作为单个 POST 的数据发送来批量发送请求。
commitment 参数应作为 params 数组中的最后一个元素:
curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d '
{
"jsonrpc": "2.0",
"id": 1,
"method": "getBalance",
"params": [
"83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri",
{
"commitment": "finalized"
}
]
}
'
虽然这不是一个 JSON RPC API,但在 RPC HTTP 端点上的 GET /health提供了一种供负载均衡器或其他网络基础设施使用的健康检查机制。此请求将始终返回 HTTP 200 OK 响应,响应体为"ok"、"behind" 或 "unknown":
ok:节点在距离最新集群确认 slot 的 HEALTH_CHECK_SLOT_DISTANCE 个 slot 以内behind { distance }:节点落后于最新集群确认 slot 的 distance 个 slot,其中distance > HEALTH_CHECK_SLOT_DISTANCEunknown:节点无法确定其相对于集群的位置查看更多 HTTP 方法 和 Websocket 方法
连接到 RPC PubSub websocket 地址 ws://<ADDRESS>/ 后:
commitment 参数,定义触发通知所需的变更最终化程度。如果未指定 commitment,订阅的默认值为
finalized。默认端口:8900
查看更多 HTTP 方法 和 Websocket 方法