Geth RPC API中文文檔

Geth除了支持官方的DApp API開發接口,還支持額外的管理API接口。相似於DApp API,這些管理API也是經過JSON-PRC協議提供,而且遵循一樣的規範。Geth內置的控制檯支持全部這些額外的管理API。Geth管理API官方文檔中文版由匯智網翻譯整理,訪問地址:Geth管理API文檔node

若是要快速高效地學習以太坊應用開發,推薦匯智網的以太坊智能合約與DApp開發入門web

啓用管理API

要經過Geth的RPC訪問端結點提供這些管理API,須要在啓動geth時使用--${interface}api選項,其中${interface}能夠是rpc,表示HTTP上的端結點,或者是ws,表示WebSocket上的端結點,或者ipc,表示unix套接字或windows命名管道上的端結點。json

例以下面的命令啓用unix套接字和http上的訪問端結點:windows

~$ geth --ipcapi admin,eth,miner --rpcapi eth,web3 --rpc
複製代碼
  • 在unix套接字上的端結點,提供如下API:admin、miner和官方DApp API即eth。
  • 在http上的端結點,提供如下API:web三、eth

HTTP上的RPC接口必須同時顯式地使用--rpc標誌開啓。api

須要注意的是,在HTTP(rpc)或WebSocket(ws)上提供API將容許全部人訪問API,所以請仔細審查你要提供哪些API服務。默認狀況下,Geth在IPC端結點上提供全部的API,在HTTP和WebSocket接口上僅提供db、eth、net和web3這幾個API。bash

要查看提供了哪些API,可使用modules調用。例如在unix系統上經過ipc接口調用:網絡

~$ echo '{"jsonrpc":"2.0","method":"rpc_modules","params":[],"id":1}' | nc -U $datadir/geth.ipc
複製代碼

響應結果將列出全部啓用的API模塊以及其版本號:curl

{  
   "id":1,
   "jsonrpc":"2.0",
   "result":{  
      "admin":"1.0",
      "db":"1.0",
      "debug":"1.0",
      "eth":"1.0",
      "miner":"1.0",
      "net":"1.0",
      "personal":"1.0",
      "shh":"1.0",
      "txpool":"1.0",
      "web3":"1.0"
   }
}
複製代碼

使用管理API

Geth提供的管理API與官方DApp API採用相同的規範,所以能夠擴展Web3以支持這些額外的API。函數

不一樣的函數被分爲多個邏輯組。下面給出JavaScript控制檯上的示例,不過很容易將這些示例轉換爲RPC請求。性能

例如,在Geth終端啓動挖礦:

> miner.start()
複製代碼

經過IPC端結點啓動挖礦:

~$ echo '{"jsonrpc":"2.0","method":"miner_start","params":[],"id":1}' | nc -U $datadir/geth.ipc
複製代碼

經過HTTP端結點啓動挖礦:

~$ curl -X POST --data '{"jsonrpc":"2.0","method":"miner_start","params":[],"id":74}' localhost:8545
複製代碼

能夠在啓動挖礦時傳入一個參數指定挖礦線程數:

Geth終端啓動4個線程挖礦:

> miner.start(4)
複製代碼

經過IPC端結點啓動4個線程挖礦:

~$ echo '{"jsonrpc":"2.0","method":"miner_start","params":[4],"id":1}' | nc -U $datadir/geth.ipc
複製代碼

經過HTTP端結點啓動4個線程挖礦:

~$ curl -X POST --data '{"jsonrpc":"2.0","method":"miner_start","params":[4],"id":74}' localhost:8545
複製代碼

Geth管理API清單

除了官方的DApp API命令空間(eth、shh、web3),Geth提供瞭如下額外的管理API命名空間:

  • admin:Geth節點管理
  • debug:Geth節點調試
  • miner:挖礦和有向無環圖(DAG)管理
  • personal:帳戶管理
  • txpool:交易池審查

admin

admin系列API提供了一組非標RPC方法,可供調整Geth實例的運行,包括但不限於網絡節點和RPC端結點的管理。

admin命名空間包括如下RPC調用:

  • addPeer:添加遠程節點
  • datadir:獲取鏈庫數據目錄
  • nodeInfo:獲取節點信息
  • peers:獲取已鏈接遠程節點信息
  • setSolc:設置solidity編譯器路徑
  • startRPC:啓動HTTP上的RPC服務
  • startWS:啓動WebSocket上的RPC服務
  • stopRPC:中止HTTP上的RPC服務
  • stopWS:中止WebSocket上的RPC服務

debug

debug系列API提供了一組非標RPC方法,可供監視與調試Geth的運行,也能夠用來在運行時設置一些特定的調試標誌。

  • backtraceAt:設置跟蹤位置
  • blockProfile:啓用限時區塊性能檢測
  • cpuProfile:啓用限時CPU性能檢測
  • dumpBlock:導出區塊數據
  • gcStats:獲取垃圾回收統計信息
  • getBlockRlp:獲取RPL編碼的區塊數據
  • goTrace:啓用限時go運行時跟蹤
  • memStats:獲取內存統計信息
  • seedHash:獲取區塊種子哈希
  • setBlockProfileRate:設置區塊性能檢測速率
  • setHead:設置本地鏈頭區塊
  • stacks:獲取調用棧
  • startCPUProfile:啓用CPU性能檢測
  • startGoTrace:啓用go跟蹤
  • traceBlock:獲取區塊操做碼調用棧
  • traceBlockByNumber:獲取指定序號區塊操做碼調用棧
  • traceBlockByHash:獲取指定哈希區塊操做碼調用棧
  • traceBlockFromFile:獲取區塊文件操做碼調用棧
  • traceTransaction:跟蹤交易
  • verbosity:設置日誌顯示級別
  • vmodule:設置日誌可視模式
  • writeBlockProfile:啓用區塊性能檢測
  • writeMemProfile:啓用內存性能檢測

miner

miner系列的API容許你遠程控制節點旳挖礦操做,或者設置各類與挖礦相關的參數。

  • setExtra:設置寫入挖礦獲得區塊的額外數據
  • setGasPrice:設置可接受交易的gas價格下限
  • start:啓動挖礦
  • stop:中止挖礦
  • getHashRate:獲取哈希生成速率
  • setEtherbase:設置挖礦收益帳戶

personal

personal系列的API管理密鑰庫中的私鑰。

  • importRawKey:導入私鑰
  • listAccounts:列出全部帳戶
  • lockAccount:鎖定帳戶
  • newAccount:建立新帳戶
  • unlockAccount:解鎖帳戶
  • sendTransaction:發送交易
  • sign:簽名
  • ecRecover:提取簽名中的發起方地址

txpool

txpool系列的API提供一組非標RPC方法,可用來審視包含全部待定及排隊交易的交易池中的內容。

  • content:獲取池中交易詳情
  • inspect:獲取池中交易概述
  • status:獲取交易池狀態
相關文章
相關標籤/搜索