区块链基础接口

接口返回

区块链基础接口的返回值统一定义如下:

名称 类型 描述
code String 操作状态码
detail Object 操作返回值

1.成功返回:

{“code”: “SUCCESS”, “detail”: “Object”},detail中是具体的返回值。

2.异常或失败返回

{“code”:“错误码”,“detail”:“描述信息”},参见附录一: 错误码

产生待签原文

接口说明:产生待签原文。

请求方式:POST

请求地址:http://BROP_HOST:PORT/common/buildSendInfo

队列事件:无

参数列表:

名称 类型 描述
contractAddress String 合约地址
bizId String 业务ID
blockLimit Integer 超时块号
method String 智能合约方法
params String[](Object...) 智能合约方法参数

返回结果:String类型的待签名数据。

返回示例:

{
  "code": "SUCCESS",
  "detail": "06b73778a8e436d5f2718dc0ca08e0e29737ebc317d32605baec662bbb6622b5"
}

发送交易及签名信息

接口说明:发送交易及签名数据上链

请求方式:POST

请求地址:http://BROP_HOST:PORT/common/sendTx.json

队列事件:无

参数列表:

名称 类型 描述
contractAddress String 合约地址
bizId String 业务ID
blockLimit Integer 超时块号
method String 智能合约方法
signatureInBase64 String 待签原文的签名数据
params String[](Object...) 智能合约方法参数

注意:本接口参数内容除签名数据其他必须与产生待签原文 中的参数内容保持一致,签名数据为 产生待签原文 的返回值通过安全插件API的签名接口 签名后数据。

返回结果:String类型的交易hash,发送交易后并不代表交易成功上链,可通过交易hash查询交易结果或通过 4.2.2回调接口 等待交易结果。

返回示例:

{
  "code": "SUCCESS",
  "detail": "c8dc1744785632b81d29e311ff239c3d0747ab6a8b5ca04bfdc76e8883db6658"
}

根据合约地址和块号查询智能合约数据

接口说明:根据合约地址调用智能合约只读方法查询合约数据。

请求方式:POST

请求地址:http://BROP_HOST:PORT/common/contract.json

队列事件:无

参数列表:

名称 类型 描述
blockNumber String 块号,可选。指定块号查询该块内容,不指定取最新块内容。
contractAddress String 合约地址
functionName String 智能合约方法名
params String[](Object...) 智能合约方法参数

接口返回:

{
  "code": "SUCCESS",
  "detail": {
    [field]": "[value]
    ...
  }
}

查询当前最新块块号

接口说明:查询当前最新块块号。

请求方式:GET

请求地址:http://BROP_HOST:PORT/common/blockNumber.json

队列事件:无

参数列表:无

接口返回:

名称 类型 描述
code String 当前操作状态
detail Object 当前区块链最新块号

返回示例:

{
  "code": "SUCCESS",
  "detail": 846647
}

查询数据库同步块号

接口说明:查询数据库同步块号。

请求方式:GET

请求地址:http://BROP_HOST:PORT/common/blockNumberDB.json

队列事件:无

参数列表:无

接口返回:

名称 类型 描述
code String 当前操作状态
detail Object 当前数据库同步块号

返回示例:

{
  "code": "SUCCESS",
  "detail": 460031
}

根据块信息查询块

接口说明:查询块信息,不包含合约业务数据。

请求方式:POST

请求地址:http://BROP_HOST:PORT/block/lite/search.json

队列事件:无

参数列表:

名称 类型 描述
blockNumberFrom Integer 块号大于等于该值
blockNumberTo Integer 块号小于等于该值
blockTimeFrom String 块时间大于等于该时间值
blockTimeTo String 块时间小于该时间值
pageSize Integer 每页记录数
pageNum Integer 查询的指定页

接口返回:

名称 类型 描述
pageNum Integer 每页记录数
pageSize Integer 查询的指定页
total Long 总的页码
blocks List<BlockInfo> 块列表

BlockInfo:

名称 类型 描述
blockNumber Integer 块号
blockTime String 块时间
transactions List<TransactionInfo> 交易列表

TransactionInfo:

名称 类型 描述
txHash String 交易哈希
resultCode Integer 交易成功失败标识
contracts List<ContractInfo> 合约列表

ContractInfo:

名称 类型 描述
contractAddress String 合约地址
contractName String 合约名称
operateType String 操作类型(创建或更新)

请求示例:

{
  "blockNumberFrom": 713490,
  "blockNumberTo": 713495,
  "blockTimeFrom": "2017-08-18T10:13:51+08:00",
  "blockTimeTo": "2017-08-18T10:14:51+08:00",
  "pageSize": 10,
  "pageNum": 1
}

返回示例:

{
  "code": "SUCCESS",
  "detail": {
    "total": 1,
    "blocks": [
      {
        "blockNumber": 713493,
        "blockTime": "2017-08-18T10:14:26+08:00",
        "transactions": [
          {
            "resultCode": 0,
            "contracts": [
              {
                "operateType": "CREATE",
                "contractAddress": "2f21b6ad2deb1de8bf371f83e99f64ffda654878",
                "contractName": "DataUnit"
              }
            ],
            "txHash": "430178ca46b0ba6b9bbc635232b0671093823ff015aa1211f8fefea0e3d94d07"
          }
        ]
      },
      {
        "blockNumber": 713491,
        "blockTime": "2017-08-18T10:14:20+08:00",
        "transactions": [
          {
            "resultCode": 0,
            "contracts": [
              {
                "operateType": "CREATE",
                "contractAddress": "2f21b6ad2deb1de8bf371f83e99f64ffda654878",
             "contractName": "DataUnit"
              }
            ],
            "txHash": "26830e31769181fa3bf5c654de7e4c753021d8eaf0c71c271ad25d8b149fe40b"
          }
        ]
      }
    ],
    "pageSize": 10,
    "pageNum": 1
  }
}

根据交易信息查询块

接口说明:查询交易,不包含合约业务数据。

请求方式:POST

请求地址:http://BROP_HOST:PORT/block/lite/searchByTransaction.json

队列事件:无

参数列表:

名称 类型 描述
txHash String 交易哈希
sender String 发送方的公钥地址
bizId String 标识字段
blockTimeFrom String 块时间大于等于该值
blockTimeTo String 块时间小于该值
pageSize int 每页记录数
pageNum int 查询的指定页

接口返回:

名称 类型 描述
pageNum Integer 每页记录数
pageSize Integer 查询的指定页
total Long 总的页码
blocks List<TransactionBlockInfo> 块列表

TransactionBlockInfo:

名称 类型 描述
blockNumber Integer 块号
blockTime String 块时间
transactions List<TransactionTransactionInfo> 交易列表

TransactionTransactionInfo:

名称 类型 描述
txHash String 交易哈希
resultCode Integer 交易成功失败标识
bizId String 业务ID

请求示例:

{
  "txHash": "dc51decbbfbc483987fcd334f2fa02790031d789c235cde5abbf5fe46493a4cd",
  "sender": "ee278e496c7f3cc145c5eca3e54c5e5a22052159",
  "bizId": "1503027917684",
  "blockTimeFrom": "2017-08-18T11:40:51+08:00",
  "blockTimeTo": "2017-08-18T11:45:51+08:00",
  "pageSize": 10,
  "pageNum": 1
}

返回示例:

{
  "code": "SUCCESS",
  "detail": {
    "total": 1,
    "blocks": [
      {
        "blockNumber": 715562,
        "blockTime": "2017-08-18T11:45:15+08:00",
        "transactions": [
          {
            "sender": "ee278e496c7f3cc145c5eca3e54c5e5a22052159",
            "resultCode": 0,
            "bizId": "1503027917684",
            "contracts": [
              {
                "operateType": "CREATE",
                "contractAddress": "e1e4ef1b3a83d0c43f9fdc6226da06befd1e9045",
                "contractName": "IdentityContract"
              }
            ],
            "txHash": "dc51decbbfbc483987fcd334f2fa02790031d789c235cde5abbf5fe46493a4cd"
          }
        ]
      }
    ],
    "pageSize": 10,
    "pageNum": 1
  }
}

根据合约信息查询块

接口说明:查询合约,包含合约业务数据。

请求方式:POST

请求地址:http://BROP_HOST:PORT/block/searchByContract.json

队列事件:无

参数列表:

名称 类型 描述
contract String 合约地址,必填
blockNumber int 块号
blockTimeFrom String 块时间大于等于该值
blockTimeTo String 块时间小于该值
pageSize int 每页记录数
pageNum int 查询的指定页

接口返回:

名称 类型 描述
pageNum Integer 每页记录数
pageSize Integer 查询的指定页
total Long 总的页码
contractName String 合约名称
contractAddress String 合约地址
blocks List<ContractBlockInfo> 块信息列表

ContractBlockInfo:

名称 类型 描述
blockNumber int 块号
blockTime String 块时间
contractData Object 当前块内合约的信息
transactions List<ContractTransactionInfo> 交易列表

ContractTransactionInfo:

名称 类型 描述
txHash String 交易哈希
resultCode Integer 交易成功失败标识
contracts ContractContractInfo 合约对象

ContractContractInfo:

名称 类型 描述
operateType String 操作类型(创建或更新)

请求示例:

{
  "contract": "a273705106a483e989f65cda6d2e9976e9001a65",
  "blockNumber": 548646,
  "blockTimeFrom": "2017-04-26T11:20:51+08:00",
  "blockTimeTo": "2017-04-26T11:22:51+08:00",
  "pageSize": 10,
  "pageNum": 1
}

返回示例:

{
  "code": "SUCCESS",
  "detail": {
    "total": 1,
    "blocks": [
      {
        "blockNumber": 548646,
        "blockTime": "2017-04-26T11:21:06+08:00",
        "transactions": [
          {
            "resultCode": 0,
            "contracts": {
              "operateType": "CREATE"
            },
            "txHash": "e1afce4ad4e16649d02fb6eac5bc6bb1fd002218ad8c4b8931093558d38bdad9"
          }
        ],
        "contractData": {
          "sex": false,
          "studentScore": [],
          "name": "",
          "id": "0000000000000000000000000000000000000000000000000000000000000000",
          "pic": "",
          "picName": "",
          "addr": "0000000000000000000000000000000000000000",
          "age": 0
        }
      }
    ],
    "pageSize": 10,
    "contractAddress": "a273705106a483e989f65cda6d2e9976e9001a65",
    "contractName": "Student",
    "pageNum": 1
  }
}

根据txHash获取交易

接口说明:用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": "e4718ba678c6309ff3a4fc405661109efe3b6f0974729c5be854684e7a55f68b",
      "bizId": "14931769357108451643836784213025",
      "sender": "5ca3b441e6a50b3c74b41c8ad1854ef94140cd63",
      "resultCode": 0,
      "blockNumber": 548574,
      "blockTime": "2017-04-26T11:22:18+08:00",
      "dataSnapshots": [
        {
          "contractAddress": "2acc28a14d699f2767993db6fd633b9ee8139747",
          "contractName": "Student",
          "operateType": "CREATE",
          "contractData": {
            "name": "张三",
            "age": 15
          }
        }
      ]
    }
  }
}

发送交易上链

接口说明:向区块链发送交易。接口会根据交易参数计算交易的待签原文,接着将交易根据中间件配置的加密机索引进行交易签名,最后将签名后的交易发送到区块链上。

请求方式:POST

请求地址:http://BROP_HOST:PORT/transaction/sendTransaction.json

队列事件:无

参数列表:

名称 类型 描述
contractAddress String 合约地址
bizId String 业务ID
blockLimit String 超时块号
method String 合约方法
params String[](Object...) 合约构造函数参数
hsmUserId String 加密机用户索引

注意:本接口只适用于发送普通交易,发送授时存证交易请查看 授时存证业务接口

返回结果:String类型的交易hash,发送交易后并不代表交易成功上链,可通过交易hash查询交易结果或通过 4.2.2回调接口 等待交易结果。

返回示例:

{
  "code": "SUCCESS",
  "detail": "c8dc1744785632b81d29e311ff239c3d0747ab6a8b5ca04bfdc76e8883db6658"
}

根据bizId查询交易

接口说明:用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": "e4718ba678c6309ff3a4fc405661109efe3b6f0974729c5be854684e7a55f68b",
        "bizId": "14931769357108451643836784213025",
        "sender": "5ca3b441e6a50b3c74b41c8ad1854ef94140cd63",
        "resultCode": 0,
        "blockNumber": 548574,
        "blockTime": "2017-04-26T11:22:18+08:00",
        "dataSnapshots": [
          {
            "contractAddress": "2acc28a14d699f2767993db6fd633b9ee8139747",
            "contractName": "Student",
            "operateType": "CREATE",
            "contractData": {
              "name": "张三",
              "age": 15
            }
          }
        ]
      }
    ]
  }
}

根据合约地址和块号获取合约

接口说明:用合约地址和块号获取合约,同时返回合约业务数据如果不指定块号,则使用最新的块号如果查不到交易,则返回空数组。

请求方式:GET

请求地址:http://BROP_HOST:PORT/contract/{contractAddress}.json?blockNumber={blockNumber}

队列事件:无

参数列表:

名称 类型 描述
contractAddress String 必填,合约地址
blockNumber Integer 选填,块号

接口返回:

名称 类型 描述
contract List<ContractInfo> 合约数据列表

ContractInfo:

名称 类型 描述
contractAddress String 合约地址
contractName String 合约类型名称
operateType String 操作类型(创建或更新)
blockNumber Integer 块号
blockTime String 块时间
sender String 发送方的公钥地址
contractData Object 合约数据对象

返回示例:

{
  "code": "SUCCESS",
  "detail": {
    "contract": {
      "contractAddress": "743351e0aef7da83030a313baa29fb382d957ab5",
      "contractName": "RecordRegistry",
      "operateType": "CREATE",
      "blockNumber": 1579049,
      "blockTime": "2018-04-20T09:55:21+08:00",
      "sender": "b416ec0250b842aaa3e9c3a210fcdec9e23b0b1e",
      "contractData": {}
    }
  }
}

根据流水号查询存证记录

接口说明:根据流水号分页返回存证记录信息,按块号排序(默认升序)。

请求方式:POST

请求地址:http://BROP_HOST:PORT/record/search.json

队列事件:无

参数列表:

名称 类型 描述
seqId String 必填,流水号
pageNo int 选填,页码,默认为1
sort String 排序规则,“desc”:降序,“asc”:升序。默认升序

接口返回:

名称 类型 描述
record 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 存证自定义信息
ntscTime Long 时间戳
ntscSignature String 时间戳签名
name String 存证记录合约名,“Record”:存证记录, “RecordNTSC”:带时间戳存证记录

返回示例:

{
  "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",
        "ntscTime": 1525672628000,
        "ntscSignature": "MIIExDADAgEAMIIEuwYKKoEcz1UGAQQCAqCCBKswggSnAgEDMQ4wDAYIKoEcz1UBg3UFADCB4wYLKoZIhvcNAQkQAQSggdMEgdAwgc0CAQEGBCoDBAEwMTANBglghkgBZQMEAgEFAAQg47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFUCCQC1Igfw/zmLLRgPMjAxODA1MDcwNTU3MDhaAgkA4AJ63Yl7KfOgaKRmMGQxCzAJBgNVBAYTAkNOMQ8wDQYDVQQIHgZsX4LPdwExDzANBgNVBAceBlNXTqxeAjERMA8GA1UECh4IbF+Cz15/dTUxDzANBgNVBAseBngUU9GQ6DEPMA0GA1UEAxMGaG9zdHNtoIICKDCCAiQwggHKoAMCAQICDQDRBXBWh3nBNPljTLgwCgYIKoEcz1UBg3UwZDELMAkGA1UEBhMCQ04xDzANBgNVBAgeBmxfgs93ATEPMA0GA1UEBx4GU1dOrF4CMREwDwYDVQQKHghsX4LPXn91NTEPMA0GA1UECx4GeBRT0ZDoMQ8wDQYDVQQDEwZob3N0c20wIhgPMjAxODA1MDExNjAwMDBaGA8yMDI4MDQyODE2MDAwMFowZDELMAkGA1UEBhMCQ04xDzANBgNVBAgeBmxfgs93ATEPMA0GA1UEBx4GU1dOrF4CMREwDwYDVQQKHghsX4LPXn91NTEPMA0GA1UECx4GeBRT0ZDoMQ8wDQYDVQQDEwZob3N0c20wWTATBgcqhkjOPQIBBggqgRzPVQGCLQNCAAQcD98W5PosZ9/wKBZ9bs0ptmHGmJINGFCKx6e21Q4tuh9zKaTK8jK3xhBUn3fuNjXRJdoDig9KtiUvtTx1Ic+Do10wWzAMBgNVHRMEBTADAQH/MB0GA1UdDgQWBBTC63xhEIVsWb/bTh97bvPGbK5LEjAfBgNVHSMEGDAWgBTC63xhEIVsWb/bTh97bvPGbK5LEjALBgNVHQ8EBAMCAYYwCgYIKoEcz1UBg3UDSAAwRQIgFh0UKPEps5RtcfXMGLHUGj0OHnvmrAa3mU1+KgJ4EcwCIQCL6XJD1P9f1CrjKtdYx99LIRGr/fE3Roskz2sqnJgqNzGCAX4wggF6AgEBMHUwZDELMAkGA1UEBhMCQ04xDzANBgNVBAgeBmxfgs93ATEPMA0GA1UEBx4GU1dOrF4CMREwDwYDVQQKHghsX4LPXn91NTEPMA0GA1UECx4GeBRT0ZDoMQ8wDQYDVQQDEwZob3N0c20CDQDRBXBWh3nBNPljTLgwDAYIKoEcz1UBg3UFAKCBmDAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTE4MDUwNzA1NTcwOFowKwYLKoZIhvcNAQkQAgwxHDAaMBgwFgQUO0MZOugNRehbYMXIMpo4uFLt3TUwLwYJKoZIhvcNAQkEMSIEIINwyxYjE+f543XGjgaGGNcHtDukgYZXHxTEwfRRSlRyMA0GCSqBHM9VAYItAQUABEYwRAIgEmme0ZUCW8pQiAEOvrd6tFERUXIZx5UGSmD9pMX9jPECICgCKnNmubMt6krmtugqLyfuRiwuCI4lAh9d9Mwd5b43",
        "name": "RecordNTSC"
      }
    ],
    "pageNo": 1,
    "pageSize": 100,
    "totalCount": 1
  }
}

获取程序版本号信息

接口说明:查询当前运行程序的版本号信息。

请求方式: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"
    }
  ]
}

results matching ""

    No results matching ""