JSON-RPC简介

JSON-RPC是一个无状态且轻量级的远程过程调用传送协议,TRON网络支持的JSON-RPC接口,与Ethereum的JSON-RPC接口兼容,但由于链的机制和设计的差别,对于以太坊上的部分接口,TRON无法支持,同时,TRON也提供了专用的 API接口来创建不同类型的交易。

注意

  • JSON-RPC服务需要在节点配置文件中开启并设置端口,若不配置,则服务默认为关闭状态
  • Trongrid目前没有开启JSON-RPC服务,如果想使用JSON-RPC api,建议自建节点,并在配置文件中开启服务

如何开启节点JSON-RPC服务

在节点配置文件中加入如下配置项:
node.jsonrpc {
httpFullNodeEnable = true
httpFullNodePort = 50545
httpSolidityEnable = true
httpSolidityPort = 50555
}

HEX编码

目前,通过JSON传递的数据类型主要有两种:UNFORMATTED DATA和QUANTITIES。两者都使用十六进制编码传递,但对格式有不同的要求:

  1. QUANTITIES (integers, numbers): Hex编码,前缀为"0x",举例:
  • 0x41 (十进制65)
  • 0x400 (十进制1024)
  • 错误: 0x (至少有一个数字,例如,0应该是“0x0”)
  • 错误: 0x0400 (不允许前导零)
  • 错误: ff (必须有前缀0x)
  1. UNFORMATTED DATA (byte arrays, account addresses, hashes, bytecode arrays),Hex编码,前缀为"0x",举例:
  • 0x41 (一个字节, “A”)
  • 0x004200 (3字节, “\0B\0”)
  • 0x (0字节, “”)
  • 错误: 0xf0f0f (必须是偶数位)
  • 错误: 004200 (前缀必须为0x)