Management APIs
除了官方公开的DAPP API名称空间(eth、shh、web3)之外,geth还提供了以下额外的管理API名称空间:
admin
:Geth节点管理debug
:Geth节点调试miner
:矿工和DAG管理personal
: 帐户管理txpool
:事务池检查
Amdin模块
admin_addPeer
功能:增加一个新的远程节点到节点列表中。
说明:节点将始终尝试保持与这些节点的连接,如果远程连接断开,则每隔一段时间重新连接一次。该方法接受单个参数,即远程对等机的enode url以开始跟踪,并返回一个bool,指示是否接受该对等机进行跟踪或发生了某些错误。
参数与调用方式:
例子:
admin_datadir
功能:查询datadir管理属性。
说明:获取正在运行的geth节点用于存储其所有数据库的绝对路径。
参数与调用方式:
例子:
admin_nodeInfo
功能:查询nodeInfo管理属性值。
说明:获取在网络上运行的geth节点的所有已知信息。包括作为_VP2P P2P覆盖协议参与者的节点本身的一般信息,以及由每个正在运行的应用程序协议(例如ETH、LES、SHH、BZZ)添加的专门信息。
参数与调用方式:
实例:
admin_peers
功能:查询peers管理属性。
说明:获取有关网络上已连接远程节点的所有已知信息。这些信息包括作为_VP2P P2P覆盖协议参与者的节点本身的一般信息,以及由每个正在运行的应用程序协议(例如ETH、LES、SHH、BZZ)添加的专门信息。
参数与调用方式:
示例:
admin_startRPC
功能:startrpc管理方法启动一个基于http的json-rpc-api-webserver来处理客户端请求。
说明:该方法返回一个布尔标志,指定是否打开了HTTP RPC侦听器。请注意,任何时候只允许一个HTTP端点处于活动状态。
参数与使用方式:
host
:打开侦听器套接字的网络接口(默认为"localhost"
)port
:打开侦听器套接字的网络端口(默认为8545
)cors
:要使用的跨域资源共享标头(默认为""
)apis
:通过此接口提供的API模块(默认为"eth,net,web3"
)
实例:
admin_startWS
功能:startws管理方法启动一个基于websocket的json-rpc-api-webserver来处理客户端请求。
说明:方法返回一个布尔标志,指定WebSocket RPC侦听器是否已打开。请注意,任何时候只允许一个WebSocket端点处于活动状态。
参数与调用方式:
host
:打开侦听器套接字的网络接口(默认为"localhost"
)port
:打开侦听器套接字的网络端口(默认为8546
)cors
:要使用的跨域资源共享标头(默认为""
)apis
:通过此接口提供的API模块(默认为"eth,net,web3"
)
实例:
amdin_sotpRPC
功能:StopRPC管理方法关闭当前打开的HTTP RPC终结点。由于节点只能运行一个HTTP端点,因此此方法不接受任何参数,返回一个布尔值,无论端点是否已关闭。
参数与使用方式:
实例:
admin_stopWS
功能:stopws管理方法关闭当前打开的WebSocket RPC终结点。由于节点只能有一个WebSocket终结点在运行,因此此方法不接受任何参数,返回一个布尔值,无论终结点是否已关闭。
参数与调用方式:
示例:
Debug模块
DebugAPI允许您访问几个非标准的RPC方法,这些方法允许您在运行时检查、调试和设置某些调试标志。
debug_backtraceAt
功能:设置日志回溯位置。当设置了回溯位置并在该位置发出日志消息时,执行LOG语句的goroutine堆栈将打印到stderr。
位置被指定为<filename>:<line>。
参数与使用方式:
实例:
debug_blockProfile
功能:在给定的持续时间内打开块分析并将配置文件数据写入磁盘。它使用1的配置率来获取最准确的信息。如果需要不同的速率,请使用debug_WriteBlockProfile手动设置速率并写入配置文件。
参数与调用方式:
debug_cpuProfile
功能:在给定的持续时间内打开CPU配置文件并将配置文件数据写入磁盘
参数与调用方式:
debug_dumpBlock
功能:检索与块号对应的状态并返回帐户列表(包括存储和代码)。
参数与功能说明:
实例:
debug_gcStats
功能:返回GC统计信息。
参数与功能说明:
debug_getBlockRlp
功能:按数字检索并返回RLP编码的块。
参数说明与调用方式:
debug_goTrace
功能:在给定的持续时间内打开运行时跟踪,并将跟踪数据写入磁盘。
调用方式:
debug_memStats
功能:返回详细的运行时内存统计信息。
调用方式:
debug_seedHash
功能:按编号获取和检索块的种子哈希
调用方式:
debug_setHead
功能:按块编号设置本地链的当前头。注意,这是一种破坏性行为,可能会严重损坏您的链条。谨慎使用。
调用方式:
debug_setBlockProfileRate
功能:设置Goroutine块配置文件数据收集的速率(以采样/秒为单位)。非零速率启用块分析,将其设置为零将停止分析。收集的配置文件数据可以使用debug_WriteBlockProfile写入。
调用方式:
debug_stacks
功能:返回所有goroutine堆栈的打印表示形式。请注意,此方法的Web3包装器负责打印,不会返回字符串。
调用方式:
debug_startCPUProfile
功能:无限期打开CPU分析,写入给定文件。
调用方式:
debug_startGoTrace
功能:开始向给定文件写入Go运行时跟踪。
调用方式:
debug_stopCPUProfile
功能:停止正在进行的CPU配置文件。
调用方式:
debug_stopGoTrace
功能:停止写入Go运行时跟踪。
debug_traceBlock
功能:trace block方法将返回包含在此块中的所有事务的所有调用操作码的完整堆栈跟踪。注意,此块的父级必须存在,否则将失败。
调用方式:
debug_traceBlock
功能:trace block方法将返回包含在此块中的所有事务的所有调用操作码的完整堆栈跟踪。注意,此块的父级必须存在,否则将失败。
调用方式:
debug_traceBlockFromFile
功能:和debug_traceBlock类似。
调用方式:
debug_traceTransaction
功能:traceTransaction调试方法将尝试以与在网络上执行事务完全相同的方式运行事务。它将重放在此事务之前可能已执行的任何事务,然后最终尝试执行与给定哈希对应的事务。
除了事务的散列之外,还可以给它一个辅助可选参数,它指定这个特定调用的选项。可能的选择是:
disableStorage
:BOOL
。将此设置为true将禁用存储捕获(默认值= false)。disableMemory
:BOOL
。将此设置为true将禁用内存捕获(默认值= false)。disableStack
:BOOL
。将此设置为true将禁用堆栈捕获(默认值= false)。tracer
:STRING
。设置此项将启用基于JavaScript的事务跟踪,如下所述。如果设置,则前四个参数将被忽略。timeout
:STRING
。覆盖基于JavaScript的跟踪调用的默认超时5秒。
调用方式:
示例:
> debug.traceTransaction("0x2059dd53ecac9827faad14d364f9e04b1d5fe5b506e3acc886eff7a6f88a696a") { gas: 85301, returnValue: "", structLogs: [{ depth: 1, error: "", gas: 162106, gasCost: 3, memory: null, op: "PUSH1", pc: 0, stack: [], storage: {} }, /* snip */ { depth: 1, error: "", gas: 100000, gasCost: 0, memory: ["0000000000000000000000000000000000000000000000000000000000000006", "0000000000000000000000000000000000000000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000060"], op: "STOP", pc: 120, stack: ["00000000000000000000000000000000000000000000000000000000d67cbec9"], storage: { 0000000000000000000000000000000000000000000000000000000000000004: "8241fa522772837f0d05511f20caa6da1d5a3209000000000000000400000001", 0000000000000000000000000000000000000000000000000000000000000006: "0000000000000000000000000000000000000000000000000000000000000001", f652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f: "00000000000000000000000002e816afc1b5c0f39852131959d946eb3b07b5ad" } }]
debug_verbosity
功能:设置日志冗长的天花板。将打印级别高达并包括给定级别的日志消息。使用调试模块可以提高单个包和源文件的冗长性。
调用方式:
debug_vmodule
功能:设置日志详细程度模式。
调用方式:
debug_writeBlockProfile
功能:将goroutine阻塞配置文件写入给定文件。
调用方式:
、
debug_writeMemProfile
功能:将分配配置文件写入给定文件。请注意,无法通过API设置分析速率,必须使用--memprofilerate标志在命令行上设置分析速率。
调用方式:
Miner模块
Miner API允许您远程控制节点的挖掘操作并设置各种挖掘特定设置。
miner_setExtra
功能:设置当矿工可以包含的额外数据。上限为32字节。
调用方式:
miner_setGasPrice
功能:设置采矿交易时可接受的最低gas价格。低于此限制的任何事务都将从挖掘过程中排除。
调用方式:
miner_start
功能:使用给定的线程数启动CPU挖掘进程,并在需要时生成新的DAG
调用方式:
miner_stop
功能:停止挖矿
调用方式:
miner_setEtherBase
功能:设置EtherBase,用于奖励采矿。
调用方式:
Personal模块
个人API管理密钥存储区中的私钥。
personal_importRawKey
功能:将给定的未加密私钥(十六进制字符串)导入密钥存储,并用密码短语对其进行加密。
调用方式:
personal_listAccounts
功能:返回密钥存储区中所有密钥的所有以太坊帐户地址。
调用方式:
personal_lockAccount
功能:锁定账户,使帐户不能再用于发送事务。
personal_newAccount
功能:创建账户
personal_unlockAccount
功能:解锁账户
personal_sendTransaction
功能:交易信息
personal_sign
功能:使用“sign(keccack256("\x19Ethereum Signed Message:\n" + len(message) + message)))”计算sign签名
personal_ecRecover
功能:反解地址
Txpool模块
TxPool API允许您访问几个非标准的RPC方法,以检查包含当前所有挂起事务的事务池的内容以及排队等待将来处理的事务池的内容。
txpool_content
功能:查询Content Inspection属性,以列出当前待包含在下一个块中的所有事务的确切详细信息,以及仅计划将来执行的事务的详细信息。
说明:结果是一个对象,其中有两个字段挂起并排队。每个字段都是关联数组,其中每个条目都将源地址映射到一批计划事务。这些批本身就是将nonce与实际事务关联起来的映射。请注意,可能有多个事务与同一帐户和随机数关联。如果用户广播多个具有不同天然气配额(甚至完全不同的交易)的多个许可证,就会发生这种情况。
txpool_inspect
功能:查询inspect inspection属性,以列出当前待包含在下一个块中的所有事务的文本摘要,以及仅计划将来执行的事务的文本摘要。这是一种专门为开发人员定制的方法,用于快速查看池中的事务并发现任何潜在问题。
说明:结果是一个对象,其中有两个字段等待和排队。每个字段都是关联数组,其中每个条目都将源地址映射到一批计划事务。这些批本身就是将nonce与事务摘要字符串关联起来的映射。请注意,可能有多个交易与同一帐户和nonce关联。如果用户广播多个具有不同天然气配额(甚至完全不同的交易)的多个许可证,就会发生这种情况。
txpool_status
功能说明:状态检查属性可以查询当前待在下一个块中包含的事务数量,以及仅用于将来执行的事务。结果是一个对象,其中有两个字段挂起并排队,每个字段都是一个计数器,表示处于该特定状态的事务数。
写作不易,请作者喝杯奶茶或可乐吧!