以太坊应用开发接口指的是以太坊节点软件提供的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应用开发接口。
~$ 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。
以太坊应用开发接口的调用
利用标准的HTTP协议就可以调用以太坊应用开发接口,例如在命令行可以使用curl工具:
~$ curl -X POST --data '{"jsonrpc":"2.0","method":"web3_clientVersion","params":[],"id":67}' http://127.0.0.1:8545
你可以点击这里查看以太坊应用开发接口中文手册。
以太坊应用开发接口的封装开发包
为便于在不同语言的代码中调用以太坊应用开发接口,以太坊社区涌现了不同语言的开发包,例如:
- javascript:Web3.js,教程:以太坊Dapp开发入门
- php:Web3.php, 教程:php以太坊开发详解
- python:Web3.py,教程:python以太坊开发详解
- java:Web3j,教程:Web3j以太坊开发详解
- c#:Nethereum,教程:c#以太坊开发详解
可以根据你的需要选择合适的开发包来调用以太坊应用开发接口,这样可以大大缩短对接以太坊节点的所需要的时间。