您好,登錄后才能下訂單哦!
本篇內容主要講解“如何使用管理API”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何使用管理API”吧!
要通過Geth的RPC訪問端結點提供這些管理API,需要在啟動geth時使用--${interface}api
選項,其中${interface}
可以是rpc
,表示HTTP上的端結點,或者是ws
,表示WebSocket上的端結點,或者ipc
,表示unix套接字或windows命名管道上的端結點。
例如下面的命令啟用unix套接字和http上的訪問端結點:
~$ geth --ipcapi admin,eth,miner --rpcapi eth,web3 --rpc
在unix套接字上的端結點,提供以下API:admin、miner和官方DApp API即eth。
在http上的端結點,提供以下API:web3、eth
HTTP上的RPC接口必須同時顯式地使用--rpc
標志開啟。
需要注意的是,在HTTP(rpc)或WebSocket(ws)上提供API將允許所有人訪問API,因此請仔細審查你要提供哪些API服務。默認情況下,Geth在IPC端結點上提供所有的API,在HTTP和WebSocket接口上僅提供db、eth、net和web3這幾個API。
要查看提供了哪些API,可以使用modules調用。例如在unix系統上通過ipc接口調用:
~$ echo '{"jsonrpc":"2.0","method":"rpc_modules","params":[],"id":1}' | nc -U $datadir/geth.ipc
響應結果將列出所有啟用的API模塊以及其版本號:
{ "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" } }
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
除了官方的DApp API命令空間(eth、shh、web3),Geth提供了以下額外的管理API命名空間:
admin:Geth節點管理
debug:Geth節點調試
miner:挖礦和有向無環圖(DAG)管理
personal:賬戶管理
txpool:交易池審查
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
系列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
系列的API允許你遠程控制節點旳挖礦操作,或者設置各種與挖礦相關的參數。
setExtra:設置寫入挖礦得到區塊的額外數據
setGasPrice:設置可接受交易的gas價格下限
start:啟動挖礦
stop:停止挖礦
getHashRate:獲取哈希生成速率
setEtherbase:設置挖礦收益賬戶
personal
系列的API管理密鑰庫中的私鑰。
importRawKey:導入私鑰
listAccounts:列出所有賬戶
lockAccount:鎖定賬戶
newAccount:創建新賬戶
unlockAccount:解鎖賬戶
sendTransaction:發送交易
sign:簽名
ecRecover:提取簽名中的發起方地址
txpool
系列的API提供一組非標RPC方法,可用來審視包含所有待定及排隊交易的交易池中的內容。
content:獲取池中交易詳情
inspect:獲取池中交易概述
status:獲取交易池狀態
到此,相信大家對“如何使用管理API”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。