Solana RPC HTTP 方法 和 Websocket 方法

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:节点无法确定其相对于集群的位置

查看更多 HTTP 方法Websocket 方法

Solana RPC Websocket 方法

连接到 RPC PubSub websocket 地址 ws://<ADDRESS>/ 后:

  • 使用以下方法向 websocket 提交订阅请求
  • 可以同时激活多个订阅
  • 许多订阅接受可选的 commitment 参数,定义触发通知所需的变更最终化程度。如果未指定 commitment,订阅的默认值为 finalized

RPC PubSub WebSocket 端点

默认端口:8900

查看更多 HTTP 方法Websocket 方法

点赞 1
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论