以太坊應用開發介面的配置與呼叫
阿新 • • 發佈:2018-12-16
以太坊應用開發介面指的是以太坊節點軟體提供的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#以太坊開發詳解
可以根據你的需要選擇合適的開發包來呼叫以太坊應用開發介面,這樣可以大大縮短對接以太坊
節點的所需要的時間。
原文連結:以太坊應用開發介面