跳到主要内容

RPC API 参考

Savitri Network 通过 HTTP 暴露 JSON-RPC 2.0 API。所有请求均以 POST 方式发送至 //rpc

连接

  • 默认端点http://127.0.0.1:8545/rpc
  • 协议:JSON-RPC 2.0(无 REST 端点)
  • TLS:RPC 服务器不终止 TLS。生产环境请使用反向代理(nginx、Caddy)。
  • CORS:默认仅限 localhost127.0.0.1 来源。

速率限制

限制
全局200 请求/秒
每 IP50 请求/秒
最大批量大小100 个请求
最大请求体大小1 MB

超出限制将返回 HTTP 429(请求过多)。

请求格式

{
"jsonrpc": "2.0",
"method": "method_name",
"params": [],
"id": 1
}

参数可以以位置数组或命名对象的形式传入。

批量请求

发送请求数组,在单个 HTTP 请求中处理多个调用:

[
{"jsonrpc": "2.0", "method": "savitri_blockNumber", "params": [], "id": 1},
{"jsonrpc": "2.0", "method": "savitri_health", "params": [], "id": 2}
]

每批最多 100 个请求。

错误代码

代码含义
-32700解析错误(无效 JSON)
-32600无效请求(非 JSON-RPC 2.0)
-32601方法未找到
-32602无效参数
-32603内部服务器错误
-32001资源未找到
-32002服务不可用(存储/内存池)
-32003未实现

方法参考

链方法

方法参数描述
chain_getBlockHeight[]获取当前区块高度
savitri_blockNumber[]chain_getBlockHeight 的别名
chain_getBlock[height]按高度获取区块
savitri_getBlockByHeight[height]chain_getBlock 的别名
chain_getBlockByNumber[height]按高度获取区块
chain_getBlockByHash[hash]按哈希获取区块(扫描最近 1000 个区块)
chain_getLatestBlock[]获取最新区块
chain_getChainInfo[]获取链元数据(id、name、height、version)
savitri_getBlockHash[height]获取指定高度的区块哈希

交易方法

方法参数描述
tx_sendTransaction[raw_tx_hex]提交已签名的交易
savitri_sendRawTransaction[raw_tx_hex]tx_sendTransaction 的别名
tx_getTransaction[hash]按哈希获取交易
savitri_getTransaction[hash]tx_getTransaction 的别名
tx_getTransactionReceipt[hash]获取带状态的交易收据
tx_getTransactionsByBlock[height]获取区块内所有交易
tx_getPendingTransactions[]列出内存池中待处理的交易

账户方法

方法参数描述
account_getAccount[address]获取余额和 nonce
savitri_getAccount[address]account_getAccount 的别名
account_getBalance[address]仅获取余额
account_getNonce[address]仅获取 nonce
account_getTokenBalance[address, token_id]获取代币余额

网络方法

方法参数描述
net_version[]获取网络版本
net_peerCount[]获取已连接节点数量
net_listening[]检查节点是否正在监听
net_peers[]列出已连接节点及其分数
net_nodeInfo[]获取节点信息(id、mode、peers、height)

内存池方法

方法参数描述
mempool_getSize[]获取待处理和排队的交易数量
mempool_getPendingTransactions[]列出待处理的交易
mempool_getTransactionStatus[hash]检查交易是否在内存池中

共识 / PoU 方法

方法参数描述
pou_getConsensusState[]获取本地 PoU 分数、leader 和 epoch
savitri_pouLocal[]pou_getConsensusState 的别名
savitri_pouPeers[]获取所有节点的 PoU 分数
pou_getValidators[]列出验证者及其分数
pou_getStakeInfo[address]获取指定地址的质押信息
pou_getEpochInfo[]获取当前 epoch 详情
savitri_pouGroups[]列出 PoU 分组(仅限主节点)
savitri_pouMasternodes[]列出主节点(仅限主节点)
savitri_pouGroupNodes[group_id]列出分组中的节点(仅限主节点)

代币方法

方法参数描述
token_getTokenInfo[token_id]获取代币元数据(name、symbol、decimals、supply)
token_getTokenBalance[address, token_id]获取代币余额
token_getTokenTransfers[token_id]获取转账历史

工具方法

方法参数描述
savitri_health[]健康检查(status、service、mode)
savitri_protocolVersion[]获取协议版本
savitri_syncing[]获取同步状态(当前/最高区块)
savitri_gasPrice[]获取当前 Gas 价格
savitri_estimateGas[]估算交易 Gas
savitri_faucetClaim[address]领取测试网代币(5 SAVT)

Monolith 方法

方法参数描述
savitri_getMonolithHead[]获取最新的 monolith 元数据
savitri_getMonolithsForRange[start, end]获取高度范围内的 monolith
savitri_getMonolith[monolith_id]获取完整的 monolith 区块

响应类型

各响应对象的详细 JSON 结构,请参见 响应类型