区块链管理
区块链管理
(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 | 网络名称已存在 |