以太坊应用开发接口

以太坊应用开发接口指的是以太坊节点软件提供的API接口,去中心化应用 可以利用这个接口访问以太坊上的智能合约。以太坊应用开发接口采用JSON-PRC 标准,通常是通过HTTP或websocket提供给应用程序调用。

JSON-RPC是一种无状态轻量级远程过程调用(RPC)协议,规范定义了数据结构及相应的处理规则, 规范使用JSON(RFC 4627)数据格式,规范本身是传输无关的,可以用于进程内通信、socket套接字、 HTTP 或各种消息通信环境。

以太坊应用开发接口的配置

不同节点软件的应用开发接口访问点可能有所区别。常见以太坊节点软件的的默认JSON-RPC端结点如下:

  • Geth - http://localhost:8545
  • Parity - http://localhost:8545
  • Pytheapp - http://localhost:4000

以最常见的geth节点软件为例,可以使用–rpc选项启动其基于HTTP的JSON-RPC应用开发接口。

1
~$ geth --rpc

可以使用–rpcaddr和–rpcport选项修改默认的监听端口(8545)和监听地址(localhost):

1
~$ geth --rpc --rpcaddr <ip> --rpcport <portnumber>

如果需要从浏览器中访问RPC接口,需要正确设置CORS,否则由于同源策略的限制,javascript调用将失败:

1
~$ geth --rpc --rpccorsdomain "http://localhost:3000"

也可以在geth控制台使用admin.startRPC(addr,port)命令来启动JSON RPC。

以太坊应用开发接口的调用

利用标准的HTTP协议就可以调用以太坊应用开发接口,例如在命令行可以使用curl工具:

1
~$ curl -X POST --data '{"jsonrpc":"2.0","method":"web3_clientVersion","params":[],"id":67}' http://127.0.0.1:8545

你可以点击这里查看以太坊应用开发接口中文手册

以太坊应用开发接口的封装开发包

为便于在不同语言的代码中调用以太坊应用开发接口,以太坊社区涌现了不同语言的开发包,例如:

可以根据你的需要选择合适的开发包来调用以太坊应用开发接口,这样可以大大缩短对接以太坊 节点的所需要的时间。