接口说明

1 前置管理模块

1.1 新增节点前置信息

1.1.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /front/new
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

1.1.2 请求参数

1)入参表

序号输入参数类型可为空备注
1frontIpstring前置ip
2frontPortint前置服务端口
3agencyint所属机构

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/front/new
  1. {
  2. "frontIp": "127.0.0.1",
  3. "frontPort": "5002",
  4. "agency": "abc"
  5. }

1.1.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataObject节点信息对象
3.1frontIdint前置编号
3.2frontIpstring前置ip
3.3frontPortint前置端口
3.4agencystring所属机构
3.5createTimeLocalDateTime落库时间
3.6modifyTimeLocalDateTime修改时间

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": {
  5. "frontId": 500001,
  6. "frontIp": "127.0.0.1",
  7. "frontPort": 8181,
  8. "agency": "abc",
  9. "createTime": "2019-02-14 17:47:00",
  10. "modifyTime": "2019-03-15 11:14:29"
  11. }
  12. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

1.2 获取所有前置列表

1.2.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/front/find?frontId={frontId}&groupId={groupId}
  • 请求方式:GET
  • 返回格式:JSON

1.2.2 请求参数

1)入参表

序号输入参数类型可为空备注
1frontIdInt前置编号
2groupIdInt所属群组编号

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/front/find

1.2.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3totalCountInt总记录数
4dataList组织列表
4.1Object节点信息对象
4.1.1frontIdint前置编号
4.1.2frontIpstring前置ip
4.1.3frontPortint前置端口
4.1.4createTimeLocalDateTime落库时间
4.1.5modifyTimeLocalDateTime修改时间
4.1.6agencystring备注所属机构
4.1.7frontVersionstring前置的后台版本,如: v1.4.0
4.1.8signVersionstring前置所连接签名服务的后台版本,如: v1.4.0
4.1.9clientVersionstring链节点的版本,如: 2.5.0 gm
4.1.10supportVersionstring链节点所支持的最高版本, 如: 2.5.0, (此处仅显示支持的最高版本,不显示是否为国密。若从2.4.0升级到2.5.0,此处将返回2.4.0)
4.1.11statusint前置服务状态:0,未创建;1,停止;2,启动;
4.1.12runTypeint运行方式:0,命令行;1,Docker
4.1.13agencyIdint所属机构 ID
4.1.14agencyNamestring所属机构名称
4.1.15hostIdint所属主机
4.1.16hostIndexint一台主机可能有多个节点。表示在主机中的编号,从 0 开始编号
4.1.17imageTagstring运行的镜像版本标签
4.1.18containerNamestringDocker 启动的容器名称
4.1.19jsonrpcPortintjsonrpc 端口
4.1.20p2pPortintp2p 端口
4.1.21channelPortintchannel 端口
4.1.22chainIdint所属链 ID
4.1.23chainNamestring所属链名称

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": [
  5. {
  6. "frontId": 500001,
  7. "frontIp": "127.0.0.1",
  8. "frontPort": 5002,
  9. "agency": "aa",
  10. "frontVersion": "v1.4.0",
  11. "signVersion": "v1.4.0",
  12. "clientVersion": "2.5.0 gm",
  13. "supportVersion": "2.5.0",
  14. "createTime": "2019-06-04 20:49:42",
  15. "modifyTime": "2019-06-04 20:49:42",
  16. "status": 1,
  17. "runType": 1,
  18. "agencyId": 1,
  19. "agencyName": "AgencyA",
  20. "hostId": 1,
  21. "hostIndex": 0,
  22. "imageTag": "v2.5.0",
  23. "containerName": "rootfisconode0",
  24. "jsonrpcPort": 8545,
  25. "p2pPort": 30300,
  26. "channelPort": 20200,
  27. "chainId": 1,
  28. "chainName": "default_chain"
  29. }
  30. ],
  31. "totalCount": 1
  32. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

1.3 删除前置信息

1.3.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/front/{frontId}
  • 请求方式:DELETE
  • 请求头:Content-type: application/json
  • 返回格式:JSON

1.3.2 请求参数

1)入参表

序号输入参数类型可为空备注
1frontIdint前置编号

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/front/500001

1.3.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataobject返回信息实体(空)

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "data": {},
  4. "message": "Success"
  5. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

1.4 刷新前置信息

1.3.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/front/refresh
  • 请求方式:GET
  • 请求头:Content-type: application/json
  • 返回格式:JSON

1.3.2 请求参数

1)入参表

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/front/refresh

1.3.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataobject返回信息实体(空)

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "data": {},
  4. "message": "Success"
  5. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

2 交易信息模块

2.1 查询交易信息列表

2.1.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:
  1. /transaction/transList/{groupId}/{pageNumber}/{pageSize}?transactionHash={transactionHash}&blockNumber={blockNumber}
  • 请求方式:GET
  • 返回格式:JSON

2.1.2 请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint所属群组编号
2transactionHashString交易hash
3blockNumberBigInteger块高
4pageSizeint每页记录数
5pageNumberint当前页码

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/transaction/transList/300001/1/10?transactionHash=0x303daa78ebe9e6f5a6d9761a8eab4bf5a0ed0b06c28764488e4716de42e1df01

2.1.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3totalCountInt总记录数
4dataList交易信息列表
4.1Object交易信息对象
4.1.1transHashString交易hash
4.1.2groupIdInt所属群组编号
4.1.3blockNumberBigInteger所属块高
4.1.4statisticsFlagInt是否已经统计
4.1.5createTimeLocalDateTime落库时间
4.1.6modifyTimeLocalDateTime修改时间

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": [
  5. {
  6. "transHash": "0x303daa78ebe9e6f5a6d9761a8eab4bf5a0ed0b06c28764488e4716de42e1df01",
  7. "groupId": 300001,
  8. "blockNumber": 133,
  9. "statisticsFlag": 1,
  10. "createTime": "2019-03-15 09:36:17",
  11. "modifyTime": "2019-03-15 09:36:17"
  12. }
  13. ],
  14. "totalCount": 1
  15. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

2.2 查询交易回执

2.2.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/transaction/transactionReceipt/{groupId}/{transHash}
  • 请求方式:GET
  • 返回格式:JSON

2.2.2 请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint所属群组编号
2transHashString交易hash

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/transaction/transactionReceipt/1/0xda879949df6b5d75d2d807f036b461e0cebcc1abaccac119c9a282d3941a4818

2.2.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3Object交易信息对象
3.1transactionHashString交易hash
3.2transactionIndexInt在区块中的索引
3.2blockHashString区块hash
3.3blockNumberBigInteger所属块高
3.4cumulativeGasUsedInt
3.5gasUsedInt交易消耗的gas
3.6contractAddressString合约地址
3.7statusString交易的状态值
3.8fromString交易发起者
3.9toString交易目标
3.10outputString交易输出内容
3.11logsString日志
3.12logsBloomStringlog的布隆过滤值

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": {
  5. "transactionHash": "0xda879949df6b5d75d2d807f036b461e0cebcc1abaccac119c9a282d3941a4818",
  6. "transactionIndex": 0,
  7. "blockHash": "0x739853061c6c87ed691c0ee6f938589f7e2e442d42b16f582b353a475359b91d",
  8. "blockNumber": 4311,
  9. "cumulativeGasUsed": 0,
  10. "gasUsed": 32940,
  11. "contractAddress": "0x0000000000000000000000000000000000000000",
  12. "status": "0x0",
  13. "from": "0xe4bc056009daed8253008e03db6f62d93ccfacea",
  14. "to": "0x522eda3fbe88c07025f1db3f7dc7d9836af95b3f",
  15. "output": "0x",
  16. "logs": [],
  17. "logsBloom": "0x000000000000000000000000000000000000000",
  18. "blockNumberRaw": "0x10d7",
  19. "transactionIndexRaw": "0x0",
  20. "statusOK": true,
  21. "gasUsedRaw": "0x80ac"
  22. }
  23. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

2.3 根据交易hash查询交易信息

2.3.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/transaction/transInfo/{groupId}/{transHash}
  • 请求方式:GET
  • 返回格式:JSON

2.3.2 参数信息详情

请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint所属群组编号
2transHashString交易hash

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/transaction/transInfo/1/0xda879949df6b5d75d2d807f036b461e0cebcc1abaccac119c9a282d3941a4818

2.3.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3Object交易信息对象
3.1hashString交易hash
3.2transactionIndexInt在区块中的索引
3.2blockHashString区块hash
3.3blockNumberBigInteger所属块高
3.4cumulativeGasUsedInt
3.5gasUsedInt交易消耗的gas
3.6contractAddressString合约地址
3.7statusString交易的状态值
3.8fromString交易发起者
3.9toString交易目标
3.10outputString交易输出内容
3.11logsString日志
3.12logsBloomStringlog的布隆过滤值
3.13nonceString
3.14valueString
3.15gasPricelong
3.16gaslong
3.17inputString
3.18vint
3.19nonceRawString
3.20blockNumberRawString
3.21gasPriceRawString
3.22gasRawString

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": {
  5. "hash": "0xda879949df6b5d75d2d807f036b461e0cebcc1abaccac119c9a282d3941a4818",
  6. "nonce": "600264747827990445399299219738839026203774909117379671331964756256186263529",
  7. "blockHash": "0x739853061c6c87ed691c0ee6f938589f7e2e442d42b16f582b353a475359b91d",
  8. "blockNumber": 4311,
  9. "transactionIndex": 0,
  10. "from": "0xe4bc056009daed8253008e03db6f62d93ccfacea",
  11. "to": "0x522eda3fbe88c07025f1db3f7dc7d9836af95b3f",
  12. "value": 0,
  13. "gasPrice": 100000000,
  14. "gas": 100000000,
  15. "input": "0x4ed3885e000000000000000",
  16. "v": 0,
  17. "nonceRaw": "0x153bce0f26461030fe5189385b9c3e84336b007769a3849524ca3f4af7d67e9",
  18. "blockNumberRaw": "0x10d7",
  19. "transactionIndexRaw": "0x0",
  20. "gasPriceRaw": "0x5f5e100",
  21. "gasRaw": "0x5f5e100"
  22. }
  23. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

3 帐号管理模块

3.1 新增帐号

3.1.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/account/accountInfo
  • 请求方式:post
  • 请求头:Content-type: application/json
  • 返回格式:JSON

3.1.2 请求参数

1)入参表

序号输入参数类型可为空备注
1accountString帐号名称
2accountPwdString登录密码(sha256)
3roleIdint所属角色

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/account/accountInfo
  1. {
  2. "account": "testAccount",
  3. "accountPwd": "3f21a8490cef2bfb60a9702e9d2ddb7a805c9bd1a263557dfd51a7d0e9dfa93e",
  4. "roleId": 100001
  5. }

3.1.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataobject返回信息实体
3.1accountString帐号
3.2roleIdInteger所属角色
3.3roleNameString角色名称
3.4roleNameZhString角色中文名
3.5loginFailTimeInteger登录失败次数
3.6accountStatusInteger帐号状态
3.7descriptionString备注
3.8createTimeLocalDateTime创建时间
3.9modifyTimeLocalDateTime修改时间

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": {
  5. "account": "testAccount",
  6. "roleId": 100001,
  7. "roleName": "visitor",
  8. "roleNameZh": "访客",
  9. "loginFailTime": 0,
  10. "accountStatus": 1,
  11. "description": null,
  12. "createTime": "2019-03-04 15:11:44",
  13. "modifyTime": "2019-03-04 15:11:44"
  14. }
  15. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

3.2 修改帐号

3.2.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/account/accountInfo
  • 请求方式:PUT
  • 请求头:Content-type: application/json
  • 返回格式:JSON

3.2.2 请求参数

1)入参表

序号输入参数类型可为空备注
1accountString帐号名称
2accountPwdString登录密码(sha256)
3roleIdint所属角色

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/account/accountInfo
  1. {
  2. "account": "testAccount",
  3. "accountPwd": "82ca84cf0d2ae423c09a214cee2bd5a7ac65c230c07d1859b9c43b30c3a9fc80",
  4. "roleId": 100001
  5. }

3.2.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataobject返回信息实体
3.1accountString帐号
3.2roleIdInteger所属角色
3.3roleNameString角色名称
3.4roleNameZhString角色中文名
3.5loginFailTimeInteger登录失败次数
3.6accountStatusInteger帐号状态
3.7descriptionString备注
3.8createTimeLocalDateTime创建时间
3.9modifyTimeLocalDateTime修改时间

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": {
  5. "account": "testAccount",
  6. "roleId": 100001,
  7. "roleName": "visitor",
  8. "roleNameZh": "访客",
  9. "loginFailTime": 0,
  10. "accountStatus": 1,
  11. "description": null,
  12. "createTime": "2019-03-04 15:11:44",
  13. "modifyTime": "2019-03-04 15:11:44"
  14. }
  15. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

3.3 删除帐号

3.3.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/account/{account}
  • 请求方式:DELETE
  • 返回格式:JSON

3.3.2 请求参数

1)入参表

序号输入参数类型可为空备注
1accountString帐号名称

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/account/testAccount

3.3.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataobject返回信息实体(空)

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "data": {},
  4. "message": "Success"
  5. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

3.4 查询帐号列表

3.4.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/account/accountList/{pageNumber}/{pageSize}?account={account}
  • 请求方式:GET
  • 返回格式:JSON

3.4.2 请求参数

1)入参表

序号输入参数类型可为空备注
1pageSizeInt每页记录数
2pageNumberInt当前页码
3accountString帐号

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/account/accountList/1/10?account=

3.4.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3totalCountInt总记录数
4dataList信息列表
4.1Object信息对象
4.1.1accountString帐号
4.1.2roleIdInteger所属角色
4.1.3roleNameString角色名称
4.1.4roleNameZhString角色中文名
4.1.5loginFailTimeInteger登录失败次数
4.1.6accountStatusInteger帐号状态
4.1.7descriptionString备注
4.1.8createTimeLocalDateTime创建时间
4.1.9modifyTimeLocalDateTime修改时间

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": [
  5. {
  6. "account": "testAccount",
  7. "roleId": 100001,
  8. "roleName": "visitor",
  9. "roleNameZh": "访客",
  10. "loginFailTime": 0,
  11. "accountStatus": 1,
  12. "description": null,
  13. "createTime": "2019-03-04 15:11:44",
  14. "modifyTime": "2019-03-04 15:18:47"
  15. },
  16. {
  17. "account": "admin",
  18. "roleId": 100000,
  19. "roleName": "admin",
  20. "roleNameZh": "管理员",
  21. "loginFailTime": 0,
  22. "accountStatus": 2,
  23. "description": null,
  24. "createTime": "2019-02-14 17:33:50",
  25. "modifyTime": "2019-02-14 17:45:53"
  26. }
  27. ],
  28. "totalCount": 2
  29. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

3.5 更新当前密码

3.5.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/account/passwordUpdate
  • 请求方式:put
  • 请求头:Content-type: application/json
  • 返回格式:JSON

3.5.2 请求参数

1)入参表

序号输入参数类型可为空备注
1oldAccountPwdString旧密码(sha256)
2newAccountPwdString新密码(sha256)

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/account/passwordUpdate
  1. {
  2. "oldAccountPwd": "dfdfgdg490cef2bfb60a9702erd2ddb7a805c9bd1arrrewefd51a7d0etttfa93e ",
  3. "newAccountPwd": "3f21a8490cef2bfb60a9702e9d2ddb7a805c9bd1a263557dfd51a7d0e9dfa93e"
  4. }

3.5.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success"
  4. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

3.6 获取登录验证码

3.6.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/account/pictureCheckCode
  • 请求方式:get
  • 请求头:Content-type: application/json
  • 返回格式:JSON

3.6.2 请求参数

1)入参表

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/account/pictureCheckCode

3.6.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataObject图片信息实体
3.1base64ImageString图片的base64
3.2tokenStringtoken(登录接口需要用到此值)

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": {
  5. "base64Image": "iVBORw0KGgoAAAANSUhEUgAAAJsAAAA8CAIAAAD+Gl+NAAAC3ElEQVR42u3cO04DMRAG4DkER6CFhoNwCgoq6DgQh0DiVJR0oUCKovWuPU977P2trZK1s/GnGb8g9PN7wbXSRReUtQpEIYoCURSIokAUBaIQTV2+P798r3mfnJbB69nXvmAnjdHm9+8ZgruNjI31mUQrvWPpPpeuH+43n2g9FOJyrOJmiMpQ+4fC0cdVniED6hzj6NjMdv3cZvJHjCpz70DazJY+oh2mBptmH+7um5eo/ff3F+mVENJHVDrMeEUGB1W0mFGgLrhnVI9OL1QdZ58wzTnVIMcA3X3FXTQP6tjJ7dFuBjnm29JgXlGXbazoubcs63K23JgSxu/MQXXpKd1IWS6XQ42b7ZOoH/lIZfp9ff7YXCuJHvX709sj87Jb1kQ5Ichp/XpPySmlra9hvCJAl3vr77qg8kO/h2idU4eaRJTTCXzRo9QtSuOkBuOjckQVriWqC7MIldnX6jD1OfF25NwNUP679X50n+4qljH2rMBJvNYY5QefDrWspZ4xRSxjOqMyh1I+arhoqbVbS4HK5IzebejAKUIlS/AlRL0OJ1OgShcwyvVotKjjLGmD2vSOXptGc3J63iSaBFUUx+oDmVSilf4/nWieMHURLRWsomrUnhvcOVEdRW8tyIIkuj9OtKmVUDSC01NUh9ozr2ZDdU+5jRPvIFHmEsUy3eVMeqP37jtwVk7uyCgkrcU5VtOFcsW1/2F4kCjnCLZxPqqI1Hot/mmMPVKDNgXdRflnMso9I07Aqc/abl+PWMOsispvmaRZVL3ru3vmF7EkdT+NWUq0kr5FO4Vl3U31iB0GL865UAV/Czj8X/tOUoxdhN9hyChqqQ7RpTghClEUiKJAFKIQBSpEF0aFKETX7cRsW1q6JyEoHh0qZABWfDqdnDPi5rGPSqflHLK06OBKiM7O1e0DRH1EIETn2HY4bMxffp31F5MHRmeQq3EW5vPrN2eOTq8h2X0u/d/aH4oBfftm+5EiAAAAAElFTkSuQmCC",
  6. "token": "eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiIzOGM0NjlhNC1kMTg3LTQyZDQtYWM1YS02OWU0OWM5MjMxNTkiLCJpYXQiOjE1NjAyNDY3MzksInN1YiI6ImU1RnoiLCJleHAiOjE1NjAyNDY3OTl9.FJYRZJSAhFjvO_P4AjMO6bnoOZJiu-AOSdO9ikb-30M"
  7. }
  8. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

3.7 登录接口

3.7.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/account/login?checkCode={checkCode}
  • 请求方式:get
  • 请求头:Content-type: application/json;token:{token}
  • 返回格式:JSON

3.7.2 请求参数

1)入参表

序号输入参数类型可为空备注
1checkCodeString登录验证码
2accountString帐号
3accountPwdString密码
4tokenString随验证码返回的token

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/account/login?checkCode=aege
  1. {
  2. "account": "admin",
  3. "accountPwd": "Abcd1234"
  4. }

1.1.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataObject图片信息实体
3.1accountString账户
3.2roleNameString角色
3.3accountStatusInt状态

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "data": {
  4. "accountStatus": 2,
  5. "roleName": "admin",
  6. "account": "admin"
  7. },
  8. "message": "success"
  9. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

4 区块管理模块

4.1 查询区块列表

4.1.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/block/blockList/{groupId}/{pageNumber}/{pageSize}}?pkHash={pkHash}&blockNumber={blockNumber}
  • 请求方式:GET
  • 返回格式:JSON

4.1.2 请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdInt当前所属链
2pageSizeInt每页记录数
3pageNumberInt当前页码
4pkHashString区块hash
5blockNumberBigInteger块高

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/block/blockList/300001/1/10?pkHash=

4.1.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3totalCountInt总记录数
4dataList区块列表
4.1Object区块信息对象
4.1.1pkHashString块hash
4.1.2blockNumberBigInteger块高
4.1.3blockTimestampLocalDateTime出块时间
4.1.4transCountint交易数
4.1.5sealerIndexint打包节点索引
4.1.6sealerString打包节点
4.1.7createTimeLocalDateTime创建时间
4.1.8modifyTimeLocalDateTime修改时间

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": [
  5. {
  6. "pkHash": "0x10fb8485eebffbb2a0b0d4f22d58d5cd54df2ac53f974b6c731c954957f36dd7",
  7. "blockNumber": 127,
  8. "blockTimestamp": "2019-06-11 18:11:32",
  9. "transCount": 1,
  10. "sealerIndex": 2,
  11. "sealer": "552398be0eef124c000e632b0b76a48c52b6cfbd547d92c15527c2d1df15fab2bcded48353db22526c3540e4ab2027630722889f20a4a614bb11a7887a85941b",
  12. "createTime": "2019-06-11 18:11:36",
  13. "modifyTime": "2019-06-11 18:11:36"
  14. }
  15. ],
  16. "totalCount": 1
  17. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

4.2 根据块高或hash查询区块信息

4.2.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/block/blockList/{groupId}/{pageNumber}/{pageSize}}?pkHash={pkHash}&blockNumber={blockNumber}
  • 请求方式:GET
  • 返回格式:JSON

4.2.2 请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdInt当前所属链
2pageSizeInt每页记录数
3pageNumberInt当前页码
4pkHashString区块hash
5blockNumberBigInteger块高

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/block/blockByNumber/1/11

4.2.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3Object区块信息对象
3.1numberBigInteger块高
3.2hashString区块hsah
3.3parentHashString父块hash
3.4nonceString随机数
3.5sealerString打包节点索
3.6logsBloomStringlog的布隆过滤值
3.7transactionsRootString
3.8stateRootString
3.9difficultyString
3.10totalDifficultyString
3.11extraDataString
3.12sizeint
3.13gasLimitlong限制gas值
3.14gasUsedlong已使用的gas值
3.15timestampString出块时间
3.16gasLimitRawString
3.17timestampRawString
3.18gasUsedRawString
3.19numberRawString
3.20transactionsList
3.20.1Object交易信息对象
3.20.1.1hashString交易hash
3.20.1.2blockHashString区块hash
3.20.1.3blockNumberBigInteger所属块高
3.20.1.4cumulativeGasUsedInt
3.20.1.5gasUsedInt交易消耗的gas
3.20.1.6contractAddressString合约地址
3.20.1.7statusString交易的状态值
3.20.1.8fromString交易发起者
3.20.1.9toString交易目标
3.20.1.10outputString交易输出内容
3.20.1.11logsString日志
3.20.1.12logsBloomStringlog的布隆过滤值
3.20.1.13nonceString
3.20.1.14valueString
3.20.1.15gasPricelong
3.20.1.16gaslong
3.20.1.17inputString
3.20.1.18vint
3.20.1.19nonceRawString
3.20.1.20blockNumberRawString
3.20.1.21gasPriceRawString
3.20.1.22gasRawString
3.20.1.23transactionIndexInt在区块中的索引

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": {
  5. "number": 11,
  6. "hash": "0xeef574a136f1d5031ce7f5d4bbc19fa1a1b5736f38ec5687d43405a572219405",
  7. "parentHash": "0xca84147e343acb972dc9247727b920b5c081320bbe940f4e2b24363836dca4a1",
  8. "nonce": "0",
  9. "sealer": "0x0",
  10. "logsBloom": "0x000000000000000000000000000000000000",
  11. "transactionsRoot": "0x68510be0e37b993874c6cb59170b87f01fc9672a162b30df7ea96cb026f3ab27",
  12. "stateRoot": "0xa6e930f100c2f4a13816e57aede9b63f3b7d51d64148f4412d8a6efcb0fa9c79",
  13. "difficulty": 0,
  14. "totalDifficulty": 0,
  15. "extraData": [],
  16. "size": 0,
  17. "gasLimit": 0,
  18. "gasUsed": 0,
  19. "timestamp": "1551667286153",
  20. "gasLimitRaw": "0x0",
  21. "timestampRaw": "0x1694693d089",
  22. "gasUsedRaw": "0x0",
  23. "numberRaw": "0xb",
  24. "transactions": [
  25. {
  26. "hash": "0x30ab22a942a6545cfe46fd725e53311fbcfea655f9c0d1e198b83749f5d7bf9b",
  27. "nonce": "1224685724047484442779169279180691132123728860283320089873703663086305160417",
  28. "blockHash": "0xeef574a136f1d5031ce7f5d4bbc19fa1a1b5736f38ec5687d43405a572219405",
  29. "blockNumber": 11,
  30. "transactionIndex": 0,
  31. "from": "0x148947262ec5e21739fe3a931c29e8b84ee34a0f",
  32. "to": "0xdfb1684019f7f6ea2c41590ac55d29961de5deba",
  33. "value": 0,
  34. "gasPrice": 300000000,
  35. "gas": 300000000,
  36. "input": "0x66c991390000000000000000000000000000000000000000000000000000000000000004",
  37. "v": 0,
  38. "nonceRaw": "0x2b525c633f530fdd935428a58afcfbb533e4dd16f24eda6b6a860b63e6a2ce1",
  39. "blockNumberRaw": "0xb",
  40. "transactionIndexRaw": "0x0",
  41. "gasPriceRaw": "0x11e1a300",
  42. "gasRaw": "0x11e1a300"
  43. }
  44. ]
  45. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

5 合约管理模块

5.1 查询合约列表

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/contract/contractList/{groupId}/{pageNumber}/{pageSize}
  • 请求方式:POST
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint群组id
2contractNameString合约名
3contractAddressString合约地址
4pageSizeint每页记录数
5pageNumberint当前页码
6contractStatusint1未部署,2已部署
7accountString关联账户

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/contract/contractList
  1. {"groupId":"1","pageNumber":1,"pageSize":500}

返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3totalCountInt总记录数
4dataList列表
5.1Object返回信息实体
5.1.1contractIdint合约编号
5.1.2contractPathString合约所在目录
5.1.3contractNameString合约名称
5.1.4groupIdInt所属群组编号
5.1.5contractStatusint1未部署,2已部署
5.1.6contractTypeInt合约类型(0-普通合约,1-系统合约)
5.1.7contractSourceString合约源码base64
5.1.8contractAbiString合约编译后生成的abi文件内容
5.1.9contractBinString合约编译后生成的bin,可用于交易解析
5.1.10bytecodeBinString合约编译后生成的bytecodeBin,可用于合约部署
5.1.11contractAddressString合约地址
5.1.12deployTimeLocalDateTime部署时间
5.1.13contractVersionString合约版本(会去除该字段)
5.1.14descriptionString备注
5.1.15accountString关联账户
5.1.16createTimeLocalDateTime创建时间
5.1.17modifyTimeLocalDateTime修改时间

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": [
  5. {
  6. "contractId": 200002,
  7. "contractPath": "hellos",
  8. "contractVersion": null,
  9. "contractName": "hellos",
  10. "contractStatus": 2,
  11. "groupId": 1,
  12. "contractType": 0,
  13. "contractSource": "cHJhZ21hIHNvbGlkaXgICAJbmFtZSA9IG47CiAgICB9Cn0=",
  14. "contractAbi": "[\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}]",
  15. "contractBin": "608060405234801561001057600080004d4c",
  16. "bytecodeBin": "60806040526004361061004c576000398de7e4ddf5fdc9ccbcfd44565fed695cd960b0029",
  17. "deployTime": "2019-06-11 18:11:33",
  18. "description": null,
  19. "account": "admin",
  20. "createTime": "2019-06-05 16:40:40",
  21. "modifyTime": "2019-06-11 18:11:33"
  22. }
  23. ],
  24. "totalCount": 1
  25. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

5.2 查询合约信息

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/contract/{contractId}
  • 请求方式:GET
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint群组id
2contractIdint合约编号

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/contract/200001

返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3Object返回信息实体
3.1contractIdint合约编号
3.2contractPathString合约所在目录
3.3contractNameString合约名称
3.4groupIdInt所属群组编号
3.5contractStatusint1未部署,2已部署
3.6contractTypeInt合约类型(0-普通合约,1-系统合约)
3.7contractSourceString合约源码
3.8contractAbiString编译合约生成的abi文件内容
3.9contractBinString合约编译的runtime-bytecode(runtime-bin),用于交易解析
3.10bytecodeBinString合约编译的bytecode(bin),用于部署合约
3.11contractAddressString合约地址
3.12deployTimeLocalDateTime部署时间
3.13contractVersionString合约版本(会去除该字段)
3.14descriptionString备注
3.15accountString关联账户
3.16createTimeLocalDateTime创建时间
3.17modifyTimeLocalDateTime修改时间

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": {
  5. "contractId": 200002,
  6. "contractPath": "hellos",
  7. "contractVersion": null,
  8. "contractName": "hellos",
  9. "contractStatus": 2,
  10. "groupId": 1,
  11. "contractType": 0,
  12. "contractSource": "cHJhZ21hIHNvbGlkaXgICAJbmFtZSA9IG47CiAgICB9Cn0=",
  13. "contractAbi": "[\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}]",
  14. "bytecodeBin": "60806040526004361061004c576000398de7e4ddf5fdc9ccbcfd44565fed695cd960b0029",
  15. "contractBin": "608060405234801561001057600080004d4c",
  16. "deployTime": "2019-06-11 18:11:33",
  17. "description": null,
  18. "account": "admin",
  19. "createTime": "2019-06-05 16:40:40",
  20. "modifyTime": "2019-06-11 18:11:33"
  21. }
  22. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

5.3 部署合约

构造方法参数(funcParam)为JSON数组,多个参数以逗号分隔(参数为数组时同理),示例:

  1. constructor(string s) -> ["aa,bb\"cc"] // 双引号要转义
  2. constructor(uint n,bool b) -> [1,true]
  3. constructor(bytes b,address[] a) -> ["0x1a",["0x7939E26070BE44E6c4Fc759Ce55C6C8b166d94BE","0xce867fD9afa64175bb50A4Aa0c17fC7C4A3C67D9"]]

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/contract/deploy
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdInt所属群组编号
2contractNameString合约名称
3contractSourceString合约源码
4contractAbiString编译合约生成的abi文件内容
5contractBinString合约编译的runtime-bytecode(runtime-bin),用于交易解析
6bytecodeBinString合约编译的bytecode(bin),用于部署合约
7contractIdString合约名称
8contractPathString合约所在目录
9userString私钥用户的地址
10accountString关联账户
11constructorParamsList构造函数入参

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/contract/deploy
  1. {
  2. "groupId": "1",
  3. "contractBin": "60806040526004361061004c576000357c010000002269b80029",
  4. "bytecodeBin": "60806040523480156100105761146031c79ef057dd274c87bff322ea2269b80029",
  5. "contractAbi": "[]",
  6. "contractSource": "cHJhZ21hIHNvbGlkaXR5IF4wLICAJbmFtZSA9IG47CiAgICB9Cn0=",
  7. "user": "0x2db346f9d24324a4b0eac7fb7f3379a2422704db",
  8. "account": "admin",
  9. "contractName": "HeHe",
  10. "contractId": 200008,
  11. "contractPath": "Hi",
  12. "constructorParams": ["a"]
  13. }

返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3Object返回信息实体
3.1contractIdint合约编号
3.2contractPathString合约所在目录
3.3contractNameString合约名称
3.4groupIdInt所属群组编号
3.5contractStatusint1未部署,2已部署
3.6contractTypeInt合约类型(0-普通合约,1-系统合约)
3.7contractSourceString合约源码
3.8contractAbiString编译合约生成的abi文件内容
3.9contractBinString合约编译的runtime-bytecode(runtime-bin),用于交易解析
3.10bytecodeBinString合约编译的bytecode(bin),用于部署合约
3.11contractAddressString合约地址
3.12deployTimeLocalDateTime部署时间
3.13contractVersionString合约版本(会去除该字段)
3.14descriptionString备注
3.15accountString关联账户
3.16createTimeLocalDateTime创建时间
3.17modifyTimeLocalDateTime修改时间

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": {
  5. "contractId": 200008,
  6. "contractPath": "Hi",
  7. "contractVersion": null,
  8. "contractName": "HeHe",
  9. "contractStatus": 2,
  10. "groupId": 1,
  11. "contractType": null,
  12. "contractSource": "cHJhZ21hIHNvbGlkaXR5IF4wLjQuM0=",
  13. "contractAbi": "[]",
  14. "bytecodeBin": "60806040526004361061004c576000357c010274c87bff322ea2269b80029",
  15. "contractBin": "608060405234801561001057629",
  16. "contractAddress": "0xa2ea2280b3a08a3ae2e1785dff09561e13915fb2",
  17. "deployTime": "2019-06-11 18:58:33",
  18. "description": null,
  19. "account": "admin",
  20. "createTime": null,
  21. "modifyTime": null
  22. }
  23. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

5.4 发送交易

方法入参(funcParam)为JSON数组,多个参数以逗号分隔(参数为数组时同理),示例:

  1. function set(string s) -> ["aa,bb\"cc"] // 双引号要转义
  2. function set(uint n,bool b) -> [1,true]
  3. function set(bytes b,address[] a) -> ["0x1a",["0x7939E26070BE44E6c4Fc759Ce55C6C8b166d94BE","0xce867fD9afa64175bb50A4Aa0c17fC7C4A3C67D9"]]

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/contract/transaction
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdInt所属群组编号
2userString私钥用户的地址
3contractNameString合约名称
4contractIdInt合约编号
5funcNameString合约方法名
6contractAddressString合约地址
7funcParamList合约方法入参
8contractAbiList合约abi/合约单个函数的abi
9useCnsbool是否使用cns调用
10cnsNameStringCNS名称,useCns为true时不能为空
11versionStringCNS合约版本,useCns为true时不能为空

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/contract/transaction
  1. {
  2. "groupId":"1",
  3. "user":"0x6accbdb86107b70decceee618ce40e20e15c8ad4",
  4. "contractName":"HelloWorld",
  5. "funcName":"set",
  6. "funcParam":["gwes"],
  7. "contractAbi": [{\"constant\":false,\"inputs\":[{\"indexed\":false,\"name\":\"n\",\"type\":\"string\"}],\"name\":\"set\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],
  8. "contractId":200002,
  9. "contractAddress":"0x7bd586b045e3684dbcd5506cb175c5d771f38d13",
  10. "useCns":false
  11. }

返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataobject返回信息实体(空)

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": {}
  5. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

5.5 根据包含bytecodeBin的字符串查询合约

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /contract/findByPartOfBytecodeBin
  • 请求方式:GET
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint所属群组编号
2partOfBytecodeBinString包含合约bytecodeBin的的字符串

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/contract/findByPartOfBytecodeBin
  1. {
  2. "groupId": "300001",
  3. "partOfBytecodeBin": "abc123455dev"
  4. }

返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3Object返回信息实体
3.1contractIdint合约编号
3.2contractNameString合约名称
3.3groupIdInt所属群组编号
3.4contractTypeInt合约类型(0-普通合约,1-系统合约)
3.5contractSourceString合约源码
3.6contractAbiString编译合约生成的abi文件内容
3.7contractBinString合约编译的runtime-bytecode(runtime-bin),用于交易解析
3.8bytecodeBinString合约编译的bytecode(bin),用于部署合约
3.9contractAddressString合约地址
3.10deployTimeLocalDateTime部署时间
3.11contractVersionString合约版本
3.12descriptionString备注
3.13accountString关联账户
3.14createTimeLocalDateTime创建时间
3.15modifyTimeLocalDateTime修改时间

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": {
  5. "contractId": 200002,
  6. "contractName": "Ok",
  7. "groupId": 2,
  8. "chainIndex": null,
  9. "contractType": 0,
  10. "contractSource": "cHJhZ21hIDQoNCg0KfQ==",
  11. "contractAbi": "[]",
  12. "contractBin": "60606040526000357c01000000000029",
  13. "bytecodeBin": "123455",
  14. "contractAddress": "0x19146d3a2f138aacb97ac52dd45dd7ba7cb3e04a",
  15. "deployTime": null,
  16. "contractVersion": "v6.0",
  17. "description": null,
  18. "account": "admin",
  19. "createTime": "2019-04-15 21:14:40",
  20. "modifyTime": "2019-04-15 21:14:40"
  21. }
  22. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

5.6. 保存合约接口

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/contract/save
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint所属群组编号
2contractIdint合约编号,传入contractId表示更新,否则新增
3contractNameString合约名称
4contractPathString合约所在目录
5contractSourceString合约源码的base64
6contractAbiString合约编译后生成的abi文件内容
7contractBinString合约编译后生成的bin,可用于交易解析
8bytecodeBinString合约编译后生成的bytecodeBin,可用于合约部署
9accountString关联账户,新建时不能为空

2)入参示例

  1. {
  2. "groupId": "1",
  3. "contractName": "HeHe",
  4. "contractPath": "/",
  5. "contractSource": "cHJhZ21hIHNvbGlkaXR5IF4wLjQuMjsn0=",
  6. "contractAbi": “[]”
  7. "contractBin": "60806040526004361061004c576000357c0100000000000000000000000029",
  8. "bytecodeBin": "6080604052348015610010572269b80029",
  9. "contractId": 1,
  10. "account": "admin"
  11. }

返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3Object返回信息实体
3.1contractIdint合约编号
3.2contractPathString合约所在目录
3.3contractNameString合约名称
3.4groupIdInt所属群组编号
3.5contractStatusint1未部署,2已部署
3.6contractTypeInt合约类型(0-普通合约,1-系统合约)
3.7contractSourceString合约源码base64
3.8contractAbiString合约编译后生成的abi文件内容
3.9contractBinString合约编译后生成的bin,可用于交易解析
3.10bytecodeBinString合约编译后生成的bytecodeBin,可用于合约部署
3.11contractAddressString合约地址
3.12deployTimeLocalDateTime部署时间
3.13contractVersionString合约版本(会去除该字段)
3.14descriptionString备注
3.15accountString关联账户
3.16createTimeLocalDateTime创建时间
3.17modifyTimeLocalDateTime修改时间

5.7 获取Abi信息

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /abi/{abiId}
  • 请求方式:GET
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1abiIdLongabi编号

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/abi/1

返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3Object返回信息实体
3.1abiIdint合约编号
3.2contractNameString合约名称
3.3groupIdInt所属群组编号
3.4contractAddressString合约地址
3.5contractAbiString导入的abi文件内容
3.6contractBinString合约runtime-bytecode(runtime-bin)
3.7accountString所属账号
3.8createTimeLocalDateTime创建时间
3.9modifyTimeLocalDateTime修改时间

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": {
  5. "abiId": 1,
  6. "groupId": 1,
  7. "contractName": "TTT",
  8. "contractAddress": "0x3214227e87bccca63893317febadd0b51ade735e",
  9. "contractAbi": "[{\"constant\":false,\"inputs\":[{\"name\":\"n\",\"type\":\"string\"}],\"name\":\"set\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"get\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"n\",\"type\":\"string\"}],\"name\":\"setSender\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"name\",\"type\":\"string\"}],\"name\":\"SetName\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"\",\"type\":\"uint256[2]\"}],\"name\":\"EventList\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"SetSender\",\"type\":\"event\"}]",
  10. "contractBin": "608060405260043610610057576000357...",
  11. "account": "admin",
  12. "createTime": "2020-05-18 10:59:02",
  13. "modifyTime": "2020-05-18 10:59:02"
  14. }
  15. }

5.8 获取Abi信息分页列表

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /abi/list/{groupId}/{pageNumber}/{pageSize}?account={account}
  • 请求方式:GET
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint群组编号
2pageNumberint页码,从1开始
3pageSizeint页大小
4accountString所属账号

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/abi/list/1/1/5?account=

返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3Object返回信息实体
3.1abiIdint合约编号
3.2contractNameString合约名称
3.3groupIdInt所属群组编号
3.4contractAddressString合约地址
3.5contractAbiString导入的abi文件内容
3.6contractBinString合约runtime-bytecode(runtime-bin)
3.7accountString所属账号
3.8createTimeLocalDateTime创建时间
3.9modifyTimeLocalDateTime修改时间

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": [
  5. {
  6. "abiId": 1,
  7. "groupId": 1,
  8. "account": "admin",
  9. "contractName": "TTT",
  10. "contractAddress": "0x3214227e87bccca63893317febadd0b51ade735e",
  11. "contractAbi": "[{\"constant\":false,\"inputs\":[{\"name\":\"n\",\"type\":\"string\"}],\"name\":\"set\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"get\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"n\",\"type\":\"string\"}],\"name\":\"setSender\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"name\",\"type\":\"string\"}],\"name\":\"SetName\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"\",\"type\":\"uint256[2]\"}],\"name\":\"EventList\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"SetSender\",\"type\":\"event\"}]",
  12. "contractBin": "608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463fffff...29",
  13. "createTime": "2020-05-18 10:59:02",
  14. "modifyTime": "2020-05-18 10:59:02"
  15. }
  16. ],
  17. "totalCount": 1
  18. }

5.9. 导入已部署合约的abi

将其他平台已部署的合约导入到本平台进行管理

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/abi
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint所属群组编号
2contractAddressString合约地址
3contractNameString合约名称
4contractAbiString合约编译后生成的abi文件内容
5accountString所属账号

2)入参示例

  1. {
  2. "groupId": 1,
  3. "account": "admin",
  4. "contractAddress": "0x3214227e87bccca63893317febadd0b51ade735e",
  5. "contractName": "HelloWorld",
  6. "contractAbi": [{"constant":false,"inputs":[{"name":"n","type":"string"}],"name":"set","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"get","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"name","type":"string"}],"name":"SetName","type":"event"}]
  7. }

返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataobject返回信息实体(空)

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success"
  4. }

5.10. 修改已部署合约的abi

将其他平台已部署的合约导入到本平台进行管理

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/abi
  • 请求方式:PUT
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1abiIdlongabi编号
2groupIdint所属群组编号
3contractAddressString合约地址
4contractNameString合约名称
5contractAbiString合约编译后生成的abi文件内容

2)入参示例

  1. {
  2. "abiId": 1,
  3. "groupId": 1,
  4. "contractAddress": "0x3214227e87bccca63893317febadd0b51ade735e",
  5. "contractName": "HelloWorld",
  6. "contractAbi": [{"constant":false,"inputs":[{"name":"n","type":"string"}],"name":"set","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"get","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"name","type":"string"}],"name":"SetName","type":"event"}]
  7. }

返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataobject返回信息实体(空)

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success"
  4. }

5.11. 获取全量合约列表(不包含abi/bin)

接口描述

根据群组编号和合约状态获取全量合约

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/contract/contractList/all/light?groupId={groupId}&contractStatus={contractStatus}
  • 请求方式:GET
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)参数表

序号中文参数名类型最大长度必填说明
1所属群组groupIdInteger
2合约状态contractStatusInteger1未部署,2已部署

2)数据格式

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/contract/contractList/all/light?groupId=1&contractStatus=2

响应参数

1)参数表

序号中文参数名类型必填说明
1返回码codeString返回码信息请参看附录1
2提示信息messageString
3返回数据dataObject
3.1合约编号idInteger
3.2所在目录contractPathString
3.3合约名称contractNameString
3.4合约状态contractStatusInteger1未部署,2已部署
3.5所属群组groupIdInteger
3.6合约地址contractAddressString
3.7部署时间deployTimeString
3.8修改时间modifyTimeString
3.9创建时间createTimeString
3.10备注descriptionString
3.11部署用户地址deployAddressString
3.12部署用户姓名deployUserNameString

2)数据格式

  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": [
  5. {
  6. "id": 2,
  7. "contractPath": "/",
  8. "contractName": "HeHe",
  9. "contractStatus": 1,
  10. "groupId": 1,
  11. "contractSource": "cHJhZ21hIHNvbGlkaXR5IICB9Cn0=",
  12. "contractAddress": null,
  13. "deployTime": null,
  14. "description": null,
  15. "createTime": "2019-06-10 16:42:50",
  16. "modifyTime": "2019-06-10 16:42:52"
  17. }
  18. ],
  19. "totalCount": 1
  20. }

5.12. 获取合约路径列表

接口描述

获取合约路径列表

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/contract/findPathList/{groupId}
  • 请求方式:GET
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)参数表

序号中文参数名类型最大长度必填说明
1所属群组groupIdInteger

2)数据格式

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/contract/findPathList/1

响应参数

1)参数表

序号中文参数名类型必填说明
1返回码codeString返回码信息请参看附录1
2提示信息messageString
3返回数据dataObject
3.1路径ididInteger
3.2群组编号groupIdInteger
3.3所在目录contractPathString
3.4修改时间modifyTimeString
3.5创建时间createTimeString

2)数据格式

  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": [
  5. {
  6. "id": 1,
  7. "groupId": 1,
  8. "contractPath": "/",
  9. "createTime": "2019-06-10 16:42:50",
  10. "modifyTime": "2019-06-10 16:42:52"
  11. }
  12. ]
  13. }

5.13. 保存合约路径

接口描述

保存合约路径

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/contract/contractPath
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)参数表

序号中文参数名类型最大长度必填说明
1所属群组groupIdInteger
1合约路径contractPathString

2)数据格式

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/contract/contractPath

响应参数

1)参数表

序号中文参数名类型必填说明
1返回码codeString返回码信息请参看附录1
2提示信息messageString
3返回数据dataint增加数

2)数据格式

  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": 1
  5. }

5.14. 删除合约路径并批量删除合约

接口描述

删除合约路径并批量删除合约

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/contract/batch/path
  • 请求方式:DELETE
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)参数表

序号中文参数名类型最大长度必填说明
1所属群组groupIdInteger
1合约路径contractPathString

2)数据格式

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/contract/batch/path
  1. {
  2. "groupId": 1,
  3. "contractPath": test
  4. }

响应参数

1)参数表

序号中文参数名类型必填说明
1返回码codeString返回码信息请参看附录1
2提示信息messageString

2)数据格式

  1. {
  2. "code": 0,
  3. "message": "success"
  4. }

5.15. 注册cns接口

接口描述

注册cns

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/contract/registerCns
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)参数表

序号中文参数名类型最大长度必填说明
1所属群组groupIdInteger
2合约路径contractPathString
3合约名称contractNameString
4cns名称cnsNameString
5合约地址contractAddressString
6合约abicontractAbiListabi文件里面的内容,是一个JSONArray
7cns版本versionString
8用户地址userAddressString

2)数据格式

  1. {
  2. "groupId": 1,
  3. "contractPath": "/",
  4. "contractName": "Hello",
  5. "cnsName": "Hello",
  6. "version": "v0.4",
  7. "contractAddress": "0xcaff8fdf1d461b91c7c8f0ff2af2f79a80bc189e",
  8. "contractAbi": [{"cons tant":false,"inputs":[{"name":"n","type":"string","type0":null,"indexed":false}],"name":"set","outputs":[{"name":"","type":"string","type0":null,"indexed":false}],"type":"function","payable":false,"stateMutability":"nonpayable"},{"co nstant":true,"inputs":[],"name":"get","outputs":[{"name":"","type":"string","type0":null,"indexed":false}],"type":"function","payable":false,"stateMutability":"view"},{"constant":false,"inputs":[{"name":"name","type":"string","type0":null,"indexed":false}],"name":"SetName","outputs":null,"type":"event","payable":false,"stateMutability":null}],
  9. "userAddress": "0x8c808ff5beee7b4cfb17f141f6237db93a668e46"
  10. }

响应参数

1)参数表

序号中文参数名类型必填说明
1返回码codeString返回码信息请参看附录1
2提示信息messageString

2)数据格式

  1. {
  2. "code": 0,
  3. "message": "success"
  4. }

5.16. 根据合约地址获取cns信息

接口描述

根据合约地址获取该合约地址最新的cns信息

传输协议规范

  • 网络传输协议:使用HTTP协议

  • 请求地址:/contract/findCns

  • 请求方式:POST

    请求头:Content-type: application/json

  • 返回格式:JSON

请求参数

1)参数表

序号中文参数名类型最大长度必填说明
1所属群组groupIdInteger
2合约地址contractAddressString

2)数据格式

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/contract/findCns
  1. {
  2. "groupId": 1,
  3. "contractAddress": "0xcaff8fdf1d461b91c7c8f0ff2af2f79a80bc189e"
  4. }

响应参数

1)参数表

序号中文参数名类型必填说明
1返回码codeString返回码信息请参看附录1
2提示信息messageString
3返回数据dataObject
3.1编号idInteger
3.2群组编号groupIdInteger
3.3合约路径contractPathString
3.4合约名称contractNameString
3.5cns名称cnsNameString
3.6cns版本versionString
3.7合约地址contractAddressString
3.8修改时间modifyTimeString
3.9创建时间createTimeString

2)数据格式

  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": {
  5. "id": 1,
  6. "groupId": 1,
  7. "contractPath": "/",
  8. "contractName": "Hello",
  9. "cnsName": "Hello",
  10. "version": "v0.4",
  11. "contractAddress": "0xcaff8fdf1d461b91c7c8f0ff2af2f79a80bc189e",
  12. "createTime": "2020-12-30 16:32:28",
  13. "modifyTime": "2020-12-30 16:32:28"
  14. }
  15. }

5.17. 获取本地cns信息列表

接口描述

获取本地cns信息列表

传输协议规范

  • 网络传输协议:使用HTTP协议

  • 请求地址:/contract/findCnsList

  • 请求方式:POST

    请求头:Content-type: application/json

  • 返回格式:JSON

请求参数

1)参数表

序号中文参数名类型最大长度必填说明
1所属群组groupIdInteger
2每页记录数pageSizeInteger
3当前页码pageNumberInteger
4cns名称cnsNameString
5cns版本versionString
6合约地址contractAddressString

2)数据格式

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/contract/findCnsList
  1. {
  2. "groupId": 1,
  3. "pageSize": 1,
  4. "pageNumber": 1
  5. }

响应参数

1)参数表

序号中文参数名类型必填说明
1返回码codeString返回码信息请参看附录1
2提示信息messageString
3记录数totalCountInt总记录数
4返回数据dataList
4.1返回信息实体Object
4.1.1编号idInteger
4.1.2群组编号groupIdInteger
4.1.3合约路径contractPathString
4.1.4合约名称contractNameString
4.1.5cns名称cnsNameString
4.1.6cns版本versionString
4.1.7合约地址contractAddressString
4.1.8合约AbicontractAbiString
4.1.9修改时间modifyTimeString
4.1.10创建时间createTimeString

2)数据格式

  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": [
  5. {
  6. "id": 1,
  7. "groupId": 1,
  8. "contractPath": "/",
  9. "contractName": "Hello",
  10. "cnsName": "Hello",
  11. "version": "v0.4",
  12. "contractAddress": "0xcaff8fdf1d461b91c7c8f0ff2af2f79a80bc189e",
  13. "contractAbi":"[{\"constant\":true,\"inputs\":[],\"name\":\"get\",\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"type0\":null,\"indexed\":false}],\"type\":\"function\",\"payable\":false,\"stateMutability\":\"view\"},{\"constant\":false,\"inputs\":[{\"name\":\"n\",\"type\":\"string\",\"type0\":null,\"indexed\":false}],\"name\":\"set\",\"outputs\":[],\"type\":\"function\",\"payable\":false,\"stateMutability\":\"nonpayable\"},{\"constant\":false,\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"type0\":null,\"indexed\":false}],\"name\":\"SetName\",\"outputs\":null,\"type\":\"event\",\"payable\":false,\"stateMutability\":null}]",
  14. "createTime": "2020-12-30 16:32:28",
  15. "modifyTime": "2020-12-30 16:32:28"
  16. }
  17. ],
  18. "totalCount": 1
  19. }

5.18 获取合约与导入ABI列表(分页)

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /abi/list/all/{groupId}/{pageNumber}/{pageSize}?account={account}
  • 请求方式:GET
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint群组编号
2pageNumberint页码,从1开始
3pageSizeint页大小
4accountString所属账号

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/abi/list/all/1/1/5?account=

返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3Object返回数据
3.0contractIdint合约编号(contractId为空时,说明合约为外部导入的)
3.1abiIdint合约编号
3.2contractNameString合约名称
3.3groupIdInt所属群组编号
3.4contractAddressString合约地址
3.5contractAbiString导入的abi文件内容
3.6contractBinString合约runtime-bytecode(runtime-bin)
3.7accountString所属账号
3.8createTimeLocalDateTime创建时间
3.9modifyTimeLocalDateTime修改时间
3.10contractPathString合约路径
3.11contractStatusint合约状态
3.12deployAddressString部署用户地址
3.13deployUserNameString部署用户名

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": [{
  5. "contractId": null,
  6. "contractPath": null,
  7. "contractVersion": null,
  8. "contractName": "c",
  9. "account": null,
  10. "contractStatus": null,
  11. "groupId": 1,
  12. "contractType": null,
  13. "contractSource": null,
  14. "contractAbi": "[{\"constant\":false,\"inputs\":[{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"register\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]",
  15. "contractBin": null,
  16. "bytecodeBin": null,
  17. "contractAddress": "0x4ac92d4d1680f426ac2da943b3ff67e82976d075",
  18. "deployTime": null,
  19. "description": null,
  20. "createTime": "2021-04-07 09:29:54",
  21. "modifyTime": "2021-04-07 09:29:54",
  22. "deployAddress": null,
  23. "deployUserName": null,
  24. "abiId": 8
  25. }, {
  26. "contractId": 200013,
  27. "contractPath": "weid_0xcde7c667528b6df1b61fd6483a0925ccc67931a02394acab1835254546e67d80",
  28. "contractVersion": null,
  29. "contractName": "SpecificIssuerController",
  30. "account": "admin",
  31. "contractStatus": 2,
  32. "groupId": 1,
  33. "contractType": 2,
  34. "contractSource": null,
  35. "contractAbi": "[{\"constant\":false,\"inputs\":[{\"name\":\"typeName\",\"type\":\"bytes32\"},{\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"addIssuer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"typeName\",\"type\":\"bytes32\"},{\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"isSpecificTypeIssuer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"typeName\",\"type\":\"bytes32\"},{\"name\":\"extraValue\",\"type\":\"bytes32\"}],\"name\":\"addExtraValue\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"typeName\",\"type\":\"bytes32\"}],\"name\":\"registerIssuerType\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"typeName\",\"type\":\"bytes32\"}],\"name\":\"getExtraValue\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"typeName\",\"type\":\"bytes32\"}],\"name\":\"isIssuerTypeExist\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"typeName\",\"type\":\"bytes32\"},{\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"removeIssuer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"typeName\",\"type\":\"bytes32\"},{\"name\":\"startPos\",\"type\":\"uint256\"},{\"name\":\"num\",\"type\":\"uint256\"}],\"name\":\"getSpecificTypeIssuerList\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"specificIssuerDataAddress\",\"type\":\"address\"},{\"name\":\"roleControllerAddress\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"operation\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"retCode\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"typeName\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"SpecificIssuerRetLog\",\"type\":\"event\"}]",
  36. "contractBin": "",
  37. "bytecodeBin": "",
  38. "contractAddress": "0xce1d576181e1d68899a3f2b86c8e274657c07fea",
  39. "deployTime": null,
  40. "description": null,
  41. "createTime": "2021-04-06 21:34:38",
  42. "modifyTime": "2021-04-06 21:34:38",
  43. "deployAddress": null,
  44. "deployUserName": null,
  45. "abiId": 6
  46. }],
  47. "totalCount": 2
  48. }

6 服务器监控相关

6.1 获取节点监控信息

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/chain/monitorInfo/{nodeId}?beginDate={beginDate}&endDate={endDate}&contrastBeginDate={contrastBeginDate}&contrastEndDate={contrastEndDate}&gap={gap}
  • 请求方式:GET
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1nodeIdint群组id
2beginDateLocalDateTime显示时间(开始) yyyy-MM-dd’T’HH:mm:ss.SSS 2019-03-13T00:00:00
3endDateLocalDateTime显示时间(结束)
4contrastBeginDateLocalDateTime对比时间(开始)
5contrastEndDateLocalDateTime对比时间(结束)
6gapInt数据粒度

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/chain/mointorInfo/500001?gap=60&beginDate=2019-03-13T00:00:00&endDate=2019-03-13T14:34:22&contrastBeginDate=2019-03-13T00:00:00&contrastEndDate=2019-03-13T14:34:22

返回参数

1)出参表

序号输出参数类型备注
1codeint返回码
2messageString描述信息
3dataArray返回信息列表
3.1Object返回信息实体
3.1.1metricTypeString测量类型:blockHeight、pbftView
3.1.2dataObject
3.1.2.1lineDataListObject
3.1.2.1.1timestampListList\<String>时间戳列表
3.1.2.1.2valueListList\<Integer>值列表
3.1.2.2contrastDataListObject
3.1.2.2.1timestampListList\<String>时间戳列表
3.1.2.2.2valueListList\<Integer>值列表

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": [
  5. {
  6. "metricType": "blockHeight",
  7. "data": {
  8. "lineDataList": {
  9. "timestampList": [
  10. 1552406401042,
  11. 1552406701001
  12. ],
  13. "valueList": [
  14. 747309,
  15. 747309
  16. ]
  17. },
  18. "contrastDataList": {
  19. "timestampList": [
  20. 1552320005000,
  21. 1552320301001
  22. ],
  23. "valueList": [
  24. null,
  25. 747309
  26. ]
  27. }
  28. }
  29. },
  30. {
  31. "metricType": "pbftView",
  32. "data": {
  33. "lineDataList": {
  34. "timestampList": null,
  35. "valueList": [
  36. 118457,
  37. 157604
  38. ]
  39. },
  40. "contrastDataList": {
  41. "timestampList": null,
  42. "valueList": [
  43. null,
  44. 33298
  45. ]
  46. }
  47. }
  48. }
  49. ]
  50. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

6.2 获取服务器监控信息

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:
  1. performance/ratio/{nodeId}?gap={gap}&beginDate={beginDate}&endDate={endDate}&contrastBeginDate={contrastBeginDate}&contrastEndDate={contrastEndDate}
  • 请求方式:GET
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1nodeIdint群组id
2beginDateLocalDateTime显示时间(开始) yyyy-MM-dd’T’HH:mm:ss.SSS 2019-03-13T00:00:00
3endDateLocalDateTime显示时间(结束)
4contrastBeginDateLocalDateTime对比时间(开始)
5contrastEndDateLocalDateTime对比时间(结束)
6gapInt数据粒度

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/performance/ratio/500001?gap=1&beginDate=2019-03-15T00:00:00&endDate=2019-03-15T15:26:55&contrastBeginDate=2019-03-15T00:00:00&contrastEndDate=2019-03-15T15:26:55

返回参数

1)出参表

序号输出参数类型备注
1codeint返回码
2messageString描述信息
3dataArray返回信息列表
3.1Object返回信息实体
3.1.1metricTypeString测量类型: cpu、memory、disk、txbps、rxbps
3.1.2dataObject
3.1.2.1lineDataListObject
3.1.2.1.1timestampListList\<String>时间戳列表
3.1.2.1.2valueListList\<Integer>值列表
3.1.2.2contrastDataListObject
3.1.2.2.1timestampListList\<String>时间戳列表
3.1.2.2.2valueListList\<Integer>值列表

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": [
  5. {
  6. "metricType": "txbps",
  7. "data": {
  8. "lineDataList": {
  9. "timestampList": [
  10. 1552406401042,
  11. 1552406701001
  12. ],
  13. "valueList": [
  14. 12.24,
  15. 54.48
  16. ]
  17. },
  18. "contrastDataList": {
  19. "timestampList": [
  20. 1552320005000,
  21. 1552320301001
  22. ],
  23. "valueList": [
  24. 22.24,
  25. 24.48
  26. ]
  27. }
  28. }
  29. },
  30. {
  31. "metricType": "cpu",
  32. "data": {
  33. "lineDataList": {
  34. "timestampList": null,
  35. "valueList": [
  36. 118457,
  37. 157604
  38. ]
  39. },
  40. "contrastDataList": {
  41. "timestampList": null,
  42. "valueList": [
  43. null,
  44. 33298
  45. ]
  46. }
  47. }
  48. }
  49. ]
  50. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

6.3 获取邮件告警配置

配置邮件告警的邮件服务器的相关参数,包含协议类型protocol、邮件服务器地址host、端口port、用户邮箱地址username、用户邮箱授权码password;包含Authentication验证开关(默认开启)authentication,以及邮件告警模块的开关enable

注:邮件告警的邮箱协议类型默认使用SMTP协议,使用25默认端口,默认使用username/password进行用户验证,目前仅支持通过TLS/SSL连接邮件服务器;

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /mailServer/config/{serverId}
  • 请求方式:GET
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1serverIdInt邮件服务的编号

2)入参示例

  1. http://localhost:5001/WeBASE-Node-Manager/mailServer/config/1

返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataObject成功时返回
3.1Object返回信息实体
3.1.1serverIdInt邮件服务器的编号
3.1.2serverNameString邮件服务器的名字
3.1.3hostString邮件服务器的主机地址
3.1.4portInt邮件服务器的端口号
3.1.5usernameString邮件服务器的用户地址
3.1.6passwordString邮件服务器的用户授权码
3.1.7protocolString邮件服务器的协议
3.1.8defaultEncodingString邮件服务器的编码
3.1.9authenticationInt开启验证:0-关闭,1-开启
3.1.10starttlsEnableInt开启优先使用STARTTLS:0-关闭,1-开启
3.1.11enableInt开启邮件服务器:0-关闭,1-开启
3.1.12starttlsRequiredInt必须使用STARTTLS:0-关闭,1-开启
3.1.13socketFactoryPortIntTLS使用的端口号
3.1.14socketFactoryClassStringTLS使用的java类
3.1.15socketFactoryFallbackInt开启TLS Fallback函数:0-关闭,1-开启
3.1.16timeoutInt从邮箱服务器读取超时时间
3.1.17connectionTimeoutInt邮箱服务器连接超时时间
3.1.18writeTimeoutInt从邮箱服务器写超时时间
3.1.19createTimeLocalDateTime创建时间
3.1.20modifyTimeLocalDateTime修改时间

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": {
  5. "serverId": 1,
  6. "serverName": "Default config",
  7. "host": "smtp.qq.com",
  8. "port": 25,
  9. "username": "yourmail@qq.com",
  10. "password": "yourpassword",
  11. "protocol": "smtp",
  12. "defaultEncoding": "UTF-8",
  13. "createTime": "2019-10-29 20:02:30",
  14. "modifyTime": "2019-10-29 20:02:30",
  15. "authentication": 1,
  16. "starttlsEnable": 1,
  17. "starttlsRequired": 0,
  18. "socketFactoryPort": 465,
  19. "socketFactoryClass": "javax.net.ssl.SSLSocketFactory",
  20. "socketFactoryFallback": 0,
  21. "enable": 0,
  22. "timeout": 5000,
  23. "connectionTimeout": 5000,
  24. "writeTimeout": 5000
  25. }
  26. }

6.4 获取全部邮件告警配置

返回所有的邮件告警的邮件服务配置

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /mailServer/config/list
  • 请求方式:GET
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
-----

2)入参示例

  1. http://localhost:5001/WeBASE-Node-Manager/mailServer/config/list

返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataList成功时返回
3.1Object返回信息实体
3.1.1serverIdInt邮件服务器的编号
3.1.2serverNameString邮件服务器的名字
3.1.3hostString邮件服务器的主机地址
3.1.4portInt邮件服务器的端口号
3.1.5usernameString邮件服务器的用户地址
3.1.6passwordString邮件服务器的用户授权码
3.1.7protocolString邮件服务器的协议
3.1.8defaultEncodingString邮件服务器的编码
3.1.9authenticationInt开启验证:0-关闭,1-开启
3.1.10starttlsEnableInt开启优先使用STARTTLS:0-关闭,1-开启
3.1.11enableInt开启邮件服务器:0-关闭,1-开启
3.1.12starttlsRequiredInt必须使用STARTTLS:0-关闭,1-开启
3.1.13socketFactoryPortIntTLS使用的端口号
3.1.14socketFactoryClassStringTLS使用的java类
3.1.15socketFactoryFallbackInt开启TLS Fallback函数:0-关闭,1-开启
3.1.16timeoutInt从邮箱服务器读取超时时间
3.1.17connectionTimeoutInt邮箱服务器连接超时时间
3.1.18writeTimeoutInt从邮箱服务器写超时时间
3.1.19createTimeLocalDateTime创建时间
3.1.20modifyTimeLocalDateTime修改时间

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": [
  5. {
  6. "serverId": 1,
  7. "serverName": "Default config",
  8. "host": "smtp.qq.com",
  9. "port": 25,
  10. "username": "yourmail@qq.com",
  11. "password": "yourpassword",
  12. "protocol": "smtp",
  13. "defaultEncoding": "UTF-8",
  14. "createTime": "2019-10-29 20:02:30",
  15. "modifyTime": "2019-10-29 20:02:30",
  16. "authentication": 1,
  17. "starttlsEnable": 1,
  18. "starttlsRequired": 0,
  19. "socketFactoryPort": 465,
  20. "socketFactoryClass": "javax.net.ssl.SSLSocketFactory",
  21. "socketFactoryFallback": 0,
  22. "enable": 0,
  23. "timeout": 5000,
  24. "connectionTimeout": 5000,
  25. "writeTimeout": 5000
  26. }
  27. ]
  28. }

6.5 更新邮件告警配置

更新邮件告警的配置内容;目前仅支持单个邮件服务器配置,不支持新增配置;

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /mailServer/config
  • 请求方式:PUT
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1serverIdint邮件告警配置的编号
2protocolString邮件服务的协议类型,小写(发件服务器默认使用smtp)
3hostString邮件服务的地址
4portint邮件服务使用的端口,默认25
5usernameString邮件服务的用户邮箱地址,authentication开启时为必填
6passwordString邮件服务的用户邮箱授权码,使用base64编码,authentication开启时为必填
7authenticationint是否启用验证,默认使用username/password验证:0-关闭,1-开启
8enableint是否启用邮件服务:0-关闭,1-开启

2)入参示例

  1. http://localhost:5001/WeBASE-Node-Manager/mailServer/config
  1. {
  2. "serverId": 1,
  3. "host": "smtp.qq.com",
  4. "port": 25,
  5. "username": "yourmail@qq.com",
  6. "password": "eW91cnBhc3N3b3Jk", // 原文:yourpassword
  7. "protocol": "smtp",
  8. "authentication": 1,
  9. "enable": 1
  10. }

返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataObject返回邮件服务配置的具体内容
3.1Object参数含义参考上文GET接口出参表

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": {
  5. "serverId": 1,
  6. "serverName": "Default config",
  7. "host": "smtp.qq.com",
  8. "port": 25,
  9. "username": "yourmail@qq.com",
  10. "password": "yourpassword",
  11. "protocol": "smtp",
  12. "defaultEncoding": "UTF-8",
  13. "createTime": "2019-10-29 20:02:30",
  14. "modifyTime": "2019-11-07 10:04:47",
  15. "authentication": 1,
  16. "starttlsEnable": 1,
  17. "starttlsRequired": 0,
  18. "socketFactoryPort": 465,
  19. "socketFactoryClass": "javax.net.ssl.SSLSocketFactory",
  20. "socketFactoryFallback": 0,
  21. "enable": 1,
  22. "timeout": 5000,
  23. "connectionTimeout": 5000,
  24. "writeTimeout": 5000
  25. }
  26. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

6.6 发送测试邮件

使用当前的邮件服务配置,向指定的邮箱地址发送测试邮件,如果配置错误将发送失败;

注:需要确保配置正确才能使用后续的邮件告警功能;返回成功信息后,需要用户到自己的邮箱查看是否收到邮测试邮件;

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /alert/mail/test/{toMailAddress}
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1{toMailAddress}String接收测试邮件的邮箱地址
2hostString邮件服务的地址
3portint邮件服务使用的端口,默认25
4protocolString邮件服务的协议类型,默认使用smtp
5defaultEncodingString邮件服务的邮件编码格式,默认为UTF-8编码
6usernameString邮件服务的用户邮箱地址,authentication开启时为必填
7passwordString邮件服务的用户邮箱授权码,authentication开启时为必填
8authenticationint开启鉴权验证,默认开启(使用username/password验证)0-关闭,1-开启
9starttlsEnableint开启优先使用STARTTLS,默认开启 0-关闭,1-开启
10starttlsRequiredint开启必须使用STARTTLS,默认关闭,开启时需要配置socketFactoryPort, socketFactoryClass, socketFactoryFallback 0-关闭,1-开启
11socketFactoryPortStringTLS/SSL的Socket端口,默认465
12socketFactoryClassStringTLS/SSL的Socket工厂类
13socketFactoryFallbackint开启Socket的Fallback函数,默认关闭 0-关闭,1-开启
14timeoutint读超时时间值,默认5000ms
15connectionTimeoutint连接超时时间值,默认5000ms
16writeTimeoutint写超时时间值,默认5000ms

2)入参示例

  1. http://localhost:5001/WeBASE-Node-Manager/alert/mail/test/yourmail@qq.com
  1. {
  2. "host": "smtp.qq.com",
  3. "port": 25,
  4. "username": "yourmail@qq.com",
  5. "password": "yourpassword",
  6. "protocol": "smtp",
  7. "defaultEncoding": "UTF-8",
  8. "authentication": 1,
  9. "starttlsEnable": 1,
  10. "starttlsRequired": 0,
  11. "socketFactoryPort": 465,
  12. "socketFactoryClass": "javax.net.ssl.SSLSocketFactory",
  13. "socketFactoryFallback": 0,
  14. "timeout": 5000,
  15. "connectionTimeout": 5000,
  16. "writeTimeout": 5000
  17. }

返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataObject错误时返回错误原因

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": null
  5. }
  • 失败:
  1. {
  2. "code": 202080,
  3. "message": "Send mail error, please check mail server configuration.",
  4. "data": "Failed messages: javax.mail.SendFailedException: No recipient addresses"
  5. }

6.7 获取告警类型配置

获取单个告警配置的内容;告警类型配置是对不同告警类型下的不同内容,包含告警邮件标题ruleName,告警邮件内容alertContent,告警邮件发送时间间隔alertIntervalSeconds,上次告警时间lastAlertTime,目标告警邮箱地址列表userList,是否启用该类型的邮件告警enable,告警等级alertLevel等;

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /alert/{ruleId}
  • 请求方式:GET
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1ruleIdInt告警配置的编号

2)入参示例

  1. http://localhost:5001/WeBASE-Node-Manager/alert/1

返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataObject成功时返回
3.1Object返回信息实体
3.1.1ruleIdInt告警类型配置的编号
3.1.2ruleNameString告警类型的名字/告警邮件标题
3.1.3enableInt是否开启该告警:0-关闭,1-开启
3.1.4alertTypeInt告警类型:1-节点状态告警,2-审计告警,3-证书有效期
3.1.5alertLevelInt告警等级:1-高,2-中,3-低
3.1.6alertIntervalSecondsLong告警邮件发送时间间隔
3.1.7alertContentString告警邮件内容,其中包含{}括起来的变量
3.1.8contentParamListString告警邮件内容中变量的列表,由List<String>序列化为String
3.1.9descriptionString告警描述
3.1.10userListInt目标告警邮箱地址列表,由List<String>序列化为String
3.1.11lastAlertTimeLocalDateTime上次告警时间
3.1.12isAllUserInt发送给所有用户:0-关闭,1-开启
3.1.13createTimeLocalDateTime创建时间
3.1.14modifyTimeLocalDateTime修改时间

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": {
  5. "ruleId": 1,
  6. "ruleName": "节点异常告警",
  7. "enable": 0,
  8. "alertType": 1,
  9. "alertLevel": 1,
  10. "alertIntervalSeconds": 3600,
  11. "alertContent": "{nodeId}节点异常,请到\"节点管理\"页面查看具体信息",
  12. "contentParamList": "[\"{nodeId}\"]",
  13. "description": null,
  14. "createTime": "2019-10-29 20:02:30",
  15. "modifyTime": "2019-10-29 20:02:30",
  16. "isAllUser": 0,
  17. "userList": "[\"targetmail@qq.com\"]",
  18. "lastAlertTime": null
  19. }
  20. }

6.8 获取全部告警类型配置列表

返回所有的告警类型配置

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /alert/list
  • 请求方式:GET
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
-----

2)入参示例

  1. http://localhost:5001/WeBASE-Node-Manager/alert/list

返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataList成功时返回
3.1Object返回信息实体
3.1.1ruleIdInt告警类型配置的编号
3.1.2ruleNameString告警类型的名字/告警邮件标题
3.1.3enableInt是否开启该告警:0-关闭,1-开启
3.1.4alertTypeInt告警类型:1-节点状态告警,2-审计告警,3-证书有效期
3.1.5alertLevelInt告警等级:1-高,2-中,3-低
3.1.6alertIntervalSecondsLong告警邮件发送时间间隔
3.1.7alertContentString告警邮件内容,其中包含{}括起来的变量
3.1.8contentParamListString告警邮件内容中变量的列表,由List<String>序列化为String
3.1.9descriptionString告警描述
3.1.10userListInt目标告警邮箱地址列表,由List<String>序列化为String
3.1.11lastAlertTimeLocalDateTime上次告警时间
3.1.12isAllUserInt发送给所有用户:0-关闭,1-开启
3.1.13createTimeLocalDateTime创建时间
3.1.14modifyTimeLocalDateTime修改时间

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": [
  5. {
  6. "ruleId": 1,
  7. "ruleName": "节点异常告警",
  8. "enable": 0,
  9. "alertType": 1,
  10. "alertLevel": 1,
  11. "alertIntervalSeconds": 3600,
  12. "alertContent": "{nodeId}节点异常,请到\"节点管理\"页面查看具体信息",
  13. "contentParamList": "[\"{nodeId}\"]",
  14. "description": null,
  15. "createTime": "2019-10-29 20:02:30",
  16. "modifyTime": "2019-10-29 20:02:30",
  17. "isAllUser": 0,
  18. "userList": "[\"targetmail@qq.com\"]",
  19. "lastAlertTime": null
  20. },
  21. {
  22. "ruleId": 2,
  23. "ruleName": "审计异常",
  24. "enable": 0,
  25. "alertType": 2,
  26. "alertLevel": 1,
  27. "alertIntervalSeconds": 3600,
  28. "alertContent": "审计异常:{auditType},请到\"交易审计\"页面查看具体信息",
  29. "contentParamList": "[\"{auditType}\"]",
  30. "description": null,
  31. "createTime": "2019-10-29 20:02:30",
  32. "modifyTime": "2019-10-29 20:02:30",
  33. "isAllUser": 0,
  34. "userList": "[\"targetmail@qq.com\"]",
  35. "lastAlertTime": null
  36. },
  37. {
  38. "ruleId": 3,
  39. "ruleName": "证书有效期告警",
  40. "enable": 0,
  41. "alertType": 3,
  42. "alertLevel": 1,
  43. "alertIntervalSeconds": 3600,
  44. "alertContent": "证书将在{time}过期,请到\"证书管理\"页面查看具体信息",
  45. "contentParamList": "[\"{time}\"]",
  46. "description": null,
  47. "createTime": "2019-10-29 20:02:30",
  48. "modifyTime": "2019-10-29 20:02:30",
  49. "isAllUser": 0,
  50. "userList": "[\"targetmail@qq.com\"]",
  51. "lastAlertTime": null
  52. }
  53. ]
  54. }

6.9 更新告警类型配置

更新告警类型配置的内容;目前仅支持更新原有的三个邮件告警的配置,不支持新增配置;

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /alert
  • 请求方式:PUT
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1ruleIdint告警类型配置编号
2ruleNameString告警邮件的标题
3enableint是否启用该类型的告警:0-关闭,1-开启
4alertTypeint告警类型:1-节点状态告警,2-审计告警,3-证书有效期告警
6alertIntervalSecondsint告警邮件的发送间隔时间(秒),默认3600s
7alertContentString告警邮件的内容,其中大括号{}及里面的英文变量不可去除
8userListString接收告警邮件的邮箱列表,以List<String>序列化得到的字符串
9alertLevelInt告警等级:1-高,2-中,3-低

2)入参示例

  1. http://localhost:5001/WeBASE-Node-Manager/mailServer/config
  1. {
  2. "ruleId": 3,
  3. "ruleName": "证书有效期告警",
  4. "enable": 0,
  5. "alertType": 3,
  6. "alertIntervalSeconds": 1800,
  7. "alertContent": "证书将在{time}过期,请到\"证书管理\"页面查看具体信息",
  8. "userList": "[\"targetmail@qq.com\"]",
  9. "alertLevel": 1
  10. }

返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataObject返回邮件服务配置的具体内容
3.1Object参数含义参考上文GET接口出参表

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": {
  5. "ruleId": 3,
  6. "ruleName": "证书有效期告警",
  7. "enable": 0,
  8. "alertType": 3,
  9. "alertLevel": 1,
  10. "alertIntervalSeconds": 1800,
  11. "alertContent": "证书将在{time}过期,请到\"证书管理\"页面查看具体信息",
  12. "contentParamList": "[\"{time}\"]",
  13. "description": null,
  14. "createTime": "2019-10-29 20:02:30",
  15. "modifyTime": "2019-11-07 10:35:03",
  16. "isAllUser": 0,
  17. "userList": "[\"targetmail@qq.com\"]",
  18. "lastAlertTime": null
  19. }
  20. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

6.9 开启/关闭 告警类型

修改告警类型配置中的enable,0-关闭,1-开启;

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /alert/toggle
  • 请求方式:PUT
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1ruleIdint告警类型配置编号
2enableint是否启用该类型的告警:0-关闭,1-开启

2)入参示例

  1. http://localhost:5001/WeBASE-Node-Manager/alert/toggle
  1. {
  2. "ruleId": 3,
  3. "enable": 1
  4. }

返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataObject返回邮件服务配置的具体内容
3.1Object参数含义参考上文GET接口出参表

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": {
  5. "ruleId": 3,
  6. "ruleName": "证书有效期告警",
  7. "enable": 1,
  8. "alertType": 3,
  9. "alertLevel": 1,
  10. "alertIntervalSeconds": 1800,
  11. "alertContent": "证书将在{time}过期,请到\"证书管理\"页面查看具体信息",
  12. "contentParamList": "[\"{time}\"]",
  13. "description": null,
  14. "createTime": "2019-10-29 20:02:30",
  15. "modifyTime": "2019-11-07 10:35:03",
  16. "isAllUser": 0,
  17. "userList": "[\"targetmail@qq.com\"]",
  18. "lastAlertTime": null
  19. }
  20. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

6.10 获取出块监控信息

获取出块周期、块大小、平均TPS的监控数据

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/stat?groupId={groupId}&beginDate={beginDate}&endDate={endDate}&contrastBeginDate={contrastBeginDate}&contrastEndDate={contrastEndDate}&gap={gap}
  • 请求方式:GET
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1nodeIdint群组id
2beginDatelong显示时间(开始) 时间戳
3endDatelong显示时间(结束)时间戳
4contrastBeginDatelong对比时间(开始)时间戳
5contrastEndDatelong对比时间(结束)时间戳
6gapInt数据粒度

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/stat?groupId=1&gap=60eginDate=1617811200000&endDate=1617871955000&contrastBeginDate=&contrastEndDate=

返回参数

1)出参表

序号输出参数类型备注
1codeint返回码
2messageString描述信息
3dataArray返回信息列表
3.1Object返回信息实体
3.1.1metricTypeString测量类型:blockSize, blockCycle, tps
3.1.2dataObject
3.1.2.1lineDataListObject
3.1.2.1.1timestampListList\<String>时间戳列表
3.1.2.1.2valueListList\<Integer>值列表
3.1.2.2contrastDataListObject
3.1.2.2.1timestampListList\<String>时间戳列表
3.1.2.2.2valueListList\<Integer>值列表

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": [{
  5. "metricType": "blockSize",
  6. "data": {
  7. "lineDataList": {
  8. "timestampList": [1617866162706, 1617866462706, 1617866762706, 1617867062706, 1617867362706, 1617867662706, 1617867962706, 1617868262706, 1617868562706, 1617868862706, 1617869162706, 1617869462706, 1617869762706, 1617870062706, 1617870362706, 1617870664184, 1617870964184],
  9. "valueList": [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]
  10. },
  11. "contrastDataList": {
  12. "timestampList": [],
  13. "valueList": []
  14. }
  15. }
  16. }, {
  17. "metricType": "blockCycle",
  18. "data": {
  19. "lineDataList": {
  20. "timestampList": null,
  21. "valueList": [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]
  22. },
  23. "contrastDataList": {
  24. "timestampList": null,
  25. "valueList": []
  26. }
  27. }
  28. }, {
  29. "metricType": "tps",
  30. "data": {
  31. "lineDataList": {
  32. "timestampList": null,
  33. "valueList": [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]
  34. },
  35. "contrastDataList": {
  36. "timestampList": null,
  37. "valueList": []
  38. }
  39. }
  40. }],
  41. "attachment": null
  42. }

7 审计相关模块

7.1 获取用户交易监管信息列表

7.1.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/monitor/userList/{groupId}
  • 请求方式:GET
  • 返回格式:JSON

7.1.2 请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint所属群组编号

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/monitor/userList/300001

7.1.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataList信息列表
3.1Object监管信息对象
3.1.1userNameString用户名称
3.1.2userTypeInt用户类型(0-正常,1-异常)
3.1.3groupIdInt所属群组
3.1.4contractNameString合约名称
3.1.5contractAddressString合约地址
3.1.6interfaceNameString合约接口名
3.1.7transTypeInt交易类型(0-合约部署,1-接口调用)
3.1.8transUnusualTypeInt交易异常类型 (0-正常,1-异常合约,2-异常接口)
3.1.9transCountInt交易量
3.1.10transHashsString交易hashs(最多5个)
3.1.11transHashLastestString最新交易hash
3.1.12createTimeLocalDateTime落库时间
3.1.13modifyTimeLocalDateTime修改时间

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": [
  5. {
  6. "userName": "SYSTEMUSER",
  7. "userType": 0,
  8. "groupId": null,
  9. "contractName": null,
  10. "contractAddress": null,
  11. "interfaceName": null,
  12. "transType": null,
  13. "transUnusualType": null,
  14. "transCount": null,
  15. "transHashs": null,
  16. "transHashLastest": null,
  17. "createTime": null,
  18. "modifyTime": null
  19. },
  20. {
  21. "userName": "asdf",
  22. "userType": 0,
  23. "groupId": null,
  24. "contractName": null,
  25. "contractAddress": null,
  26. "interfaceName": null,
  27. "transType": null,
  28. "transUnusualType": null,
  29. "transCount": null,
  30. "transHashs": null,
  31. "transHashLastest": null,
  32. "createTime": null,
  33. "modifyTime": null
  34. }
  35. ]
  36. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

7.2 获取合约方法监管信息列表

7.2.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/monitor/interfaceList/{groupId}?userName={userName}
  • 请求方式:GET
  • 返回格式:JSON

7.2.2 请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint所属群组编号
2userNameString用户名

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/monitor/interfaceList/300001

7.2.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataList信息列表
3.1Object监管信息对象
3.1.1userNameString用户名称
3.1.2userTypeInt用户类型(0-正常,1-异常)
3.1.3groupIdInt所属群组
3.1.4contractNameString合约名称
3.1.5contractAddressString合约地址
3.1.6interfaceNameString合约接口名
3.1.7transTypeInt交易类型(0-合约部署,1-接口调用)
3.1.8transUnusualTypeInt交易异常类型 (0-正常,1-异常合约,2-异常接口)
3.1.9transCountInt交易量
3.1.10transHashsString交易hashs(最多5个)
3.1.11transHashLastestString最新交易hash
3.1.12createTimeLocalDateTime落库时间
3.1.13modifyTimeLocalDateTime修改时间

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": [
  5. {
  6. "userName": "SYSTEMUSER",
  7. "userType": 0,
  8. "groupId": null,
  9. "contractName": null,
  10. "contractAddress": null,
  11. "interfaceName": null,
  12. "transType": null,
  13. "transUnusualType": null,
  14. "transCount": null,
  15. "transHashs": null,
  16. "transHashLastest": null,
  17. "createTime": null,
  18. "modifyTime": null
  19. },
  20. {
  21. "userName": "asdf",
  22. "userType": 0,
  23. "groupId": null,
  24. "contractName": null,
  25. "contractAddress": null,
  26. "interfaceName": null,
  27. "transType": null,
  28. "transUnusualType": null,
  29. "transCount": null,
  30. "transHashs": null,
  31. "transHashLastest": null,
  32. "createTime": null,
  33. "modifyTime": null
  34. }
  35. ]
  36. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

7.3 获取交易hash监管信息列表

7.3.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /monitor/interfaceList/{groupId}
  • 请求方式:GET
  • 返回格式:JSON

7.3.2 请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint所属群组编号
2userNameString用户名
3startDateString开始时间
4endDateString结束时间
5interfaceNameString接口名称

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/monitor/transList/300001?userName=0x5d97f8d41638a7b1b669b70b307bab6d49df8e2c&interfaceName=0x4ed3885e

7.3.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataObject返回结果实体
3.1groupIdInt所属群组编号
3.2userNameString用户名
3.3interfaceNameString接口名
3.4totalCountInt总记录数
3.5transInfoListList\<Object>交易信息列表
3.5.1Object交易信息实体
3.5.1.1transCountInt交易记录数
3.5.1.2timeLcalDateTime时间

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": {
  5. "groupId": 300001,
  6. "userName": "0x5d97f8d41638a7b1b669b70b307bab6d49df8e2c",
  7. "interfaceName": "0x4ed3885e",
  8. "totalCount": 1,
  9. "transInfoList": [
  10. {
  11. "transCount": 1,
  12. "time": "2019-03-13 15:41:56"
  13. }
  14. ]
  15. }
  16. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

7.4 获取异常用户信息列表

7.4.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/unusualUserList/{groupId}/{pageNumber}/{pageSize}?userName={userName}
  • 请求方式:GET
  • 返回格式:JSON

7.4.2 参数信息详情

请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint所属群组编号
2userNameString用户名
3pageNumberint当前页码
4pageSizeint页面大小

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/monitor/unusualUserList/300001/1/10?userName=

7.4.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3totalCountInt总记录数
4dataList返回信息列表
4.1object返回信息实体
4.1.1userNameString用户名
4.1.2transCountint交易数
4.1.3hashsString交易hash
4.1.4timeLocalDateTime时间

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": [
  5. {
  6. "userName": "0x08b52f85638a925929cf62a3ac77c67415012c24",
  7. "transCount": 1,
  8. "hashs": "0x43b50faa3f007c22cf5dd710c3561c5cde516e01a55b5b4acffd7d94cf61fc57",
  9. "time": "2019-03-13 22:28:29"
  10. }
  11. ],
  12. "totalCount": 1
  13. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

7.5 获取异常合约信息列表

7.5.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/unusualContractList/{groupId}/{pageNumber}/{pageSize}?contractAddress={contractAddress}
  • 请求方式:GET
  • 返回格式:JSON

7.5.2 请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint所属群组编号
2contractAddressString合约地址
3pageNumberint当前页码
4pageSizeint页面大小

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/monitor/unusualContractList/300001/1/10?contractAddress=

7.5.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3totalCountInt总记录数
4dataList返回信息列表
4.1object返回信息实体
4.1.1contractNameString合约名称
4.1.2contractAddressString合约地址
4.1.3transCountint交易数
4.1.4hashsString交易hash
4.1.5timeLocalDateTime时间

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "totalCount": 1,
  5. "data": [
  6. {
  7. "contractName": "0x00000000",
  8. "contractAddress": "0x0000000000000000000000000000000000000000",
  9. "transCount": 3,
  10. "hashs": "0xc87e306db85740895369cc2a849984fe544a6e9b0ecdbd2d898fc0756a02a4ce",
  11. "time": "2019-03-13 15:41:56"
  12. }
  13. ]
  14. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

8 群组信息模块

8.1 获取群组概况

8.1.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/group/general/{groupId}
  • 请求方式:GET
  • 返回格式:JSON

8.1.2 请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint群组id

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/group/300001

8.1.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataobject返回信息实体
3.1groupIdint群组id
3.2nodeCountint节点数量
3.3contractCountint已部署智能合约数量
3.4transactionCountint交易数量
3.5latestBlockint当前块高

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "data": {
  4. "latestBlock": 7156,
  5. "contractCount": 0,
  6. "groupId": "300001",
  7. "nodeCount": 2,
  8. "transactionCount": 7131
  9. },
  10. "message": "Success"
  11. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

8.2 获取所有群组列表

默认只返回groupStatus为1的群组ID,可传入groupStatus筛选群组 (1-normal, 2-maintaining, 3-conflict-genesisi, 4-conflict-data)

8.2.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/group/all
  • 请求方式:GET
  • 返回格式:JSON

8.2.2 请求参数

1)入参表

序号输入参数类型可为空备注
1groupStatusint群组状态,1-normal, 2-maintaining, 3-conflict-genesisi, 4-conflict-data

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/group/all
  2. http://127.0.0.1:5001/WeBASE-Node-Manager/group/all/{groupStatus}

8.2.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3totalCountInt总记录数
4dataList组织列表
4.1Object组织信息对象
4.1.1groupIdInteger群组编号
4.1.2groupNameString群组名称
4.1.2groupStatusInteger群组状态:1-正常, 2-维护中, 3-脏数据, 4-创世块冲突
4.1.2nodeCountInteger群组节点数
4.1.3latestBlockBigInteger最新块高
4.1.4transCountBigInteger交易量
4.1.5createTimeLocalDateTime落库时间
4.1.6modifyTimeLocalDateTime修改时间
4.1.2descriptionString群组描述
4.1.2groupTypeInteger群组类别:1-同步,2-动态创建

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "totalCount": 1,
  5. "data": [
  6. {
  7. "groupId":1,
  8. "groupName":"group1",
  9. "groupStatus":1,
  10. "nodeCount":4,
  11. "latestBlock":0,
  12. "transCount":0,
  13. "createTime":"2020-05-07 16:32:02",
  14. "modifyTime":"2020-05-08 10:50:13",
  15. "description":"synchronous",
  16. "groupType":1
  17. }
  18. ]
  19. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

8.3 查询每日交易数据

8.3.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/group/transDaily/{groupId}
  • 请求方式:GET
  • 返回格式:JSON

8.3.2 请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint群组id

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/group/transDaily/300001

8.3.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3datalist返回信息列表
3.1object返回信息实体
4.1daystring日期YYYY-MM-DD
4.2groupIdint群组编号
4.3transCountint交易数量

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "data": [
  4. {
  5. "day": "2018-11-21",
  6. "groupId": "300001",
  7. "transCount": 12561
  8. },
  9. {
  10. "day": "2018-11-22",
  11. "groupId": "300001",
  12. "transCount": 1251
  13. }
  14. ],
  15. "message": "Success"
  16. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

8.4 向单个节点生成新群组

​向单个节点的前置发起请求,以当前时间生成timestamp时间戳,nodeList为群组创世块的共识节点列表,生成新群组配置信息;节点和前置一一对应,节点编号可以从前置列表获取。

nodeList需要填入新群组中所有的nodeId,通过本接口分别请求每个节点,在每个节点生成群组配置信息。

群组生成后,需对应调用新群组启动的接口,并确保新节点加入新群组的共识节点/观察节点

节点加入已存在群组并启动后,可调用POST /precompiled/consensus接口将该节点加入到新加入群组的共识节点或观察节点中

8.4.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/group/generate/{nodeId}
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

8.4.2 请求参数

1)入参表

序号输入参数类型可为空备注
1nodeIdString路径变量:节点id
2generateGroupIdInteger新群组编号
3timestampInteger群组创世块时间戳
4nodeListList新群组中所有共识节点
5descriptionString群组描述

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/group/generate/78e467957af3d0f77e19b952a740ba8c53ac76913df7dbd48d7a0fe27f4c902b55e8543e1c4f65b4a61695c3b490a5e8584149809f66e9ffc8c05b427e9d3ca2
  1. {
  2. "generateGroupId": 2,
  3. "timestamp": 1574853659000,
  4. "nodeList": [
  5. "78e467957af3d0f77e19b952a740ba8c53ac76913df7dbd48d7a0fe27f4c902b55e8543e1c4f65b4a61695c3b490a5e8584149809f66e9ffc8c05b427e9d3ca2",
  6. "dd7a2964007d583b719412d86dab9dcf773c61bccab18cb646cd480973de0827cc94fa84f33982285701c8b7a7f465a69e980126a77e8353981049831b550f5c"
  7. ],
  8. "description": "test"
  9. }

8.4.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataList组织列表
3.1Object组织信息对象
3.1.1groupIdint群组编号
3.1.2groupNameString群组名称
3.1.3groupStatusInteger群组状态:1-正常, 2-维护中, 3-脏数据, 4-创世块冲突
3.1.4nodeCountInteger群组节点数
3.1.5descriptionString描述
3.1.6groupTypeInteger群组类型: 1-同步 2-动态创建
3.1.7createTimeLocalDateTime落库时间
3.1.8modifyTimeLocalDateTime修改时间

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": {
  5. "groupId": 2,
  6. "groupName": "group2",
  7. "nodeCount": 2,
  8. "groupStatus": 2,
  9. "groupType": 2,
  10. "description": "test",
  11. "createTime": "2019-02-14 17:33:50",
  12. "modifyTime": "2019-03-15 09:36:17"
  13. }
  14. }
  • 失败:
  1. {
  2. "code": 202301,
  3. "message": "node's front not exists",
  4. "data": {}
  5. }

8.5 向多个节点生成新群组

nodeList中所有节点的前置发起请求,以当前时间生成timestamp时间戳,以nodeList为创世块的共识节点列表,生成新群组配置信息;节点和前置一一对应,节点编号可以从前置列表获取。

群组生成后,需对应调用新群组启动的接口,并确保新节点加入新群组的共识节点/观察节点

节点加入已存在群组并启动后,可调用POST /precompiled/consensus接口将该节点加入到新加入群组的共识节点或观察节点中

8.5.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/group/generate
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

8.5.2 请求参数

1)入参表

序号输入参数类型可为空备注
1generateGroupIdInteger新群组编号
2timestampInteger群组创世块时间戳
3nodeListList新群组中所有共识节点
4descriptionString群组描述

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/group/generate
  1. {
  2. "generateGroupId": 2,
  3. "timestamp": 1574853659000,
  4. "nodeList": [
  5. "78e467957af3d0f77e19b952a740ba8c53ac76913df7dbd48d7a0fe27f4c902b55e8543e1c4f65b4a61695c3b490a5e8584149809f66e9ffc8c05b427e9d3ca2",
  6. "dd7a2964007d583b719412d86dab9dcf773c61bccab18cb646cd480973de0827cc94fa84f33982285701c8b7a7f465a69e980126a77e8353981049831b550f5c"
  7. ],
  8. "description": "test"
  9. }

8.5.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataList群组操作结果
3.1frontIdInteger群组操作请求的节点前置编号
3.2codeInteger群组操作结果,0-成功,其他:失败

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": [{
  5. "frontId": 500011,
  6. "code": 0
  7. }, {
  8. "frontId": 500013,
  9. "code": 1
  10. }]
  11. }
  • 失败:
  1. {
  2. "code": 202301,
  3. "message": "node's front not exists",
  4. "data": {}
  5. }

8.6 动态操作群组

可以对已存在的群组或新生成的群组进行动态操作,包括启动、停止、删除、恢复、状态查询。

说明: 生成新群组后,需要向每个前置调用启动群组的操作,并确保新节点是新群组中的共识节点/观察节点

节点加入已存在群组并启动后,可调用POST /precompiled/consensus接口将该节点加入到新加入群组的共识节点或观察节点中

8.6.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/group/operate/{nodeId}
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

8.6.2 请求参数

1)入参表

序号输入参数类型可为空备注
1nodeIdString路径变量:节点id
2generateGroupIdInteger新群组编号
3typeString操作类型: start, stop, remove, recover, getStatus

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/group/operate/78e467957af3d0f77e19b952a740ba8c53ac76913df7dbd48d7a0fe27f4c902b55e8543e1c4f65b4a61695c3b490a5e8584149809f66e9ffc8c05b427e9d3ca2
  1. {
  2. "generateGroupId": 2,
  3. "type": "start"
  4. }

8.6.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": {}
  5. }
  • 失败:
  1. {
  2. "code": 205032,
  3. "message": "Group 2 is already running",
  4. "data": null
  5. }

8.7 批量启动群组

批量启动多个节点的群组,向nodeList中所有节点批量发起启动群组的请求;nodeId可以从前置列表获取。

8.7.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/group/batchStart
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

8.7.2 请求参数

1)入参表

序号输入参数类型可为空备注
1generateGroupIdInteger新群组编号
2nodeListList新群组中所有需要启动的节点nodeId

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/group/batchStart
  1. {
  2. "generateGroupId": 2,
  3. "nodeList": [
  4. "78e467957af3d0f77e19b952a740ba8c53ac76913df7dbd48d7a0fe27f4c902b55e8543e1c4f65b4a61695c3b490a5e8584149809f66e9ffc8c05b427e9d3ca2",
  5. "dd7a2964007d583b719412d86dab9dcf773c61bccab18cb646cd480973de0827cc94fa84f33982285701c8b7a7f465a69e980126a77e8353981049831b550f5c"
  6. ]
  7. }

8.7.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataList群组操作结果
3.1frontIdInteger群组操作请求的节点前置编号
3.2codeInteger群组操作结果,0-成功,其他:失败

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": [{
  5. "frontId": 500011,
  6. "code": 0 // 启动成功
  7. }, {
  8. "frontId": 500013,
  9. "code": 1 // 启动失败
  10. }]
  11. }
  • 失败:
  1. {
  2. "code": 205032,
  3. "message": "Group 2 is already running",
  4. "data": null
  5. }

8.8 多个节点获取该节点的多个群组状态

向多个节点获取该节点视角下groupIdList中所有群组的状态;nodeId可以从前置列表获取。

群组状态包含:群组不存在”INEXISTENT”、群组正在停止”STOPPING”、群组运行中”RUNNING”、群组已停止”STOPPED”、群组已删除”DELETED”

8.8.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/group/queryGroupStatus/list
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

8.8.2 请求参数

1)入参表

序号输入参数类型可为空备注
1nodeIdListList需要获取群组状态的节点编号列表
2groupIdListList需要查询群组状态的群组编号列表

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/group/queryGroupStatus/list
  1. {
  2. "nodeIdList": [
  3. "02ad41a54e5403293855624e6088a1ac6c0a391d6381175bb9c9881f2ae83de6db54fc95a772f22b9e62109393c1a4229dc6d99536548db693e43b244a5b9d84",
  4. "3fc60c4dddcb8f64c910b7afc4bd400339a007eff9be22012c5ae2f7eebef67a4b770094bf7564dd100e1456d85a72f3488457e9f4d44d51e289071d995285d7"
  5. ]
  6. "groupIdList": [2]
  7. }

8.8.3 返回参数

1)出参表

序号输出参数类型备注
1codeInteger返回码,0:成功 其它:失败
2messageString描述
3dataListGroupStatusInfo的列表
3.1nodeIdString包含groupId和GroupStatus的Map, 如{“1”: “RUNNING”,”20”,”INEXISTENT”}
3.2groupStatusMapMap包含groupId和GroupStatus的Map<String,String>, 如{“1”: “RUNNING”,”20”,”INEXISTENT”}
3.2.1groupIdString群组编号,如果获取失败,则显示为<nodeId, “FAIL”>,如下所示
3.2.2groupStatusString链上的群组状态:”INEXISTENT”、”STOPPING”、”RUNNING”、”STOPPED”、”DELETED”, 获取失败为”FAIL”

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": [{
  5. "nodeId": "02ad41a54e5403293855624e6088a1ac6c0a391d6381175bb9c9881f2ae83de6db54fc95a772f22b9e62109393c1a4229dc6d99536548db693e43b244a5b9d84",
  6. "groupStatusMap": {
  7. // 当前nodeId获取群组2状态成功
  8. "2": "RUNNING"
  9. }
  10. }, {
  11. "nodeId": "3fc60c4dddcb8f64c910b7afc4bd400339a007eff9be22012c5ae2f7eebef67a4b770094bf7564dd100e1456d85a72f3488457e9f4d44d51e289071d995285d7",
  12. "groupStatusMap": {
  13. // 当前nodeId获取群组2状态成功
  14. "2": "RUNNING"
  15. }
  16. }]
  17. }
  • 获取群组状态成功,但某个节点的获取请求失败:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": [{
  5. "nodeId": "02ad41a54e5403293855624e6088a1ac6c0a391d6381175bb9c9881f2ae83de6db54fc95a772f22b9e62109393c1a4229dc6d99536548db693e43b244a5b9d84",
  6. "groupStatusMap": {
  7. "2": "RUNNING"
  8. }
  9. }, {
  10. "nodeId": "3fc60c4dddcb8f64c910b7afc4bd400339a007eff9be22012c5ae2f7eebef67a4b770094bf7564dd100e1456d85a72f3488457e9f4d44d51e289071d995285d7",
  11. "groupStatusMap": {
  12. // 3fc6..节点的状态获取失败
  13. "3fc60c4dddcb8f64c910b7afc4bd400339a007eff9be22012c5ae2f7eebef67a4b770094bf7564dd100e1456d85a72f3488457e9f4d44d51e289071d995285d7": "FAIL"
  14. }
  15. }]
  16. }
  • 失败:
  1. {
  2. "code": 202301,
  3. "message": "node's front not exists"
  4. }

8.9 刷新群组列表

刷新节点管理服务的群组列表,检查本地群组数据与链上群组数据是否有冲突,检查多个节点之间的创世块是否一致,并从链上拉取最新的群组列表

8.9.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/group/update
  • 请求方式:GET
  • 返回格式:JSON

8.9.2 请求参数

1)入参表

序号输入参数类型可为空备注
1----

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/group/update

8.9.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3datalist返回信息列表

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": {}
  5. }

8.10 获取所有群组列表(包含异常群组)

返回所有群组,包含正常运行、维护中、脏数据冲突、创世块冲突4种状态的群组

8.10.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/group/all/invalidIncluded
  • 请求方式:GET
  • 返回格式:JSON

8.10.2 请求参数

1)入参表 | 序号 | 输入参数 | 类型 | 可为空 | 备注 | |——|————-|—————|——–|——————————-| | 1 | pageSize | Integer | 否 | 每页记录数 | | 2 | pageNumber | Integer | 否 | 当前页码 |

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/group/all/invalidIncluded/{pageNumber}/{pageSize}

8.10.3 返回参数

1)出参表

序号输出参数类型备注
1codeInteger返回码,0:成功 其它:失败
2messageString描述
3totalCountInteger总记录数
4dataList组织列表
4.1Object组织信息对象
4.1.1groupIdInteger群组编号
4.1.2groupNameString群组名称
4.1.2groupStatusInteger群组状态:1-正常, 2-维护中, 3-脏数据, 4-创世块冲突
4.1.2nodeCountInteger群组节点数
4.1.3latestBlockBigInteger最新块高
4.1.4transCountBigInteger交易量
4.1.5createTimeLocalDateTime落库时间
4.1.6modifyTimeLocalDateTime修改时间
4.1.2descriptionString群组描述
4.1.2groupTypeInteger群组类别:1-同步,2-动态创建

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "totalCount": 1,
  5. "data": [
  6. {
  7. "groupId":1,
  8. "groupName":"group1",
  9. "groupStatus":1,
  10. "nodeCount":4,
  11. "latestBlock":0,
  12. "transCount":0,
  13. "createTime":"2020-05-07 16:32:02",
  14. "modifyTime":"2020-05-08 10:50:13",
  15. "description":"synchronous",
  16. "groupType":1
  17. },
  18. {
  19. "groupId":2020,
  20. "groupName":"group2020",
  21. "groupStatus":2,
  22. "nodeCount":2,
  23. "latestBlock":0,
  24. "transCount":0,
  25. "createTime":"2020-05-07 16:32:02",
  26. "modifyTime":"2020-05-08 10:50:13",
  27. "description":"",
  28. "groupType":2
  29. }
  30. ]
  31. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

8.11 删除群组所有数据

删除指定群组编号的群组的所有数据,包含节点数据、交易数据、交易审计数据等等。

8.11.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/group/{groupId}
  • 请求方式:DELETE
  • 返回格式:JSON

8.11.2 请求参数

1)入参表 | 序号 | 输入参数 | 类型 | 可为空 | 备注 | |——|————-|—————|——–|——————————-| | 1 | groupId | Integer | 否 | 群组编号 |

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/group/{groupId}

8.11.3 返回参数

1)出参表

序号输出参数类型备注
1codeInteger返回码,0:成功 其它:失败
2messageString描述

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success"
  4. }
  • 失败:
  1. {
  2. "code": 202006,
  3. "message": "invalid group id"
  4. }

9 节点管理模块

9.1 查询节点列表

9.1.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/node/nodeList/{groupId}/{pageNumber}/{pageSize}?nodeName={nodeName}
  • 请求方式:GET
  • 返回格式:JSON

9.1.2 请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint群组id
2pageSizeInt每页记录数
3pageNumberInt当前页码
4nodeNameString节点名称

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/node/nodeList/300001/1/10?nodeName=

9.1.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3totalCountInt总记录数
4dataList节点列表
4.1Object节点信息对象
4.1.1nodeIdint节点编号
4.1.2nodeNamestring节点名称
4.1.3groupIdint所属群组编号
4.1.4nodeActiveint状态
4.1.5nodeIpstring节点ip
4.1.6P2pPortint节点p2p端口
4.1.7descriptionString备注
4.1.8blockNumberBigInteger节点块高
4.1.9pbftViewBigIntegerPbft view
4.1.10createTimeLocalDateTime落库时间
4.1.11modifyTimeLocalDateTime修改时间

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "totalCount": 1,
  5. "data": [
  6. {
  7. "nodeId": 500001,
  8. "nodeName": "127.0.0.1_10303",
  9. "groupId": 300001,
  10. "nodeIp": "127.0.0.1",
  11. "p2pPort": 10303,
  12. "description": null,
  13. "blockNumber": 133,
  14. "pbftView": 5852,
  15. "nodeActive": 1,
  16. "createTime": "2019-02-14 17:47:00",
  17. "modifyTime": "2019-03-15 11:14:29"
  18. }
  19. ]
  20. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

9.2 查询节点信息

9.2.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/node/nodeInfo/{groupId}?nodeType={nodeType}
  • 请求方式:GET
  • 返回格式:JSON

9.2.2 请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint群组id

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/node/nodeInfo/1

9.2.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataObject节点信息对象
3.1nodeIdint节点编号
3.2nodeNamestring节点名称
3.3groupIdint所属群组编号
3.4nodeActiveint状态
3.5nodeIpstring节点ip
3.6P2pPortint节点p2p端口
3.7descriptionString备注
3.8blockNumberBigInteger节点块高
3.9pbftViewBigIntegerPbft view
3.10createTimeLocalDateTime落库时间
3.11modifyTimeLocalDateTime修改时间

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": {
  5. "nodeId": 500001,
  6. "nodeName": "127.0.0.1_10303",
  7. "groupId": 1,
  8. "nodeIp": "127.0.0.1",
  9. "p2pPort": 10303,
  10. "description": null,
  11. "blockNumber": 133,
  12. "pbftView": 5852,
  13. "nodeActive": 1,
  14. "createTime": "2019-02-14 17:47:00",
  15. "modifyTime": "2019-03-15 11:14:29"
  16. }
  17. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

10 角色管理模块

10.1 查询角色列表

10.1.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:role/roleList
  • 请求方式:GET
  • 返回格式:JSON

10.1.2 请求参数

1)入参表

序号输入参数类型可为空备注
1roleIdint角色id
2roleNameString角色名称
3pageSizeint每页记录数
4pageNumberint当前页码

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/role/roleList?groupId=300001&pageNumber=&pageSize=&roleId=&roleName=

10.1.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3totalCountInt总记录数
4dataList组织列表
4.1Object组织信息对象
4.1.1roleIdInt角色编号
4.1.2roleNameString角色名称
4.1.3roleNameZhString角色中文名称
4.1.4roleStatusInt状态(1-正常2-无效) 默认1
4.1.5descriptionString备注
4.1.6createTimeLocalDateTime创建时间
4.1.7modifyTimeLocalDateTime修改时间

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "totalCount": 2,
  5. "data": [
  6. {
  7. "roleId": 100000,
  8. "roleName": "admin",
  9. "roleNameZh": "管理员",
  10. "roleStatus": 1,
  11. "description": null,
  12. "createTime": "2019-02-14 17:33:50",
  13. "modifyTime": "2019-02-14 17:33:50"
  14. },
  15. {
  16. "roleId": 100001,
  17. "roleName": "visitor",
  18. "roleNameZh": "访客",
  19. "roleStatus": 1,
  20. "description": null,
  21. "createTime": "2019-02-14 17:33:50",
  22. "modifyTime": "2019-02-14 17:33:50"
  23. }
  24. ]
  25. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

11 用户管理模块

11.1 新增私钥用户

11.1.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/user/userInfo
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

11.1.2 请求参数

1)入参表

序号输入参数类型可为空备注
1userNamestring用户名称
2descriptionstring备注
3groupIdInt所属群组
4accountstring关联账户

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/user/userInfo
  1. {
  2. "groupId": "300001",
  3. "description": "密钥拥有者",
  4. "userName": "user1",
  5. "account": "admin"
  6. }

11.1.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataobject返回信息实体(成功时不为空)
3.1userIdint用户编号
3.2userNamestring用户名称
3.3groupIdint所属群组编号
3.4descriptionString备注
3.5userStatusint状态(1-正常 2-停用) 默认1
3.6publicKeyString公钥信息
3.7addressString在链上位置的hash
3.8hasPkInt是否拥有私钥信息(1-拥有,2-不拥有)
3.9accountstring关联账户
3.10createTimeLocalDateTime创建时间
3.11modifyTimeLocalDateTime修改时间

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": {
  5. "userId": 700007,
  6. "userName": "asdfvw",
  7. "groupId": 300001,
  8. "publicKey": "0x4189fdacff55fb99172e015e1adc360777bee6682fcc975238aabf144fbf610a3057fd4b5",
  9. "userStatus": 1,
  10. "userType": 1,
  11. "address": "0x40ec3c20b5178401ae14ad8ce9c9f94fa5ebb86a",
  12. "hasPk": 1,
  13. "description": "sda",
  14. "account": "admin",
  15. "createTime": "2019-03-15 18:00:27",
  16. "modifyTime": "2019-03-15 18:00:27"
  17. }
  18. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

11.2 绑定公钥用户

11.2.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/user/bind
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

11.2.2 请求参数

1)入参表

序号输入参数类型可为空备注
1userNamestring用户名称
2descriptionstring备注
3groupIdInt所属群组
4accountstring关联账户

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/user/userInfo
  1. {
  2. "userName": "sdfasd",
  3. "publicKey": "0x4189fdacff55fb99172e015e1adb96dc77b0cae1619b1a41cc360777bee6682fcc9752d8aabf144fbf610a3057fd4b5",
  4. "groupId": "300001",
  5. "description": "sdfa",
  6. "account": "admin"
  7. }

11.2.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataobject返回信息实体(成功时不为空)
3.1userIdint用户编号
3.2userNamestring用户名称
3.3groupIdint所属群组编号
3.4descriptionString备注
3.5userStatusint状态(1-正常 2-停用) 默认1
3.6publicKeyString公钥信息
3.7addressString在链上位置的hash
3.8hasPkInt是否拥有私钥信息(1-拥有,2-不拥有)
3.9accountstring关联账户
3.10createTimeLocalDateTime创建时间
3.11modifyTimeLocalDateTime修改时间

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": {
  5. "userId": 700007,
  6. "userName": "asdfvw",
  7. "groupId": 300001,
  8. "publicKey": "0x4189fdacff55fb99172e015e1adb96dc77b0cae1619b1a41cc360777bee6682fcc9752d8aabf144fbf610a3057fd4b5",
  9. "userStatus": 1,
  10. "userType": 1,
  11. "address": "0x40ec3c20b5178401ae14ad8ce9c9f94fa5ebb86a",
  12. "hasPk": 1,
  13. "description": "sda",
  14. "account": "admin",
  15. "createTime": "2019-03-15 18:00:27",
  16. "modifyTime": "2019-03-15 18:00:27"
  17. }
  18. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

11.3 修改用户备注

11.3.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/user/userInfo
  • 请求方式:PUT
  • 请求头:Content-type: application/json
  • 返回格式:JSON

11.3.2 请求参数

1)入参表

序号输入参数类型可为空备注
1userIdint用户编号
2descriptionString备注

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/user/userInfo
  1. {
  2. "userId": "400001",
  3. "description": "newDescription"
  4. }

11.3.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataobject返回信息实体(成功时不为空)
3.1userIdint用户编号
3.2userNamestring用户名称
3.3groupIdint所属群组编号
3.4descriptionString备注
3.5userStatusint状态(1-正常 2-停用) 默认1
3.6publicKeyString公钥信息
3.7addressString在链上位置的hash
3.8hasPkInt是否拥有私钥信息(1-拥有,2-不拥有)
3.9accountstring关联账户
3.10createTimeLocalDateTime创建时间
3.11modifyTimeLocalDateTime修改时间

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": {
  5. "userId": 400001,
  6. "userName": "asdfvw",
  7. "groupId": 300001,
  8. "publicKey": "0x4189fdacff55fb99172e015e1682fcc9752d8aabf144fbf610a3057fd4b5",
  9. "userStatus": 1,
  10. "userType": 1,
  11. "address": "0x40ec3c20b5178401ae14ad8ce9c9f94fa5ebb86a",
  12. "hasPk": 1,
  13. "description": "newDescription",
  14. "account": "admin",
  15. "createTime": "2019-03-15 18:00:27",
  16. "modifyTime": "2019-03-15 18:00:27"
  17. }
  18. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

11.4 查询私钥(1.3.0已移除)

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/user/privateKey/{userId}
  • 请求方式:GET
  • 返回格式:json

请求参数

1)入参表

序号输入参数类型可为空备注
1userIdint用户编号

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/user/privateKey/4585

返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataObject返回私钥信息实体
3.1privateKeyString私钥
3.2addressString用户链上地址

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": {
  5. "privateKey": 123456,
  6. "address": "asfsafasfasfasfasfas"
  7. }
  8. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

11.5 查询用户列表

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/user/userList/{groupId}/{pageNumber}/{pageSize}?userParam={userName}
  • 请求方式:GET
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint所属群组id
2pageSizeInt每页记录数
3pageNumberInt当前页码
4userParamString查询参数(用户名或公钥地址)
5accountstring关联账户

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/user/userList/300001/1/10?userParam=asdfvw

返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3totalCountInt总记录数
4dataList用户列表
4.1Object用户信息对象
4.1.1userIdint用户编号
4.1.2userNamestring用户名称
4.1.3groupIdint所属群组编号
4.1.4descriptionString备注
4.1.5userStatusint状态(1-正常 2-停用) 默认1
4.1.6publicKeyString公钥信息
4.1.7addressString在链上位置的hash
4.1.8hasPkInt是否拥有私钥信息(1-拥有,2-不拥有)
4.1.9accountstring关联账户
4.1.10createTimeLocalDateTime创建时间
4.1.11modifyTimeLocalDateTime修改时间

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "totalCount": 1,
  5. "data": [
  6. {
  7. "userId": 700007,
  8. "userName": "asdfvw",
  9. "groupId": 300001,
  10. "publicKey": "0x4189fdacff55fb99172e015e1adb96dc71cc360777bee6682fcc975238aabf144fbf610a3057fd4b5",
  11. "userStatus": 1,
  12. "userType": 1,
  13. "address": "0x40ec3c20b5178401ae14ad8ce9c9f94fa5ebb86a",
  14. "hasPk": 1,
  15. "description": "sda",
  16. "account": "admin",
  17. "createTime": "2019-03-15 18:00:27",
  18. "modifyTime": "2019-03-15 18:00:28"
  19. }
  20. ]
  21. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

11.6 导入私钥用户

可在页面导入WeBASE-Front所导出的私钥txt文件

其中私钥字段用Base64加密

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/user/import
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1privateKeystringBase64加密后的私钥内容
2userNamestring用户名称
3descriptionstring备注
4groupIdInt所属群组
5accountstring关联账户

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/user/import
  1. {
  2. "privateKey": "OGFmNWIzMzNmYTc3MGFhY2UwNjdjYTY3ZDRmMzE4MzU4OWRmOThkMjVjYzEzZGFlMGJmODhkYjhlYzVhMDcxYw==",
  3. "groupId": "300001",
  4. "description": "密钥拥有者",
  5. "userName": "user1",
  6. "account": "admin"
  7. }

返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success"
  4. }
  • 失败:
  1. {
  2. "code": 201031,
  3. "message": "privateKey decode fail",
  4. "data": null
  5. }

11.7 导入.pem私钥

可导入控制台所生成的私钥.pem文件

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/user/importPem
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1pemContentstringpem文件的内容,必须以——-BEGIN PRIVATE KEY——-\n开头,以\n——-END PRIVATE KEY——-\n结尾的格式
2userNamestring用户名称
3descriptionstring备注
4groupIdInt所属群组
5accountstring关联账户

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/user/importPem
  1. {
  2. "pemContent":"-----BEGIN PRIVATE KEY-----\nMIGEAgEAMBAGByqGSM49AgEGBSuBBAAKBG0wawIBAQQgC8TbvFSMA9y3CghFt51/\nXmExewlioX99veYHOV7dTvOhRANCAASZtMhCTcaedNP+H7iljbTIqXOFM6qm5aVs\nfM/yuDBK2MRfFbfnOYVTNKyOSnmkY+xBfCR8Q86wcsQm9NZpkmFK\n-----END PRIVATE KEY-----\n",
  3. "groupId": "1",
  4. "description": "密钥拥有者",
  5. "userName": "user2",
  6. "account": "admin"
  7. }

返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success"
  4. }
  • 失败:
  1. {
  2. "code": 201232,
  3. "message": "Pem file format error, must surrounded by -----XXXXX PRIVATE KEY-----"",
  4. "data": null
  5. }

11.8 导入.p12私钥

可导入控制台生成的私钥.p12文件

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/user/importP12
  • 请求方式:POST
  • 请求头:Content-type: form-data
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1p12FileMultipartFile.p12文件
2p12Passwordstring使用base64编码的密码;.p12文件的密码,缺省时默认为””,即空密码;p12无密码时,可传入空值或不传;不包含中文
3userNamestring用户名称
4descriptionstring备注
5groupIdInt所属群组
6accountstring关联账户

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/user/importP12

使用form-data传参

返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success"
  4. }
  • 失败:(p12文件的密码错误)
  1. {
  2. "code": 201236,
  3. "message": "p12's password not match",
  4. "data": null
  5. }

11.9 导出明文私钥

可在页面导入WeBASE-Front所导出的私钥txt文件

其中私钥字段用Base64加密

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/user/export/{userId}
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1privateKeystringBase64加密后的私钥内容

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/user/export/300001
  1. {
  2. "privateKey": "OGFmNWIzMzNmYTc3MGFhY2UwNjdjYTY3ZDRmMzE4MzU4OWRmOThkMjVjYzEzZGFlMGJmODhkYjhlYzVhMDcxYw==",
  3. "groupId": "1",
  4. "description": "密钥拥有者",
  5. "userName": "user1",
  6. "account": "admin"
  7. }

返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataobject返回信息实体(成功时不为空)
3.1userIdint用户编号
3.2userNamestring用户名称
3.3groupIdint所属群组编号
3.4descriptionString备注
3.5userStatusint状态(1-正常 2-停用) 默认1
3.6publicKeyString公钥信息
3.7addressString在链上位置的hash
3.8hasPkInt是否拥有私钥信息(1-拥有,2-不拥有)
3.9accountstring关联账户
3.10createTimeLocalDateTime创建时间
3.11modifyTimeLocalDateTime修改时间
3.12privateKeyString私钥,用base64编码

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": {
  5. "userId": 700003,
  6. "userName": "vivi_d",
  7. "account": "xyzshen",
  8. "groupId": 1,
  9. "publicKey": "04d01115d548e7561b15c38f004d734633687cf4419620095bc5b0f47070afe85aa9f34ffdc815e0d7a8b64537e17bd81579238c5dd9a86d526b051b13f4062327",
  10. "privateKey": "MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwYw==",
  11. "userStatus": 1,
  12. "chainIndex": null,
  13. "userType": 1,
  14. "address": "0xdbc23ae43a150ff8884b02cea117b22d1c3b9796",
  15. "signUserId": "b751efc5d0cc4e12b90908b1f2670258",
  16. "appId": "1",
  17. "hasPk": 1,
  18. "description": "",
  19. "createTime": "2021-04-06 21:24:12",
  20. "modifyTime": "2021-04-06 21:24:12"
  21. },
  22. "attachment": null
  23. }

11.10 导出.pem私钥

导出pem格式的私钥文件

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/user/exportPem
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint群组id
2signUserIdstring用户的signUserId

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/user/exportPem

返回参数

1)出参表

序号输出参数类型备注
--InputStream返回文件的二进制流

2)出参示例

  • 成功:
  1. -----BEGIN PRIVATE KEY-----
  2. MIGNAgEAMBAGByqGSM49AgEGBSuBBAAKBHYwdAIBAQQgnAXS1DYA90nML3Kge4Qd
  3. IgMXiQ9cojmRgyjo1BLYXOqgBwYFK4EEAAqhRANCAATLPOzgUzNbo6UeCAjYv2++
  4. FwlBmT1Sa7goXELaazyJEJLbAlAFGB6qvjdA9m2nx5+rTmfGoSuQK9T2hC/vWJfq
  5. -----END PRIVATE KEY-----

11.11 导出.p12私钥

导出pem格式的私钥文件

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/user/exportP12
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint群组id
2signUserIdstring用户的signUserId

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/user/exportP12

返回参数

1)出参表

序号输出参数类型备注
--InputStream返回文件的二进制流

2)出参示例

  • 成功:
  1. // 二进制流

12 合约方法管理模块

12.1 新增合约方法

12.1.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/method/add
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

12.1.2 请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdInt所属群组
2methodListList方法列表
2.1Object方法实体
2.1.1abiInfoString合约abi信息
2.1.2methodIdString方法编号
2.1.3methodTypeString方法类型

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/method/add
  1. {
  2. "groupId": 2,
  3. "methodList": [
  4. {
  5. "abiInfo": "fsdabiTestfd232222",
  6. "methodId": "methodIasdfdttttt",
  7. "methodType": "function"
  8. }
  9. ]
  10. }

1.1.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataobject返回信息实体(空)

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": null
  5. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

12.2 根据方法编号查询

12.1.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/method/findById/{groupId}/{methodId}
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

12.1.2 请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdInt所属群组
2methodIdString方法编号

2)入参示例

  1. http://127.0.0.1:5001/WeBASE-Node-Manager/method/findById/2/methodIasdfdttttt

1.1.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3Object方法实体
3.1abiInfoString合约abi信息
3.2methodIdString方法编号
3.3methodTypeString方法类型
3.4createTimeLocalDateTime创建时间
3.5modifyTimeLocalDateTime修改时间

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": {
  5. "methodId": "methodIasdfdttttt",
  6. "groupId": 2,
  7. "abiInfo": "fsdabiTestfd232222",
  8. "methodType": "function",
  9. "createTime": "2019-04-16 16:59:27",
  10. "modifyTime": "2019-04-16 16:59:27"
  11. }
  12. }
  • 失败:
  1. {
  2. "code": 102000,
  3. "message": "system exception",
  4. "data": {}
  5. }

13 系统管理模块

系统管理中的权限管理接口

  • 使用FISCO BCOS v2.5.0 与 WeBASE-Node-Manager v1.4.1 (及)以上版本将使用预编译合约中的ChainGovernance接口(本章节接口13.14开始),详情可参考FISCO BCOS基于角色的权限控制
  • 使用低于FISCO BCOS v2.5.0 与 WeBASE-Node-Manager v1.4.1版本,则使用接口13.1至13.4接口

13.1 查看权限管理

根据PermissionType权限类型,查询该类权限记录列表。共支持查看六种权限的管理员列表:权限管理权限permission, 用户表管理权限userTable, 部署合约和创建用户表权限deployAndCreate, 节点管理权限node, 使用CNS权限cns, 系统参数管理权限sysConfig

13.1.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /permission
  • 请求方式:GET
  • 请求头:Content-type: application/json
  • 返回格式:JSON

13.1.2 请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint群组id
2permissionTypeString查看拥有某个权限的address list
3tableNameStringtype=UserTable的时候不能为空。查看某个表的管理员list
4pageSizeint
5pageNumberint

2)入参示例

  1. http://localhost:5001/WeBASE-Node-Manager/permission?groupId=1&permissionType=cns&pageSize=5&pageNumber=1

13.1.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataList数组直接返回数组
4totalCountint总数目

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": [
  5. {
  6. "address": "0x009fb217b6d7f010f12e7876d31a738389fecd51",
  7. "table_name": "_sys_table_access_",
  8. "enable_num": "84"
  9. }
  10. ],
  11. "totalCount": 1
  12. }
  • 失败:
  1. {
  2. "code": 400,
  3. "message": "Required String parameter 'tableName' is not present"
  4. }

13.2 查看权限管理列表(不分页)

根据PermissionType权限类型,查询该类权限记录列表。共支持查看六种权限的管理员列表:权限管理权限permission, 用户表管理权限userTable, 部署合约和创建用户表权限deployAndCreate, 节点管理权限node, 使用CNS权限cns, 系统参数管理权限sysConfig

13.2.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /permission/full
  • 请求方式:GET
  • 请求头:Content-type: application/json
  • 返回格式:JSON

13.2.2 请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint群组id
2permissionTypeString查看拥有某个权限的address list
3tableNameString

2)入参示例

  1. http://localhost:5001/WeBASE-Node-Manager/permission/full?groupId=1&permissionType=cns

13.2.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataList数组直接返回数组
4totalCountint总数目

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": [
  5. {
  6. "address": "0x009fb217b6d7f010f12e7876d31a738389fecd51",
  7. "table_name": "_sys_table_access_",
  8. "enable_num": "84"
  9. }
  10. ],
  11. "totalCount": 1
  12. }
  • 失败:
  1. {
  2. "code": 400,
  3. "message": "Required String parameter 'tableName' is not present"
  4. }

13.3 增加管理权限接口

由管理员赋予外部账户地址不同类型的权限,包含六种:权限管理权限permission, 用户表管理权限userTable, 部署合约和创建用户表权限deployAndCreate, 节点管理权限node, 使用CNS权限cns, 系统参数管理权限sysConfig

其中userTable权限还需传入相应的表明tableName

13.3.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /permission
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

13.3.2 请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint群组id
2permissionTypeString分配权限的类型(六种:permission, userTable, deployAndCreate, node, cns, sysConfig)
3fromAddressString管理员自己的地址
4addressString分配链管理员的用户地址
5tableNameString当permissionType为userTable时不可为空
6useAesBoolean发交易的私钥是否为加密私钥,默认为false

2)入参示例

  1. http://localhost:5001/WeBASE-Node-Manager/permission
  1. {
  2. "groupId": 1,
  3. "permissionType": "permission",
  4. "fromAddress": "0xd5bba8fe456fce310f529edecef902e4b63129b1",
  5. "address": "0x2357ad9d97027cd71eea1d639f1e5750fbdfd38e"
  6. }

13.3.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success"
  4. }
  • 失败:
  1. {
  2. "code": -51000,
  3. "message": "table name and address already exist"
  4. }

13.4 去除管理权限接口

由管理员去除外部账户地址不同类型的权限,包含六种:权限管理权限permission, 用户表管理权限userTable, 部署合约和创建用户表权限deployAndCreate, 节点管理权限node, 使用CNS权限cns, 系统参数管理权限sysConfig

其中userTable权限还需传入相应的表明tableName

13.4.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /permission
  • 请求方式:DELETE
  • 请求头:Content-type: application/json
  • 返回格式:JSON

13.4.2 请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint群组id
2permissionTypeString分配权限的类型(六种:permission, userTable, deployAndCreate, node, cns, sysConfig)
3fromAddressString管理员自己的地址
4addressString分配链管理员的用户地址
5tableNameString当permissionType为userTable时不可为空
6useAesBoolean发交易的私钥是否为加密私钥,默认为false

2)入参示例

  1. http://localhost:5001/WeBASE-Node-Manager/permission
  1. {
  2. "groupId": 1,
  3. "permissionType": "permission",
  4. "fromAddress": "0xd5bba8fe456fce310f529edecef902e4b63129b1",
  5. "address": "0x2357ad9d97027cd71eea1d639f1e5750fbdfd38e"
  6. }

13.4.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success"
  4. }
  • 失败:
  1. {
  2. "code": -51001,
  3. "message": "table name and address does not exist"
  4. }

13.5 获取用户权限状态列表

获取所有用户的权限状态列表,权限状态包含有四种权限: 部署合约和创建用户表权限deployAndCreate, 节点管理权限node, 使用CNS权限cns, 系统参数管理权限sysConfig

13.5.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /permission/sorted
  • 请求方式:GET
  • 请求头:Content-type: application/json
  • 返回格式:JSON

13.5.2 请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint群组id
2pageSizeint分页大小
3pageNumberint分页页码

2)入参示例

  1. http://localhost:5001/WeBASE-Node-Manager/permission/sorted?groupId=1&pageSize=3&pageNumber=1

13.5.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataList数组返回权限状态数组
3.1Object以用户地址为key,以用户的权限状态为value的的Map结构体,1为赋予,0为去除
3.1.1deployAndCreateInt用户的部署与建表权限状态:0-已去除,1-已赋予
3.1.2cnsInt用户的CNS管理权限状态:0-已去除,1-已赋予
3.1.3sysConfigInt用户的系统配置管理权限状态:0-已去除,1-已赋予
3.1.4nodeInt用户的节点共识管理权限状态:0-已去除,1-已赋予
4totalCountInt总数目

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": [
  5. {
  6. "0x17de6cd8e173bac6f457f3f73d8d9a1b1dd33451": {
  7. "deployAndCreate": 0,
  8. "cns": 1,
  9. "sysConfig": 0,
  10. "node": 0
  11. }
  12. },
  13. {
  14. "0x202b4245087dbf797f954d8425459bfee3c790f8": {
  15. "deployAndCreate": 1,
  16. "cns": 1,
  17. "sysConfig": 1,
  18. "node": 1
  19. }
  20. },
  21. {
  22. "0x99af2eb68db52ba21a033af235e680feb0ca7ae5": {
  23. "deployAndCreate": 0,
  24. "cns": 0,
  25. "sysConfig": 0,
  26. "node": 0
  27. }
  28. }
  29. ],
  30. "totalCount": 11
  31. }

13.6 管理用户权限状态接口

管理用户的权限状态,权限状态包含有四种权限: 部署合约和创建用户表权限deployAndCreate, 节点管理权限node, 使用CNS权限cns, 系统参数管理权限sysConfig;1代表赋予权限,0代表去除权限

13.6.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /permission/sorted
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

13.6.2 请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint群组id
2fromAddressString管理员自己的地址
3addressString分配链管理员的用户地址
4permissionStateObject使用{“permissionType”: 1}的结构格式,1代表赋予,0代表去除;支持cns、deployAndCreate、sysConfig、node四种权限
5useAesBoolean发交易的私钥是否为加密私钥,默认为false

2)入参示例

  1. http://localhost:5001/WeBASE-Node-Manager/permission/sorted
  1. {
  2. "groupId": "2",
  3. "fromAddress": "0x09fb217b6d7f010f12e7876d31a738389fecd517",
  4. "address": "0x09fb217b6d7f010f12e7876d31a738389fecd517",
  5. "permissionState": {
  6. "deployAndCreate": 1,
  7. "node": 1,
  8. "sysConfig": 1,
  9. "cns": 1
  10. }
  11. }

13.6.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataList数组返回权限状态数组
3.1Object以用户地址为key,以用户的权限状态为value的的Map结构体,1为赋予,0为去除
3.1.1deployAndCreateInt用户的部署与建表权限状态:0-已去除,1-已赋予
3.1.2cnsInt用户的CNS管理权限状态:0-已去除,1-已赋予
3.1.3sysConfigInt用户的系统配置管理权限状态:0-已去除,1-已赋予
3.1.4nodeInt用户的节点共识管理权限状态:0-已去除,1-已赋予

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": {
  5. "node": 1,
  6. "sysConfig": 1,
  7. "cns": 1,
  8. "deployAndCreate": 1
  9. }
  10. }
  • 失败:
  1. {
  2. "code": 201202,
  3. "message": "permission denied, please check chain administrator permission"
  4. }

13.7 查询CNS接口

根据群组id和合约名(或合约名加版本)获取CNS的list列表。

13.7.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /precompiled/cns/list
  • 请求方式:GET
  • 请求头:Content-type: application/json
  • 返回格式:JSON

13.7.2 请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint群组id
2contractNameAndVersionString只需要合约名,version缺乏时返回所有版本,version与contractName用英文冒号”:”连接
4pageSizeint
5pageNumberint

2)入参示例

  1. http://localhost:5001/WeBASE-Node-Manager/precompiled/cns/list?groupId=1&contractNameAndVersion=HelloWorld&pageSize=10&pageNumber=1

13.7.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataList数组描述
4totalCountint总数目

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": [
  5. {
  6. "name": "HelloWorld",
  7. "version": "2d36b8ed7ed12da01ed51cc0c85c3002085b17b6",
  8. "address": "0x2d36b8ed7ed12da01ed51cc0c85c3002085b17b6",
  9. "abi": "[{\"constant\":false,\"inputs\":[{\"indexed\":false,\"name\":\"n\",\"type\":\"string\"}],\"name\":\"set\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"get\",\"outputs\":[{\"indexed\":false,\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"constant\":false,\"inputs\":[{\"indexed\":false,\"name\":\"name\",\"type\":\"string\"}],\"name\":\"nameEvent\",\"payable\":false,\"type\":\"event\"}]"
  10. }
  11. ],
  12. "totalCount": 1
  13. }

13.8 获取系统配置

根据群组id获取系统配置SystemConfig的list列表,目前只支持tx_count_limit, tx_gas_limit两个参数。

13.8.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /sys/config/list
  • 请求方式:GET
  • 请求头:Content-type: application/json
  • 返回格式:JSON

13.8.2 请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint群组id
2pageSizeint
3pageNumberint

2)入参示例

  1. http://localhost:5001/WeBASE-Node-Manager/sys/config/list?groupId=1&pageSize=10&pageNumber=1

13.8.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3data数组list包含数据库存储的配置key与对应value

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": [
  5. {
  6. "id": 6,
  7. "groupId": 1,
  8. "fromAddress": "0x",
  9. "configKey": "tx_gas_limit",
  10. "configValue": "300000000"
  11. },
  12. {
  13. "id": 5,
  14. "groupId": 1,
  15. "fromAddress": "0xd0b56b4ce0e8ce5e064f896d9ad1c16b2603f285",
  16. "configKey": "tx_count_limit",
  17. "configValue": "10002"
  18. }
  19. ],
  20. "totalCount": 2
  21. }

13.9 设置系统配置

系统配置管理员设置系统配置,目前只支持tx_count_limit, tx_gas_limit两个参数。

13.9.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /sys/config
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

13.9.2 请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint群组id
2fromAddressString管理员自己的地址
3configKeyString目前类型两种(tx_count_limit, tx_gas_limit,用户可自定义key如tx_gas_price
4configValueString
5useAesBoolean发交易的私钥是否为加密私钥,默认为false

2)入参示例

  1. http://localhost:5001/WeBASE-Node-Manager/sys/config
  1. {
  2. "groupId": 1,
  3. "fromAddress": "0xd5bba8fe456fce310f529edecef902e4b63129b1",
  4. "configKey": "tx_count_limit",
  5. "configValue": "1001"
  6. }

13.9.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success"
  4. }
  • 失败:
  1. {
  2. "code": -50000,
  3. "message": "permission denied"
  4. }

13.10 获取节点列表(节点管理)

获取节点的list列表,包含节点id,节点共识状态。

注:接口返回所有的共识/观察节点(无论运行或停止),以及正在运行的游离节点

13.10.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /precompiled/consensus/list
  • 请求方式:GET
  • 请求头:Content-type: application/json
  • 返回格式:JSON

13.10.2 请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint群组id
2pageSizeint
3pageNumberint

2)入参示例

  1. http://localhost:5001/WeBASE-Node-Manager/precompiled/consensus/list?groupId=1&pageSize=10&pageNumber=1

13.10.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataList成功时返回

2)出参示例

  • 成功:
  1. {
  2. "code": 0,
  3. "message": "success",
  4. "data": [
  5. {
  6. "nodeId": "13e0f2b94cbce924cc3737385a38587939e809fb786c4fc34a6ba3ea97693bccfa173b352ac41f1dbb97e9e4910ccbec1df38ad4020cef3b2044e833188adad9",
  7. "nodeType": "sealer"
  8. },
  9. {
  10. "nodeId": "bce4b2269c25c2cdba30155396bfe90af08c3c08cff205213477683117e4243ebe26588479519e636a5d5d93545cab778435cacacc41993f28f58f60fa5ceb72",
  11. "nodeType": "sealer"
  12. },
  13. {
  14. "nodeId": "e815cc5637cb8c3274c83215c680822e4a0110d0a8315fcf03e43e8e3944edd758c8b173c4e0076f599aa1f853fa207d47cc95d201ae8d0206b71ad5aa8c3f59",
  15. "nodeType": "sealer"
  16. }
  17. ],
  18. "totalCount": 3
  19. }

13.11 设置节点共识状态接口(节点管理)

节点管理相关接口,可用于节点三种共识状态的切换。分别是共识节点sealer, 观察节点observer, 游离节点remove

13.11.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /precompiled/consensus
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

13.11.2 请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint群组id
2fromAddressString管理员的地址
3nodeTypeString节点类型:observer,sealer,remove
4nodeIdString节点id
5useAesBoolean发交易的私钥是否为加密私钥,默认为false

2)入参示例

  1. http://localhost:5001/WeBASE-Node-Manager/precompiled/consensus
  1. {
  2. "groupId": 1,
  3. "fromAddress": "0xd5bba8fe456fce310f529edecef902e4b63129b1",
  4. "nodeType": "remove",
  5. "nodeId": "224e6ee23e8a02d371298b9aec828f77cc2711da3a981684896715a3711885a3177b3cf7906bf9d1b84e597fad1e0049511139332c04edfe3daddba5ed60cffa"
  6. }

13.12.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述 |

2)出参示例

  • 成功:
  1. [
  2. {
  3. "code": 0,
  4. "message": "success"
  5. }
  6. ]
  • 失败:
{
    "code": -51000,
    "message": "nodeId already exist"
}

13.13 CRUD表格操作接口

用于操作用户表的CRUD操作,包含create, desc, insert, update, select, remove。

具体sql要求语法参考Fisco-bcos技术文档的 Precompiled Crud API

13.13.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /precompiled/crud
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

13.13.2 请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint群组id
2fromAddressStringUserTable管理员的地址
3sqlString需要调用的sql语句
4useAesBoolean发交易的私钥是否为加密私钥,默认为false

2)入参示例

http://localhost:5001/WeBASE-Node-Manager/precompiled/crud
{
    "groupId": 1,
    "fromAddress": "0xd5bba8fe456fce310f529edecef902e4b63129b1",
    "sql": "desc t_demo"
}

13.13.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataString调用结果

2)出参示例

  • 成功:
{
    "code": 0,
    "message": "success",
    "data": {
        "tableName": "t_demo",
        "key": "name",
        "valueFields": "item_id,item_name",
        "optional": "",
        "entry": {
            "fields": {}
        },
        "condition": {
            "conditions": {}
        }
    }
}

或者

{
    "code": 0,
    "message": "success",
    "data": {
        "Insert OK, 1 row effected"
    }
}
  • 失败:
{
    "code": 201228,
    "message": "table not exists",
    "data": "Table not exists "
}

13.14 获取链治理委员列表

使用FISCO BCOS v2.5.0 与 WeBASE-Node-Manager v1.4.1 (及)以上版本将使用预编译合约中的ChainGovernance接口(本章节接口13.14开始),详情可参考FISCO BCOS基于角色的权限控制

委员的权限包括治理投票、增删节点、冻结解冻合约、冻结解冻账号、修改链配置和增删运维账号。

增加委员需要链治理委员会投票,有效票大于阈值才可以生效,且不重复计票

  • 委员默认的投票权重为1,默认投票生效阈值50%,若有两个委员,则需要两个委员都投票增加/撤销的委员权限,有效票/总票数=2/2=1>0.5才满足条件。
  • 投票有过期时间,根据块高,过期时间为块高超过blockLimit的10倍时过期;过期时间固定不可改。
  • 一个用户不能同时作为委员和运维

13.14.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /governance/committee/list
  • 请求方式:GET
  • 请求头:Content-type: application/json
  • 返回格式:JSON

13.14.2 请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint群组id
2pageSizeint
3pageNumberint

2)入参示例

http://localhost:5001/WeBASE-Node-Manager/governance/committee/list?groupId=1&pageSize=5&pageNumber=1

13.14.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataList数组直接返回数组
4totalCountint总数目

2)出参示例

  • 成功:
{
    "code": 0,
    "message": "success",
    "data": [
        {
            "address": "0x009fb217b6d7f010f12e7876d31a738389fecd51",
            "enable_num": "84"
        }
    ],
    "totalCount": 1
}

13.15 增加链治理委员

增加委员需要链治理委员会投票,有效票大于阈值才可以生效,且不重复计票

  • 委员默认的投票权重为1,默认投票生效阈值50%,若有两个委员,则需要两个委员都投票增加/撤销的委员权限,有效票/总票数=2/2=1>0.5才满足条件。
  • 投票有过期时间,根据块高,过期时间为块高超过blockLimit的10倍时过期;过期时间固定不可改。

13.15.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /governance/committee
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

13.15.2 请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint群组id
2fromAddressString链治理委员地址
3addressString新的链治理委员地址

2)入参示例

http://localhost:5001/WeBASE-Node-Manager/governance/committee
{
    "groupId": 1,
    "fromAddress": "0xd5bba8fe456fce310f529edecef902e4b63129b1",
    "address": "0x2357ad9d97027cd71eea1d639f1e5750fbdfd38e"
}

13.15.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述

2)出参示例

  • 成功:
{
    "code": 0,
    "message": "success"
}
  • 失败:
{
    "code": -52000,
    "message": "committee member already exist"
}

13.16 去除链管理委员接口

增加委员需要链治理委员会投票,有效票大于阈值才可以生效,且不重复计票

  • 委员默认的投票权重为1,默认投票生效阈值50%,若有两个委员,则需要两个委员都投票增加/撤销的委员权限,有效票/总票数=2/2=1>0.5才满足条件。
  • 投票有过期时间,根据块高,过期时间为块高超过blockLimit的10倍时过期;过期时间固定不可改。

13.16.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /governance/committee
  • 请求方式:DELETE
  • 请求头:Content-type: application/json
  • 返回格式:JSON

13.16.2 请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint群组id
2fromAddressString链治理委员地址
3addressString待取消的链治理委员地址

2)入参示例

http://localhost:5001/WeBASE-Node-Manager/governance/committee
{
    "groupId": 1,
    "fromAddress": "0xd5bba8fe456fce310f529edecef902e4b63129b1",
    "address": "0x2357ad9d97027cd71eea1d639f1e5750fbdfd38e"
}

13.16.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述

2)出参示例

  • 成功:
{
    "code": 0,
    "message": "success"
}
  • 失败:
{
    "code": -52001,
    "message": "committee member not exist"
}

13.17 获取链治理委员投票权重

委员默认的投票权重为1

13.17.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /governance/committee/weight
  • 请求方式:GET
  • 请求头:Content-type: application/json
  • 返回格式:JSON

13.17.2 请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint群组id
2addressString

2)入参示例

http://localhost:5001/WeBASE-Node-Manager/governance/committee/weight?groupId=1&address=0x009fb217b6d7f010f12e7876d31a738389fecd51

13.17.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataInteger权重值

2)出参示例

  • 成功:
{
    "code": 0,
    "message": "success",
    "data": 2
}

13.18 更新链治理委员投票权重值

委员默认的投票权重为1

13.18.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /governance/committee/weight
  • 请求方式:PUT
  • 请求头:Content-type: application/json
  • 返回格式:JSON

13.18.2 请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint群组id
2fromAddressString链治理委员地址
3addressString新的链治理委员地址
4weightint投票权重值

2)入参示例

http://localhost:5001/WeBASE-Node-Manager/governance/committee/weight
{
    "groupId": 1,
    "fromAddress": "0xd5bba8fe456fce310f529edecef902e4b63129b1",
    "address": "0x2357ad9d97027cd71eea1d639f1e5750fbdfd38e",
    "weight": 2
}

13.18.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述

2)出参示例

  • 成功:
{
    "code": 0,
    "message": "success"
}
  • 失败:
{
    "code": -52001,
    "message": "committee member not exist"
}

13.19 获取链治理投票阈值

默认投票阈值为50,即超过(不包括)50%的票数权重即可通过

13.19.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /governance/threshold
  • 请求方式:GET
  • 请求头:Content-type: application/json
  • 返回格式:JSON

13.19.2 请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint群组id

2)入参示例

http://localhost:5001/WeBASE-Node-Manager/governance/threshold?groupId=1

13.19.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataInteger阈值

2)出参示例

  • 成功:
{
    "code": 0,
    "message": "success",
    "data": 50
}

13.19 更新链治理投票阈值

委员默认的投票权重为1

13.19.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /governance/threshold
  • 请求方式:PUT
  • 请求头:Content-type: application/json
  • 返回格式:JSON

13.19.2 请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint群组id
2fromAddressString链治理委员地址
3thresholdint投票阈值

2)入参示例

http://localhost:5001/WeBASE-Node-Manager/governance/threshold
{
    "groupId": 1,
    "fromAddress": "0xd5bba8fe456fce310f529edecef902e4b63129b1",
    "threshold": 60
}

13.19.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述

2)出参示例

  • 成功:
{
    "code": 0,
    "message": "success"
}
  • 失败,如非委员更新阈值:
{
    "code": -52001,
    "message": "committee member not exist"
}

13.20 查看运维列表

由链治理委员添加运维账号,运维账号可以部署合约、创建表、管理合约版本、冻结解冻本账号部署的合约。

13.20.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /governance/operator/list
  • 请求方式:GET
  • 请求头:Content-type: application/json
  • 返回格式:JSON

13.20.2 请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint群组id
2pageSizeint
3pageNumberint

2)入参示例

http://localhost:5001/WeBASE-Node-Manager/governance/operator/list?groupId=1&pageSize=5&pageNumber=1

13.20.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataList数组直接返回数组
4totalCountint总数目

2)出参示例

  • 成功:
{
    "code": 0,
    "message": "success",
    "data": [
        {
            "address": "0x009fb217b6d7f010f12e7876d31a738389fecd51",
            "enable_num": "4"
        }
    ],
    "totalCount": 1
}

13.21 增加运维接口

由链治理委员添加/去除运维账号,运维账号可以部署合约、创建表、管理合约版本、冻结解冻本账号部署的合约。

13.21.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /governance/operator
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

13.21.2 请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint群组id
3fromAddressString链治理委员地址
4addressString运维地址

2)入参示例

http://localhost:5001/WeBASE-Node-Manager/governance/operator
{
    "groupId": 1,
    "fromAddress": "0xd5bba8fe456fce310f529edecef902e4b63129b1",
    "address": "0x2357ad9d97027cd71eea1d639f1e5750fbdfd38e"
}

13.21.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述

2)出参示例

  • 成功:
{
    "code": 0,
    "message": "success"
}
  • 失败:
{
    "code": -52001,
    "message": "committee member not exist"
}

{
    "code": -52005,
    "message": "committee member cannot be operator"
}

13.22 去除运维接口

由链治理委员添加/去除运维账号,运维账号可以部署合约、创建表、管理合约版本、冻结解冻本账号部署的合约。

13.22.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /governance/operator
  • 请求方式:DELETE
  • 请求头:Content-type: application/json
  • 返回格式:JSON

13.22.2 请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint群组id
3fromAddressString链治理委员地址
4addressString运维地址

2)入参示例

http://localhost:5001/WeBASE-Node-Manager/governance/operator
{
    "groupId": 1,
    "fromAddress": "0xd5bba8fe456fce310f529edecef902e4b63129b1",
    "address": "0x2357ad9d97027cd71eea1d639f1e5750fbdfd38e"
}

13.22.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述

2)出参示例

  • 成功:
{
    "code": 0,
    "message": "success"
}
  • 失败:
{
    "code": -52001,
    "message": "committee member not exist"
}

13.23 合约状态管理

合约部署者(一般由运维所部属)与链治理委员共同管理合约的状态,包含冻结/解冻合约、查询合约状态功能

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /precompiled/contract/status
  • 请求方式: POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint群组id
2fromAddressString合约管理者地址
3contractAddressString已部署的合约地址
4handleTypeString操作类型:freeze-冻结;unfreeze-解冻;getStatus-查询合约状态;

2)入参示例

http://localhost:5001/WeBASE-Node-Manager/precompiled/contract/status
{
    "groupId": 1,
    "fromAddress": "0xd5bba8fe456fce310f529edecef902e4b63129b1",
    "contractAddress": "0x2357ad9d97027cd71eea1d639f1e5750fbdfd38e",
    "handleType": "freeze"
}

返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述

2)出参示例

  • 成功:
{
    "code": 0,
    "message": "success"
}
  • 失败:
{
    "code": -52007,
    "message": "operator member not exist"
}

13.24 批量查看合约冻结状态

传入多个合约地址的List,查看该合约地址的冻结状态

13.24.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /precompiled/contract/status/list
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

13.24.2 请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint群组id
2addressListList多个合约地址的列表

2)入参示例

http://localhost:5001/WeBASE-Node-Manager/precompiled/contract/status/list
{
    "groupId": 1,
    "addressList": ["0x009fb217b6d7f010f12e7876d31a738389fecd51", "0x6b9fb217b6d7f010f12e7876d31a738389feef62"]
}

13.24.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataMap直接返回Map, 0-正常,1-冻结 如:[“0x009fb217b6d7f010f12e7876d31a738389fecd51”: 0, “0x6b9fb217b6d7f010f12e7876d31a738389feef62”: 1]

2)出参示例

  • 成功:
{
    "code": 0,
    "message": "success",
    "data": [
        "0x009fb217b6d7f010f12e7876d31a738389fecd51": 0,
        "0x6b9fb217b6d7f010f12e7876d31a738389feef62": 1
    ],
    "totalCount": 1
}

13.25 获取链委员会投票记录列表

当链委员会发起一笔交易时会产生一条投票记录,此接口返回某群组下的修改记录列表

13.25.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /vote/record/list
  • 请求方式:GET
  • 返回格式:JSON

13.25.2 请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint群组编号
2pageNumberint页码,从1开始
3pageSizeint页大小

2)入参示例

http://127.0.0.1:5001/WeBASE-Node-Manager/vote/record/list?groupId=1&pageNumber=1&pageSize=10

13.25.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3Object返回信息实体
3.1idint合约记录编号
3.2groupIdInt所属群组编号
3.3timeLimitLong投票块高限制范围
3.4fromAddressString链委员的地址
3.5typeInt投票类型,1-增加委员,2-去除委员,3-更新委员权重,4-更新阈值
3.6toAddressString被修改的外部账户地址,当类型为1,2,3时为非空
3.7detailString投票内容详情,当类型为3,4时为非空;3-{weight: 2},4-{threshold: 2}
3.8createTimeLocalDateTime创建时间
3.9modifyTimeLocalDateTime修改时间
4totalCountInt总数

2)出参示例

  • 成功:
{
  "code": 0,
  "message": "success",
  "data": [
    {
      "id": 1,
      "groupId": 1,
      "timeLimit": 200,      
      "fromAddress": "0x2ac4227e87bccca63893317febadd0b51ad33e1",
      "type": 3,
      "toAddress": "0x3214227e87bccca63893317febadd0b51ade735e",
      "detail": "{weight: 2}",
      "createTime": "2020-09-18 10:59:02",
      "modifyTime": "2020-09-18 10:59:02"
    }
  ],
  "totalCount": 1
}

13.26 删除链委员会投票记录

删除投票记录

13.26.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /vote/record/{voteId}
  • 请求方式:DELETE
  • 返回格式:JSON

13.26.2 请求参数

1)入参表

序号输入参数类型可为空备注
1voteIdint投票记录编号

2)入参示例

http://127.0.0.1:5001/WeBASE-Node-Manager/vote/record/{voteId}

13.26.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述

2)出参示例

  • 成功:
{
  "code": 0,
  "message": "success"
}

13.27 获取链治理委员列表(包含权重)

获取链治理委员列表,同时返回委员投票的权重值

13.27.1 传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /governance/committee/list/sorted
  • 请求方式:GET
  • 返回格式:JSON

13.27.2 请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdint群组编号
2pageNumberint页码,从1开始
3pageSizeint页大小

2)入参示例

http://127.0.0.1:5001/WeBASE-Node-Manager/governance/committee/list/sorted?groupId=1&pageNumber=1&pageSize=10

13.27.3 返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3Object返回信息实体
3.1weightInt委员投票权重值
3.2weightRateBigDecimal权重比
3.3addressString委员的用户地址
3.4enable_numInt委员生效块高
4totalCountInt总数

2)出参示例

  • 成功:
{
  "code": 0,
  "message": "success",
  "data": [
    {
      "weight": 1,
      "weightRate": 33.3
      "address": "0x2ac4227e87bccca63893317febadd0b51ad33e1",
      "enable_num": 3
    }
  ],
  "totalCount": 1
}

14 证书管理模块

14.1 获取证书列表接口

获取证书的list列表,返回的列表包含证书指纹、证书内容、证书名字、证书的父证书、证书对应nodeid(节点证书)、证书有效期

注:首次启动项目会自动拉取每一个Front的证书

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /cert/list
  • 请求方式:GET
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
--

2)入参示例

http://localhost:5001/WeBASE-Node-Manager/cert/list

返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataList成功时返回证书相关信息的列表
3Object单个证书相关信息
3.1fingerPrintString证书的指纹
3.1certNameString证书名字
3.1contentString证书文件的内容
3.1certTypeString证书类型:chain, agency, node, sdk等,国密版中node证书分为加密ennode证书与签名gmnode证书
3.1publicKeyString证书对应nodeid(仅限节点证书公钥)
3.1addressString证书对应地址(仅限节点证书公钥)
3.1fatherString证书的父证书指纹
3.1validityFromDate证书有效期开始时间
3.1validityToDate证书有效期结束时间
3.1createTimeLocalDateTime导入创建时间

2)出参示例

  • 成功:
{
    "code": 0,
    "message": "success",
    "data": [
        {
            "fingerPrint": "814D51FB7CBAB33676FE73E8FBBFECB3D3B1301A",
            "certName": "sdk",
            "content": "-----BEGIN CERTIFICATE-----\nMIICOTCCASGgAwIBAgIJAKHsAYI3TsAOMA0GCSqGSIb3DQEBCwUAMDgxEDAOBgNV\nBAMMB2FnZW5jeUExEzARBgNVBAoMCmZpc2NvLWJjb3MxDzANBgNVBAsMBmFnZW5j\neTAeFw0xOTA3MTIwMjA2MTZaFw0yOTA3MDkwMjA2MTZaMDIxDDAKBgNVBAMMA3Nk\nazETMBEGA1UECgwKZmlzY28tYmNvczENMAsGA1UECwwEbm9kZTBWMBAGByqGSM49\nAgEGBSuBBAAKA0IABJ79rSKIb97xZwByW58xH6tzoNKNLaKG7J5wxAEgAb03O2h4\nMkEMLtf/LB7tELOiyCiIEhLScprb1LjvDDt2RDGjGjAYMAkGA1UdEwQCMAAwCwYD\nVR0PBAQDAgXgMA0GCSqGSIb3DQEBCwUAA4IBAQC0u2lfclRmCszBTi2rtvMibZec\noalRC0sQPBPRb7UQhGCodxmsAT3dBUf+s4wLLrmN/cnNhq5HVObbWxzfu7gn3+IN\nyQEeqdbGdzlu1EDcaMgAz6p2W3+FG/tmx/yrNza29cYekWRL44OT5LOUPEKrJ4bJ\neOBRY4QlwZPFmM0QgP7DoKxHXldRopkmvqT4pbW51hWvPgj7KrdqwbVWzuWQuI3i\n3j3O96XZJsaDZ0+IGa5093+TsTNPfWUZzp5Kg+EyNR6Ea1evuMDNq9NAqqcd5bX9\nO9kgkb8+llO8I5ZhdnN0BuhGvv9wpsa9hW8BImOLzUBwfSVYouGCkoqlVq9X\n-----END CERTIFICATE-----\n",
            "certType": "node",
            "publicKey": "9efdad22886fdef16700725b9f311fab73a0d28d2da286ec9e70c4012001bd373b687832410c2ed7ff2c1eed10b3a2c828881212d2729adbd4b8ef0c3b764431",
            "address": "5cb81b06ef0734fff99929c5deae4a5b25e800cc",
            "father": "EEBAAB2F674D05CF1EAD70367B4D2A928D894EF8",
            "validityFrom": 1562860800000,
            "validityTo": 1878220800000,
            "createTime": 1569686400000
        }
    ],
    "totalCount": 1
}

14.2 根据指纹获取证书接口

根据指纹获取单个证书

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /cert
  • 请求方式:GET
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1fingerPrintString证书指纹,证书唯一标识

2)入参示例

http://localhost:5001/WeBASE-Node-Manager/cert?fingerPrint=814D51FB7CBAB33676FE73E8FBBFECB3D3B1301A

返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataList成功时返回
3Object单个证书相关信息
3.1fingerPrintString证书的指纹
3.1certNameString证书名字
3.1contentString证书文件的内容
3.1certTypeString证书类型:chain, agency, node, sdk等,国密版node证书分为加密ennode证书与签名gmnode证书
3.1publicKeyString证书对应nodeid(仅限节点证书公钥)
3.1addressString证书对应地址(仅限节点证书公钥)
3.1fatherString证书的父证书指纹
3.1validityFromDate证书有效期开始时间
3.1validityToDate证书有效期结束时间
3.1createTimeLocalDateTime导入创建时间

2)出参示例

  • 成功:’
{
    "code": 0,
    "message": "success",
    "data": {
        "fingerPrint": "EEBAAB2F674D05CF1EAD70367B4D2A928D894EF8",
        "certName": "agencyA",
        "content": "-----BEGIN CERTIFICATE-----\nMIIDADCCAeigAwIBAgIJAJUF2Dp1a9U6MA0GCSqGSIb3DQEBCwUAMDUxDjAMBgNV\nBAMMBWNoYWluMRMwEQYDVQQKDApmaXNjby1iY29zMQ4wDAYDVQQLDAVjaGFpbjAe\nFw0xOTA3MTIwMjA2MTZaFw0yOTA3MDkwMjA2MTZaMDgxEDAOBgNVBAMMB2FnZW5j\neUExEzARBgNVBAoMCmZpc2NvLWJjb3MxDzANBgNVBAsMBmFnZW5jeTCCASIwDQYJ\nKoZIhvcNAQEBBQADggEPADCCAQoCggEBANBT4CTciIYdSeEabgJzif+CFB0y3GzG\ny+XQYtWK+TtdJWduXqhnnZiYAZs7OPGEu79Yx/bEpjEXsu2cXH0D6BHZk+wvuxG6\nezXWq5MYjCw3fQiSRWkDYoxzWgulkRyYROF1xoZeNGQssReFmCgP+pcQwRxjcq8z\nIA9iT61YxyW5nrS7xnra9uZq/EE3tsJ0ae3ax6zixCT66aV49S27cMcisS+XKP/q\nEVPxhO7SUjnzZY69MgZzNSFxCzIbapnlmYAOS26vIT0taSkoKXmIsYssga45XPwI\n7YBVCc/34kHzW9xrNjyyThMWOgDsuBqZN9xvapGSQ82Lsh7ObN0dZVUCAwEAAaMQ\nMA4wDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAu3aHxJnCZnICpHbQ\nv1Lc5tiXtAYE9aEP5cxb/cO14xY8dS+t0wiLIvyrE2aTcgImzr4BYNBm1XDt5suc\nMpzha1oJytGv79M9/WnI/BKmgUqTaaXOV2Ux2yPX9SadNcsD9/IbrV0b/hlsPd6M\nK8w7ndowvBgopei+A1NQY6jTDUKif4RxD4u5HZFWUu7pByNLFaydU4qBKVkucXOq\nxmWoupL5XrDk5o490kiz/Zgufqtb4w6oUr3lrQASAbFB3lID/P1ipi0DwX7kZwVX\nECDLYvr+eX6GbTClzn0JGuzqV4OoRo1rrRv+0tp1aLZKpCYn0Lhf6s1iw/kCeM2O\nnP9l2Q==\n-----END CERTIFICATE-----\n",
        "certType": "agency",
        "publicKey": "",
        "address": "",
        "father": "",
        "validityFrom": 1562860800000,
        "validityTo": 1878220800000,
        "createTime": 1569686400000
    }
}

14.3 导入证书接口

导入保存证书文件

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /cert
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

14.3.2 请求参数

1)入参表

序号输入参数类型可为空备注
1contentString证书文件的内容,需保留开头与结尾以及证书原有的回车\n的格式文本;证书中包含多个证书亦可

2)入参示例

http://localhost:5001/WeBASE-Node-Manager/cert
{
    "content": "-----BEGIN CERTIFICATE-----\nMIICOzCCASOgAwIBAgIJANJZtoFLZsGcMA0GCSqGSIb3DQEBCwUAMDgxEDAOBgNVBAMMB2FnZW5jeUExEzARBgNVBAoMCmZpc2NvLWJjb3MxDzANBgNVBAsMBmFnZW5jeTAeFw0xOTA5MDUwNzQ3NDdaFw0yOTA5MDIwNzQ3NDdaMDQxDjAMBgNVBAMMBW5vZGUzMRMwEQYDVQQKDApmaXNjby1iY29zMQ0wCwYDVQQLDARub2RlMFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAE9CwTicQwi5Gx1gckJ0ibZbcIoL13IHyLK7z4xuzkAi+PbgI9M3vKDuMzZ73IFKCYOwzfhvqM8ksFonpBZqT0NqMaMBgwCQYDVR0TBAIwADALBgNVHQ8EBAMCBeAwDQYJKoZIhvcNAQELBQADggEBAIv+PE8bQlxxVDxfUlevf3jJeaK97U5tmP8Tx1pesblzcMWTC8OxfUtYP0zy4CQL0zo6OjmSn4FYvTyDUSVqj5BXXDXiZQwtWxnPgLD75tqSTlFcR2jB+amhmzWQ7mXgfepvL+RV+1OL8WXJy7Xl01fL0nCwHaWCCwaBg+KnUgbc9YXhhyH8X8aqDDpjz9oYpZcbLITGI0V8lvr1EU3NII6LudgGp/xNolQDBOYZX1E0XtUwMUp6Az2xbmSH/7S3sXJCwgHZrtoiKkcFLbss1TDk/UdUya4n/dz4BcH3OzR2MvMHenA8kh4yaofJNsJeXFqPHAbI5+yUVK2+VK2hI0o=\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\nMIIDPTCCAiWgAwIBAgIJAKUGxOHHqV05MA0GCSqGSIb3DQEBCwUAMDUxDjAMBgNVBAMMBWNoYWluMRMwEQYDVQQKDApmaXNjby1iY29zMQ4wDAYDVQQLDAVjaGFpbjAeFw0xOTA5MDUwNzI2MTJaFw0yOTA5MDIwNzI2MTJaMDUxDjAMBgNVBAMMBWNoYWluMRMwEQYDVQQKDApmaXNjby1iY29zMQ4wDAYDVQQLDAVjaGFpbjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM9LlTwIAKp36uB8sjoai2O3R+3KPMN9xAt8/k5+B943CUPF/RDxZ8/7Q2v6Z+t+1v3Dc81aszMr/8YyyCQWh0I3EdWyInsocZ2pBkjymetyE5VOSd+p7I8qc9PpHJKZjy2M9J5bePVjHJxleHP2u6I4QctjZoE8PJnZYT5Q0On0MJATpY856vHbF3Amvxj9dmeLKjF62T/KtyDKlyPTETXOFGMiLerWusXZxFgj0K0xhuXaNkbJI6AdhQnywgn755ugfBDzi24rfsk/BkUf5DVitfWePh4C7zaCZIeTTr8whV3twE2BTv4LENdidxCVUHN1JBvZNGyHaH4gIbwtsZcCAwEAAaNQME4wHQYDVR0OBBYEFNTCWbm1EzCYIXyoF7j3l6IXX3BoMB8GA1UdIwQYMBaAFNTCWbm1EzCYIXyoF7j3l6IXX3BoMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAIjYTyxP5ikaGYdwYzQZdF4aqx+7UL3Wo/6LNJa8w2m+pAvC3ILIBcvpDe6lH3cMOz2HwCzFkKlT8Ji1HwsKPywx/9fmO60RvEoPIBanziqONLb8HDUT0QHz3jgCTj46URM6hXIEhFwg4KekpzvqaLPRHHtoCrcebUAmySOlNvlwkSnxJnufp0zFpdNu+kSl1/r21ZRMeu/hNaUb1gOzP06NOB7NodOQ5MR7ItVXyN9rl3fABP3rUFIJ+Z11WmSldaCRCQMlEOkdD8LGFYVj4Q5fx06hcJlPd2arnxALWrZUl2cs+K+MW9qQUUKAQ+7FirdRRk6ZfZtlpHMdlTfAVWA=\n-----END CERTIFICATE-----\n"
}

返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataString成功保存证书的个数或错误信息

2)出参示例

  • 成功:
{
    "code": 0,
    "message": "success",
    "data": 2
}
  • 失败:
{
    "code": 202060,
    "message": "cert handle error",
    "data": "Could not parse certificate: java.io.IOException: Empty input"
}

14.4 删除证书接口

根据证书指纹删除一个证书

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /cert
  • 请求方式:DELETE
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1fingerPrintString证书指纹,证书的唯一标识

2)入参示例

http://localhost:5001/WeBASE-Node-Manager/cert
{
    "fingerPrint": "F588C511F5471860120F7BE8127DE026ADD8378C"
}

返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataString成功删除证书的个数或错误信息

2)出参示例

  • 成功:
{
    "code": 0,
    "message": "success",
    "data": 1
}

14.5. 获取明文SDK证书与私钥

获取Front使用的sdk证书(包含链证书、sdk证书和sdk私钥)的内容

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /cert/sdk//{frontId}
  • 请求方式:GET
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)参数表

序号中文参数名类型最大长度必填说明
1frontIdInt前置编号

2)数据格式

http://localhost:5001/WeBASE-Node-Manager/cert/sdk/1

响应参数

1)参数表

序号中文参数名类型必填说明
1MapMapkey为文件名,value为文件内容

1)数据格式

a、成功:

{
  "sdk.key": "-----BEGIN PRIVATE KEY-----\nMIGEAgEAMBAGByqGSM49AgEGBSuBBAAKBG0wawIBAQQgxqr/d/VgQ0fAr/KvyAeW\nJ6bD1tqxZ5gYOdfIJiK7WOmhRANCAAT3g/OsuSAD2I/dKLWnZTbMGQ8l9WnkD/wr\npyoiQkMy1qI5/3Sj4WFKGcVu9vhsd0nLoP+y1QttYKM0m5QGcuhP\n-----END PRIVATE KEY-----\n",
  "ca.crt": "-----BEGIN CERTIFICATE-----\nMIIBsDCCAVagAwIBAgIJAPwQ7ISyofOIMAoGCCqGSM49BAMCMDUxDjAMBgNVBAMM\nBWNoYWluMRMwEQYDVQQKDApmaXNjby1iY29zMQ4wDAYDVQQLDAVjaGFpbjAgFw0y\nMTA0MDYxMjMwNDBaGA8yMTIxMDMxMzEyMzA0MFowNTEOMAwGA1UEAwwFY2hhaW4x\nEzARBgNVBAoMCmZpc2NvLWJjb3MxDjAMBgNVBAsMBWNoYWluMFYwEAYHKoZIzj0C\nAQYFK4EEAAoDQgAE6UcrK7ukGBVvBmWYwgIloM38ibqtxF2zBnM9zgU4bujjJU1Y\nCZsHGKVGuNstSOZYfYulnTtFUoHhUEyhddvql6NQME4wHQYDVR0OBBYEFBBSyZi8\nk/Hz/Q2SAin5bMnE1nOFMB8GA1UdIwQYMBaAFBBSyZi8k/Hz/Q2SAin5bMnE1nOF\nMAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwIDSAAwRQIgEpuPZypVImOtDty9p50X\njeD4wdgzHXpd3CDPui4CnZYCIQC4n+r97cCB51dPb+WjDNV5C18S2uI8LlNVj+xL\ndSweAg==\n-----END CERTIFICATE-----\n",
  "sdk.crt": "-----BEGIN CERTIFICATE-----\nMIIBeDCCAR+gAwIBAgIJAJoEtSMUsa8HMAoGCCqGSM49BAMCMDgxEDAOBgNVBAMM\nB2FnZW5jeUExEzARBgNVBAoMCmZpc2NvLWJjb3MxDzANBgNVBAsMBmFnZW5jeTAg\nFw0yMTA0MDYxMjMwNDBaGA8yMTIxMDMxMzEyMzA0MFowMTEMMAoGA1UEAwwDc2Rr\nMRMwEQYDVQQKDApmaXNjby1iY29zMQwwCgYDVQQLDANzZGswVjAQBgcqhkjOPQIB\nBgUrgQQACgNCAAT3g/OsuSAD2I/dKLWnZTbMGQ8l9WnkD/wrpyoiQkMy1qI5/3Sj\n4WFKGcVu9vhsd0nLoP+y1QttYKM0m5QGcuhPoxowGDAJBgNVHRMEAjAAMAsGA1Ud\nDwQEAwIF4DAKBggqhkjOPQQDAgNHADBEAiANbeRFiiS6mH+vcAOwV3wXd9YW/B2a\n+vrHMm6NwtliRAIgRH4gSF0XLmpVOEO21bJFDGWm9siIX0cnj0R3kNGZcB4=\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\nMIIBcTCCARegAwIBAgIJANrOZ+FrVNpIMAoGCCqGSM49BAMCMDUxDjAMBgNVBAMM\nBWNoYWluMRMwEQYDVQQKDApmaXNjby1iY29zMQ4wDAYDVQQLDAVjaGFpbjAeFw0y\nMTA0MDYxMjMwNDBaFw0zMTA0MDQxMjMwNDBaMDgxEDAOBgNVBAMMB2FnZW5jeUEx\nEzARBgNVBAoMCmZpc2NvLWJjb3MxDzANBgNVBAsMBmFnZW5jeTBWMBAGByqGSM49\nAgEGBSuBBAAKA0IABIqMDvvzvTq8WW1UtJrnnsifw9/OrPsMc9CrrYBsWdwOGhdx\nfNTJA1ss+vngjrhAmWHczvbh+E1WOlDGzpCumeqjEDAOMAwGA1UdEwQFMAMBAf8w\nCgYIKoZIzj0EAwIDSAAwRQIhALsAbAQ9BDeofk4VYzYx2ZAHB1HviDp9ndvXAkLN\nsfHZAiAjViK97dDr3gxP/qHg0e8BG9ptEv7Do8caOPj33F+yOQ==\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\nMIIBsDCCAVagAwIBAgIJAPwQ7ISyofOIMAoGCCqGSM49BAMCMDUxDjAMBgNVBAMM\nBWNoYWluMRMwEQYDVQQKDApmaXNjby1iY29zMQ4wDAYDVQQLDAVjaGFpbjAgFw0y\nMTA0MDYxMjMwNDBaGA8yMTIxMDMxMzEyMzA0MFowNTEOMAwGA1UEAwwFY2hhaW4x\nEzARBgNVBAoMCmZpc2NvLWJjb3MxDjAMBgNVBAsMBWNoYWluMFYwEAYHKoZIzj0C\nAQYFK4EEAAoDQgAE6UcrK7ukGBVvBmWYwgIloM38ibqtxF2zBnM9zgU4bujjJU1Y\nCZsHGKVGuNstSOZYfYulnTtFUoHhUEyhddvql6NQME4wHQYDVR0OBBYEFBBSyZi8\nk/Hz/Q2SAin5bMnE1nOFMB8GA1UdIwQYMBaAFBBSyZi8k/Hz/Q2SAin5bMnE1nOF\nMAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwIDSAAwRQIgEpuPZypVImOtDty9p50X\njeD4wdgzHXpd3CDPui4CnZYCIQC4n+r97cCB51dPb+WjDNV5C18S2uI8LlNVj+xL\ndSweAg==\n-----END CERTIFICATE-----\n"
}

14.6. 获取SDK证书与私钥压缩包

获取Front使用的sdk证书(包含链证书、sdk证书和sdk私钥)的zip压缩包

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /cert/sdk/zip/{frontId}
  • 请求方式:GET
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)参数表

序号中文参数名类型最大长度必填说明
1frontIdInt前置编号

2)数据格式

http://localhost:5002/WeBASE-Front/cert/sdk/zip/1

响应参数

1)参数表

序号中文参数名类型必填说明
1文件名ResponseEntity.headerString文件名在header中
2文件流bodyInputStream文件的流在body中

1)数据格式

a、成功:

headers:  content-disposition: attachment;filename*=UTF-8''conf.zip 

{
    // 二进制流
}

15 订阅事件管理

15.1 获取已订阅的出块事件列表

获取所有前置中已订阅的节点出块事件列表

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /event/newBlockEvent/list/{groupId}
  • 请求方式:GET
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdInteger群组编号
2pageNumberInteger页码,从1开始
3pageSizeInteger页容量

2)入参示例

http://localhost:5001/WeBASE-Node-Manager/event/newBlockEvent/list/{groupId}/{pageNumber}/{pageSize}

返回参数

1)出参表

序号输出参数类型备注
1codeInteger返回码,0:成功 其它:失败
2messageString描述
3dataListnewBlockEvent info
3.1frontInfoString前置对应IP
3.1idString订阅信息的id
3.1eventTypeInteger事件通知类型,1: newBlockEvent, 2: contractEvent, 3: others
3.1appIdString事件通知对应的应用Id
3.1groupIdInteger群组编号
3.1exchangeNameStringexchange名
3.1queueNameString队列名
3.1routingKeyString路由键值
3.1createTimeString订阅信息创建时间
4totalCountInteger1: 国密,0:非国密

2)出参示例

  • 成功:
{
    "code": 0,
    "message": "success",
    "data": [
        {
            "frontInfo": "127.0.0.1",
            "id": "8aba82b570f22a750170f22bcab90000",
            "eventType": 1,
            "appId": "app2",
            "groupId": 1,
            "exchangeName": "group001",
            "queueName": "user1",
            "routingKey": "app2_block_b63",
            "createTime": "2020-03-19 17:42:01"
        }
    ],
    "totalCount": 1
}

15.2 获取已订阅的合约Event事件列表

获取所有前置中已订阅的合约Event事件列表

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /event/contractEvent/list/{groupId}
  • 请求方式:GET
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdInteger群组编号
2pageNumberInteger页码,从1开始
3pageSizeInteger页容量

2)入参示例

http://localhost:5001/WeBASE-Node-Manager/event/contractEvent/list/{groupId}/{pageNumber}/{pageSize}

返回参数

1)出参表

序号输出参数类型备注
1codeInteger返回码,0:成功 其它:失败
2messageString描述
3dataListnewBlockEvent info
3.1frontInfoString前置对应IP
3.1idString订阅信息的id
3.1eventTypeInteger事件通知类型,1: newBlockEvent, 2: contractEvent, 3: others
3.1appIdString事件通知对应的应用Id
3.1groupIdInteger群组编号
3.1exchangeNameStringexchange名
3.1queueNameString队列名
3.1routingKeyString路由键值
3.1createTimeString起始区块范围
3.1fromBlockString末区块范围
3.1toBlockString订阅信息创建时间
3.1contractAddressString订阅的合约地址
3.1contractAbiString对应合约ABI
3.1topicListString订阅的合约Event
4totalCountInteger1: 国密,0:非国密

2)出参示例

  • 成功:
{
    "code": 0,
    "message": "success",
    "data": [
        {
            "frontInfo": "127.0.0.1",
            "id": "8aba82b5708095af01708095e4f70001",
            "eventType": 2,
            "appId": "app1",
            "groupId": 1,
            "exchangeName": "group001",
            "queueName": "user1",
            "routingKey": "user1_event_app1",
            "fromBlock": "latest",
            "toBlock": "latest",
            "contractAddress": "0x657201d59ec41d1dc278a67916f751f86ca672f7",
            "contractAbi": "[{\"constant\":false,\"inputs\":[{\"name\":\"n\",\"type\":\"string\"}],\"name\":\"set\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"get\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"name\",\"type\":\"string\"}],\"name\":\"SetName\",\"type\":\"event\"}]",
            "topicList": "SetName(string)",
            "createTime": "2020-02-26 16:21:12"
        }
    ],
    "totalCount": 1
}

15.3. 获取历史区块EventLog

接口描述

同步获取历史区块中的EventLog

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /event/eventLogs/list
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)参数表

序号中文参数名类型最大长度必填说明
1所属群组groupIdInteger
2合约地址contractAddressString已部署合约
3合约ABIcontractAbiList
2Topic参数topicsEventTopicParamEventTopicParam包含{String eventName,IndexedParamType indexed1,IndexedParamType indexed2,IndexedParamType indexed3},其中IndexedParamType包含{String type,String value}。eventName为包含参数类型的event名,如SetEvent(uint256,string),IndexedParamType中type为indexed参数的类型,value为eventlog需要过滤的参数值
2开始区块fromBlockInteger始块高
2末区块toBlockInteger末块高

2)数据格式

http://localhost:5001/WeBASE-Node-Manager/event/eventLogs/list
{
    "groupId": "1",
    "contractAbi": [],
    "contractAddress": "0x19fb54101fef551187d3a79ea1c87de8d0ce754e",
    "fromBlock": 1,
    "toBlock": 1,
    "topics": {
        "eventName": "SetName",
        "indexed1": {
            "type": "bool",
            "value": true
        },
        "indexed2": {
            "type": "string",
            "value": null
        }
    }
}

响应参数

1)数据格式

成功:

{
    "code": 0,
    "message": "success",
    "data": [{
        "log": {
            "logIndex": 0,
            "transactionIndex": 0,
            "transactionHash": "0x67c8d9a1bc62586b9feb0c8b1127bf0030f649771db3e3d0d99cd99209851ed8",
            "blockHash": "0x0ca880c70a3f24dc5e6052cca4dbb50d9aa0ec973474e07d82e2f5281c54e582",
            "blockNumber": 71,
            "address": "0xd5d4fcf2a46831510f095bfb447bc945f99309f7",
            "data": "0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000033132330000000000000000000000000000000000000000000000000000000000",
            "topics": ["0x4df9dcd34ae35f40f2c756fd8ac83210ed0b76d065543ee73d868aec7c7fcf02"]
        }, // `org.fisco.bcos.sdk.model.EventLog`,可参考java sdk
        "data": ["123"]
    }, {
        "log": {
            "logIndex": 0,
            "transactionIndex": 0,
            "transactionHash": "0x7c27078b372cee951dd102edcbbeab6b3b799212e4337d6bfac7f723e487a1fb",
            "blockHash": "0x47f8456a656f226d5a4a7206790ae864ae4fb645bca625b87cf0378ecca7e742",
            "blockNumber": 72,
            "address": "0xd5d4fcf2a46831510f095bfb447bc945f99309f7",
            "data": "0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000033333330000000000000000000000000000000000000000000000000000000000",
            "topics": ["0x4df9dcd34ae35f40f2c756fd8ac83210ed0b76d065543ee73d868aec7c7fcf02"]
        },
        "data": ["333"]
    }],
    "totalCount": 1
}

15.4. 获取ABI与合约所有合约信息

接口描述

获取导入的ABI与IDE中已部署合约所有合约的地址、合约名字信息

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/event/listAddress/{groupId}
  • 请求方式:GET
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)参数表

序号中文参数名类型最大长度必填说明
1所属群组groupIdInteger

2)数据格式

http://127.0.0.1:5001/WeBASE-Node-Manager/event/listAddress/{groupId}

响应参数

1)数据格式

成功:

{
    "code": 0,
    "message": "success",
    "data": [{
        "type": "contract",
        "contractAddress": "0x88156d500422a542435616e5a1e9d2df44c7fc70",
        "contractName": "Hello3"
    }, {
        "type": "contract",
        "contractAddress": "0xc2b3b552258b6016f80a070c1aa91bf9e3c48c53",
        "contractName": "Hello3"
    }, {
        "type": "abi",
        "contractAddress": "0x7a754bb46418c93b4cec7dcc6fef0676ae6a1e32",
        "contractName": "Hello3"
    }]
}

15.5. 根据地址获取ABI与合约的合约信息

接口描述

根据合约地址、合约类型(abicontract)获取导入的ABI与IDE中已部署合约的合约地址、合约名字信息

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/event/contractInfo/{groupId}/{type}/{contractAddress}
  • 请求方式:GET
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)参数表

序号中文参数名类型最大长度必填说明
1所属群组groupIdInteger
2合约类型typeString包含contract(IDE部署)和abi(ABI管理导入)两种类型
3合约地址contractAddressString

2)数据格式

http://127.0.0.1:5001/WeBASE-Node-Manager/event/contractInfo/{groupId}/{type}/{contractAddress}

响应参数

1)数据格式

成功:

{
    "code": 0,
    "message": "success",
    "data": {
        "abiId": 1,
        "groupId": 1,
        "contractName": "Hello3",
        "contractAddress": "0x7a754bb46418c93b4cec7dcc6fef0676ae6a1e32",
        "contractAbi": "",
        "contractBin": "",
        "createTime": "2020-11-06 15:12:51",
        "modifyTime": "2020-11-06 15:12:51"
    }
}

16 可视化部署

16.1 获取 Docker 镜像版本

查询部署时可以选择的 Docker 镜像版本

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /config/list
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1typeInteger获取配置类型,1: Docker 镜像列表

2)入参示例

http://127.0.0.1:5001/WeBASE-Node-Manager/config/list?type=1

返回参数

1)出参表

序号输出参数类型备注
1codeInteger返回码,0:成功;其它:失败
2messageString描述
3dataList镜像列表 |
3.1idInteger镜像编号
3.1configNameString配置名称
3.1configTypeInteger配置类型,1: Docker 镜像列表
3.1configValueString镜像版本
3.1createTimeLong创建时间
3.1modifyTimeLong修改时间

2)出参示例

  • 成功:
{
  "code": 0,
  "message": "success",
  "data": [
    {
      "id": 1,
      "configName": "docker 镜像版本",
      "configType": 1,
      "configValue": "v2.5.0",
      "createTime": 1590577419000,
      "modifyTime": 1590577419000
    }
  ]
}

16.2 初始化主机

根据填写的节点主机信息,在节点主机上安装主机依赖,并拉取或检测选择的镜像是否存在。

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /deploy/init
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1chainNameString链名称,默认为default_chain
2imageTagString镜像编号, 返回参数中的 id 值
3dockerImageTypeIntegerDocker 镜像拉取方式,0: 手动获取;1: 自动从 Docker Hub 拉取,2-从CDN拉取;默认为2
4hostIdListList需要初始化的主机Id数组

2)入参示例

http://localhost:5001/WeBASE-Node-Manager/deploy/init
{
  "imageTag": "v2.7.1"
  "chainName": "default_chain",
  "dockerImageType": "0",
  "hostIdList": [1,2,3]
}

返回参数

1)出参表

序号输出参数类型备注
1codeInteger返回码,0:成功 其它:失败
2messageString描述
3dataString部署请求结果
4attachmentList补充信息,比如:如果连接主机失败,表示连接失败的主机 IP

2)出参示例

  • 成功:
{
    "code": 0,
    "message": "success",
    "data": ""
}
  • 失败:
{
    "code": 205015,
    "message": "Connect to host error",
    "data": "",
    "attachment": "172.0.0.2"
}

16.4 检查主机初始化情况

调用了主机初始化接口后,若前端页面显示请求超时时,后台初始化操作仍在进行,可以通过此接口检查主机是否初始化完成

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /deploy/initCheck
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1chainNameString链名称,默认为default_chain
2imageTagString镜像编号, 返回参数中的 id 值
3dockerImageTypeIntegerDocker 镜像拉取方式,0: 手动获取;1: 自动从 Docker Hub 拉取,2-从CDN拉取;默认为2
4hostIdListList需要初始化的主机Id数组

2)入参示例

http://localhost:5001/WeBASE-Node-Manager/deploy/initCheck
{
  "imageTag": "v2.7.1"
  "chainName": "default_chain",
  "dockerImageType": "0",
  "hostIdList": [1,2,3]
}

返回参数

1)出参表

序号输出参数类型备注
1codeInteger返回码,0:成功 其它:失败
2messageString描述
3dataString开关状态,0: 不进入可视化部署;1: 进入可视化部署。
3.1idInteger主机编号
3.2ipString主机 IP
3.3rootDirString主机存放节点数据的目录,默认:/opt/fisco
3.4statusInteger主机状态,0: 添加中,1: 初始化中,2: 初始化成功,3: 初始化失败,4:检测成功,5:检测失败,6:配置链成功,7:配置链失败
3.5remarkInteger部署失败时,主机的错误日志
3.6createTimeLong创建时间
3.7modifyTimeLong修改时间

2)出参示例

  • 成功:
{
  "code": 0,
  "message": "success",
  "data": [
    {
      "id": 19,
      "ip": "172.0.0.2",
      "rootDir": "/root/fisco",
      "status": 2,
      "remark": "",
      "createTime": 1596959644000,
      "modifyTime": 1596959661000
    },
    .......
  ],
  "attachment": null
}

16.5 检查主机端口占用

传入主机的节点信息,检查目标主机中需要用到的端口是否已被占用;端口被占用时,报错信息保存在主机列表的remark字段里

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /deploy/checkPort
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1deployNodeInfoListList节点部署信息数组
DeployNodeInfoObject节点的主机编号与端口信息
1.1hostIdint主机编号
1.2ipString主机IP
1.3frontPortint前置端口
1.4channelPortint节点的channel端口
1.5p2pPortint节点的P2P端口
1.6rpcPortint节点的RPC端口
2ipconfString[]默认传入空的String数组即可

2)入参示例

http://localhost:5001/WeBASE-Node-Manager/deploy/checkPort
{
  "deployNodeInfoList": [{
        "hostId": 20,
        "ip": "127.0.0.1",
        "frontPort": 5002,
        "p2pPort": 30300,
        "channelPort": 20200,
        "rpcPort": 8545
    }],
  "ipconf": []
}

返回参数

1)出参表

序号输出参数类型备注
1codeInteger返回码,0:成功 其它:失败
2messageString描述

2)出参示例

  • 成功:
{
  "code": 0,
  "message": "success"
}

16.6 配置并部署链

传入主机的节点信息,检查目标主机中需要用到的端口是否已被占用;端口被占用时,报错信息保存在主机列表的remark字段里

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /deploy/config
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1deployNodeInfoListList节点部署信息数组
DeployNodeInfoObject节点的主机编号与端口信息
1.1hostIdint主机编号
1.2ipString主机IP
1.3frontPortint前置端口
1.4channelPortint节点的channel端口
1.5p2pPortint节点的P2P端口
1.6rpcPortint节点的RPC端口
2ipconfString[]单个String中包含:主机IP,节点数量,机构名称,所属群组,端口等

注:ipconf 格式参考

# 1. 可以添加多行;
# 2. 页面需要提示,机构名只能包含英文字母,数字和下划线'_';
# 3. 群组编号必须是数字;v1.4.3后只支持群组1,如需多个群组请通过动态群组后续增加
# 4. 数量至少为 1,客户端的输入框默认为 1;
# 5. 同一个 IP 的主机,只属于一个机构;如果在单机部署,只能填写一个机构名;v1.4.3后**只支持默认的agency1**
# 
# 格式:IP:数量 机构名 群组列表

# 比如:
172.0.0.1:2 agency1 1
172.0.0.2:2 agency1 1
172.0.0.3:2 agency1 1

# 上面配置的意思:
1. 部署三台主机:172.0.0.1,172.0.0.2,172.0.0.3。
2. 172.0.0.x 的每台机器上创建 2 个节点,一共创建 6 个节点。
3. 创建单个机构:agency1。
4. 创建单个群组:1。
5. 群组后续可以动态添加。

2)入参示例

http://localhost:5001/WeBASE-Node-Manager/deploy/config
{
    "chainName": "default_chain",
    "ipconf": ["127.0.0.1:1 agency1 1 30300,20200,8545"],
    "imageTag": "v2.7.1",
    "encryptType": 0,
    "deployNodeInfoList": [{
        "hostId": 20,
        "ip": "127.0.0.1",
        "frontPort": 5002,
        "p2pPort": 30300,
        "channelPort": 20200,
        "rpcPort": 8545
    }],
    "agencyName": "agency1"
}

返回参数

1)出参表

序号输出参数类型备注
1codeInteger返回码,0:成功 其它:失败
2messageString描述
3dataString部署请求结果
4attachmentList补充信息,比如:如果连接主机失败,表示连接失败的主机 IP

若部署失败,可结合/host/list接口查询remark了解错误详情

2)出参示例

  • 成功:
{
  "code": 0,
  "message": "success"
}

16.7 新增节点

添加一个新的节点到指定群组。服务器接收新增节点请求后,完成参数校验和数据库数据插入后,返回客户端请求结果,再异步完成节点新增操作。

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /deploy/node/add
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1deployNodeInfoListList节点部署信息数组
DeployNodeInfoObject节点的主机编号与端口信息
1.1hostIdint主机编号
1.2ipString主机IP
1.3frontPortint前置端口
1.4channelPortint节点的channel端口
1.5p2pPortint节点的P2P端口
1.6rpcPortint节点的RPC端口
2chainNameString已有的链名称
2groupIdint群组id,默认为1
2agencyNameString1.4.3后默认均为agency1
2encryptTypeint加密类型,与已有链一致

2)入参示例

http://localhost:5001/WeBASE-Node-Manager/deploy/node/add
{
    "chainName": "default_chain",
    "deployNodeInfoList": [{
        "hostId": 20,
        "ip": "127.0.0.1",
        "frontPort": 5002,
        "p2pPort": 30300,
        "channelPort": 20200,
        "rpcPort": 8545
    }],
    "groupId": 1,
    "agencyName": "agency1",
    "encryptType": 0
}

返回参数

1)出参表

序号输出参数类型备注
1codeInteger返回码,0:成功 其它:失败
2messageString描述
3dataString部署请求结果
4attachmentList补充信息,比如:如果连接主机失败,表示连接失败的主机 IP

若部署失败,可结合/host/list接口查询remark了解错误详情

2)出参示例

  • 成功:
{
    "code": 0,
    "message": "success",
    "data": ""
}
  • 失败:
{
    "code": 205015,
    "message": "Connect to host error",
    "data": "",
    "attachment": "172.0.0.2"
}

16.8 启动节点

启动指定节点。

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /deploy/node/start
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1nodeIdString启动节点的节点编号

2)入参示例

http://localhost:5001/WeBASE-Node-Manager/deploy/node/start
{
  "nodeId": "6aba77a7b81ddf71f5e5988c2ba96f51484b55d637286bf49babe48a34f935ee3866fc1a226b465b6bc9d716bfe8b349d82e80710b162e826c0cf91fb58e5099"
}

返回参数

1)出参表

序号输出参数类型备注
1codeInteger返回码,0:成功 其它:失败
2messageString描述
3dataString启动命令执行结果

2)出参示例

  • 成功:
{
    "code": 0,
    "message": "success",
    "data": ""
}

16.9 停止节点

停止指定节点。

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /deploy/node/stop
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1nodeIdString停止节点的节点编号

2)入参示例

http://localhost:5001/WeBASE-Node-Manager/deploy/node/stop
{
  "nodeId": "6aba77a7b81ddf71f5e5988c2ba96f51484b55d637286bf49babe48a34f935ee3866fc1a226b465b6bc9d716bfe8b349d82e80710b162e826c0cf91fb58e5099"
}

返回参数

1)出参表

序号输出参数类型备注
1codeInteger返回码,0:成功 其它:失败
2messageString描述
3dataString停止命令执行结果

2)出参示例

  • 成功:
{
    "code": 0,
    "message": "success",
    "data": ""
}

16.10 强制停止节点

强制停止指定节点,/deploy/node/stop接口需要节点为游离才可以停止,强制停止节点可以结合节点启动接口,用于正常的节点重启

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /deploy/node/stopForce
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1nodeIdString停止节点的节点编号

2)入参示例

http://localhost:5001/WeBASE-Node-Manager/deploy/node/stop
{
  "nodeId": "6aba77a7b81ddf71f5e5988c2ba96f51484b55d637286bf49babe48a34f935ee3866fc1a226b465b6bc9d716bfe8b349d82e80710b162e826c0cf91fb58e5099"
}

返回参数

1)出参表

序号输出参数类型备注
1codeInteger返回码,0:成功 其它:失败
2messageString描述
3dataString停止命令执行结果

2)出参示例

  • 成功:
{
    "code": 0,
    "message": "success",
    "data": ""
}

16.11 删除节点

删除指定节点。

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /deploy/node/delete
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1nodeIdString停止节点的节点编号
2deleteHostBoolean删除节点时,如果被删除节点是主机上最后一个节点,是否删除主机,true: 删除;false: 不删除;默认:false。
3deleteAgencyBoolean如果需要删除主机,在被删除主机机构最后一台主机,是否删除相应机构,true: 删除;false: 不删除; 默认:false。

2)入参示例

http://localhost:5001/WeBASE-Node-Manager/deploy/node/stop
{
  "nodeId": "6aba77a7b81ddf71f5e5988c2ba96f51484b55d637286bf49babe48a34f935ee3866fc1a226b465b6bc9d716bfe8b349d82e80710b162e826c0cf91fb58e5099",
  "deleteHost": "true",
  "deleteAgency": "false" 
}

返回参数

1)出参表

序号输出参数类型备注
1codeInteger返回码,0:成功 其它:失败
2messageString描述
3dataString节点删除结果

2)出参示例

  • 成功:
{
    "code": 0,
    "message": "success",
    "data": ""
}
  • 失败:
{
    "code": 205053,
    "message": "Node is running.",
    "data": ""
}

16.12 获取链信息

查询区块链信息,如果没有部署链,返回空;如果已经部署链,返回部署的链信息。

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /deploy/chain/info
  • 请求方式:GET
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注

2)入参示例

http://localhost:5001/WeBASE-Node-Manager/deploy/chain/info

返回参数

1)出参表

序号输出参数类型备注
1codeInteger返回码,0:成功 其它:失败
2messageString描述
3dataString链信息查询结果
3.1idInteger链编号
3.1chainNameString链名称
3.1chainDescString链描述
3.1versionString底层的镜像版本
3.1encryptTypeInteger加密方式,0: 非国密;1: 国密
3.1chainStatusInteger链状态,具体状态查看备注信息
3.1rootDirString节点主机存放节点数据的目录,默认:/opt/fisco
3.1webaseSignAddrStringWeBASE-Sign 服务的地址
3.1runTypeInteger运行方式,1: 使用 Docker 运行
3.1createTimeLong创建时间
3.1modifyTimeLong修改时间

注:链状态

链状态编号链状态
0初始化中
1部署中
2部署失败
3运行
4重启中

2)出参示例

  • 没有部署链:
{
    "code": 0,
    "message": "success",
    "data": ""
}
  • 已经部署链:
{
  "code": 0,
  "message": "success",
  "data": {
    "id": 10,
    "chainName": "default_chain",
    "chainDesc": "default_chain",
    "version": "v2.5.0",
    "encryptType": 0,
    "chainStatus": 3,
    "rootDir": "/opt/fisco",
    "webaseSignAddr": "172.0.0.1:5004",
    "runType": 1,
    "createTime": 1596959644000,
    "modifyTime": 1596959700000
  },
  "attachment": null
}

16.13 删除链

重置已部署链,删除节点管理服务的数据库数据,并同时备份当前链数据到临时文件夹。

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /deploy/delete
  • 请求方式:GET
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注

2)入参示例

http://localhost:5001/WeBASE-Node-Manager/deploy/delete

返回参数

1)出参表

序号输出参数类型备注
1codeInteger返回码,0:成功 其它:失败
2messageString描述
3dataString重置链结果

2)出参示例

  • 成功:
{
    "code": 0,
    "message": "success",
    "data": ""
}

16.14 查询服务器可视化部署选项配置

查询服务器的可视化部署的选项状态,判断是否进入可视化部署页面。

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /deploy/type
  • 请求方式:GET
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注

2)入参示例

http://localhost:5001/WeBASE-Node-Manager/deploy/type

返回参数

1)出参表

序号输出参数类型备注
1codeInteger返回码,0:成功 其它:失败
2messageString描述
3dataString开关状态,0: 不进入可视化部署;1: 进入可视化部署。

2)出参示例

  • 成功:
{
    "code": 0,
    "message": "success",
    "data": "1"
}

16.15 查询主机执行进度

查询主机在可视化的检测、初始化、部署过程中的各个进度

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /deploy/progress
  • 请求方式:GET
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注

2)入参示例

http://localhost:5001/WeBASE-Node-Manager/deploy/progress

返回参数

1)出参表

序号输出参数类型备注
1codeInteger返回码,0:成功 其它:失败
2messageString描述
3dataString进度状态,具体值与对应状态如下

部署的总步骤流程,添加节点时,流程相同

  • 0-等待开始;1-检测机器内存与依赖,2-检测Docker服务,3-检测端口占用,4-初始化安装主机依赖,5-初始化加载Docker镜像中
  • 6-生成链证书与配置,7-初始化链与前置数据,8-传输链配置到主机
  • 9-配置完成,启动中

2)出参示例

  • 成功:
{
    "code": 0,
    "message": "success",
    "data": "5" // 正在初始化主机,拉取docker镜像中
}

主机管理接口

16.16 获取主机列表

获取主机列表

如果部署出现失败,调用此接口,在remark字段中返回每台主机部署的错误信息

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /host/list
  • 请求方式:GET
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注

2)入参示例

http://localhost:5001/WeBASE-Node-Manager/host/list

返回参数

1)出参表

序号输出参数类型备注
1codeInteger返回码,0:成功 其它:失败
2messageString描述
3dataString开关状态,0: 不进入可视化部署;1: 进入可视化部署。
3.1idInteger主机编号
3.2ipString主机 IP
3.3rootDirString主机存放节点数据的目录,默认:/opt/fisco
3.4statusInteger主机状态,0: 添加中,1: 初始化中,2: 初始化成功,3: 初始化失败,4:检测成功,5:检测失败,6:配置链成功,7:配置链失败
3.5remarkInteger部署失败时,主机的错误日志
3.6createTimeLong创建时间
3.7modifyTimeLong修改时间

2)出参示例

  • 成功:
{
  "code": 0,
  "message": "success",
  "data": [
    {
      "id": 19,
      "ip": "172.0.0.2",
      "rootDir": "/root/fisco",
      "status": 2,
      "remark": "",
      "createTime": 1596959644000,
      "modifyTime": 1596959661000
    },
    .......
  ],
  "attachment": null
}

16.17 添加主机接口

添加主机

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /host/add
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1sshIpString主机的IP,或与节点管理服务同机的127.0.0.1
2rootDirString主机用于部署节点的路径,若不存在,将自动通过ansible创建

2)入参示例

http://localhost:5001/WeBASE-Node-Manager/host/add
{
    "sshIp": "127.0.0.1",
    "rootDir": "/data/home/webase/opt"
}

返回参数

1)出参表

序号输出参数类型备注
1codeInteger返回码,0:成功 其它:失败
2messageString描述

2)出参示例

  • 成功:
{
  "code": 0,
  "message": "success"
}

16.18 删除主机接口

删除主机,将判断主机上是否仍存在节点,若有则无法删除

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /host/{hostId}
  • 请求方式:DELETE
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1hostIdInteger主机编号

2)入参示例

http://localhost:5001/WeBASE-Node-Manager/host/{hostId}

返回参数

1)出参表

序号输出参数类型备注
1codeInteger返回码,0:成功 其它:失败
2messageString描述

2)出参示例

  • 成功:
{
  "code": 0,
  "message": "success"
}

16.19 Ping主机接口

通过Ansible对主机IP执行ansible {ip} -m ping命令,检测宿主机到节点主机的SSH免密连接是否连通

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /host/ping
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1sshIpString主机的IP,或与节点管理服务同机的127.0.0.1
2rootDirString主机用于部署节点的路径,若不存在,将自动通过ansible创建

2)入参示例

http://localhost:5001/WeBASE-Node-Manager/host/ping
{
    "sshIp": "127.0.0.1",
    "rootDir": "/data/home/webase/opt"
}

返回参数

1)出参表

序号输出参数类型备注
1codeInteger返回码,0:成功 其它:失败
2messageString描述

2)出参示例

  • 成功:
{
  "code": 0,
  "message": "success"
}

16.20 检测是否安装Ansible接口

检测节点管理服务(宿主机)是否已安装Ansible,节点主机无需安装Ansible

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /host/ansible
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注

2)入参示例

http://localhost:5001/WeBASE-Node-Manager/host/ansible

返回参数

1)出参表

序号输出参数类型备注
1codeInteger返回码,0:成功 其它:失败
2messageString描述

2)出参示例

  • 成功:
{
  "code": 0,
  "message": "success"
}

16.21 检测主机依赖接口

根据单个主机需要安装的节点数,检测已添加主机是否有足够的空闲内存,检测主机是否已安装Docker并启动Docker

通过并行方式同时检测多个主机,并在主机的remark字段中记录检测不通过的原因,若检测不通过,可结合/host/list接口查询remark了解错误详情

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /host/check
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1hostIdListList主机编号数组,多个节点时主机id重复多次即可

2)入参示例

http://localhost:5001/WeBASE-Node-Manager/host/check

下面代表主机编号为1的主机上安装两个节点,主机编号2的主机安装一个节点

{
    "hostIdList": [1,1,2]
}

返回参数

1)出参表

序号输出参数类型备注
1codeInteger返回码,0:成功 其它:失败
2messageString描述

若检测不通过,可结合/host/list接口查询remark了解错误详情

2)出参示例

  • 成功:
{
  "code": 0,
  "message": "success"
}
  • 失败:
{
    "code": 202493,
    "message": "Check host not pass, please check host remark",
    "data": null,
    "attachment": null
}

17 应用管理模块

17.1 保存应用信息

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /app/save
  • 请求方式:POST
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1appNamestring应用名称
2appDocLinkstring应用文档链接
3appDescstring应用描述
4appIconstring应用图标
5appDetailstring应用详细介绍
6idint应用编号,传入时表示更新,否则新增

2)入参示例

http://127.0.0.1:5001/WeBASE-Node-Manager/app/save
{
  "appName":"WeID",
  "appDocLink":"https://weidentity.readthedocs.io/zh_CN/latest/docs/deploy-via-web.html",
  "appIcon":"test",
  "appDesc":"WeIdentity是一套分布式多中心的技术解决方案,可承载实体对象(人或者物)的现实身份与链上身份的可信映射、以及实现实体对象之间安全的访问授权与数据交换。WeIdentity由微众银行自主研发并完全开源,秉承公众联盟链整合资源、交换价值、服务公众的理念,致力于成为链接多个垂直行业领域的分布式商业基础设施,促进泛行业、跨机构、跨地域间的身份认证和数据合作。",
  "appDetail":""
}

返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataObject信息对象
3.1idint自增编号
3.2appNamestring应用名称
3.3appKeystring应用Key
3.4appSecretstring应用密码
3.5appDocLinkstring应用文档链接
3.6appIconstring应用图标
3.7appDescstring应用描述
3.8appDetailstring应用详细介绍
3.9appIpstring应用ip
3.10frontPortint应用端口
3.11appLinkstring应用服务链接
3.12appStatusint应用状态(1存活,2不存活)
3.13createTimeLocalDateTime落库时间
3.14modifyTimeLocalDateTime修改时间

2)出参示例

  • 成功:
{
    "code": 0,
    "message": "success",
    "data": {
        "id": 1,
        "appName": "WeID",
        "appKey": "z2dJaYXe",
        "appSecret": "5bTi2zMgdxAbFwgmkZhxNrUXFFvdjmM8",
        "appStatus": 2,
        "appDocLink": "https://weidentity.readthedocs.io/zh_CN/latest/docs/deploy-via-web.html",
        "appLink": null,
        "appIp": null,
        "appPort": null,
        "appIcon": "test",
        "appDesc": "WeIdentity是一套分布式多中心的技术解决方案,可承载实体对象(人或者物)的现实身份与链上身份的可信映射、以及实现实体对象之间安全的访问授权与数据交换。WeIdentity由微众银行自主研发并完全开源,秉承公众联盟链整合资源、交换价值、服务公众的理念,致力于成为链接多个垂直行业领域的分布式商业基础设施,促进泛行业、跨机构、跨地域间的身份认证和数据合作。",
        "appDetail": "",
        "createTime": "2021-03-07 18:15:47",
        "modifyTime": "2021-03-07 18:15:47"
    },
    "attachment": null
}
  • 失败:
{
    "code": 102000,
    "message": "system exception",
    "data": {}
}

17.2 查询应用列表

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/app/list?appName={appName}&appKey={appKey}&appType={appType}
  • 请求方式:GET
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1appNamestring应用名称
2appKeystring应用Key
3appTypeInt应用类型(1模板,2新建),传入时查询对应列表,不传入则返回新建的应用列表

2)入参示例

http://127.0.0.1:5001/WeBASE-Node-Manager/app/list?appType=1

返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3totalCountint总记录数
4dataList列表
4.1Object信息对象
4.1.1idint自增编号
4.1.2appNamestring应用名称
4.1.3appKeystring应用Key
4.1.4appSecretstring应用密码
4.1.5appDocLinkstring应用文档链接
4.1.6appIconstring应用图标
4.1.7appDescstring应用描述
4.1.8appDetailstring应用详细介绍
4.1.9appIpstring应用ip
4.1.10frontPortint应用端口
4.1.11appLinkstring应用服务链接
4.1.12appStatusint应用状态(1存活,2不存活)
4.1.13createTimeLocalDateTime落库时间
4.1.14modifyTimeLocalDateTime修改时间

2)出参示例

  • 成功:
{
    "code": 0,
    "message": "success",
    "data": [
        {
            "id": 1,
            "appName": "WeID",
            "appKey": "RXiHxhWn",
            "appSecret": "FA4evmGGAAQTGnpiu6FF4uWzb2RvuiWU",
            "appStatus": 2,
            "appDocLink": "https://weidentity.readthedocs.io/zh_CN/latest/docs/deploy-via-web.html",
            "appLink": null,
            "appIp": null,
            "appPort": null,
            "appIcon": "test",
            "appDesc": "WeIdentity是一套分布式多中心的技术解决方案,可承载实体对象(人或者物)的现实身份与链上身份的可信映射、以及实现实体对象之间安全的访问授权与数据交换。WeIdentity由微众银行自主研发并完全开源,秉承公众联盟链整合资源、交换价值、服务公众的理念,致力于成为链接多个垂直行业领域的分布式商业基础设施,促进泛行业、跨机构、跨地域间的身份认证和数据合作。",
            "appDetail": "",
            "createTime": "2021-03-07 18:15:47",
            "modifyTime": "2021-03-07 18:15:47"
        }
    ],
    "totalCount": 1
}
  • 失败:
{
   "code": 102000,
   "message": "system exception",
   "data": {}
}

17.3 删除应用信息

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址:/app/{id}
  • 请求方式:DELETE
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1idint应用编号

2)入参示例

http://127.0.0.1:5001/WeBASE-Node-Manager/app/1

返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataobject返回信息实体(空)

2)出参示例

  • 成功:
{
    "code": 0,
    "data": {},
    "message": "Success"
}
  • 失败:
{
    "code": 102000,
    "message": "system exception",
    "data": {}
}

18 配置接口

18.1 查询是否使用国密

获取WeBASE-Node-Manager是否使用国密版

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /config/encrypt
  • 请求方式:GET
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

2)入参示例

http://localhost:5001/WeBASE-Node-Manager/config/encrypt

返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataInt1: 国密,0:非国密

2)出参示例

  • 成功:
{
    "code": 0,
    "message": "success",
    "data": 1 
}

18.2 查询WeBASE-Node-Manager的版本

获取WeBASE-Node-Manager服务的版本号

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /config/version
  • 请求方式:GET
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

2)入参示例

http://localhost:5001/WeBASE-Node-Manager/config/version

返回参数

1)出参表

序号输出参数类型备注
1-String版本号

2)出参示例

  • 成功:
v1.4.0

18.3 获取服务ip和端口

返回本服务ip和端口。

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /config/ipPort
  • 请求方式:GET
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

2)入参示例

http://127.0.0.1:5001/WeBASE-Node-Manager/config/ipPort

返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataObject信息对象
3.1ipstring服务IP
3.2portint服务端口

2)出参示例

  • 成功:
{
    "code": 0,
    "message": "success",
    "data": {
        "ip": "127.0.0.1",
        "port": 5001
    },
    "attachment": null
}
  • 失败:
{
    "code": 102000,
    "message": "system exception",
    "data": {}
}

18.4 查询已部署合约是否支持修改

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /config/isDeployedModifyEnable
  • 请求方式:GET
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

2)入参示例

http://localhost:5001/WeBASE-Node-Manager/config/isDeployedModifyEnable

返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3databooleantrue: 支持,false:不支持

2)出参示例

  • 成功:
{
    "code": 0,
    "message": "success",
    "data": true 
}

19. 链上全量数据接口

19.1 查询链上全量私钥用户列表

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /external/account/list/all/{groupId}/{pageNumber}/{pageSize}
  • 请求方式:GET
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdstring群组id
2pageNumberint页码
3pageSizeint页大小
4accountint所属用户(已登记私钥)
5typeint1-全量,2-本地已登记,3-本地未登记,默认为1

2)入参示例

http://localhost:5001/WeBASE-Node-Manager/external/account/list/all/1/1/10

返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3dataobject返回信息实体(成功时不为空)
3.1userIdint用户编号(若仅存于链上则为null)
3.2userNamestring用户名称
3.3groupIdint所属群组编号
3.4descriptionString备注
3.5userStatusint状态(1-正常 2-停用) 默认1
3.6publicKeyString公钥信息
3.7addressString在链上位置的hash
3.8hasPkInt是否拥有私钥信息(1-拥有,2-不拥有)
3.9accountstring关联账户
3.10createTimeLocalDateTime创建时间
3.11modifyTimeLocalDateTime修改时间
3.12extAccountIdint链上用户编号
3.13transCountint用户交易量
3.14hashsString用户交易hash(5个)
3.14signUserIdString用户的sign用户编号

2)出参示例

  • 成功:
{
    "code": 0,
    "message": "success",
    "data": [{
        "userId": null,
        "userName": null,
        "account": null,
        "groupId": 1,
        "publicKey": null,
        "privateKey": null,
        "userStatus": null,
        "chainIndex": null,
        "userType": null,
        "address": "0x11523906f9c6d4bbf2bf7ab2ff1049e7bdf2fbf6",
        "signUserId": null,
        "appId": null,
        "hasPk": null,
        "description": null,
        "createTime": "2021-04-07 16:34:42",
        "modifyTime": "2021-04-07 16:34:42",
        "extAccountId": 4,
        "transCount": 1,
        "hashs": "0x6889e8ea793d6326026b2a32bab023183ccc7846d3bcb9bd1001e1f08fb892c5"
    },{
        "userId": 700001,
        "userName": "2222",
        "account": "mars",
        "groupId": 1,
        "publicKey": "04299feb42f324521464c9503220efaeaae99093d92ef08e6f9c1f76e761c2a57422c5fe4dc721e049dfdc05ff8e9b64f59471235ad5e5f4fc07e653f2cd22314e",
        "privateKey": null,
        "userStatus": 1,
        "chainIndex": null,
        "userType": 1,
        "address": "0x6bc1eeb7d1bb3f1d8195336843bd938d51e594ee",
        "signUserId": "0c01b17d67734e95b1e8d5c55e78b4d8",
        "appId": "1",
        "hasPk": 1,
        "description": "",
        "createTime": "2021-04-06 21:14:04",
        "modifyTime": "2021-04-06 21:14:04",
        "extAccountId": 1,
        "transCount": null,
        "hashs": null
    }],
    "totalCount": 2
}

19.2 查询链上全量合约列表

传输协议规范

  • 网络传输协议:使用HTTP协议
  • 请求地址: /external/contract/list/all/{groupId}/{pageNumber}/{pageSize}&type={type}
  • 请求方式:GET
  • 请求头:Content-type: application/json
  • 返回格式:JSON

请求参数

1)入参表

序号输入参数类型可为空备注
1groupIdstring群组id
2pageNumberint页码
3pageSizeint页大小
4accountint所属用户(已登记私钥)
5typeint1-全量,2-本地已登记,3-本地未登记,默认为1

2)入参示例

http://localhost:5001/WeBASE-Node-Manager/external/contract/list/all/1/1/10?type=1

返回参数

1)出参表

序号输出参数类型备注
1codeInt返回码,0:成功 其它:失败
2messageString描述
3Object返回信息实体
3.1abiIdint合约编号(若未登记,则为空)
3.2contractNameString合约名称
3.3groupIdInt所属群组编号
3.4contractAddressString合约地址
3.5contractAbiString导入的abi文件内容
3.6contractBinString合约runtime-bytecode(runtime-bin)
3.7accountString所属账号
3.8createTimeLocalDateTime创建时间
3.9modifyTimeLocalDateTime修改时间
3.10extContractIdint链上合约编号
3.11transCountint合约交易量
3.12hashsString合约交易hash(5个)
3.13deployTxHashString部署合约的交易hash
3.14deployAddressString部署合约的用户地址
3.15deployTimeDate合约的部署时间

2)出参示例

  • 成功:
{
    "code": 0,
    "message": "success",
    "data": [{
        "abiId": 6,
        "groupId": 1,
        "account": "admin",
        "contractName": "SpecificIssuerController",
        "contractAddress": "0xce1d576181e1d68899a3f2b86c8e274657c07fea",
        "contractAbi": "[{\"constant\":false,\"inputs\":[{\"name\":\"typeName\",\"type\":\"bytes32\"},{\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"addIssuer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"typeName\",\"type\":\"bytes32\"},{\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"isSpecificTypeIssuer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"typeName\",\"type\":\"bytes32\"},{\"name\":\"extraValue\",\"type\":\"bytes32\"}],\"name\":\"addExtraValue\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"typeName\",\"type\":\"bytes32\"}],\"name\":\"registerIssuerType\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"typeName\",\"type\":\"bytes32\"}],\"name\":\"getExtraValue\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"typeName\",\"type\":\"bytes32\"}],\"name\":\"isIssuerTypeExist\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"typeName\",\"type\":\"bytes32\"},{\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"removeIssuer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"typeName\",\"type\":\"bytes32\"},{\"name\":\"startPos\",\"type\":\"uint256\"},{\"name\":\"num\",\"type\":\"uint256\"}],\"name\":\"getSpecificTypeIssuerList\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"specificIssuerDataAddress\",\"type\":\"address\"},{\"name\":\"roleControllerAddress\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"operation\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"retCode\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"typeName\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"SpecificIssuerRetLog\",\"type\":\"event\"}]",
        "contractBin": "",
        "createTime": "2021-04-06 21:34:38",
        "modifyTime": "2021-04-06 21:34:38",
        "extContractId": 800014,
        "deployAddress": "0x222d68876bed5a33c8efe04c6fc9783031c22cd1",
        "deployTxHash": "0xd04b35d7741f0568546de4fc29a880fa0f3727beef544497ca5816fa8793fa13",
        "deployTime": 1617716070000,
        "transCount": 0,
        "hashs": null
    },{
        "abiId": null,
        "groupId": 1,
        "account": null,
        "contractName": null,
        "contractAddress": "0x5e103407b2a06b32bad0fc578e1888036a3e26a8",
        "contractAbi": null,
        "contractBin": "",
        "createTime": null,
        "modifyTime": null,
        "extContractId": 800007,
        "deployAddress": "0x222d68876bed5a33c8efe04c6fc9783031c22cd1",
        "deployTxHash": "0x4c6f026e72b69e9ed1f3685f24bc055f5ef1bdde4778ee684a96d25deba6b34b",
        "deployTime": 1617716065000,
        "transCount": 1,
        "hashs": "0x4c6f026e72b69e9ed1f3685f24bc055f5ef1bdde4778ee684a96d25deba6b34b"
    }],
    "totalCount": 2
}

附录

1. 返回码信息列表

X01XXX为WeBASE-Front节点前置错误码X02XXX为WeBASE-Node-Manager节点管理服务错误码,X03XXX为WeBASE-Sign签名服务错误码

codemessage描述
0success成功
102001system error系统异常
102002system exception: please check front系统异常,请检查前置状态
102003No group belongs to this groupId(node not belongs to this group)当前节点不属于当前群组
202000invalid front id不正确的前置ID(添加节点前置失败)
202001database exception数据库异常
202002not found any front for this group找不到此群组的任何前置
202003not support this ip不支持该ip
202004front already exists前置已经存在
202005group id cannot be empty群组不能为空
202006invalid group id无效的网络编号
202007checkCode is null校验码为空
202008invalid checkCode无效的校验码
202009save front fail保存前置失败
202010request front fail请求前置失败
202011abiInfo cannot be emptyabi信息不能为空
202012user id cannot be empty用户编号不能为空
202013invalid user无效的用户编号
202014user already exists用户信息已经存在
202015contract already exists合约信息已经存在
202017invalid contract id无效的合约编号
202018invalid param info无效的入参信息
202019contract name cannot be repeated合约名称不能重复
202020deployed contract cannot be modified已部署合约不支持修改
202023contract has not deploy合约尚未部署
202026account info already exists该帐号已经存在
202027account info not exists该帐号不存在
202028account name empty帐号名称不能为空
202029invalid account name无效的账号名称
202030password error密码错误
202031role id cannot be empty角色编号不能为空
202032invalid role id无效的角色编号
202033invalid contract address无效的合约地址
202034login fail登录失败
202035contract has been deployed该合约已经部署
202036publicKey cannot be empty公钥不能为空
202037associated account cannot be empty关联账号不能为空
202040contract deploy not success合约部署失败
202045the new password cannot be same as old新旧密码不能一致
202050publicKey’s length is 130,address’s length is 42公钥长度为130,公钥地址长度为42
202051wrong host or port错误的主机或端口
202052invalid token无效的token
202053token expiretoken过期
202054Available front url is empty, check front status合约尚未部署
202060cert handle error证书句柄错误
202061store cert error存储证书错误
202062cert format error, must start with ——-BEGIN CERTIFICATE——-\n, end with end证书格式错误,必须由 —BEGIN CERTIFICATE— 包
202063saving front’s cert error保存前置证书错误
202070Mail server config error邮件服务器配置错误。
202071Mail server config param empty/not match邮件服务器配置参数为空/不匹配
202072Mail server config error, db’s server config is empty邮件服务器配置错误,数据库的服务器配置为空
202076Alert rule error警报规则错误。
202077Alert rule param not match警报规则参数不匹配。
202080Send mail error, please check mail server configuration发送邮件错误,请检查邮件服务器配置。
202081Send mail error, please enable mail server before send发送邮件错误,请在发送前启用邮件服务器。
202086Alert log error警报日志错误。
202087Alert log param: status/logId is empty警报日志参数:status/logId为空。
202090Update guomi methodId error更新国密methodId错误
202091Front’s encrypt type not matches with nodemgrFront的加密类型与nodemgr不匹配
202096contract address already exists合约地址已存在
202097abi info of this id not exists此ID的ABI信息不存在
202098Contract abi invalid, please check abi合约ABI无效,请检查ABI
202099Abi Id cannot be empty此ID的ABI信息为空
202100contractAddress is null合约地址为空
202110User’s signUserId not exist用户的signUserId不存在
202111Fail to parse json解析json错误
202121Cert file not found, please check cert path in config找不到证书文件,请检查配置中的证书路径
202122Pem file format error, must surrounded by ——-XXXXX PRIVATE KEY——-Pem文件格式错误,必须包含——-XXXXX PRIVATE KEY——-
202123Pem file content errorPem文件内容错误
202124p12’s password cannot be chineseP12的密码不能为中文
202125p12’s password not matchP12的密码错误
202126P12 file content errorP12文件内容错误
202300Group id already exists群组id已存在
202301Node’s front not exists节点前置不存在
202310govern vote record not exist投票记录不存在
202311permission denied on chain链上权限被禁止
202321path contains deployed contract, please delete one by one路径中包含已部署的合约,请逐个删除未部署的合约
202322contract path cannot be blank(use “/“ instead)合约地址不能为空(默认请使用”/“)
202323privateKey decode fail私钥解码失败
202324password decode fail密码/授权码解码失败
202401No configured of docker registry url.没有配置 Docker 镜像更新 URL 地址
202402Fetch image tag from docker registry error.从 Docker 源更新镜像版本失败
202403Fetch Docker image tag list error, unknown config type.查询 Docker 镜像版本失败(未知类型)
202404Save chain’s configuration to file error.保存链配置信息文件失败
202405Docker image tag invalid.错误的镜像版本
202406Configuration of host is empty.主机配置参数为空
202407Chain exists, deploy failed.链已存在,部署失败
202408Save chain data to DB error.插入链信息到数据库失败
202409Chain root dir exist, please move it manually.主机节点的链安装目录(defaultchains)已存在,请手动移除
202410Execute build_chain.sh script error.执行 build_chain.sh 链生成脚本失败
202411Host, agency, group configuration error.主机,机构,群组配置信息错误
202412Host ip and num error.主机 IP,节点数量配置错误
202413Agency name invalid, only [a-zA-Z0-9] is valid.机构名称格式错误,只能包含大小写字母,数字,下划线
202414Group id error, only positive integer is valid.群组编号格式错误,必须为正整数
202415Login to host /ip/ through SSH error. Please check SSH configuration.SSH登录主机/ip/失败,请检查 SSH 配置
202416Save agency data into DB error.插入新机构信息到数据库失败
202417Save group data into DB error.插入新群组信息到数据库失败
202418Save host data into DB error.插入主机信息到数据库失败
202419Save front data into DB error.插入前置信息到数据库失败
202420Save node data into DB error.插入节点信息到数据库失败
202421Save node and front mapping data into DB error.插入前置和群组映射关系到数据库失败
202422Parse node index from directory error.从目录获取节点序号失败
202423A single host IP only belongs to one agency.一个 IP 主机,只能属于一个机构
202424Unknown error during deploying.部署时发生未知错误
202425SSH login through username and password is unsupported yet.不支持使用 SSH 密码登录主机
202426Chain has no agency.当前链没有所属机构
202427No deployed chain链不存在
202428IP format error.IP 格式错误
202429Agency name cannot be blank when IP is new.主机 IP 是新 IP 时,机构名称不能为空
202430Agency name already exists.存在同名机构
202431Add new node error.新增节点错误
202432No valid chain certification.链证书无效
202433Generate agency private key and crt file error.生成机构私钥和证书失败
202434Host without agency error.”主机所属机构为空
202435Node num should be positive integer, and less then 10.主机数量格式错误,正整数,并且小于 10
202436Generate sdk生成主机 SDK 私钥和证书失败
202437Generate node private key and crt files error.生成新节点私钥和证书失败
202438Copy SDK files error.拷贝 SDK 证书和私钥失败
202439Upload SDK files error.上传 SDK 证书和私钥失败
202440Upload node config files error.上传节点证书和私钥失败
202441Copy group config files from original node error.从旧节点复制群组配置文件失败
202442Delete tmp directory of agency error.删除机构临时目录失败
202443Delete tmp directory of SDK error.删除 SDK 临时目录失败
202444Delete tmp directory of node error.删除节点临时目录失败
202445Unknown nodeid.未知节点编号(nodeid)
202446Stop node error.停止节点失败(停止容器)
202447Start node error.启动节点失败(启动容器)
202448Both new image tag and old are the same.链升级的新版本和链的现有版本相同
202449Upgrade chain to new image tag error.链升级失败
202450Delete node failed, node is still in group.节点仍属于群组,删除失败
202451Parse node’s config files error.读取节点配置文件失败
202452Delete node’s config error.删除节点配置文件失败
202453Stop node before deleting.节点正在运行,删除失败,请先停止节点
202454Update p2p part of related nodes error.更新关联节点 P2P 配置失败
202455Delete chain error.删除链失败
202456Node is still a sealer or observer, delete failed.节点处于观察或共识状态,删除失败
202457Fetch node list from host’s configuration files从主机配置文件获取节点列表失败
202458Generate application.yml for front error生成前置 application.yml 配置文件失败
202459Init host with shell script error.通过脚本初始化主机失败
202460Sync files error.传输文件失败
202461Control container through Docker api error.Docker 容器操作失败
202462Two nodes at least.至少两个节点。
202463Group need two sealers at least.群组至少需要两个共识节点。
202464WebaseSignAddess configuration error in Application.ymlapplication.yml中的webaseSignAddess配置错误
202465webaseSignAddress cannot be 127.0.0.1 or localhost in application.yml filesign的地址不能为127.0.0.1或localhost
202466Please pull the Docker image manually in host /ip/主机/ip/请手动拉取 Docker 镜像
202467Max 4 nodes on a single host单个主机最多部署 4 个节点
202468Host of WeBASE-Node-Manager’s ip is already existed.WeBASE-Node-Manager所在主机的IP已存在
202469Check docker installed and running of host检测主机Docker已安装且已启动未通过
202470Check host memory not enough for nodes(s)检测主机安装节点所需空余内存未通过
202471Check host cpu core count not enough for node(s)检测主机安装节点所需CPU核核心数未通过
202472Host check had been interrupt主机检测过程被中断
202473Host check fail for inpurt param主机检测入参错误
202475Fail to generate chain and front config locally本地生成链与前置配置失败
202476Not all host init success部分主机在检测时未通过
202477Ipconf’s node port config errorIpconf入参格式中节点端口格式错误
202478Ipconf not match with deploy info listIpconf与主机节点信息不匹配
202479Delete host fail for host contains node(front)无法删除主机,主机中仍包含节点
202480Ansible not installed!Node-Manager所在主机未安装Ansible
202481Ansible fetch not support fetch directoryAnsible不支持Fetch目录
202482Ansible ping cannot reach target ipAnsible无法ping连通目标IP
202483Ansible init host of image and scp config not all success主机初始化镜像与传输配置未全部成功
202484Ansible pull docker hub failAnsible拉取Docker hub镜像失败
202485Ansible pull docker cdn failAnsible拉取CDN镜像失败
202486Ansible run docker command failAnsible执行Docker命令失败
202487Ansible exec command errorAnsible执行命令失败
202488Ansible exec scp(copy) errorAnsible执行scp复制到远端失败
202489Ansible exec scp(fetch) errorAnsible执行scp拉取文件失败
202491Ansible check image exist error for paramAnsible检测Docker镜像存在的入参错误
202492Ansible check docker container exist error for paramAnsible检测Docker容器存在的入参错误
202493Check host not pass, please check host remark检测主机未通过,请通过主机的remark查看错误信息
202494Check host port is in use, please check host remark主机的端口已被占用,请通过主机的remark查看错误信息
202495Host already exist主机已存在
202496Host root dir access denied主机的安装目录无权限访问
202497Host not exist or already been deleted主机不存在或已被删除
202501contract path is exists.合约路径已存在
202502version cannot be empty版本不能为空
202503cns name cannot be emptycns名不能为空
202504version already exists版本已存在
202511Front’s sdk cert and key not found未找到前置的SDK证书与私钥
202512Write front’s sdk cert and key fail导出SDK证书私钥文件失败,无法写入文件
202513Write private key file fail导出私钥文件失败,无法写入文件
202514group genesis conf not found群组的创世块文件不存在,无法添加为共识节点
202516app name exists应用名称已存在
202517app name not exists应用名称不存在
202518app id not exists应用编号不存在
202519link format invalid链接格式错误
302000user not logged in未登录的用户
302001Access denied没有权限
402000param exception参数错误

2. Precompiled Service说明

对预编译合约接口的使用有疑惑,可以查看FISCO BCOS的PreCompiledService API说明

查看预编译合约的solidity接口代码,可以查看FISCO BCOS的web3sdk precompile模块,如crud/TableFactory.sol:

pragma solidity ^0.4.2;

contract TableFactory {
    function createTable(string tableName, string key, string valueField) public returns (int);
}

查看FISCO BCOS中实现的precompild合约列表、地址分配及源码:

地址功能源码(libprecompiled目录)
0x1000系统参数管理SystemConfigPrecompiled.cpp
0x1001表工厂合约TableFactoryPrecompiled.cpp
0x1002CRUD合约CRUDPrecompiled.cpp
0x1003共识节点管理ConsensusPrecompiled.cpp
0x1004CNS功能CNSPrecompiled.cpp
0x1005存储表权限管理AuthorityPrecompiled.cpp
0x1006并行合约配置ParallelConfigPrecompiled.cpp

Precompiled Service API 错误码

错误码消息内容备注
0success
-50000permission denied
-50001table name already exist
-50100unknow function call
-50101table does not exist
-51000table name and address already exist
-51001table name and address does not exist
-51100invalid node IDSDK错误码
-51101the last sealer cannot be removed
-51102the node is not reachableSDK错误码
-51103the node is not a group peerSDK错误码
-51104the node is already in the sealer listSDK错误码
-51105the node is already in the observer listSDK错误码
-51200contract name and version already existSDK错误码
-51201version string length exceeds the maximum limitSDK错误码
-51300invalid configuration entry
-51500contract name and version already exist
-51501condition parse error
-51502condition operation undefined
-51600invalid ciphers
-51700group sig failed
-51800ring sig failed
-51900contract frozen
-51901contract available
-51902contract repeat authorization
-51903invalid contract address
-51904table not exist
-51905no authorized
-52000committee member exist
-52001committee member not exist
-52002invalid request permission denied
-52003invalid threshold
-52004operator can’t be committee member
-52005committee member can’t be operator
-52006operator exist
-52007operator not exist
-52008account not exist
-52009invalid account address
-52010account already available
-52011account frozen
-52012current value is expected value