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
?