Geth接口可实现功能汇总

Geth接口可实现功能汇总

以太坊 JSON RPC API

以太坊 JSON RPC API(官方的DApp API开发接口)。

JSON是一种轻量级数据交换格式。它可以表示数值、字符串、序列及名/值对集合。

JSON-RPC是一种无状态轻量级远程过程调用(RPC)协议。本规范定义了数据结构及相应的处理规则。规范本身是传输无关的,可以用于进程内通信、socket套接字、HTTP 或各种消息通信环境。规范使用JSON(RFC 4627)数据格式。

Geth 1.4和Parity1.6中包含了实验性质的pub/sub支持。

JSON RPC API 清单

官方的DApp API命令空间:

  • web3
  • net
  • eth
  • db
  • shh

web3

  • web3_clientVersion:返回当前的客户端版本。
  • web3_sha3: 返回指定数据的Keccak-256(不同于标准的SHA3-256算法)哈希值。

net

  • net_version: 返回当前连接网络的ID。
  • net_listening: 如果客户端处于监听网络连接的状态,该调用返回true。
  • net_peerCount: 返回当前客户端所连接的对端节点数量。

eth

  • eth_protocolVersion: 返回当前以太坊协议的版本。
  • eth_syncing: 对于已经同步的客户端,该调用返回一个描述同步状态的对象;对于未同步客户端,返回false。
  • eth_coinbase: 返回客户端的coinbase地址。
  • eth_mining: 如果客户端在积极挖矿则返回true。
  • eth_hashrate: 返回节点挖矿时每秒可算出的哈希数量。
  • eth_gasPrice: 返回当前的gas价格,单位:Wei。
  • eth_accounts: 返回客户端持有的地址列表。
  • eth_getBalance: 返回指定地址账户的余额。
  • eth_getStorageAt:返回指定地址存储位置的值。
  • eth_getRransactionCount:返回指定地址发生的交易数量。
  • eth_getBlockTransactionCountByHash:返回指定块内的交易数量,使用哈希来指定块。
  • eth_getBlockTransactionCountByNumber:返回指定块内的交易数量,使用块编号指定块。
  • eth_getUncleCountByBlockHash:返回指定块的叔伯数量,使用哈希指定块。
  • eth_getUncleCountByBlockNumber:返回指定块的叔伯数量,使用块编号指定块。
  • eth_getCode:返回指定地址的代码。
  • eth_sign:通过给消息添加一个前缀,可以让结果签名被识别为以太坊签名。这可以组织恶意DApp签名任意数据(例如交易)并使用 签名冒充受害者。
  • eth_sendTransaction:创建一个新的消息调用交易,如果数据字段中包含代码,则创建一个合约。
  • eth_sendRawTransaction:为签名交易创建一个新的消息调用交易或合约。
  • eth_call:立刻执行一个新的消息调用,无需在区块链上创建交易。
  • eth_estimateGas:执行并估算一个交易需要的gas用量。该次交易不会写入区块链。注意,由于多种原因,例如EVM的机制及节点的性能,估算的数值可能比实际用量大的多。
  • eth_getBlockByHash:返回具有指定哈希的块。
  • eth_getBlockByNumber:返回指定编号的块。
  • eth_getTransactionByHash:返回指定哈希对应的交易。
  • eth_getTransationByBlockHashAndIndex:返回指定块内具有指定索引序号的交易。
  • eth_getTransationByBlockNumberAndIndex:返回指定编号的块内具有指定索引序号的交易。
  • eth_getTransactionReceipt:返回指定交易的收据,使用哈希指定交易。需要指出的是,挂起的交易其收据无效。
  • eth_getUncleByBlockHashAndIndex:返回具有指定哈希的块具有指定索引位置的叔伯。
  • eth_getUncleByBlockNumberAndIndex:返回具有指定编号的块内具有指定索引序号的叔伯。
  • eth_getCompilers:返回客户端中有效的编译器列表。
  • eth_compoleSolidity:返回编译后的solidity代码。
  • eth_compoleLLL:返回编译后的LLL代码。
  • eth_compileSerpent:返回编译后的Serpent代码。
  • eth_newFilter: 基于给定的选项创建一个过滤器对象,接收状态变化时的通知。要检查状态是否变化, 请调用eth_getFilterChanges
  • eth_newBlockFilter:在节点中创建一个过滤器,以便当新块生成时进行通知。要检查状态是否变化,请调用 eth_getFilterChanges 。
  • eth_newPendingTransactionFilter:在节点中创建一个过滤器,以便当产生挂起交易时进行通知。要检查状态是否发生变化,请调用 eth_getFilterChanges 。
  • eth_uninstallFilter:写在具有指定编号的过滤器。当不在需要监听时,总是需要执行该调用。另外,过滤器如果在一定时间内未接收到 eth_getFilterChanges 调用会自动超时。
  • eth_getFilterChanges:轮询指定的过滤器,并返回自上次轮询之后新生成的日志数组。
  • eth_getFilterLogs:返回指定编号过滤器中的全部日志。
  • eth_getLogs:返回指定过滤器中的所有日志。
  • eth_getWork:返回当前块的哈希、种子哈希、以及要满足的边界条件,即目标。
  • eth_submitWork:用于提交POW解决方案。
  • eth_submitHashrate:用于提交挖矿的哈希速率。
  • eth_blockNumber:返回最新块的编号。

db

  • db_putString:在本地数据库中存入字符串。(注意:这个调用已经被启用,在将来版本中将被移除。)
  • db_getString:从本地数据库读取字符串。(注意:这个调用已经被启用,在将来版本中将被移除。)
  • db_putHex:将二进制数据写入本地数据库。(注意:这个调用已经被启用,在将来版本中将被移除。)
  • db_getHex:从本地数据库中读取二进制数据。(注意:这个调用已经被启用,在将来版本中将被移除。)

shh

  • shh_version:返回当前的whisper协议版本。

  • shh_post:发送whisper消息。

  • shh_newldentity:在客户端创建一个新的whisper身份标识。

  • shh_hasldentity:检查客户端是否持有指定身份标识的私钥。

  • shh_newGroup:创建分组。

  • shh_addToGroup:将指定身份标识加入分组。

  • shh_newFilter:创建一个过滤器,以便在客户端接收到匹配的whisper消息时进行通知。

  • shh_uninstallFilter: 写在指定编号的过滤器,当不再需要某个过滤器时,总应当执行此调用进行清理。此外, 如果在一定时间内没有收到shh_getFilterChanges请求,过滤器将超时。

  • shh_getFilterChanges:轮询whisper过滤器,返回自上次调用依赖的新消息。(注意:调用 shh_getMessages 将复位本调用使用的缓冲区,因此不会收到重复的消息。)

  • shh_getMessages:读取匹配指定过滤器的所有消息。与 shh_getFilterChanges 不同,本调用返回所有消息。

Geth JSON-RPC管理API

Geth除了支持官方的DApp API开发接口, 还支持额外的管理API接口。类似于DApp API,这些管理API也是通过JSON-PRC协议提供,并且遵循同样的规范。Geth内置的控制台支持所有这些额外的管理API。

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:获取交易池状态
-------------------本文结束 感谢您的阅读-------------------
0%