区块链管理
区块链管理
(1)新增网络
描述:用户输入区块链网络英文名和节点IP地址,一键连接第三方网络,只有全量版可以调用。
方法:POST
请求路径:/xbaas/v1/xchain/network/connect
请求参数:
| 名称 | 位置 | 类型 | 是否必填 | 说明 |
|---|---|---|---|---|
| name | body | string | 是 | 网络英文名,2-15的英文与数字 |
| nodes | body | [ ]nodeAddress | 是 | 网络节点列表,http地址必须加协议开头(http://或者https://) |
响应体:
| 字段 | 字段类型 | 字段内容 |
|---|---|---|
| msg | string | 响应的消息 |
| code | string | 状态码 |
| data | string | 新建的网络id |
请求示例:
POST
/xbaas/v1/xchain/network/connect
{
"name": "xchainnet",
"nodes": [{"httpAddress::"http://14.215.183.139:8001","grpcAddress":"14.215.183.139:37101"}]
}
响应示例:
(2)新增网络节点
描述:用户新增网络节点,只有全量版可以调用。
方法:PUT
请求路径:/xbaas/v1/xchain/network/nodes
请求参数:
| 名称 | 位置 | 类型 | 是否必填 | 说明 |
|---|---|---|---|---|
| networkId | body | string | 是 | 网络id |
| nodes | body | []nodeAddress | 是 | 网络节点列表 |
响应体:
| 字段 | 字段类型 | 字段内容 |
|---|---|---|
| msg | string | 响应的消息 |
| code | string | 状态码 |
请求示例:
PUT
/xbaas/v1/xchain/network/nodes
{
"networkId": "1",
"nodes": [{"httpAddress::"http://14.215.183.139:8001","grpcAddress":"14.215.183.139:37101"}]
}
响应示例:
区块链信息查询
(1)网络列表查询
描述:网络列表查询,返回所有网络
方法:GET
请求路径:/xbaas/v1/xchain/networks
请求参数:
| 字段 | 位置 | 字段类型 | 是否必填 | 字段内容 |
|---|---|---|---|---|
| type | query | string | 否 | 查询的网络类型,1 纳管的网络,2 创建的网络,3 加入的网络,All全部,不传默认全部 |
响应体:
| 字段 | 字段类型 | 字段内容 |
|---|---|---|
| msg | string | 响应的消息 |
| code | string | 状态码 |
| data | []networkInfo | 网络信息 |
请求示例:
响应示例:
{
"code": "0",
"msg": "ok",
"data": [{
"id": 1,
"name": "XuperOS",
"consensus": "tdpos",
"status": "RUNNING",
"deployType": "Connect",
"createTime": "2020-07-24T02:34:16Z"
}]
}
(2)网络基本信息查询
描述:网络基本信息查询
方法:GET
请求路径:/xbaas/v1/xchain/network/
请求参数:
| 名称 | 位置 | 类型 | 是否必填 | 说明 |
|---|---|---|---|---|
| networkId | query | string | 是 | 网络Id |
响应体:
| 字段 | 字段类型 | 字段内容 |
|---|---|---|
| msg | string | 响应的消息 |
| code | string | 状态码 |
| data | network | 网络信息,查看后面 |
请求示例:
响应示例:
{
"code": "0",
"msg": "ok",
"data": {
"id": 1,
"name": "XuperOS",
"consensus": "tdpos",
"status": "RUNNING",
"deployType": "Connect",
"chains": [
{
"name": "xuper",
"rootBlockId": "fasdfdsfdfdsfdsfdsf",
"contractAmount": 2
}
],
"nodes": [
{
"id": 1,
"grpcAddress": "12.12.12.12:2343",
"httpAddress":"http://12.12.12.12:2343",
"status": "RUNNING",
"deployType": "External",
"createTime": "2020-07-24T02:34:16Z"
}
],
"totalContractAmount": 2,
"runningNodeAmount": 2,
"totalNodeAmount": 2,
"createTime": "2020-07-24T02:34:16Z"
}
}
(3)网络节点列表查询
描述:网络节点列表查询
方法:GET
请求路径:/xbaas/v1/xchain/network/nodes
请求参数:
| 名称 | 位置 | 类型 | 是否必填 | 说明 |
|---|---|---|---|---|
| networkId | query | string | 是 | 网络Id |
响应体:
| 字段 | 字段类型 | 字段内容 |
|---|---|---|
| msg | string | 响应的消息 |
| code | string | 状态码 |
| data | [ ]node | 节点信息 |
请求示例:
响应示例:
{
"code": "0",
"msg": "ok",
"data": [{
"id": 1,
"grpcAddress": "12.12.12.12:2343",
"httpAddress":"http://12.12.12.12:2343",
"status": "RUNNING",
"deployType": "External",
"createTime": "2020-07-24T02:34:16Z"
}]
}
(4)链运行状态查询
描述:网络运行状态查询
方法:GET
请求路径:/xbaas/v1/xchain/network/chain/status
请求参数:
| 名称 | 位置 | 类型 | 是否必填 | 说明 |
|---|---|---|---|---|
| networkId | query | string | 是 | 网络Id |
| chainName | query | string | 是 | 链名称 |
响应体:
| 字段 | 字段类型 | 字段内容 |
|---|---|---|
| msg | string | 响应的消息 |
| code | string | 状态码 |
| data | chainStatus | 链运行状态,查看后面 |
请求示例:
响应示例:
{
"code": "0",
"msg": "ok",
"data": {
"name": "xuper",
"blockHeight": "20",
"txAmount": "10",
"contractAmount": "2",
"avgTxTime": "3",
"concurrencyMax": "256"
}
}
(5)块高度查询
描述:块高度查询
方法:GET
请求路径:/xbaas/v1/xchain/network/chain/totalBlock
请求参数:
| 名称 | 位置 | 类型 | 是否必填 | 说明 |
|---|---|---|---|---|
| networkId | query | string | 是 | 网络Id |
| chainName | query | string | 是 | 链名称 |
响应体:
| 字段 | 字段类型 | 字段内容 |
|---|---|---|
| msg | string | 响应的消息 |
| code | string | 状态码 |
| data | string | 链高度 |
请求示例:
响应示例:
(6)交易总数查询
描述:交易总数
方法:GET
请求路径:/xbaas/v1/xchain/network/chain/totalTx
请求参数:
| 名称 | 位置 | 类型 | 是否必填 | 说明 |
|---|---|---|---|---|
| networkId | query | string | 是 | 网络Id |
| chainName | query | string | 是 | 链名称 |
响应体:
| 字段 | 字段类型 | 字段内容 |
|---|---|---|
| msg | string | 响应的消息 |
| code | string | 状态码 |
| data | string | 交易总数 |
请求示例:
响应示例:
(7)平均交易时间
描述:平均交易时间
方法:GET
请求路径:/xbaas/v1/xchain/network/chain/avgTxTime
请求参数:
| 名称 | 位置 | 类型 | 是否必填 | 说明 |
|---|---|---|---|---|
| networkId | query | string | 是 | 网络Id |
| chainName | query | string | 是 | 链名称 |
响应体:
| 字段 | 字段类型 | 字段内容 |
|---|---|---|
| msg | string | 响应的消息 |
| code | string | 状态码 |
| data | string | 平均交易时间(秒) |
请求示例:
响应示例:
(8)历史并发峰值
描述:历史并发峰值
方法:GET
请求路径:/xbaas/v1/xchain/network/chain/concurrencyMax
请求参数:
| 名称 | 位置 | 类型 | 是否必填 | 说明 |
|---|---|---|---|---|
| networkId | query | string | 是 | 网络Id |
| chainName | query | string | 是 | 链名称 |
响应体:
| 字段 | 字段类型 | 字段内容 |
|---|---|---|
| msg | string | 响应的消息 |
| code | string | 状态码 |
| data | string | 历史并发峰值(笔/秒) |
请求示例:
响应示例:
(9)历史交易数查询
描述:历史交易数查询
方法:GET
请求路径:/xbaas/v1/xchain/network/chain/totalTxHis
请求参数:
| 名称 | 位置 | 类型 | 是否必填 | 说明 |
|---|---|---|---|---|
| networkId | query | string | 是 | 网络Id |
| chainName | query | string | 是 | 链名称 |
| endTime | query | string | 是 | 统计的结束时间戳,统计区间段然后按type进行递减; 按天则end_time 会取当天24点时间戳,按小时则当前小时的结束时间戳 |
| type | query | int | 是 | 1:按天,数量对应天数;2:按小时,数量对应为小时 |
| num | query | int | 是 | 数量 |
响应体:
| 字段 | 字段类型 | 字段内容 |
|---|---|---|
| msg | string | 响应的消息 |
| code | string | 状态码 |
| data | map[string]int64 | 历史交易数 |
请求示例:
GET
/xbaas/v1/xchain/network/chain/totalTxHis?networkId=1&chainName=xuper&endTime=152324432942&type=1&num=3
响应示例:
{
"code": "0",
"msg": "ok",
"data": {
"152324432942":897722, //时间戳为返回的统计时间段结束时间
"152324432942":897762,
"152324432942":897822
}
}
BaaS信息查询
(1)BaaS统计信息查询
描述:BaaS统计信息查询
方法:GET
请求路径:/xbaas/v1/baas/statistics
请求参数:无
响应体:
| 字段 | 字段类型 | 字段内容 |
|---|---|---|
| msg | string | 响应的消息 |
| code | string | 状态码 |
| data | sysStatistics | BaaS统计信息 |
请求示例:
响应示例:
{
"code": "0",
"msg": "ok",
"data": {
"netAmount": 19,
"runningNetAmount": 10,
"contractAmount": 20,
"pluginAmount": 20,
}
}
(2)部署版本查询
描述:部署版本
方法:GET
请求路径:/xbaas/v1/baas/sysInfo
请求参数:无
响应体:
| 字段 | 字段类型 | 字段内容 |
|---|---|---|
| msg | string | 响应的消息 |
| code | string | 状态码 |
| data | sysinfo | 系统版本信息 |
请求示例:
响应示例:
数据结构
(1)networkInfo
| 字段 | 字段类型 | 字段内容 |
|---|---|---|
| id | string | 网络id |
| name | string | 网络英文名 |
| consensus | string | 共识类型 |
| precisionint | int | 精度 |
| status | string | 网络状态 |
| deployType | string | 网络部署类型 |
| createTime | string | 创建时间 |
| node | [ ]nodeInfo | 节点列表 |
(2)network
| 字段 | 字段类型 | 字段内容 |
|---|---|---|
| id | string | 网络id |
| name | string | 网络英文名 |
| consensus | string | 共识类型 |
| status | string | 网络状态 |
| deployType | string | 网络部署类型 |
| totalContractAmount | int64 | 合约总数 |
| runningNodeAmount | int | 运行节点总数 |
| totalNodeAmount | int | 节点总数 |
| precision | int | 精度 |
| chains | [ ]chain | 链列表 |
| nodes | [ ]nodeInfo | 节点列表 |
| createTime | string | 创建时间 |
(3)chain
| 字段 | 字段类型 | 字段内容 |
|---|---|---|
| name | string | 链英文名 |
| rootBlockId | string | 根区块id |
| contractAmount | int64 | 合约数 |
(4)node
| 字段 | 字段类型 | 字段内容 |
|---|---|---|
| id | string | 节点id |
| httpAddress | string | 节点http地址 |
| grpcAddress | string | 节点grpc地址 |
| status | string | 节点状态 |
| type | string | 节点类型 |
| deployType | string | 节点部署类型 |
| createTime | string | 创建时间 |
(5)chainStatus
| 字段 | 字段类型 | 字段内容 |
|---|---|---|
| name | string | 链英文名 |
| blockHeight | string | 块高 |
| txAmount | string | 交易总数 |
| avgTxTime | string | 平均交易时间(秒) |
| concurrencyMax | string | 历史并发峰值(笔/秒) |
| contractAmount | string | 合约数 |
(6)nodeAddress
| 字段 | 字段类型 | 字段内容 |
|---|---|---|
| httpAddress | string | 节点http地址 |
| grpcAddress | string | 节点grpc地址 |
(7)sysinfo
| 字段 | 字段类型 | 字段内容 |
|---|---|---|
| deployType | string | 系统版本类型,云端部署Cloud,本地Local |
| version | string | 版本号 |
(8)sysStatistics
| 字段 | 字段类型 | 字段内容 |
|---|---|---|
| netAmount | int | 网络总数 |
| runningNetAmount | int | 运行中网络总数 |
| contractAmount | int | xuper链合约总数 |
| pluginAmount | int | 组件总数 |
(9)chaincodeInfo
| 字段 | 字段类型 | 字段内容 |
|---|---|---|
| name | string | 合约名称 |
| lang | string | 合约语言,go,solidity,cpp,java |
状态信息
(1)网络状态
| 状态 | 说明 |
|---|---|
| RUNNING | 运行中 |
| ERROR | 不可用 |
(2)网络部署类型
| 状态 | 说明 |
|---|---|
| Connect | 连接的网络 |
| Join | 加入的网络 |
| Create | 创建的网络 |
(3)节点状态
| 状态 | 说明 |
|---|---|
| RUNNING | 运行中 |
| ERROR | 不可用 |
错误码
| 错误码 | 说明 |
|---|---|
| InvalidNetworkIdError | 网络不存在 |
| NetworkNameExistError | 网络名称已存在 |