Solana RPC HTTP 方法
Solana 节点使用 JSON-RPC 2.0 规范接受 HTTP 请求。
对于 JavaScript 应用程序,请使用 @solana/web3.js 库作为与 Solana 节点交互的 RPC 方法的便捷接口。对于与 Solana 节点的 PubSub 连接,请使用 Websocket API。
RPC HTTP 端点
默认端口: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"}]}'
定义
- 哈希:一段数据的 SHA-256 哈希值。
- Pubkey:Ed25519 密钥对的公钥。
- 交易:由客户端密钥对签名的 Solana 指令列表,用于授权这些操作。
- 签名:交易有效负载数据(包括指令)的 Ed25519 签名。这可以用来标识交易。
健康检查
虽然这不是一个 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_DISTANCE
unknown
:节点无法确定其相对于集群的位置
Is this page helpful?