区块链功能接口列表¶
下列接口的示例中采用curl命令,curl是一个利用url语法在命令行下运行的数据传输工具,通过curl命令发送http post请求,可以访问FISCO BCOS的JSON RPC接口。curl命令的url地址设置为节点配置文件[rpc]
部分的[jsonrpc_listen_ip]
(若节点小于v2.3.0版本,查看配置项listen_ip
)和[jsonrpc listen port]
端口。为了格式化json,使用jq工具进行格式化显示。错误码参考RPC设计文档。交易回执状态列表参考这里。
错误码描述¶
RPC 错误码¶
当一个RPC调用遇到错误时,返回的响应对象必须包含error错误结果字段,该字段有下列成员参数:
code: 使用数值表示该异常的错误类型,必须为整数。
message: 对该错误的简单描述字符串。
data: 包含关于错误附加信息的基本类型或结构化类型,该成员可选。
错误对象包含两类错误码,分别是JSON-RPC标准错误码和FISCO BCOS RPC错误码。
JSON-RPC标准错误码¶
标准错误码及其对应的含义如下:
code | message | 含义 |
---|---|---|
-32600 | INVALID_JSON_REQUEST | 发送无效的请求对象 |
-32601 | METHOD_NOT_FOUND | 该方法不存在或无效 |
-32602 | INVALID_PARAMS | 无效的方法参数 |
-32603 | INTERNAL_ERROR | 内部调用错误 |
-32604 | PROCEDURE_IS_METHOD | 内部错误,请求未提供id字段 |
-32700 | JSON_PARSE_ERROR | 服务端接收到的json无法解析 |
FISCO BCOS RPC错误码¶
FISCO BCOS RPC接口错误码及其对应的含义如下:
code | message | 含义 |
---|---|---|
-40001 | GroupID does not exist | GroupID不存在 |
-40002 | Response json parse error | JSON RPC获取的json数据解析错误 |
-40003 | BlockHash does not exist | 区块哈希不存在 |
-40004 | BlockNumber does not exist | 区块高度不存在 |
-40005 | TransactionIndex is out of range | 交易索引越界 |
-40006 | Call needs a 'from' field | call接口需要提供from字段 |
-40007 | Only pbft consensus supports the view property | getPbftView接口,只有pbft共识机制有view属性 |
-40008 | Invalid System Config | getSystemConfigByKey接口,查询无效的key |
-40009 | Don't send requests to this group, the node doesn't belong to the group |
非群组内节点发起无效的请求 |
-40010 | RPC module initialization is incomplete | RPC模块初始化尚未完成 |
-40011 | Over QPS limit | SDK到节点的请求速率超过节点的请求速率限制 |
-40012 | The SDK is not allowed to access this group | SDK无访问群组的权限 |
交易回执状态¶
status(十进制/十六进制) | message | 含义 |
---|---|---|
0(0x0) | None | 正常 |
1(0x1) | Unknown | 未知异常 |
2(0x2) | BadRLP | 无效RLP异常 |
3(0x3) | InvalidFormat | 无效格式异常 |
4(0x4) | OutOfGasIntrinsic | 部署的合约长度超过gas限制/调用合约接口参数超过gas限制 |
5(0x5) | InvalidSignature | 无效的签名异常 |
6(0x6) | InvalidNonce | 无效nonce异常 |
7(0x7) | NotEnoughCash | cash不足异常 |
8(0x8) | OutOfGasBase | 调用合约的参数过长 (RC版本) |
9(0x9) | BlockGasLimitReached | GasLimit异常 |
10(0xa) | BadInstruction | 错误指令异常 |
11(0xb) | BadJumpDestination | 错误目的跳转异常 |
12(0xc) | OutOfGas | 合约执行时gas不足 / 部署的合约长度超过最长上限 |
13(0xd) | OutOfStack | 栈溢出异常 |
14(0xe) | StackUnderflow | 栈下限溢位异常 |
15(0xf) | NonceCheckFail | nonce检测失败异常 |
16(0x10) | BlockLimitCheckFail | blocklimit检测失败异常 |
17(0x11) | FilterCheckFail | filter检测失败异常 |
18(0x12) | NoDeployPermission | 非法部署合约异常 |
19(0x13) | NoCallPermission | 非法call合约异常 |
20(0x14) | NoTxPermission | 非法交易异常 |
21(0x15) | PrecompiledError | precompiled错误异常 |
22(0x16) | RevertInstruction | revert指令异常 |
23(0x17) | InvalidZeroSignatureFormat | 无效签名格式异常 |
24(0x18) | AddressAlreadyUsed | 地址占用异常 |
25(0x19) | PermissionDenied | 无权限异常 |
26(0x1a) | CallAddressError | 被调用的合约地址不存在 |
27(0x1b) | GasOverflow | Gas溢出错误 |
28(0x1c) | TxPoolIsFull | 交易池已满异常 |
29(0x1d) | TransactionRefused | 交易被拒绝异常 |
30(0x1e) | ContractFrozen | 合约被冻结异常 |
31(0x1f) | AccountFrozen | 账户被冻结异常 |
10000(0x2710) | AlreadyKnown | 交易已经在交易池中 |
10001(0x2711) | AlreadyInChain | 交易已经上链异常 |
10002(0x2712) | InvalidChainId | 无效的链ID异常 |
10003(0x2713) | InvalidGroupId | 无效的群组ID异常 |
10004(0x2714) | RequestNotBelongToTheGroup | 请求不属于群组异常 |
10005(0x2715) | MalformedTx | 交易格式错误 |
10006(0x2716) | OverGroupMemoryLimit | 超出群组内存限制异常 |
Precompiled Service API 错误码¶
错误码 | 消息内容 | 备注 |
---|---|---|
0 | success | |
-50000 | permission denied | |
-50001 | table name already exist | |
-50002 | table name length is overflowed | |
-50003 | table name field length is overflowed | |
-50004 | table name field total length is overflowed | |
-50005 | table key value length is overflowed | |
-50006 | table field value length is overflowed | |
-50007 | table field is duplicated | |
-50008 | table field is invalidate | |
-50100 | table does not exist | |
-50101 | unknown function call | |
-50102 | address invalid | |
-51002 | table name overflow | |
-51003 | contract not exist | |
-51004 | committee member permission managed by ChainGovernance | |
-51000 | table name or address already exist | |
-51001 | table name or address does not exist | |
-51100 | invalid node ID | SDK错误码 |
-51101 | the last sealer cannot be removed | |
-51102 | the node is not reachable | SDK错误码 |
-51103 | the node is not a group peer | SDK错误码 |
-51104 | the node is already in the sealer list | SDK错误码 |
-51105 | the node is already in the observer list | SDK错误码 |
-51200 | contract name and version already exist | SDK错误码 |
-51201 | version length exceeds the maximum limit | SDK错误码 |
-51300 | invalid configuration entry | |
-51500 | entry parse error | |
-51501 | condition parse error | |
-51502 | condition operation undefined | |
-51600 | invalid ciphers | |
-51700 | group sig failed | |
-51800 | ring sig failed | |
-51900 | contract frozen | |
-51901 | contract available | |
-51902 | contract repeat authorization | |
-51903 | invalid contract address | |
-51904 | table not exist | |
-51905 | no authorized | |
-52000 | committee member exist | |
-52001 | committee member not exist | |
-52002 | invalid request permission denied | |
-52003 | invalid threshold | |
-52004 | operator can't be committee member | |
-52005 | committee member can't be operator | |
-52006 | operator exist | |
-52007 | operator not exist | |
-52008 | account not exist | |
-52009 | invalid account address | |
-52010 | account already available | |
-52011 | account frozen | |
-52012 | current value is expected value |
动态群组管理API状态码¶
状态码 | 消息内容 | 释义 |
---|---|---|
0x0 | SUCCESS | 接口调用成功 |
0x1 | INTERNAL_ERROR | 节点内部错误 |
0x2 | GROUP_ALREADY_EXISTS | 调用创建群组接口时,群组已存在 |
0x3 | GROUP_ALREADY_RUNNING | 调用启动群组接口时,群组已处于运行状态 |
0x4 | GROUP_ALREADY_STOPPED | 调用停止群组接口时,群组已处于停止状态 |
0x5 | GROUP_ALREADY_DELETED | 调用删除群组接口时,群组已处于删除状态 |
0x6 | GROUP_NOT_FOUND | 调用接口时,对应的群组不存在 |
0x7 | INVALID_PARAMS | 调用接口时,参数不合法 |
0x8 | PEERS_NOT_CONNECTED | 调用创建群组接口时,与sealer间不存在有效的P2P连接 |
0x9 | GENESIS_CONF_ALREADY_EXISTS | 调用创建群组接口时,创世块配置文件已存在 |
0xa | GROUP_CONF_ALREADY_EXIST | 调用创建群组接口时,群组配置文件已存在 |
0xb | GENESIS_CONF_NOT_FOUND | 调用启动群组接口时,未找到创世块配置文件 |
0xc | GROUP_CONF_NOT_FOUND | 调用启动群组接口时,未找到群组配置文件 |
0xd | GROUP_IS_STOPPING | 调用接口时,群组正在释放资源 |
0xf | GROUP_NOT_DELETED | 调用恢复接口时,群组并未被删除 |
getClientVersion¶
返回节点的版本信息
参数¶
无
返回值¶
object
- 版本信息,字段如下:Build Time
:string
- 编译时间Build Type
:string
- 编译机器环境Chain Id
:string
- 链IDFISCO-BCOS Version
:string
- 节点版本Git Branch
:string
- 版本分支Git Commit Hash
:string
- 版本最新commit哈希Supported Version
:string
- 节点支持的版本
示例
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"getClientVersion","params":[],"id":1}' http://127.0.0.1:8545 |jq
// Result
{
"id": 83,
"jsonrpc": "2.0",
"result": {
"Build Time": "20190106 20:49:10",
"Build Type": "Linux/g++/RelWithDebInfo",
"FISCO-BCOS Version": "2.0.0",
"Git Branch": "master-2.0",
"Git Commit Hash": "693a709ddab39965d9c39da0104836cfb4a72054"
}
}
getBlockNumber¶
返回节点指定群组内的最新区块高度
参数¶
groupID
:unsigned int
- 群组ID
返回值¶
string
- 最新区块高度(0x开头的十六进制字符串)示例
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"getBlockNumber","params":[1],"id":1}' http://127.0.0.1:8545 |jq
// Result
{
"id": 1,
"jsonrpc": "2.0",
"result": "0x1"
}
getPbftView¶
返回节点所在指定群组内的最新PBFT视图
参数¶
groupID
:unsigned int
- 群组ID
返回值¶
string
- 最新的PBFT视图示例
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"getPbftView","params":[1],"id":1}' http://127.0.0.1:8545 |jq
// Result
{
"id": 1,
"jsonrpc": "2.0",
"result": "0x1a0"
}
注: FISCO BCOS支持PBFT共识和Raft共识,当访问的区块链采用Raft共识时,该接口返回FISCO BCOS自定义错误响应如下:
{
"error": {
"code": 7,
"data": null,
"message": "Only pbft consensus supports the view property"
},
"id": 1,
"jsonrpc": "2.0"
}
getSealerList¶
返回指定群组内的共识节点列表
参数¶
groupID
:unsigned int
- 群组ID
返回值¶
array
- 共识节点ID列表示例
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"getSealerList","params":[1],"id":1}' http://127.0.0.1:8545 |jq
// Result
{
"id": 1,
"jsonrpc": "2.0",
"result": [
"037c255c06161711b6234b8c0960a6979ef039374ccc8b723afea2107cba3432dbbc837a714b7da20111f74d5a24e91925c773a72158fa066f586055379a1772",
"0c0bbd25152d40969d3d3cee3431fa28287e07cff2330df3258782d3008b876d146ddab97eab42796495bfbb281591febc2a0069dcc7dfe88c8831801c5b5801",
"622af37b2bd29c60ae8f15d467b67c0a7fe5eb3e5c63fdc27a0ee8066707a25afa3aa0eb5a3b802d3a8e5e26de9d5af33806664554241a3de9385d3b448bcd73"
]
}
getObserverList¶
返回指定群组内的观察节点列表
参数¶
groupID
:unsigned int
- 群组ID
返回值¶
array
- 观察节点ID列表示例
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"getObserverList","params":[1],"id":1}' http://127.0.0.1:8545 |jq
// Result
{
"id": 1,
"jsonrpc": "2.0",
"result": [
"10b3a2d4b775ec7f3c2c9e8dc97fa52beb8caab9c34d026db9b95a72ac1d1c1ad551c67c2b7fdc34177857eada75836e69016d1f356c676a6e8b15c45fc9bc34"
]
}
getConsensusStatus¶
返回指定群组内的共识状态信息
参数¶
groupID
:unsigned int
- 群组ID
返回值¶
object
- 共识状态信息。当共识机制为PBFT时(PBFT详细设计参考PBFT设计文档),字段如下:
accountType
:unsigned int
- 节点类型,0表示观察节点,1表示共识节点allowFutureBlocks
:bool
- 允许未来块标志,当前为truecfgErr
:bool
- 表明节点是否出错,true表示节点已经异常connectedNodes
:unsigned int
- 连接的节点数consensusedBlockNumber
:unsigned int
- 当前正在共识的区块高度currentView
:unsigned int
- 当前视图groupId
:unsigned int
- 群组IDhighestblockHash
:string
- 最新块哈希highestblockNumber
:unsigned int
- 最新区块高度leaderFailed
:bool
- leader失败标志,若为false,节点可能正在处理超时max_faulty_leader
:unsigned int
- 最大容错节点数nodeNum
:unsigned int
- 节点的数node_index
:unsigned int
- 共识节点索引nodeId
:string
- 节点的IDomitEmptyBlock
:bool
- 忽略空块标志位,为trueprotocolId
:unsigned int
- 协议ID号sealer.index
:string
- 指定索引index
对应的共识节点nodeIDtoView
:unsigned int
- 目前到达的view值与本节点相连的所有共识节点nodeID和视图view信息
当共识机制为Raft时(Raft详细设计参考Raft设计文档),字段如下:
accountType
:unsigned int
- 账户类型allowFutureBlocks
:bool
- 允许未来块标志cfgErr
:bool
- 配置错误标志consensusedBlockNumber
:unsigned int
- 下一个共识的最新块高groupId
:unsigned int
- 群组IDhighestblockHash
:string
- 最新块哈希highestblockNumber
:unsigned int
- 最新区块高度leaderId
:string
- leader的nodeIdleaderIdx
:unsigned int
- leader的序号max_faulty_leader
:unsigned int
- 最大容错节点数sealer.index
:string
- 节点序号为index的nodeIdnode index
:unsigned int
- 节点的indexnodeId
:string
- 节点的IDnodeNum
:unsigned int
- 节点的数omitEmptyBlock
:bool
- 忽略空块标志位protocolId
:unsigned int
- 协议ID号
示例
// Request PBFT
curl -X POST --data '{"jsonrpc":"2.0","method":"getConsensusStatus","params":[1],"id":1}' http://127.0.0.1:8545 |jq
// Result
{
"id": 1,
"jsonrpc": "2.0",
"result": [
{
"accountType": 1,
"allowFutureBlocks": true,
"cfgErr": false,
"connectedNodes": 3,
"consensusedBlockNumber": 38207,
"currentView": 54477,
"groupId": 1,
"highestblockHash": "0x19a16e8833e671aa11431de589c866a6442ca6c8548ba40a44f50889cd785069",
"highestblockNumber": 38206,
"leaderFailed": false,
"max_faulty_leader": 1,
"nodeId": "f72648fe165da17a889bece08ca0e57862cb979c4e3661d6a77bcc2de85cb766af5d299fec8a4337eedd142dca026abc2def632f6e456f80230902f93e2bea13",
"nodeNum": 4,
"node_index": 3,
"omitEmptyBlock": true,
"protocolId": 65544,
"sealer.0": "6a99f357ecf8a001e03b68aba66f68398ee08f3ce0f0147e777ec77995369aac470b8c9f0f85f91ebb58a98475764b7ca1be8e37637dd6cb80b3355749636a3d",
"sealer.1": "8a453f1328c80b908b2d02ba25adca6341b16b16846d84f903c4f4912728c6aae1050ce4f24cd9c13e010ce922d3393b846f6f5c42f6af59c65a814de733afe4",
"sealer.2": "ed483837e73ee1b56073b178f5ac0896fa328fc0ed418ae3e268d9e9109721421ec48d68f28d6525642868b40dd26555c9148dbb8f4334ca071115925132889c",
"sealer.3": "f72648fe165da17a889bece08ca0e57862cb979c4e3661d6a77bcc2de85cb766af5d299fec8a4337eedd142dca026abc2def632f6e456f80230902f93e2bea13",
"toView": 54477
},
[
{
"nodeId": "6a99f357ecf8a001e03b68aba66f68398ee08f3ce0f0147e777ec77995369aac470b8c9f0f85f91ebb58a98475764b7ca1be8e37637dd6cb80b3355749636a3d",
"view": 54474
},
{
"nodeId": "8a453f1328c80b908b2d02ba25adca6341b16b16846d84f903c4f4912728c6aae1050ce4f24cd9c13e010ce922d3393b846f6f5c42f6af59c65a814de733afe4",
"view": 54475
},
{
"nodeId": "ed483837e73ee1b56073b178f5ac0896fa328fc0ed418ae3e268d9e9109721421ec48d68f28d6525642868b40dd26555c9148dbb8f4334ca071115925132889c",
"view": 54476
},
{
"nodeId": "f72648fe165da17a889bece08ca0e57862cb979c4e3661d6a77bcc2de85cb766af5d299fec8a4337eedd142dca026abc2def632f6e456f80230902f93e2bea13",
"view": 54477
}
]
]
}
// Request Raft
curl -X POST --data '{"jsonrpc":"2.0","method":"getConsensusStatus","params":[1],"id":1}' http://127.0.0.1:8545 |jq
// Result
{
"id": 1,
"jsonrpc": "2.0",
"result": [
{
"accountType": 1,
"allowFutureBlocks": true,
"cfgErr": false,
"consensusedBlockNumber": 1,
"groupId": 1,
"highestblockHash": "0x4765a126a9de8d876b87f01119208be507ec28495bef09c1e30a8ab240cf00f2",
"highestblockNumber": 0,
"leaderId": "d5b3a9782c6aca271c9642aea391415d8b258e3a6d92082e59cc5b813ca123745440792ae0b29f4962df568f8ad58b75fc7cea495684988e26803c9c5198f3f8",
"leaderIdx": 3,
"max_faulty_leader": 1,
"sealer.0": "29c34347a190c1ec0c4507c6eed6a5bcd4d7a8f9f54ef26da616e81185c0af11a8cea4eacb74cf6f61820292b24bc5d9e426af24beda06fbd71c217960c0dff0",
"sealer.1": "41285429582cbfe6eed501806391d2825894b3696f801e945176c7eb2379a1ecf03b36b027d72f480e89d15bacd43462d87efd09fb0549e0897f850f9eca82ba",
"sealer.2": "87774114e4a496c68f2482b30d221fa2f7b5278876da72f3d0a75695b81e2591c1939fc0d3fadb15cc359c997bafc9ea6fc37345346acaf40b6042b5831c97e1",
"sealer.3": "d5b3a9782c6aca271c9642aea391415d8b258e3a6d92082e59cc5b813ca123745440792ae0b29f4962df568f8ad58b75fc7cea495684988e26803c9c5198f3f8",
"node index": 1,
"nodeId": "41285429582cbfe6eed501806391d2825894b3696f801e945176c7eb2379a1ecf03b36b027d72f480e89d15bacd43462d87efd09fb0549e0897f850f9eca82ba",
"nodeNum": 4,
"omitEmptyBlock": true,
"protocolId": 267
}
]
}
getSyncStatus¶
返回指定群组内的同步状态信息
参数¶
groupID
:unsigned int
- 群组ID
返回值¶
object
- 同步状态信息,字段如下:blockNumber
:unsigned int
- 最新区块高度genesisHash
:string
- 创世块哈希isSyncing
:bool
- 正在同步标志knownHighestNumber
:unsigned int
- 此节点已知的当前区块链最高块高knownLatestHash
:string
- 此节点已知的当前区块链最高块哈希latestHash
:string
- 最新区块哈希nodeId
:string
- 节点的IDprotocolId
:unsigned int
- 协议ID号txPoolSize
:string
- 交易池中交易的数量peers
:array
- 已连接的指定群组内p2p节点,节点信息字段如下:blockNumber
:unsigned int
- 最新区块高度genesisHash
:string
- 创始区块哈希latestHash
:string
- 最新块哈希nodeId
:string
- 节点的ID
示例
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"getSyncStatus","params":[1],"id":1}' http://127.0.0.1:8545 |jq
// Result
{
"id": 1,
"jsonrpc": "2.0",
"result": {
"blockNumber": 0,
"genesisHash": "0x4765a126a9de8d876b87f01119208be507ec28495bef09c1e30a8ab240cf00f2",
"isSyncing": false,
"knownHighestNumber":0,
"knownLatestHash":"0x4765a126a9de8d876b87f01119208be507ec28495bef09c1e30a8ab240cf00f2",
"latestHash": "0x4765a126a9de8d876b87f01119208be507ec28495bef09c1e30a8ab240cf00f2",
"nodeId": "41285429582cbfe6eed501806391d2825894b3696f801e945176c7eb2379a1ecf03b36b027d72f480e89d15bacd43462d87efd09fb0549e0897f850f9eca82ba",
"peers": [
{
"blockNumber": 0,
"genesisHash": "0x4765a126a9de8d876b87f01119208be507ec28495bef09c1e30a8ab240cf00f2",
"latestHash": "0x4765a126a9de8d876b87f01119208be507ec28495bef09c1e30a8ab240cf00f2",
"nodeId": "29c34347a190c1ec0c4507c6eed6a5bcd4d7a8f9f54ef26da616e81185c0af11a8cea4eacb74cf6f61820292b24bc5d9e426af24beda06fbd71c217960c0dff0"
},
{
"blockNumber": 0,
"genesisHash": "0x4765a126a9de8d876b87f01119208be507ec28495bef09c1e30a8ab240cf00f2",
"latestHash": "0x4765a126a9de8d876b87f01119208be507ec28495bef09c1e30a8ab240cf00f2",
"nodeId": "87774114e4a496c68f2482b30d221fa2f7b5278876da72f3d0a75695b81e2591c1939fc0d3fadb15cc359c997bafc9ea6fc37345346acaf40b6042b5831c97e1"
},
{
"blockNumber": 0,
"genesisHash": "0x4765a126a9de8d876b87f01119208be507ec28495bef09c1e30a8ab240cf00f2",
"latestHash": "0x4765a126a9de8d876b87f01119208be507ec28495bef09c1e30a8ab240cf00f2",
"nodeId": "d5b3a9782c6aca271c9642aea391415d8b258e3a6d92082e59cc5b813ca123745440792ae0b29f4962df568f8ad58b75fc7cea495684988e26803c9c5198f3f8"
}
],
"protocolId": 265,
"txPoolSize": "0"
}
}
getPeers¶
返回已连接的p2p节点信息
参数¶
groupID
:unsigned int
- 群组ID
返回值¶
array
- 已连接的p2p节点信息,字段如下:IPAndPort
:string
- 节点连接的ip和端口nodeId
:string
- 节点的IDTopic
:array
- 节点关注的topic信息
示例
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"getPeers","params":[1],"id":1}' http://127.0.0.1:8545 |jq
// Result
{
"id": 1,
"jsonrpc": "2.0",
"result": [
{
"IPAndPort": "127.0.0.1:30308",
"nodeId": "0701cc9f05716690437b78db5b7c9c97c4f8f6dd05794ba4648b42b9267ae07cfcd589447ac36c491e7604242149601d67c415504a838524939ef2230d36ffb8",
"Topic": [ ]
},
{
"IPAndPort": "127.0.0.1:58348",
"nodeId": "353ab5990997956f21b75ff5d2f11ab2c6971391c73585963e96fe2769891c4bc5d8b7c3d0d04f50ad6e04c4445c09e09c38139b1c0a5937a5778998732e34da",
"Topic": [ ]
},
{
"IPAndPort": "127.0.0.1:30300",
"nodeId": "73aebaea2baa9640df416d0e879d6e0a6859a221dad7c2d34d345d5dc1fe9c4cda0ab79a7a3f921dfc9bdea4a49bb37bdb0910c338dadab2d8b8e001186d33bd",
"Topic": [ ]
}
]
}
getGroupPeers¶
返回指定群组内的共识节点和观察节点列表
参数¶
groupID
:unsigned int
- 群组ID
返回值¶
array
- 共识节点和观察节点的ID列表示例
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"getGroupPeers","params":[1],"id":1}' http://127.0.0.1:8545 |jq
// Result
{
"id": 1,
"jsonrpc": "2.0",
"result": [
"0c0bbd25152d40969d3d3cee3431fa28287e07cff2330df3258782d3008b876d146ddab97eab42796495bfbb281591febc2a0069dcc7dfe88c8831801c5b5801",
"037c255c06161711b6234b8c0960a6979ef039374ccc8b723afea2107cba3432dbbc837a714b7da20111f74d5a24e91925c773a72158fa066f586055379a1772",
"622af37b2bd29c60ae8f15d467b67c0a7fe5eb3e5c63fdc27a0ee8066707a25afa3aa0eb5a3b802d3a8e5e26de9d5af33806664554241a3de9385d3b448bcd73",
"10b3a2d4b775ec7f3c2c9e8dc97fa52beb8caab9c34d026db9b95a72ac1d1c1ad551c67c2b7fdc34177857eada75836e69016d1f356c676a6e8b15c45fc9bc34"
]
}
getNodeIDList¶
返回节点本身和已连接的p2p节点列表
参数¶
groupID
:unsigned int
- 群组ID
返回值¶
array
- 节点本身和已连接p2p节点的ID列表示例
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"getNodeIDList","params":[1],"id":1}' http://127.0.0.1:8545 |jq
// Result
{
"id": 1,
"jsonrpc": "2.0",
"result": [
"0c0bbd25152d40969d3d3cee3431fa28287e07cff2330df3258782d3008b876d146ddab97eab42796495bfbb281591febc2a0069dcc7dfe88c8831801c5b5801",
"037c255c06161711b6234b8c0960a6979ef039374ccc8b723afea2107cba3432dbbc837a714b7da20111f74d5a24e91925c773a72158fa066f586055379a1772",
"622af37b2bd29c60ae8f15d467b67c0a7fe5eb3e5c63fdc27a0ee8066707a25afa3aa0eb5a3b802d3a8e5e26de9d5af33806664554241a3de9385d3b448bcd73",
"10b3a2d4b775ec7f3c2c9e8dc97fa52beb8caab9c34d026db9b95a72ac1d1c1ad551c67c2b7fdc34177857eada75836e69016d1f356c676a6e8b15c45fc9bc34"
]
}
getGroupList¶
返回节点所属群组的群组ID列表
参数¶
无
返回值¶
array
- 节点所属群组的群组ID列表示例
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"getGroupList","params":[],"id":1}' http://127.0.0.1:8545 |jq
// Result
{
"id": 1,
"jsonrpc": "2.0",
"result": [1]
}
getBlockByHash¶
返回根据区块哈希查询的区块信息
参数¶
groupID
:unsigned int
- 群组IDblockHash
:string
- 区块哈希includeTransactions
:bool
- 包含交易标志(true显示交易详细信息,false仅显示交易的hash)
返回值¶
object
- 区块信息,字段如下:dbHash
:string
- 记录交易数据变更的哈希extraData
:array
- 附加数据gasLimit
:string
- 区块中允许的gas最大值gasUsed
:string
- 区块中所有交易消耗的gashash
:string
- 区块哈希logsBloom
:string
- log的布隆过滤器值number
:string
- 区块高度parentHash
:string
- 父区块哈希receiptsRoot
:string
- 区块内所有交易回执的merkle根sealer
:string
- 共识节点序号sealerList
:array
- 共识节点列表signatureList
:string
- PBFT共识的签名列表stateRoot
:string
- 状态根哈希timestamp
:string
- 时间戳,单位毫秒transactions
:array
- 交易列表,当includeTransactions
为false
时,显示交易的哈希。当includeTransactions
为true
时,显示交易详细信息(详细字段见getTransactionByHash)transactionsRoot
:string
- 区块内所有交易的merkle根
示例
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"getBlockByHash","params":[1,"0xfa639d1454362a8cdfcab1ca1948a5defaf7048b28f67e80780ab1e24e8f8c59",true],"id":1}' http://127.0.0.1:8545 |jq
// Result
{
"id": 1,
"jsonrpc": "2.0",
"result": {
"dbHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": [],
"gasLimit": "0x0",
"gasUsed": "0x0",
"hash": "0xfa639d1454362a8cdfcab1ca1948a5defaf7048b28f67e80780ab1e24e8f8c59",
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"number": "0x1",
"parentHash": "0x249f59e00beac8424a7821c4750fdd70c128f4ce795afbab53f345e9fce95d1a",
"receiptsRoot": "0x69a04fa6073e4fc0947bac7ee6990e788d1e2c5ec0fe6c2436d0892e7f3c09d2",
"sealer": "0x0",
"sealerList": [
"4ca3a91a4937355dba6a2e5fe76141479a1fc44e9caa86750092dab64e0b8382f6b8476749c2d2de414350a54491620d38813d2a1442f524e36e3d9946109c4d"
],
"signatureList": [
{
"index": "0x0",
"signature": "0x4602135870d9a4846e2536d4a48e831825a5d95768dd0d4f08544a0bd4c2af41242dec1751a05c07d7572027f8d6ac1625c48145beb004e2dce8b7ce9e2bb73d00"
}
],
"stateRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
"timestamp": "0x175ac38cf10",
"transactions": [
{
"blockHash": "0xfa639d1454362a8cdfcab1ca1948a5defaf7048b28f67e80780ab1e24e8f8c59",
"blockLimit": "0x100",
"blockNumber": "0x1",
"chainId": "0x1",
"extraData": "0x",
"from": "0x57c7be32cbfb3bfed4fddc87efcc735b4e945fb3",
"gas": "0x2faf080",
"gasPrice": "0xa",
"groupId": "0x1",
"hash": "0x3961fac263d8e640b148ddcfafd71d2069e93a006abc937c32fb16cfa96e661d",
"input": "0x4ed3885e0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000a464953434f2042434f5300000000000000000000000000000000000000000000",
"nonce": "0x3eb675ec791c2d19858c91d0046821c27d815e2e9c151604912205000002968",
"signature": {
"r": "0x9edf7c0cb63645442aff11323916d51ec5440de979950747c0189f338afdcefd",
"s": "0x2f3473184513c6a3516e066ea98b7cfb55a79481c9db98e658dd016c37f03dcf",
"signature": "0x9edf7c0cb63645442aff11323916d51ec5440de979950747c0189f338afdcefd2f3473184513c6a3516e066ea98b7cfb55a79481c9db98e658dd016c37f03dcf00",
"v": "0x0"
},
"to": "0x8c17cf316c1063ab6c89df875e96c9f0f5b2f744",
"transactionIndex": "0x0",
"value": "0x0"
}
],
"transactionsRoot": "0xb880b08df3b43a9ffc334d7a526522b33e004ef95403d61d76454b6085b9b2f1"
}
}
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"getBlockByHash","params":[1,"0xfa639d1454362a8cdfcab1ca1948a5defaf7048b28f67e80780ab1e24e8f8c59",false],"id":1}' http://127.0.0.1:8545 |jq
// Result
{
"id": 1,
"jsonrpc": "2.0",
"result": {
"dbHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": [],
"gasLimit": "0x0",
"gasUsed": "0x0",
"hash": "0xfa639d1454362a8cdfcab1ca1948a5defaf7048b28f67e80780ab1e24e8f8c59",
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"number": "0x1",
"parentHash": "0x249f59e00beac8424a7821c4750fdd70c128f4ce795afbab53f345e9fce95d1a",
"receiptsRoot": "0x69a04fa6073e4fc0947bac7ee6990e788d1e2c5ec0fe6c2436d0892e7f3c09d2",
"sealer": "0x0",
"sealerList": [
"4ca3a91a4937355dba6a2e5fe76141479a1fc44e9caa86750092dab64e0b8382f6b8476749c2d2de414350a54491620d38813d2a1442f524e36e3d9946109c4d"
],
"stateRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
"timestamp": "0x175ac38cf10",
"transactions": [
"0x3961fac263d8e640b148ddcfafd71d2069e93a006abc937c32fb16cfa96e661d"
],
"transactionsRoot": "0xb880b08df3b43a9ffc334d7a526522b33e004ef95403d61d76454b6085b9b2f1"
}
}
getBlockByNumber¶
返回根据区块高度查询的区块信息
参数¶
groupID
:unsigned int
- 群组IDblockNumber
:string
- 区块高度(十进制字符串或0x开头的十六进制字符串)includeTransactions
:bool
- 包含交易标志(true显示交易详细信息,false仅显示交易的hash)
返回值¶
示例
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"getBlockByNumber","params":[1,"0x0",true],"id":1}' http://127.0.0.1:8545 |jq
Result见getBlockByHash
getBlockHeaderByHash¶
根据区块哈希获取区块头信息
参数¶
groupID
:unsigned int
- 群组IDblockHash
:string
- 区块哈希includeSignatures
:bool
- 包含签名列表标志(true显示签名列表),如果为true,则会带上下面例子中的signatureList
字段。
返回值¶
//Request
curl -X POST --data '{"jsonrpc":"2.0","method":"getBlockHeaderByHash","params":[1,"0x99576e7567d258bd6426ddaf953ec0c953778b2f09a078423103c6555aa4362d",true],"id":1}' http://127.0.0.1:8545 |jq
// Result
{
"id": 1,
"jsonrpc": "2.0",
"result": {
"dbHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": [],
"gasLimit": "0x0",
"gasUsed": "0x0",
"hash": "0x99576e7567d258bd6426ddaf953ec0c953778b2f09a078423103c6555aa4362d",
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"number": "0x1",
"parentHash": "0x4f6394763c33c1709e5a72b202ad4d7a3b8152de3dc698cef6f675ecdaf20a3b",
"receiptsRoot": "0x69a04fa6073e4fc0947bac7ee6990e788d1e2c5ec0fe6c2436d0892e7f3c09d2",
"sealer": "0x2",
"sealerList": [
"11e1be251ca08bb44f36fdeedfaeca40894ff80dfd80084607a75509edeaf2a9c6fee914f1e9efda571611cf4575a1577957edfd2baa9386bd63eb034868625f",
"78a313b426c3de3267d72b53c044fa9fe70c2a27a00af7fea4a549a7d65210ed90512fc92b6194c14766366d434235c794289d66deff0796f15228e0e14a9191",
"95b7ff064f91de76598f90bc059bec1834f0d9eeb0d05e1086d49af1f9c2f321062d011ee8b0df7644bd54c4f9ca3d8515a3129bbb9d0df8287c9fa69552887e",
"b8acb51b9fe84f88d670646be36f31c52e67544ce56faf3dc8ea4cf1b0ebff0864c6b218fdcd9cf9891ebd414a995847911bd26a770f429300085f37e1131f36"
],
"signatureList": [
{
"index": "0x2",
"signature": "0xae098aabc63a53b8dcb57da9a87f13aebf231bfe1704da88f125cee6b4b30ee0609d0720a97bed1900b96bc3e7a63584158340b5b7f802945241f61731f9358900"
},
{
"index": "0x0",
"signature": "0x411cb93f816549eba82c3bf8c03fa637036dcdee65667b541d0da06a6eaea80d16e6ca52bf1b08f77b59a834bffbc124c492ea7a1601d0c4fb257d97dc97cea600"
},
{
"index": "0x3",
"signature": "0xb5b41e49c0b2bf758322ecb5c86dc3a3a0f9b98891b5bbf50c8613a241f05f595ce40d0bb212b6faa32e98546754835b057b9be0b29b9d0c8ae8b38f7487b8d001"
}
],
"stateRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
"timestamp": "0x173ad8703d6",
"transactionsRoot": "0xb563f70188512a085b5607cac0c35480336a566de736c83410a062c9acc785ad"
}
}
getBlockHeaderByNumber¶
返回根据区块高度查询的区块头
参数¶
groupID
:unsigned int
- 群组IDblockNumber
:string
- 区块高度(十进制字符串或0x开头的十六进制字符串)includeSignatures
:bool
- 包含签名列表标志(true显示签名列表)
返回值¶
示例
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"getBlockHeaderByNumber","params":[1,"0x0",true],"id":1}' http://127.0.0.1:8545 |jq
Result见getBlockHeaderByHash
getBlockHashByNumber¶
返回根据区块高度查询的区块哈希
参数¶
groupID
:unsigned int
- 群组IDblockNumber
:string
- 区块高度(十进制字符串或0x开头的十六进制字符串)
返回值¶
blockHash
:string
- 区块哈希示例
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"getBlockHashByNumber","params":[1,"0x1"],"id":1}' http://127.0.0.1:8545 |jq
// Result
{
"id": 1,
"jsonrpc": "2.0",
"result": "0x10bfdc1e97901ed22cc18a126d3ebb8125717c2438f61d84602f997959c631fa"
}
getTransactionByHash¶
返回根据交易哈希查询的交易信息
参数¶
groupID
:unsigned int
- 群组IDtransactionHash
:string
- 交易哈希
返回值¶
object
: - 交易信息,其字段如下:blockHash
:string
- 包含该交易的区块哈希blockLimit
:string
- 交易的blockLimit
,用于交易防重chainId
:string
- 交易所在的链IDextraData
:string
- 交易内的extraDatagroupId
:string
- 交易所在的群组IDblockNumber
:string
- 包含该交易的区块高度from
:string
- 发送者的地址gas
:string
- 发送者提供的gasgasPrice
:string
- 发送者提供的gas的价格hash
:string
- 交易哈希input
:string
- 交易的输入nonce
:string
- 交易的nonce值signature
: 交易签名,包含r
,s
,v
以及序列化的交易签名signature
to
:string
- 接收者的地址,创建合约交易的该值为0x0000000000000000000000000000000000000000
transactionIndex
:string
- 交易的序号value
:string
- 转移的值
示例
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"getTransactionByHash","params":[1,"0x3961fac263d8e640b148ddcfafd71d2069e93a006abc937c32fb16cfa96e661d"],"id":1}' http://127.0.0.1:8545 |jq
// Result
{
"id": 1,
"jsonrpc": "2.0",
"result": {
"blockHash": "0xfa639d1454362a8cdfcab1ca1948a5defaf7048b28f67e80780ab1e24e8f8c59",
"blockLimit": "0x100",
"blockNumber": "0x1",
"chainId": "0x1",
"extraData": "0x",
"from": "0x57c7be32cbfb3bfed4fddc87efcc735b4e945fb3",
"gas": "0x2faf080",
"gasPrice": "0xa",
"groupId": "0x1",
"hash": "0x3961fac263d8e640b148ddcfafd71d2069e93a006abc937c32fb16cfa96e661d",
"input": "0x4ed3885e0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000a464953434f2042434f5300000000000000000000000000000000000000000000",
"nonce": "0x3eb675ec791c2d19858c91d0046821c27d815e2e9c151604912205000002968",
"signature": {
"r": "0x9edf7c0cb63645442aff11323916d51ec5440de979950747c0189f338afdcefd",
"s": "0x2f3473184513c6a3516e066ea98b7cfb55a79481c9db98e658dd016c37f03dcf",
"signature": "0x9edf7c0cb63645442aff11323916d51ec5440de979950747c0189f338afdcefd2f3473184513c6a3516e066ea98b7cfb55a79481c9db98e658dd016c37f03dcf00",
"v": "0x0"
},
"to": "0x8c17cf316c1063ab6c89df875e96c9f0f5b2f744",
"transactionIndex": "0x0",
"value": "0x0"
}
}
getTransactionByBlockHashAndIndex¶
返回根据区块哈希和交易序号查询的交易信息
参数¶
groupID
:unsigned int
- 群组IDblockHash
:string
- 区块哈希transactionIndex
:string
- 交易序号
返回值¶
示例
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"getTransactionByBlockHashAndIndex","params":[1,"0x10bfdc1e97901ed22cc18a126d3ebb8125717c2438f61d84602f997959c631fa","0x0"],"id":1}' http://127.0.0.1:8545 |jq
Result见getTransactionByHash
getTransactionByBlockNumberAndIndex¶
返回根据区块高度和交易序号查询的交易信息
参数¶
groupID
:unsigned int
- 群组IDblockNumber
:string
- 区块高度(十进制字符串或0x开头的十六进制字符串)transactionIndex
:string
- 交易序号
返回值¶
示例
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"getTransactionByBlockNumberAndIndex","params":[1,"0x1","0x0"],"id":1}' http://127.0.0.1:8545 |jq
Result见getTransactionByHash
getTransactionReceipt¶
返回根据交易哈希查询的交易回执信息
参数¶
groupID
:unsigned int
- 群组IDtransactionHash
:string
- 交易哈希
返回值¶
object
: - 交易信息,其字段如下:blockHash
:string
- 包含该交易的区块哈希blockNumber
:string
- 包含该交易的区块高度contractAddress
:string
- 合约地址,如果创建合约交易,则为合约部署地址,如果是调用合约,则为”0x0000000000000000000000000000000000000000”from
:string
- 发送者的地址gasUsed
:string
- 交易消耗的gasinput
:string
- 交易的输入logs
:array
- 交易产生的loglogsBloom
:string
- log的布隆过滤器值output
:string
- 交易的输出root
:string
- 状态根(state root)status
:string
- 交易的状态值,参考:交易回执状态to
:string
- 接收者的地址,创建合约交易的该值为nulltransactionHash
:string
- 交易哈希transactionIndex
:string
- 交易序号
示例
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"getTransactionReceipt","params":[1,"0x708b5781b62166bd86e543217be6cd954fd815fd192b9a124ee9327580df8f3f"],"id":1}' http://127.0.0.1:8545 |jq
// Result
{
"id": 1,
"jsonrpc": "2.0",
"result": {
"blockHash": "0x977efec48c248ea4be87016446b40d7785d7b71b7d4e3aa0b103b9cf0f5fe19e",
"blockNumber": "0xa",
"contractAddress": "0x0000000000000000000000000000000000000000",
"from": "0xcdcce60801c0a2e6bb534322c32ae528b9dec8d2",
"gasUsed": "0x1fb8d",
"input": "0xb602109a000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000203078313030303030303030303030303030303030303030303030303030303030000000000000000000000000000000000000000000000000000000000000000832303139303733300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002616100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026262000000000000000000000000000000000000000000000000000000000000",
"logs": [ ],
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"output": "0x0000000000000000000000000000000000000000000000000000000000000000",
"root":"0x38723a2e5e8a17aa7950dc008209944e898f69a7bd10a23c839d341e935fd5ca",
"status": "0x0",
"to": "0x15538acd403ac1b2ff09083c70d04856b8c0bdfd",
"transactionHash": "0x708b5781b62166bd86e543217be6cd954fd815fd192b9a124ee9327580df8f3f",
"transactionIndex": "0x0"
}
}
getPendingTransactions¶
返回待打包的交易信息
参数¶
groupID
:unsigned int
- 群组ID
返回值¶
object
: - 带打包的交易信息,其字段如下:from
:string
- 发送者的地址gas
:string
- 发送者提供的gasgasPrice
:string
- 发送者提供的gas的价格hash
:string
- 交易哈希input
:string
- 交易的输入nonce
:string
- 交易的nonce值to
:string
- 接收者的地址,创建合约交易的该值为nullvalue
:string
- 转移的值
示例
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"getPendingTransactions","params":[1],"id":1}' http://127.0.0.1:8545 |jq
// Result
{
"id": 1,
"jsonrpc": "2.0",
"result": {
[
{
"from": "0x6bc952a2e4db9c0c86a368d83e9df0c6ab481102",
"gas": "0x9184e729fff",
"gasPrice": "0x174876e7ff",
"hash": "0x7536cf1286b5ce6c110cd4fea5c891467884240c9af366d678eb4191e1c31c6f",
"input": "0x48f85bce000000000000000000000000000000000000000000000000000000000000001bf5bd8a9e7ba8b936ea704292ff4aaa5797bf671fdc8526dcd159f23c1f5a05f44e9fa862834dc7cb4541558f2b4961dc39eaaf0af7f7395028658d0e01b86a37",
"nonce": "0x65f0d06e39dc3c08e32ac10a5070858962bc6c0f5760baca823f2d5582d03f",
"to": "0xd6f1a71052366dbae2f7ab2d5d5845e77965cf0d",
"value": "0x0"
}
]
}
}
getPendingTxSize¶
返回待打包的交易数量
参数¶
groupID
:unsigned int
- 群组ID
返回值¶
string
: - 待打包的交易数量示例
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"getPendingTxSize","params":[1],"id":1}' http://127.0.0.1:8545 |jq
// Result
{
"id": 1,
"jsonrpc": "2.0",
"result": "0x1"
}
getCode¶
返回根据合约地址查询的合约数据
参数¶
groupID
:unsigned int
- 群组IDaddress
:string
- 合约地址
返回值¶
string
: - 合约数据示例
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"getCode","params":[1,"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"],"id":1}' http://127.0.0.1:8545 |jq
// Result
{
"id": 1,
"jsonrpc": "2.0",
"result": "0x60606040523415600b57fe5b5b60928061001a6000396000f30060606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680636d4ce63c14603a575bfe5b3415604157fe5b6047605d565b6040518082815260200191505060405180910390f35b60004290505b905600a165627a7a723058203d9c292921247163d180a161baa8db840c9da6764cab1d23f1e11a5cff13c7910029"
}
getTotalTransactionCount¶
返回当前交易总数和区块高度
参数¶
groupID
:unsigned int
- 群组ID
返回值¶
object
: - 当前交易总数和区块高度信息,其字段如下:blockNumber
:string
- 区块高度failedTxSum
:string
- 失败的交易总数txSum
:string
- 交易总数
示例
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"getTotalTransactionCount","params":[1],"id":1}' http://127.0.0.1:8545 |jq
// Result
{
"id": 1,
"jsonrpc": "2.0",
"result": {
"blockNumber": "0x1",
"failedTxSum": "0x0",
"txSum": "0x1"
}
}
getSystemConfigByKey¶
返回根据key值查询的value值
参数¶
groupID
:unsigned int
- 群组IDkey
:string
- 支持tx_count_limit,tx_gas_limit,consensus_timeout
返回值¶
string
- value值示例
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"getSystemConfigByKey","params":[1,"tx_count_limit"],"id":1}' http://127.0.0.1:8545 |jq
// Result
{
"id": 1,
"jsonrpc": "2.0",
"result": "1000"
}
addPeers¶
新增P2P
连接配置,增加节点config.ini:[p2p]
的连接配置
// config.ini
[p2p]
; nodes to connect
node.0=127.0.0.1:30300
node.1=127.0.0.1:30301
node.2=127.0.0.1:30302
node.3=127.0.0.1:30303
参数¶
hostPorts
:array
-P2P
连接的ip和端口,格式:ip:port
,支持IPv4和IPv6
返回值¶
object
: 接口调用结果,其字段如下:code
: - 接口调用状态码,状态码的释义请参见动态群组管理API状态码message
: - 接口消息
示例
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"addPeers","params":[["127.0.0.1:30304","127.0.0.1:30305"]],"id":1}' http://127.0.0.1:8545 |jq
// Result
{
"id": 1,
"jsonrpc": "2.0",
"result": {
"code": "0x0",
"message": " add peers successfully"
}
}
erasePeers¶
删除P2P
连接配置,删除节点config.ini:[p2p]
的连接配置
参数¶
hostPorts
:array
-P2P
连接的ip和端口,格式:ip:port
,支持IPv4和IPv6
返回值¶
object
: 接口调用结果,其字段如下:code
: - 接口调用状态码,状态码的释义请参见动态群组管理API状态码message
: - 接口消息
示例
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"erasePeers","params":[["127.0.0.1:30300","127.0.0.1:30301"]],"id":1}' http://127.0.0.1:8545 |jq
// Result
{
"id": 1,
"jsonrpc": "2.0",
"result": {
"code": "0x0",
"message": " erase peers successfully"
}
}
queryPeers¶
查询P2P
连接配置,查询节点config.ini:[p2p]
的连接配置列表
// config.ini
[p2p]
; nodes to connect
node.0=127.0.0.1:30300
node.1=127.0.0.1:30301
node.2=127.0.0.1:30302
node.3=127.0.0.1:30303
参数¶
无
返回值¶
array
- 配置的p2p节点IP和端口示例
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"queryPeers","params":[],"id":1}' http://127.0.0.1:8545 |jq
// Result
{
"id": 1,
"jsonrpc": "2.0",
"result": [
"127.0.0.1:30300",
"127.0.0.1:30301",
"127.0.0.1:30302",
"127.0.0.1:30303"
]
}
call¶
执行一个可以立即获得结果的请求,无需区块链共识
参数¶
groupID
:unsigned int
- 群组IDobject
: - 请求信息,其字段如下:from
:string
- 发送者的地址to
:string
- 接收者的地址value
:string
- (可选)转移的值data
:string
- (可选)编码的参数,编码规范参考Ethereum Contract ABI
返回值¶
object
: - 执行的结果currentBlockNumber
:string
- 当前区块高度output
:string
- 请求结果status
:string
- 请求状态(与交易状态码一致)
示例
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"call","params":[1,{"from":"0x6bc952a2e4db9c0c86a368d83e9df0c6ab481102","to":"0xd6f1a71052366dbae2f7ab2d5d5845e77965cf0d","value":"0x1","data":"0x3"}],"id":1}' http://127.0.0.1:8545 |jq
// Result
{
"id": 1,
"jsonrpc": "2.0",
"result": {
"currentBlockNumber": "0xb",
"output": "0x",
"status": "0x0"
}
}
sendRawTransaction¶
执行一个签名的交易,需要区块链共识
参数¶
groupID
:unsigned int
- 群组IDrlp
:string
- 签名的交易数据
返回值¶
string
- 交易哈希示例
// RC1 Request
curl -X POST --data '{"jsonrpc":"2.0","method":"sendRawTransaction","params":[1,"f8ef9f65f0d06e39dc3c08e32ac10a5070858962bc6c0f5760baca823f2d5582d03f85174876e7ff8609184e729fff82020394d6f1a71052366dbae2f7ab2d5d5845e77965cf0d80b86448f85bce000000000000000000000000000000000000000000000000000000000000001bf5bd8a9e7ba8b936ea704292ff4aaa5797bf671fdc8526dcd159f23c1f5a05f44e9fa862834dc7cb4541558f2b4961dc39eaaf0af7f7395028658d0e01b86a371ca00b2b3fabd8598fefdda4efdb54f626367fc68e1735a8047f0f1c4f840255ca1ea0512500bc29f4cfe18ee1c88683006d73e56c934100b8abf4d2334560e1d2f75e"],"id":1}' http://127.0.0.1:8545 |jq
// RC1 Result
{
"id": 1,
"jsonrpc": "2.0",
"result": "0x7536cf1286b5ce6c110cd4fea5c891467884240c9af366d678eb4191e1c31c6f"
}
// RC2 Request
curl -X POST --data '{"jsonrpc":"2.0","method":"sendRawTransaction","params":[1,"f8d3a003922ee720bb7445e3a914d8ab8f507d1a647296d563100e49548d83fd98865c8411e1a3008411e1a3008201f894d6c8a04b8826b0a37c6d4aa0eaa8644d8e35b79f80a466c9913900000000000000000000000000000000000000000000000000000000000000040101a466c9913900000000000000000000000000000000000000000000000000000000000000041ba08e0d3fae10412c584c977721aeda88df932b2a019f084feda1e0a42d199ea979a016c387f79eb85078be5db40abe1670b8b480a12c7eab719bedee212b7972f775"],"id":1}' http://127.0.0.1:8545 |jq
// RC2 Result
{
"id": 1,
"jsonrpc": "2.0",
"result": "0x0accad4228274b0d78939f48149767883a6e99c95941baa950156e926f1c96ba"
}
// FISCO BCOS支持国密算法,采用国密算法的区块链请求示例
// RC1 Request
curl -X POST --data '{"jsonrpc":"2.0","method":"sendRawTransaction","params":[1,"f8ef9f65f0d06e39dc3c08e32ac10a5070858962bc6c0f5760baca823f2d5582d03f85174876e7ff8609184e729fff82020394d6f1a71052366dbae2f7ab2d5d5845e77965cf0d80b86448f85bce000000000000000000000000000000000000000000000000000000000000001bf5bd8a9e7ba8b936ea704292ff4aaa5797bf671fdc8526dcd159f23c1f5a05f44e9fa862834dc7cb4541558f2b4961dc39eaaf0af7f7395028658d0e01b86a371ca00b2b3fabd8598fefdda4efdb54f626367fc68e1735a8047f0f1c4f840255ca1ea0512500bc29f4cfe18ee1c88683006d73e56c934100b8abf4d2334560e1d2f75e"],"id":1}' http://127.0.0.1:8545 |jq
// RC2 Request
curl -X POST --data '{"jsonrpc":"2.0","method":"sendRawTransaction","params":[1,"f90114a003eebc46c9c0e3b84799097c5a6ccd6657a9295c11270407707366d0750fcd598411e1a30084b2d05e008201f594bab78cea98af2320ad4ee81bba8a7473e0c8c48d80a48fff0fc400000000000000000000000000000000000000000000000000000000000000040101a48fff0fc40000000000000000000000000000000000000000000000000000000000000004b8408234c544a9f3ce3b401a92cc7175602ce2a1e29b1ec135381c7d2a9e8f78f3edc9c06ee55252857c9a4560cb39e9d70d40f4331cace4d2b3121b967fa7a829f0a00f16d87c5065ad5c3b110ef0b97fe9a67b62443cb8ddde60d4e001a64429dc6ea03d2569e0449e9a900c236541afb9d8a8d5e1a36844439c7076f6e75ed624256f"],"id":1}' http://127.0.0.1:8545 |jq
sendRawTransactionAndGetProof¶
执行一个签名的交易,交易上链后,推送交易回执、交易Merkle证明、交易回执Merkle证明,Merkle证明可参考这里。
注解
supported_version < 2.2.0
: 调用sendRawTransactionAndGetProof
接口,交易上链后仅推送交易回执supported_version >= 2.2.0
: 调用sendRawTransactionAndGetProof
接口,交易上链后推送交易回执、交易Merkle证明、交易回执Merkle证明
参数¶
groupID
:unsigned int
- 群组IDrlp
:string
- 签名的交易数据
getTransactionByHashWithProof¶
返回根据交易哈希查询的带证明的交易信息,本接口仅在兼容性版本为2.2.0及以后的版本有效,证明信息是为了验证交易的存在性,交易存在性证明请参考文档交易证明
参数¶
groupID
:unsigned int
- 群组IDtransactionHash
:string
- 交易哈希
返回值¶
object
: - 交易信息,其字段如下:blockHash
:string
- 包含该交易的区块哈希blockNumber
:string
- 包含该交易的区块高度from
:string
- 发送者的地址gas
:string
- 发送者提供的gasgasPrice
:string
- 发送者提供的gas的价格hash
:string
- 交易哈希input
:string
- 交易的输入nonce
:string
- 交易的nonce值to
:string
- 接收者的地址,创建合约交易的该值为0x0000000000000000000000000000000000000000
transactionIndex
:string
- 交易的序号value
:string
- 转移的值
array
- 交易证明,字段如下:left
:array
- 左边的哈希列表right
:array
- 右边的哈希列表
示例
curl -X POST --data '{"jsonrpc":"2.0","method":"getTransactionByHashWithProof","params":[1,"0xd2c12e211315ef09dbad53407bc820d062780232841534954f9c23ab11d8ab4c"],"id":1}' http://127.0.0.1:8585 |jq
{
"id": 1,
"jsonrpc": "2.0",
"result": {
"transaction": {
"blockHash": "0xcd31b05e466bce99460b1ed70d6069fdfbb15e6eef84e9b9e4534358edb3899a",
"blockNumber": "0x5",
"from": "0x148947262ec5e21739fe3a931c29e8b84ee34a0f",
"gas": "0x1c9c380",
"gasPrice": "0x1c9c380",
"hash": "0xd2c12e211315ef09dbad53407bc820d062780232841534954f9c23ab11d8ab4c",
"input": "0x8a42ebe90000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000000000000000000000000000000000000000000a3564646636663863653800000000000000000000000000000000000000000000",
"nonce": "0x208f6fd78d48aad370df51c6fdf866f8ab022de765c2959841ff2e81bfd9af9",
"to": "0xd6c8a04b8826b0a37c6d4aa0eaa8644d8e35b79f",
"transactionIndex": "0x32",
"value": "0x0"
},
"txProof": [
{
"left": [
"30f0abfcf4ca152815548620e33d21fd0feaa7c78867791c751e57cb5aa38248c2",
"31a864156ca9841da8176738bb981d5da9102d9703746039b3e5407fa987e5183e"
],
"right": [
"33d8078d7e71df3544f8845a9db35aa35b2638e8468a321423152e64b9004367b4",
"34343a4bce325ec8f6cf48517588830cd15f69b60a05598b78b03c3656d1fbf2f5",
"35ac231554047ce77c0b31cd1c469f1f39ebe23404fa8ff6cc7819ad83e2c029e7",
"361f6c588e650323e03afe6460dd89a9c061583e0d62c117ba64729d2c9d79317c",
"377606f79f3e08b1ba3759eceada7fde3584f01822467855aa6356652f2499c738",
"386722fe270659232c5572ba54ce23b474c85d8b709e7c08e85230afb1c155fe18",
"39a9441d668e5e09a5619c365577c8c31365f44a984bde04300d4dbba190330c0b",
"3a78a8c288120cbe612c24a33cce2731dd3a8fe6927d9ee25cb2350dba08a541f5",
"3bd9b67256e201b5736f6081f39f83bcb917261144384570bdbb8766586c3bb417",
"3c3158e5a82a1ac1ed41c4fd78d5be06bf79327f60b094895b886e7aae57cff375",
"3de9a4d98c5ae658ffe764fbfa81edfdd4774e01b35ccb42beacb67064a5457863",
"3e525e60c0f7eb935125f1156a692eb455ab4038c6b16390ce30937b0d1b314298",
"3f1600afe67dec2d21582b8c7b76a15e569371d736d7bfc7a96c0327d280b91dfc"
]
},
{
"left": [
"3577673b86ad4d594d86941d731f17d1515f4669483aed091d49f279d677cb19",
"75603bfea5b44df4c41fbb99268364641896334f006af3a3f67edaa4b26477ca",
"1339d43c526f0f34d8a0f4fb3bb47b716fdfde8d35697be5992e0888e4d794c9"
],
"right": [
"63c8e574fb2ef52e995427a8acaa72c27073dd8e37736add8dbf36be4f609ecb",
"e65353d911d6cc8ead3fad53ab24cab69a1e31df8397517b124f578ba908558d"
]
},
{
"left": [],
"right": []
}
]
}
}
getTransactionReceiptByHashWithProof¶
返回根据交易哈希查询的带证明的交易回执信息,本接口仅在兼容性版本为2.2.0及以后的版本有效,证明信息是为了验证回执的存在性,回执存在性证明请参考文档交易证明
groupID
:unsigned int
- 群组IDtransactionHash
:string
- 交易哈希
返回值¶
array
- 回执证明,字段如下:left
:array
- 左边的哈希列表right
:array
- 右边的哈希列表
object
: - 交易信息,其字段如下:blockHash
:string
- 包含该交易的区块哈希blockNumber
:string
- 包含该交易的区块高度contractAddress
:string
- 合约地址,如果创建合约交易,则为合约部署地址,如果是调用合约,则为”0x0000000000000000000000000000000000000000”from
:string
- 发送者的地址gasUsed
:string
- 交易消耗的gasinput
:string
- 交易的输入logs
:array
- 交易产生的loglogsBloom
:string
- log的布隆过滤器值output
:string
- 交易的输出status
:string
- 交易的状态值,参考:交易回执状态to
:string
- 接收者的地址,创建合约交易的该值为nulltransactionHash
:string
- 交易哈希transactionIndex
:string
- 交易序号
示例
curl -X POST --data '{"jsonrpc":"2.0","method":"getTransactionReceiptByHashWithProof","params":[1,"0xd2c12e211315ef09dbad53407bc820d062780232841534954f9c23ab11d8ab4c"],"id":1}' http://127.0.0.1:8585 |jq
{
"id": 1,
"jsonrpc": "2.0",
"result": {
"receiptProof": [
{
"left": [
"3088b5c8f9d92a3411a911f35ff0119a02e8f8f04852cf2fdfaa659843eac6a3ad",
"31170ac8fd555dc50e59050841da0d96e4c4bc7e6266e1c6865c08c3b2391801dd"
],
"right": [
"33c572c8f961e0c56689d641fcf274916857819769a74e6424c58659bf530e90e3",
"341233933ea3d357b4fdd6b3d1ed732dcff15cfd54e527c93c15a4e0238585ed11",
"351e7ba09965cce1cfb820aced1d37204b06d96a21c5c2cf36850ffc62cf1fc84c",
"361f65633d9ae843d4d3679b255fd448546a7b531c0056e8161ea0adbf1af12c0f",
"37744f6e0d320314536b230d28b2fd6ac90b0111fb1e3bf4a750689abc282d8589",
"386e60d9daa0be9825019fcf3d08cdaf51a90dc62a22a6e11371f94a8e516679cc",
"391ef2f2cee81f3561a9900d5333af18f59aa3cd14e70241b5e86305ba697bf5f2",
"3ac9999d4f36d76c95c61761879eb9ec60b964a489527f5af844398ffaa8617f0d",
"3b0039ce903e275170640f3a464ce2e1adc2a7caee41267c195469365074032401",
"3ca53017502028a0cb5bbf6c47c4779f365138da6910ffcfebf9591b45b89abd48",
"3de04fc8766a344bb73d3fe6360c61d036e2eeedfd9ecdb86a0498d7849ed591f0",
"3e2fc73ee22c4986111423dd20e8db317a313c9df29fa5aa3090f27097ecc4e1a9",
"3fa7d31ad5c6e7bba3f99f9efc03ed8dd97cb1504003c34ad6bde5a662481f00a0"
]
},
{
"left": [
"cd46118c0e99be585ffcf50423630348dbc486e54e9d9293a6a8754020a68a92",
"3be78209b3e3c83af3668ec3192b5bf232531323ef66b66de80a11f386270132",
"bd3a11d74a3fd79b1e1ea17e45b76eda4d25f6a5ec7fc5f067ea0d086b1ce70f"
],
"right": [
"6a6cefef8b48e455287a8c8694b06f4f7cb7950017ab048d6e6bdd8029f9f8c9",
"0a27c5ee02e618d919d228e6a754dc201d299c91c9e4420a48783bb6fcd09be5"
]
},
{
"left": [],
"right": []
}
],
"transactionReceipt": {
"blockHash": "0xcd31b05e466bce99460b1ed70d6069fdfbb15e6eef84e9b9e4534358edb3899a",
"blockNumber": "0x5",
"contractAddress": "0x0000000000000000000000000000000000000000",
"from": "0x148947262ec5e21739fe3a931c29e8b84ee34a0f",
"gasUsed": "0x21dc1b",
"input": "0x8a42ebe90000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000000000000000000000000000000000000000000a3564646636663863653800000000000000000000000000000000000000000000",
"logs": [],
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"output": "0x",
"root": "0xc3b4185963c78a4ca8eb90240e5cd95371d7217a9ce2bfa1149d53f79c73afbb",
"status": "0x0",
"to": "0xd6c8a04b8826b0a37c6d4aa0eaa8644d8e35b79f",
"transactionHash": "0xd2c12e211315ef09dbad53407bc820d062780232841534954f9c23ab11d8ab4c",
"transactionIndex": "0x32"
}
}
}
generateGroup¶
根据群组ID及创世块参数创建新的群组,本接口仅在兼容性版本为2.2.0及以后的版本有效
参数¶
groupID
:unsigned int
- 群组IDparams
:object
- 创世块参数,其字段如下:timestamp
:unsigned int
- 创世块时间戳sealers
:array
- 共识节点列表,要求所有所列共识节点间存在有效的P2P连接enable_free_storage
:bool
- 可选,是否启用”free storage”模式,启用后节点将减少STORAGE相关指令的gas耗费
返回值¶
object
: - 接口调用结果,其字段如下:code
: - 接口调用状态码,状态码的释义请参见动态群组管理API状态码message
: - 接口消息
示例
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"generateGroup","params":[2, {"timestamp":"1585214879000","sealers":["70f18c055d366615e86df99f91b6d3f16f07d66293b203b73498442c0366d2c8ff7a21bb56923d9d81b1c2916251888e47adf66c350738c898defac50aead5ab","dde37f534885f08db914566efeb03183d59363a4be972bbcdde25c37f0b350e1980a7de4fdc4aaf956b931aab00b739a8af475ed2461b8591d8c734b27285f57","d41672b29b3b1bfe6cad563d0f0b2a2735865b27918307b85085f892043a63f681ac8799243e920f7bb144b111d854d0592ba5f28aa7a4e0f9f533f9fdf76ead","7ba2717f81f38e7371ccdbe173751f051b86819f709e940957664dbde028698fd31ba3042f7dd9accd73741ba42afc35a8ef67fe7abbdeb76344169773aa0eca"],"enable_free_storage":true}],"id":1}' http://127.0.0.1:8545 | jq
// Result
{
"id": 1,
"jsonrpc": "2.0",
"result": {
"code": "0x0",
"message": "Group 2 generated successfully"
}
}
startGroup¶
根据群组ID启动相应的群组,本接口仅在兼容性版本为2.2.0及以后的版本有效
参数¶
groupID
:unsigned int
- 群组ID
返回值¶
object
: 接口调用结果,其字段如下:code
: - 接口调用状态码,状态码的释义请参见动态群组管理API状态码message
: - 接口消息
示例
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"startGroup","params":[2],"id":1}' http://127.0.0.1:8545 | jq
// Result
{
"id": 1,
"jsonrpc": "2.0",
"result": {
"code": "0x0",
"message": "Group 2 started successfully"
}
}
stopGroup¶
根据群组ID停止相应的群组,本接口仅在兼容性版本为2.2.0及以后的版本有效
参数¶
groupID
:unsigned int
- 群组ID
返回值¶
object
: 接口调用结果,其字段如下:code
: - 接口调用状态码,状态码的释义请参见动态群组管理API状态码message
: - 接口消息
示例
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"stopGroup","params":[2],"id":1}' http://127.0.0.1:8545 | jq
// Result
{
"id": 1,
"jsonrpc": "2.0",
"result": {
"code": "0x0",
"message": "Group 2 stopped successfully"
}
}
removeGroup¶
根据群组ID删除相应群组,群组数据会被保留以供将来恢复群组,本接口仅在兼容性版本为2.2.0及以后的版本有效
参数¶
groupID
:unsigned int
- 群组ID
返回值¶
object
: 接口调用结果,其字段如下:code
: - 接口调用状态码,状态码的释义请参见动态群组管理API状态码message
: - 接口消息
示例
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"removeGroup","params":[2],"id":1}' http://127.0.0.1:8545 | jq
// Result
{
"id": 1,
"jsonrpc": "2.0",
"result": {
"code": "0x0",
"message": "Group 2 deleted successfully"
}
}
recoverGroup¶
根据群组ID恢复相应群组,本接口仅在兼容性版本为2.2.0及以后的版本有效
参数¶
groupID
:unsigned int
- 群组ID
返回值¶
object
: 接口调用结果,其字段如下:code
: - 接口调用状态码,状态码的释义请参见动态群组管理API状态码message
: - 接口消息
示例
// Request
curl -Ss -X POST --data '{"jsonrpc":"2.0","method":"recoverGroup","params":[2],"id":1}' http://127.0.0.1:8545 | jq
// Result
{
"id": 1,
"jsonrpc": "2.0",
"result": {
"code": "0x0",
"message": "Group 2 recovered successfully"
}
}
queryGroupStatus¶
根据群组ID查询相应群组的状态
参数¶
groupID
:unsigned int
- 群组ID
返回值¶
object
: 接口调用结果,其字段如下:code
: - 接口调用状态码,状态码的释义请参见动态群组管理API状态码message
: - 接口消息status
: - 群组状态标识,为下列值之一:INEXISTENT
: 群组不存在STOPPING
: 群组正在停止RUNNING
: 群组正在运行STOPPED
: 群组已停止DELETED
: 群组已删除
示例
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"queryGroupStatus","params":[2],"id":1}' http://127.0.0.1:8545 | jq
// Result
{
"id": 1,
"jsonrpc": "2.0",
"result": {
"code": "0x0",
"message": "",
"status": "STOPPED"
}
}
getNodeInfo¶
获取请求节点的NodeID,Topic等信息。
参数¶
无
返回值¶
NodeInfo: 获取节点信息,包括节点所在的机构、节点名、节点NodeID以及节点订阅的Topic
示例:
curl -X POST --data '{"jsonrpc":"2.0","method":"getNodeInfo","params":[],"id":1}' http://127.0.0.1:8545 |jq
{
"id": 1,
"jsonrpc": "2.0",
"result": {
"Agency": "agency",
"IPAndPort": "0.0.0.0:30300",
"Node": "node1",
"NodeID": "2263a586cba1c1b8419f0dd9e623c7db79b2ba9127367aa854b1493e218efaa2ef58b08de1b36defdeb1d407449014e29cf8b4f457c7f7be7331d381362eb74e",
"Topic": []
}
}
getBatchReceiptsByBlockNumberAndRange¶
根据区块高度和交易范围,批量返回指定群组的交易回执信息。
参数¶
groupID
: 群组ID;blockNumber
: 请求获取的回执信息所在的区块高度;from
: 需要获取的回执起始索引;count
: 需要批量获取的回执数目,当设置为-1时,返回区块内所有回执信息;compressFlag
: 压缩标志,当设置为false时,以明文的形式返回批量交易回执信息; 当设置为true时, 以zlib格式压缩批量交易回执,并将压缩后的回执信息以Base64编码的格式返回。
返回值¶
当compressFlag
为false,返回明文形式的批量交易回执信息; 当compressFlag
为true时,返回zlib压缩后的Base64编码的批量回执信息,返回的具体字段如下:
blockHash
: 回执所在的区块哈希blockNumber
: 回执所在的区块高度receiptRoot
: 回执所在的区块的receiptRootreceiptsCount
: 区块中包含的回执数目
每条回执信息包含的字段如下:
contractAddress: 回执对应的合约地址
from: 交易回执对应的外部账户信息
gasUsed: gas信息
logs: 回执中包含的event log信息
output: 交易执行结果
status: 回执状态
to: 目标账户地址
transactionHash: 产生回执的交易哈希
transactionIndex: 产生回执的交易在区块中的索引
示例:
# 获取块高为1的区块所有回执明文信息
curl -X POST --data '{"jsonrpc":"2.0","method":"getBatchReceiptsByBlockNumberAndRange","params":[1,"0x1","0","-1",false],"id":1}' http://127.0.0.1:8545 |jq
{
"id": 1,
"jsonrpc": "2.0",
"result": {
"blockInfo": {
"blockHash": "0xcef82a3c1e7770aa4e388af5c70e97ae177a3617c5020ae052be4095dfdd39a2",
"blockNumber": "0x1",
"receiptRoot": "0x69a04fa6073e4fc0947bac7ee6990e788d1e2c5ec0fe6c2436d0892e7f3c09d2",
"receiptsCount": "0x1"
},
"transactionReceipts": [
{
"contractAddress": "0x0000000000000000000000000000000000000000",
"from": "0xb8e3901e6f5f842499fd537a7ac7151e546863ad",
"gasUsed": "0x5798",
"logs": [],
"output": "0x08c379a0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000364572726f7220616464726573733a3863313763663331366331303633616236633839646638373565393663396630663562326637343400000000000000000000",
"status": "0x1a",
"to": "0x8c17cf316c1063ab6c89df875e96c9f0f5b2f744",
"transactionHash": "0xc6ec15fd1e4d696e66d7fbef6064bda3ed012bcb7744d09903ee289df65f7d53",
"transactionIndex": "0x0"
}
]
}
}
# 获取区块高度为1的压缩编码后的所有回执信息
curl -X POST --data '{"jsonrpc":"2.0","method":"getBatchReceiptsByBlockNumberAndRange","params":[1,"0x1","0","-1",true],"id":1}' http://127.0.0.1:8545 |jq
{
"id": 1,
"jsonrpc": "2.0",
"result": "eJylUrFu3DAM3fsZmm+gRImUbiu6NEuHAJ2KDLJEpkETK7B9QIDD/XsZX4AgQIcCEWCLj+YjafKd3fQ42p+bWYc7nq/ge11/u6ODlyaaQ8XmhZmh1iiYc9XUGKRwFc9ckTy3BAGqQAqTRCipa+9YanCHa8Ifp6dJlj2lN98iTR6et9sxtt1HpULUSsAoURuUyFNtLEKlgHDO3UtoSRqoUAsRqUMuQVjRgnt4T7l+G6d5eyt0ObhtqfNa2/Yw5tu3CHf8dXZtzPapbV97X2RddwL857FquoynnTNlwQJeSJPmGGIp2hNyZWvfJy8pUias3Tj3df25St9piUs21+O4f23n7uDGaXs+XfuG3JBtIJ874ZN8pJg4cCDlEIA8RYqGEiMjVrSfQo9MSGaYRTs2FpocKOw4YzEW2c2YKGHZvcVeYE+yqGA3Y8T4rw5sPutWt9N1Ob4a3sZu52aKU/TUPNhwJ2q5dM2cpFArCpqmoByj+7D/d1GTNJ/UNBU7FRKizjqJElCcekXp4MPUJrYUHUyBKBJeK1BStu1+THszd3m5Ls5d7i5f/gLIg98l"
}
getBatchReceiptsByBlockHashAndRange¶
根据区块哈希和交易范围,批量返回指定群组的交易回执信息。
参数¶
groupID
: 群组ID;blockHash
: 包含需要获取的回执信息的区块的哈希;from
: 需要获取的回执起始索引;count
: 需要批量获取的回执数目,当设置为-1时,返回区块内所有回执信息;compressFlag
: 压缩标志,当设置为false时,以明文的形式返回批量交易回执信息; 当设置为true时, 以zlib格式压缩批量交易回执,并将压缩后的回执信息以Base64编码的格式返回。
返回值¶
当compressFlag
为true,返回明文形式的批量交易回执信息; 当compressFlag
为false时,返回zlib压缩后的Base64编码的批量回执信息,返回的具体字段如下:
blockHash
: 回执所在的区块哈希blockNumber
: 回执所在的区块高度receiptRoot
: 回执所在的区块的receiptRootreceiptsCount
: 区块中包含的回执数目
每条回执信息包含的字段如下:
contractAddress: 回执对应的合约地址
from: 交易回执对应的外部账户信息
gasUsed: gas信息
logs: 回执中包含的event log信息
output: 交易执行结果
status: 回执状态
to: 目标账户地址
transactionHash: 产生回执的交易哈希
transactionIndex: 产生回执的交易在区块中的索引
示例:
# 获取区块哈希为0xcef82a3c1e7770aa4e388af5c70e97ae177a3617c5020ae052be4095dfdd39a2的区块所有回执明文信息
curl -X POST --data '{"jsonrpc":"2.0","method":"getBatchReceiptsByBlockHashAndRange","params":[1,"0xcef82a3c1e7770aa4e388af5c70e97ae177a3617c5020ae052be4095dfdd39a2","0","1",false],"id":1}' http://127.0.0.1:8545 |jq
{
"id": 1,
"jsonrpc": "2.0",
"result": {
"blockInfo": {
"blockHash": "0xcef82a3c1e7770aa4e388af5c70e97ae177a3617c5020ae052be4095dfdd39a2",
"blockNumber": "0x1",
"receiptRoot": "0x69a04fa6073e4fc0947bac7ee6990e788d1e2c5ec0fe6c2436d0892e7f3c09d2",
"receiptsCount": "0x1"
},
"transactionReceipts": [
{
"contractAddress": "0x0000000000000000000000000000000000000000",
"from": "0xb8e3901e6f5f842499fd537a7ac7151e546863ad",
"gasUsed": "0x5798",
"logs": [],
"output": "0x08c379a0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000364572726f7220616464726573733a3863313763663331366331303633616236633839646638373565393663396630663562326637343400000000000000000000",
"status": "0x1a",
"to": "0x8c17cf316c1063ab6c89df875e96c9f0f5b2f744",
"transactionHash": "0xc6ec15fd1e4d696e66d7fbef6064bda3ed012bcb7744d09903ee289df65f7d53",
"transactionIndex": "0x0"
}
]
}
}
# 获取区块哈希为0xcef82a3c1e7770aa4e388af5c70e97ae177a3617c5020ae052be4095dfdd39a2的压缩编码后的所有回执信息
curl -X POST --data '{"jsonrpc":"2.0","method":"getBatchReceiptsByBlockHashAndRange","params":[1,"0xcef82a3c1e7770aa4e388af5c70e97ae177a3617c5020ae052be4095dfdd39a2","0","1",true],"id":1}' http://127.0.0.1:8545 |jq
{
"id": 1,
"jsonrpc": "2.0",
"result": "eJylUrFu3DAM3fsZmm+gRImUbiu6NEuHAJ2KDLJEpkETK7B9QIDD/XsZX4AgQIcCEWCLj+YjafKd3fQ42p+bWYc7nq/ge11/u6ODlyaaQ8XmhZmh1iiYc9XUGKRwFc9ckTy3BAGqQAqTRCipa+9YanCHa8Ifp6dJlj2lN98iTR6et9sxtt1HpULUSsAoURuUyFNtLEKlgHDO3UtoSRqoUAsRqUMuQVjRgnt4T7l+G6d5eyt0ObhtqfNa2/Yw5tu3CHf8dXZtzPapbV97X2RddwL857FquoynnTNlwQJeSJPmGGIp2hNyZWvfJy8pUias3Tj3df25St9piUs21+O4f23n7uDGaXs+XfuG3JBtIJ874ZN8pJg4cCDlEIA8RYqGEiMjVrSfQo9MSGaYRTs2FpocKOw4YzEW2c2YKGHZvcVeYE+yqGA3Y8T4rw5sPutWt9N1Ob4a3sZu52aKU/TUPNhwJ2q5dM2cpFArCpqmoByj+7D/d1GTNJ/UNBU7FRKizjqJElCcekXp4MPUJrYUHUyBKBJeK1BStu1+THszd3m5Ls5d7i5f/gLIg98l"
}