Parity JSON-RPC API手册
JSON是轻量级的数据交换格式。它可以表示数值、字符串、有序值序列以及名/值对集合。
JSON-RPC是无状态的轻量级远程过程调用(RPC)协议。JSON-RPC规范定义了数据结构 以及其处理规则,它是传输无关的,因此可以应用于socket、HTTP、WebSocket或其他 消息传输环境。JSON-RPC采用JSON(RFC 4627)作为数据格式。
Parity的网络传输设置
- HTTP:在8545端口监听
- WebSocket:在8546端口监听
- IPC Socket:监听路径为
$BASE/jsonrpc.ipc
,在linux上其默认值为~/.local/share/io.parity.ethereum/jsonrpc.ipc
。
JSON RPC中的数据类型
有几种利用JSON传递的数据类型。由于JavaScript/JSON没有原生的字节数组和 大数类型,这两种类型是特别针对以太坊API而设计的,都是用16进制编码, 但是有不同的格式化要求。
当编码数量类型 (整数或数值)时,编码为最紧凑的16进制并使用0x
前缀,
紧凑的意思是0
应当编码为0x0
而不是0x00
。示例如下:
- 0x41 :十进制的65
- 0x400 :十进制的1024
- 0x:错误!应当至少有一位数字,例如
0x0
- 0x0400:错误!不需要前导0
- ff:错误!必须使用前缀
0x
当编码未格式化的数据(字节数组、账户地址、哈希、字节码数组)时,编码为16进制,使用前缀0x
,
每字节使用两个16进制数字表示。例如:
- 0x41:表示“A”,1个字节
- 0x004200 :表示“\0B\0”,3个字节
- 0x:表示“”,零字节
- 0xf0f0f:错误!必须为偶数长度
- 004200:错误!必须使用前缀0x
除了数据和数量,也有标准的JSON类型,我们称之为STR(字符串)和INT(整数)。
启用Parity的JSON-RPC API
默认情况下,并非所有的API都会暴露出来。但是你可以在启动Parity时使用--jsonrpc-apis APIS
来启用相应的API。
APIS
时以逗号区隔的API名称列表。可用的名称包括:all, safe, web3, eth, net, personal,
parity, parity_set, traces, rpc, parity_accounts, signer。你可以使用-
前缀禁用某个
特定的api,例如:all,-personal
。
默认开启的api为: web3,eth,pubsub,net,parity,parity_pubsub,traces,rpc,secretstore。
Parity的JSON-RPC API列表
账户管理基础API
- personal_ecRecover - 从签名恢复地址
- personal_listAccounts - 列举所有账户
- personal_newAccount - 创建新账户
- personal_sendTransaction - 发送普通交易
- personal_sign - 计算以太坊签名
- personal_sign191 - 计算EIP191兼容签名
- personal_signTransaction - 交易签名
- personal_signTypedData - 类型数据签名
- personal_unlockAccount - 解锁账户
Parity扩展API
- parity_allTransactionHashes - 获取交易池交易哈希
- parity_allTransactions - 获取交易池交易
- parity_call - 串行调用多个交易
- parity_cidV0 - 计算内容ID
- parity_composeTransaction - 补全交易字段
- parity_consensusCapability - 查询共识能力
- parity_decryptMessage - 解密消息
- parity_encryptMessage - 加密消息
- parity_futureTransactions
- parity_getBlockHeaderByNumber - 查询区块头
- parity_getBlockReceipts - 获取区块全部交易收据
- parity_hardwarePinMatrixAck - 解锁硬件钱包
- parity_listOpenedVaults - 列举已打开保险库
- parity_listStorageKeys - 列举存储密钥
- parity_listVaults - 列举全部保险库
- parity_localTransactions - 列举本地交易
- parity_lockedHardwareAccountsInfo - 列举加锁硬件钱包
- parity_releasesInfo - 获取发行信息
- parity_signMessage - 计算消息签名
- parity_submitWorkDetail - 提交POW方案
- parity_verifySignature - 验证签名
- parity_versionInfo - 获取版本信息
保险库管理API
- parity_changeVault - 改变账户的保险库
- parity_changeVaultPassword - 修改保险库密码
- parity_closeVault - 关闭保险库
- parity_getVaultMeta - 获取保险库元数据
- parity_newVault - 创建保险库
- parity_openVault - 打开保险库
- parity_setVaultMeta - 设置保险库元数据
签名API
- parity_accountsInfo - 获取账户描述元信息
- parity_checkRequest - 检查请求是否成功
- parity_defaultAccount - 获取默认账户
- parity_generateSecretPhrase - 创建助记词
- parity_hardwareAccountsInfo - 获取硬件钱包账户信息
- parity_listAccounts - 获取全部地址
- parity_phraseToAddress - 将助记词转换为以太坊地址
- parity_postSign - 请求签名指定的消息
- parity_postTransaction - 发送交易
挖矿相关API
- parity_defaultExtraData - 获取默认的额外数据
- parity_extraData - 获取当前的额外数据
- parity_gasCeilTarget - 获取当前的gas上限目标
- parity_gasFloorTarget - 获取当前的gas下限目标
- parity_minGasPrice - 获取当前的最低gas价格
- parity_transactionsLimit - 获取交易队列的当前限额
开发相关API
网络信息API
- parity_chain - 获取接入的链名称
- parity_chainStatus - 获取区块链同步状态
- parity_gasPriceHistogram - 获取gas价格直方图
- parity_netChain - 获取链名[已弃用]
- parity_netPeers - 获取已连接的对等节点
- parity_netPort - 获取监听端口
- parity_nextNonce - 获取下一个可用nonce值
- parity_pendingTransactions - 获取待定交易清单
- parity_pendingTransactionsStats - 获取待定交易的统计
- parity_registryAddress - 获取注册中心的地址
- parity_removeTransaction - 删除本地交易
- parity_rpcSettings - 获取当前的RPC API设置
- parity_unsignedTransactionsCount - 获取未签名交易数量
节点设置API
- parity_enode - 获取节点enode地址
- parity_mode - 获取节点运行模式
- parity_nodeKind - 获取节点类型
- parity_nodeName - 获取节点名称
- parity_wsUrl - 获取websocket服务地址
Parity账户管理扩展API
- parity_allAccountsInfo - 获取全部账户描述信息
- parity_changePassword - 修改账户密码
- parity_deriveAddressHash - 指定哈希派生新地址
- parity_deriveAddressIndex - 指定索引派生新地址
- parity_exportAccount - 导出账户
- parity_importGethAccounts - 导入Geth账户
- parity_killAccount - 删除账户
- parity_listGethAccounts - 列举Geth账户
- parity_newAccountFromPhrase - 用助记词创建新账户
- parity_newAccountFromSecret - 用私钥创建新账户
- parity_newAccountFromWallet - 用钱包对象创建新账户
- parity_removeAddress - 删除地址
- parity_setAccountMeta - 设置账户元数据
- parity_setAccountName - 设置账户名称
- parity_testPassword - 测试账户密码
Parity配置API
- parity_acceptNonReservedPeers - 允许接受非保留节点
- parity_addReservedPeer - 添加保留节点
- parity_dropNonReservedPeers - 禁止接受非保留节点
- parity_executeUpgrade - 升级软件
- parity_hashContent - 计算指定内容的哈希
- parity_removeReservedPeer - 删除保留节点
- parity_setAuthor - 设置币基地址
- parity_setChain - 设置链规范
- parity_setEngineSigner - 设置共识签名账户
- parity_setExtraData - 设置新块是否成功
- parity_setGasCeilTarget - 设置出块gas上限
- parity_setGasFloorTarget - 设置出块gas下限
- parity_setMaxTransactionGas - 设置交易最大gas
- parity_setMinGasPrice - 设置最低gas价格
- parity_setMode - 设置运行模式
- parity_setTransactionsLimit
- parity_upgradeReady - 查询可升级版本
Pairty订阅API
签名API
- signer_confirmRequest - 确认交易请求
- signer_confirmRequestRaw - 确认已签名请求
- signer_confirmRequestWithToken - 使用令牌确认请求
- signer_generateAuthorizationToken - 生成授权令牌
- signer_generateWebProxyAccessToken - 生成web代理访问令牌
- signer_rejectRequest - 驳回交易请求
- signer_requestsToConfirm - 等待确认的请求
- signer_subscribePending - 订阅待定交易
- signer_unsubscribePending - 取消待定交易订阅
跟踪调试API
- trace API概述
- trace_call - 跟踪调用
- trace_callMany - 跟踪多个调用
- trace_rawTransaction - 跟踪裸交易调用
- trace_replayBlockTransactions - 跟踪重放的区块交易
- trace_replayTransaction - 跟踪重放的交易
- trace_block - 返回区块跟踪结果
- trace_filter - 过滤跟踪结果
- trace_get - 提取指定位置的跟踪结果
- trace_transaction - 提取指定交易的跟踪结果
Whisper扩展API
- shh_info
- shh_newKeyPair
- shh_addPrivateKey
- shh_newSymKey
- shh_addSymKey
- shh_getPublicKey
- shh_getPrivateKey
- shh_getSymKey
- shh_deleteKey
- shh_post
- shh_newMessageFilter
- shh_getFilterMessages
- shh_deleteMessageFilter
- shh_subscribe
- shh_unsubscribe
密钥库API