当前位置: 首页 > 工具软件 > simple-rpc > 使用案例 >

JSON-RPC与geth控制台命令

子车超英
2023-12-01

JSON-RPC是什么

参考这篇博客:JSON-RPC是什么

  • 以太坊客户端提供了API和一组远程调用(RPC)命令,这些命令执行时会被编码成JSON格式的请求,发送给服务端,这被称为JSON-RPC API。本质上JSON-RPC API就是一个接口,允许我们编写的程序使用以太坊客户端作为网关,访问以太坊网络和链上数据。
  • 通常RPC接口作为一个HTTP服务,端口设定为8545,出于安全原因,默认情况下,它仅限于接受来自localhost的连接。
  • 要访问JSON-RPC API,我们可以使用编程语言编写的专用库,例如javascript的web3.js。
  • 或者也可以手动构建HTTP请求、接收JSON编码的请求,如在端口输入
$ curl -X POST -H "Content-Type:application/json" --data '{"jsonrpc":"2.0","method":"web3_clientVersion","params":[],"id":1}' http://localhost:8545

将会从服务器端接收到如下结果(需要在我们的geth客户端启动时加上–rpc,默认打开的时8545端口):

{"jsonrpc":"2.0","id":1,"result":"Geth/v1.9.21-unstable-5883afb3-20200828/linux-amd64/go1.15"}

相当于geth version返回的结果。
再比如

$ curl -X POST -H "Content-Type:application/json" --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' http://localhost:8545

返回结果:

{"jsonrpc":"2.0","id":1,"result":"0x2af"}

0x2af是16进制的687,相当于在geth控制台执行命令:eth.blockNumber。

 类似资料: