JSON-RPC是一个无状态且轻量级的远程过程调用传送协议,TRON网络支持的JSON-RPC接口,与Ethereum的JSON-RPC接口兼容,但由于链的机制和设计的差别,对于以太坊上的部分接口,TRON无法支持,同时,TRON也提供了专用的 API接口来创建不同类型的交易。
注意
- JSON-RPC服务需要在节点配置文件中开启并设置端口,若不配置,则服务默认为关闭状态
如何开启节点JSON-RPC服务
在节点配置文件中加入如下配置项:
node.jsonrpc {
httpFullNodeEnable = true
httpFullNodePort = 50545
httpSolidityEnable = true
httpSolidityPort = 50555
}
HEX编码
目前,通过JSON传递的数据类型主要有两种:UNFORMATTED DATA和QUANTITIES。两者都使用十六进制编码传递,但对格式有不同的要求:
- QUANTITIES (integers, numbers): Hex编码,前缀为"0x",举例:
- 0x41 (十进制65)
- 0x400 (十进制1024)
- 错误: 0x (至少有一个数字,例如,0应该是“0x0”)
- 错误: 0x0400 (不允许前导零)
- 错误: ff (必须有前缀0x)
- UNFORMATTED DATA (byte arrays, account addresses, hashes, bytecode arrays),Hex编码,前缀为"0x",举例:
- 0x41 (一个字节, “A”)
- 0x004200 (3字节, “\0B\0”)
- 0x (0字节, “”)
- 错误: 0xf0f0f (必须是偶数位)
- 错误: 004200 (前缀必须为0x)