本篇内容主要讲解“如何使用管理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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。