4.4.1 区块链基础概述
4.4.1.1 接口返回
区块链基础接口的返回值统一定义如下:
名称 | 类型 | 描述 |
---|---|---|
code | String | 操作状态码 |
detail | Object | 操作返回值 |
1.成功返回:
{“code”: “SUCCESS”, “detail”: “Object”}
,detail中是具体的返回值。
2.异常或失败返回
{“code”:“错误码”,“detail”:“描述信息”}
,参见4.6: 错误码及返回值。
4.4.2 区块链基础接口列表
4.4.2.1 产生待签原文
接口说明:产生待签原文。
请求方式:POST
请求地址:http://BROP_HOST:PORT/common/buildSendInfo
队列事件:无
参数列表:
名称 | 类型 | 描述 |
---|---|---|
contractAddress | String | 合约地址 |
bizId | String | 业务ID |
blockLimit | Integer | 超时块号 |
method | String | 智能合约方法 |
params | String[](Object...) | 智能合约方法参数 |
regionId | String | 专区编号(专区链需要传) |
返回结果:String类型的待签名数据。
返回示例:
{
"code": "SUCCESS",
"detail": "06b73778a8e436d5f2718dc0ca08e0e29737ebc317d32605baec662bbb6622b5"
}
4.4.2.2 发送交易及签名信息
接口说明:发送交易及签名数据上链
请求方式:POST
请求地址:http://BROP_HOST:PORT/common/sendTx.json
队列事件:无
参数列表:
名称 | 类型 | 描述 |
---|---|---|
contractAddress | String | 合约地址 |
bizId | String | 业务ID |
blockLimit | Integer | 超时块号 |
method | String | 智能合约方法 |
signatureInBase64 | String | 待签原文的签名数据 |
params | String[](Object...) | 智能合约方法参数 |
regionId | String | 专区编号(专区链需要传) |
注意:本接口参数内容除签名数据其他必须与产生待签原文 中的参数内容保持一致,签名数据为 产生待签原文 的返回值通过安全插件API的签名接口 签名后数据。
返回结果:String类型的交易hash,发送交易后并不代表交易成功上链,可通过交易hash查询交易结果。
返回示例:
{
"code": "SUCCESS",
"detail": "c8dc1744785632b81d29e311ff239c3d0747ab6a8b5ca04bfdc76e8883db6658"
}
4.4.2.3 根据合约地址和块号查询智能合约数据
接口说明:根据合约地址调用智能合约只读方法查询合约数据。
请求方式:POST
请求地址:http://BROP_HOST:PORT/common/contract.json
队列事件:无
参数列表:
名称 | 类型 | 描述 |
---|---|---|
blockNumber | String | 块号,可选。指定块号查询该块内容,不指定取最新块内容。 |
contractAddress | String | 合约地址 |
functionName | String | 智能合约方法名 |
params | String[](Object...) | 智能合约方法参数 |
regionId | String | 专区编号(专区链需要传) |
接口返回:
{
"code": "SUCCESS",
"detail": {
[field]": "[value]
...
}
}
4.4.2.4 查询当前最新块块号
接口说明:查询当前最新块块号。
请求方式:GET
请求地址:http://BROP_HOST:PORT/common/blockNumber.json
队列事件:无
参数列表:无
接口返回:
名称 | 类型 | 描述 |
---|---|---|
code | String | 当前操作状态 |
detail | Object | 当前区块链最新块号 |
返回示例:
{
"code": "SUCCESS",
"detail": 846647
}
4.4.2.5 查询数据库同步块号
接口说明:查询数据库同步块号。
请求方式:GET
请求地址:http://BROP_HOST:PORT/common/blockNumberDB.json
队列事件:无
参数列表:无
接口返回:
名称 | 类型 | 描述 |
---|---|---|
code | String | 当前操作状态 |
detail | Object | 当前数据库同步块号 |
返回示例:
{
"code": "SUCCESS",
"detail": 460031
}
4.4.2.6 根据txHash获取交易(since v4.5.1
)
接口说明:用txHash查询交易,返回单条交易数据,同时返回该交易相关联的合约业务数据快照。
请求方式:POST
请求地址:http://BROP_HOST:PORT/transaction/getDBTransactionByTxHash.json
队列事件:无
参数列表:
名称 | 类型 | 描述 |
---|---|---|
txHash | String | 必填,交易哈希 |
接口返回:
名称 | 类型 | 描述 |
---|---|---|
transaction | TransactionInfo | 交易信息 |
TransactionInfo:
名称 | 类型 | 描述 |
---|---|---|
txHash | String | 交易hash |
sender | String | 发送方的公钥地址 |
bizId | String | 业务ID |
resultCode | Integer | 交易成功失败标识 |
blockNumber | Integer | 块号 |
blockTime | String | 块时间 |
dataSnapshots | List<ContractInfo> | 合约数据快照列表 |
ContractInfo:
名称 | 类型 | 描述 |
---|---|---|
contractAddress | String | 合约地址 |
contractName | String | 合约名称 |
operateType | String | 操作类型(创建或更新) |
contractData | Object | 合约数据对象 |
返回示例:
{
"code": "SUCCESS",
"detail": {
"transactions": [
{
"txHash": "36d41ee894b0277e5d24e2ec7bb6bcc8bace18d1244f15d03a73d57ba2d88fca",
"bizId": "0000000000000000010",
"sender": "bc47cfeb49ccde185100ca542df60f8146b8c22e",
"resultCode": 0,
"blockNumber": 5666816,
"blockTime": "2018-08-24T15:28:18+08:00",
"dataSnapshots": [
{
"contractAddress": "8a36c1164780efa819fe2ed569c2f1f5c0c7929d",
"contractName": "Record",
"operateType": "CREATE",
"contractData": {
"updatorAddress": "da378d681bc0c592e08f09024ddc75e2eba1a598",
"registryAddress": "b6ea5b1d9accf2ffd98b6fd736eaa71a5864e992",
"preSeqId": "",
"bizId": "0000000000000000010",
"contractAddress": "8a36c1164780efa819fe2ed569c2f1f5c0c7929d",
"recordData": "f2f9184ae540fb779a671dd2dce0e562d919fa28f3b66e25d68ca4fc14b0945b",
"creatorAddress": "da378d681bc0c592e08f09024ddc75e2eba1a598",
"seqId": "cstc00000010",
"customString": ""
}
}
]
}
]
}
}
4.4.2.7 发送交易上链
接口说明:向区块链发送交易。接口会根据交易参数计算交易的待签原文,接着将交易根据中间件配置的加密机索引进行交易签名,最后将签名后的交易发送到区块链上。
请求方式:POST
请求地址:http://BROP_HOST:PORT/transaction/sendTransaction.json
队列事件:无
参数列表:
名称 | 类型 | 描述 |
---|---|---|
contractAddress | String | 合约地址 |
bizId | String | 业务ID |
blockLimit | String | 超时块号 |
method | String | 合约方法 |
params | String[](Object...) | 合约构造函数参数 |
hsmUserId | String | 加密机用户索引 |
regionId | String | 专区编号(专区链需要传) |
返回结果:String类型的交易hash,发送交易后并不代表交易成功上链,可通过交易hash查询交易结果。
返回示例:
{
"code": "SUCCESS",
"detail": "c8dc1744785632b81d29e311ff239c3d0747ab6a8b5ca04bfdc76e8883db6658"
}
4.4.2.8 根据bizId查询交易(since v4.5.1
)
接口说明:用bizId查询交易,获得该bizId关联的交易数据数组,同时返回该交易相关联的合约数据快照。如果查不到交易,则返回空数组。
请求方式:POST
请求地址:http://BROP_HOST:PORT/transaction/listDBTransactionsByBizid.json
队列事件:无
参数列表:
名称 | 类型 | 描述 |
---|---|---|
bizId | String | 必填,业务ID |
regionId | String | 专区编号(专区链需要传) |
接口返回:
名称 | 类型 | 描述 |
---|---|---|
transactions | List<TransactionInfo> | 交易信息列表 |
TransactionInfo:
名称 | 类型 | 描述 |
---|---|---|
txHash | String | 交易hash |
sender | String | 发送方的公钥地址 |
bizId | String | 业务ID |
resultCode | Integer | 交易成功失败标识 |
blockNumber | Integer | 块号 |
blockTime | String | 块时间 |
dataSnapshots | List<ContractInfo> | 合约数据快照列表 |
ContractInfo:
名称 | 类型 | 描述 |
---|---|---|
contractAddress | String | 合约地址 |
contractName | String | 合约名称 |
operateType | String | 操作类型(创建或更新) |
contractData | Object | 合约数据对象 |
返回示例:
{
"code": "SUCCESS",
"detail": {
"transactions": [
{
"txHash": "36d41ee894b0277e5d24e2ec7bb6bcc8bace18d1244f15d03a73d57ba2d88fca",
"bizId": "0000000000000000010",
"sender": "bc47cfeb49ccde185100ca542df60f8146b8c22e",
"resultCode": 0,
"blockNumber": 5666816,
"blockTime": "2018-08-24T15:28:18+08:00",
"dataSnapshots": [
{
"contractAddress": "8a36c1164780efa819fe2ed569c2f1f5c0c7929d",
"contractName": "Record",
"operateType": "CREATE",
"contractData": {
"updatorAddress": "da378d681bc0c592e08f09024ddc75e2eba1a598",
"registryAddress": "b6ea5b1d9accf2ffd98b6fd736eaa71a5864e992",
"preSeqId": "",
"bizId": "0000000000000000010",
"contractAddress": "8a36c1164780efa819fe2ed569c2f1f5c0c7929d",
"recordData": "f2f9184ae540fb779a671dd2dce0e562d919fa28f3b66e25d68ca4fc14b0945b",
"creatorAddress": "da378d681bc0c592e08f09024ddc75e2eba1a598",
"seqId": "cstc00000010",
"customString": ""
}
}
]
}
]
}
}
4.4.2.9根据流水号查询存证记录
接口说明:根据流水号分页返回存证记录信息,按块号排序(默认升序)。
请求方式:POST
请求地址:http://BROP_HOST:PORT/record/search.json
队列事件:无
参数列表:
名称 | 类型 | 描述 |
---|---|---|
seqId | String | 必填,流水号 |
pageNo | int | 选填,页码,默认为1 |
sort | String | 排序规则,“desc”:降序,“asc”:升序。默认升序 |
regionId | String | 专区编号(专区链需要传) |
接口返回:
名称 | 类型 | 描述 |
---|---|---|
records | List<Record> | 存证记录 |
pageNo | int | 页码 |
pageSize | int | 页容量,默认100 |
totalCount | int | 总记录数 |
Record:
名称 | 类型 | 描述 |
---|---|---|
id | String | id |
contractAddress | String | 合约地址 |
bizId | String | 业务ID |
txHash | String | 交易hash |
operateType | String | 合约操作类型,“CREATE”:创建合约,“UPDATE”:修改合约 |
blockNumber | BigInteger | 块号 |
updatorAddress | String | 修改人身份合约地址 |
registryAddress | String | 存证合约合约地址 |
creatorAddress | String | 创建人身份合约地址 |
preSeqId | String | 前序流水号 |
seqId | String | 流水号 |
recordData | String | 存证信息 |
customString | String | 存证自定义信息 |
name | String | 存证记录合约名,“Record”:存证记录 |
返回示例:
{
"code": "SUCCESS",
"detail": {
"record": [
{
"id": "5af030d69f46831aac60bbb8",
"contractAddress": "06f86deefac3f12d488b4f1ca853df819173f20b",
"bizId": "2018050710512311",
"txHash": "0x3bb5facebefa7c1336a36fa6585d2ac932821e577d91aee59f88a0cdc0abacc7",
"operateType": "CREATE",
"blockNumber": 1837692,
"updatorAddress": "7840b7344f2d4923535b3a49ef732ccc5cb9d53e",
"registryAddress": "844e11cc40ed20865cca04e2d322dd3c76bdcfac",
"preSeqId": "",
"recordData": "lalallaalal",
"creatorAddress": "7840b7344f2d4923535b3a49ef732ccc5cb9d53e",
"seqId": "12345679",
"customString": "lalala",
"name": "Record"
}
],
"pageNo": 1,
"pageSize": 100,
"totalCount": 1
}
}
4.4.2.10 获取程序版本号信息
接口说明:查询当前运行程序的版本号信息。
请求方式:GET
请求地址:http://BROP_HOST:PORT/common/getVersion.json
队列事件:无
参数列表:无
返回示例:
{
"code": "SUCCESS",
"detail": [
{
"projectName": "middleware-server",
"version": "4.1.0"
},
{
"projectName": "adapter-corsac",
"version": "4.1.0"
}
]
}
4.4.2.11 根据txHash获取交易(since v4.5.1
不建议使用)
接口说明:用txHash查询交易,返回单条交易数据,同时返回该交易相关联的合约业务数据快照。
请求方式:GET
请求地址:http://BROP_HOST:PORT/transaction/{txHash}.json
队列事件:无
参数列表:
名称 | 类型 | 描述 |
---|---|---|
txHash | String | 必填,交易哈希 |
接口返回:
名称 | 类型 | 描述 |
---|---|---|
transaction | TransactionInfo | 交易信息 |
TransactionInfo:
名称 | 类型 | 描述 |
---|---|---|
txHash | String | 交易hash |
sender | String | 发送方的公钥地址 |
bizId | String | 业务ID |
resultCode | Integer | 交易成功失败标识 |
blockNumber | Integer | 块号 |
blockTime | String | 块时间 |
dataSnapshots | List<ContractInfo> | 合约数据快照列表 |
ContractInfo:
名称 | 类型 | 描述 |
---|---|---|
contractAddress | String | 合约地址 |
contractName | String | 合约名称 |
operateType | String | 操作类型(创建或更新) |
contractData | Object | 合约数据对象 |
返回示例:
{
"code": "SUCCESS",
"detail": {
"transaction": {
"txHash": "36d41ee894b0277e5d24e2ec7bb6bcc8bace18d1244f15d03a73d57ba2d88fca",
"bizId": "0000000000000000010",
"sender": "bc47cfeb49ccde185100ca542df60f8146b8c22e",
"resultCode": 0,
"blockNumber": 5666816,
"blockTime": "2018-08-24T15:28:18+08:00",
"dataSnapshots": [
{
"contractAddress": "8a36c1164780efa819fe2ed569c2f1f5c0c7929d",
"contractName": "Record",
"operateType": "CREATE",
"contractData": {
"updatorAddress": "da378d681bc0c592e08f09024ddc75e2eba1a598",
"registryAddress": "b6ea5b1d9accf2ffd98b6fd736eaa71a5864e992",
"preSeqId": "",
"bizId": "0000000000000000010",
"contractAddress": "8a36c1164780efa819fe2ed569c2f1f5c0c7929d",
"recordData": "f2f9184ae540fb779a671dd2dce0e562d919fa28f3b66e25d68ca4fc14b0945b",
"creatorAddress": "da378d681bc0c592e08f09024ddc75e2eba1a598",
"seqId": "cstc00000010",
"customString": ""
}
}
]
}
}
}
4.4.2.12 根据bizId查询交易(since v4.5.1
不建议使用)
接口说明:用bizId查询交易,获得该bizId关联的交易数据数组,同时返回该交易相关联的合约数据快照。如果查不到交易,则返回空数组。
请求方式:GET
请求地址:http://BROP_HOST:PORT/transaction/search.json?bizId={bizId}
队列事件:无
参数列表:
名称 | 类型 | 描述 |
---|---|---|
bizId | String | 必填,业务ID |
接口返回:
名称 | 类型 | 描述 |
---|---|---|
transactions | List<TransactionInfo> | 交易信息列表 |
TransactionInfo:
名称 | 类型 | 描述 |
---|---|---|
txHash | String | 交易hash |
sender | String | 发送方的公钥地址 |
bizId | String | 业务ID |
resultCode | Integer | 交易成功失败标识 |
blockNumber | Integer | 块号 |
blockTime | String | 块时间 |
dataSnapshots | List<ContractInfo> | 合约数据快照列表 |
ContractInfo:
名称 | 类型 | 描述 |
---|---|---|
contractAddress | String | 合约地址 |
contractName | String | 合约名称 |
operateType | String | 操作类型(创建或更新) |
contractData | Object | 合约数据对象 |
返回示例:
{
"code": "SUCCESS",
"detail": {
"transactions": [
{
"txHash": "36d41ee894b0277e5d24e2ec7bb6bcc8bace18d1244f15d03a73d57ba2d88fca",
"bizId": "0000000000000000010",
"sender": "bc47cfeb49ccde185100ca542df60f8146b8c22e",
"resultCode": 0,
"blockNumber": 5666816,
"blockTime": "2018-08-24T15:28:18+08:00",
"dataSnapshots": [
{
"contractAddress": "8a36c1164780efa819fe2ed569c2f1f5c0c7929d",
"contractName": "Record",
"operateType": "CREATE",
"contractData": {
"updatorAddress": "da378d681bc0c592e08f09024ddc75e2eba1a598",
"registryAddress": "b6ea5b1d9accf2ffd98b6fd736eaa71a5864e992",
"preSeqId": "",
"bizId": "0000000000000000010",
"contractAddress": "8a36c1164780efa819fe2ed569c2f1f5c0c7929d",
"recordData": "f2f9184ae540fb779a671dd2dce0e562d919fa28f3b66e25d68ca4fc14b0945b",
"creatorAddress": "da378d681bc0c592e08f09024ddc75e2eba1a598",
"seqId": "cstc00000010",
"customString": ""
}
}
]
}
]
}
}