Geth除了支持官方的DApp API开发接口,还支持额外的管理API接口。相似于DApp API,这些管理API也是经过JSON-PRC协议提供,而且遵循一样的规范。Geth内置的控制台支持全部这些额外的管理API。Geth管理API官方文档中文版由汇智网翻译整理,访问地址:Geth管理API文档node
若是要快速高效地学习以太坊应用开发,推荐汇智网的以太坊智能合约与DApp开发入门web
要经过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
复制代码
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"
}
}
复制代码
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
系列API提供了一组非标RPC方法,可供调整Geth实例的运行,包括但不限于网络节点和RPC端结点的管理。
admin命名空间包括如下RPC调用:
debug
系列API提供了一组非标RPC方法,可供监视与调试Geth的运行,也能够用来在运行时设置一些特定的调试标志。
miner
系列的API容许你远程控制节点旳挖矿操做,或者设置各类与挖矿相关的参数。
personal
系列的API管理密钥库中的私钥。
txpool
系列的API提供一组非标RPC方法,可用来审视包含全部待定及排队交易的交易池中的内容。