以太坊JSON RPC API
JSON是一种轻量级数据交换格式。它可以表示数值、字符串、序列及名/值对集合。
JSON-RPC是一种无状态轻量级远程过程调用(RPC)协议。本规范定义了数据结构及 相应的处理规则。规范本身是传输无关的,可以用于进程内通信、socket套接字、HTTP 或各种消息通信环境。规范使用JSON(RFC 4627)数据格式。
Geth 1.4和Parity1.6中包含了实验性质的pub/sub支持。
相关以太坊开发包:
端结点
常见客户端的默认JSON-RPC端结点:
- C++ - http://localhost:8545
- Go - http://localhost:8545
- Py - http://localhost:4000
- Parity- http://localhost:8545
Go
可以使用--rpc
选项启动HTTP JSON-RPC。
geth --rpc
使用--rpcaddr
和--rpcport
选项修改默认的监听端口(8545)和监听地址(localhost):
geth --rpc --rpcaddr <ip> --rpcport <portnumber>
如果从浏览器中访问RPC,需要正确设置CORS,否则由于同源策略的限制,javascript调用将失败:
geth --rpc --rpccorsdomain "http://localhost:3000"
也可以在geth控制台使用admin.startRPC(addr,port)
命令来启动JSON RPC。
C++
可以使用-j
选项启动RPC:
./eth -j
同样,可以使用--json-rpc-port
选项指定监听端口,默认值为8545:
./eth -j --json-rpc-port 8079
Python
在Python实现中,默认会启动JSONRPC服务,监听地址和端口为127.0.0.1:4000
。
可以使用-c
选项设置监听地址和监听端口:
pyethapp -c jsonrpc.listen_port=4002 -c jsonrpc.listen_host=127.0.0.2 run