RPC定义
- 以太坊客户端提供了API和一组远程调用的(RPC)命令,这些命令被编码成json的格式,被叫做JSON-RPC-API。本质上,JSON-RPC API就是一个接口,允许我们编写的程序使用以太坊客户端作为网关,访问以太坊网络和区块链上的数据
- RPC作为一个HTTP服务,端口设定为8545.出于安全考虑,默认情况下,只接收来自localhost的连接
- 要访问JSON-RPC-API,可以使用编程语言编写的专用库函数,例如javascript的web3.js
- 或者可以自己手动构建请求并发送/接收JSON编码的请求。
例子
- 启动私有区块链,开启rpc服务(需要在先前设定的目录中)
- 命令如下
geth --datadir . --nameworkid id号码 --rpc console 2>output.log
- 新开启一个端口,输入如下命令
- 其中,jsonrpc默认填写2.0,method可以随意切换,id是相当于电话交流设置的信道
curl -X POST -H "Content-Type:application/json" --data '{"jsonrpc":"2.0","method":"web3_clientVersion","params":[],"id":1}' http://localhost:8545
- 可以在区块链的端口上输入eth,显示对应的相关命令
- 然后将随意命令替换上面的method
- 例子 eth_blockNumber
curl -X POST -H "Content-Type:application/json" --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' http://localhost:8545