4.9.1 队列事件定义概述
各个业务系统通过http调用中间件服务的接口,中间件服务端处理完业务,并同步区块数据,根据具体的情况选择合适的消息模式将数据传到RocketMQ队列中。业务系统再调用相应约定好的消息模式取得相应的数据。队列事件会将区块链所有业务数据返回回来,用户可通过相应字段过滤和自己有关的数据。返回结果中的状态码code在交易执行返回码中解释。注意,在下列队列事件类型中,标题名即是队列事件类型Tag名,具体使用方法请参考开源的RocketMQ说明。
4.9.1.1 EVENT_BLOCKNUMBER
消息类型:String
描述:区块链块基本信息,可通过该事件判断交易是否超时,即块号大于超时块号blockLimit,还没有交易结果,交易超时。
事件返回:
名称 | 类型 | 描述 |
---|---|---|
blockNumber | BigInteger | 块号 |
blockHash | String | 块hash |
preBlockHash | String | 前置块hash |
blockTime | long | 出块时间 |
事件返回:
{
"blockNumber": 461429,
"blockHash": "6baff293e52eb64c8f08af1e979a0232799f7e4099af22b7777afca4f995ec21",
"preBlockHash": "1b20b6fa1eb1882d1b3b78f21219064a42b50c8d3a7b1a6b4edf298c16f6115b",
"blockTime": 1523258534000
}
4.9.1.2 EVENT_TX_RECORDED
消息类型:String
描述:交易上链结果
事件返回:
名称 | 类型 | 描述 |
---|---|---|
success | boolean | 交易是否成功 |
bizId | String | 业务ID |
txHash | String | 交易hash |
code | int | 状态码 |
contractList | List<String> | 交易调用的合约地址列表 |
blockNumber | BigInteger | 交易所属块块号 |
regionId | String | 专区编号(专区链才有) |
regionPageHash | String | 专区页哈希(专区链才有) |
事件示例:
{
"txHash": "bfa38721a1329b62c86d3d89eb29bf50066ab7248051d8e46c2ff6d72f5f61e6",
"success": true,
"bizId": "15232584904663177560751671767456",
"code": 0,
"blockNumber": 461416,
"signer": "aaaffeb54c563c3eee2eec1ada933fdb5c07122b",
"contractList": [
"55086cef9e6bd12bc9d98c80f268b7fb9a6ca00b"
]
}
4.9.1.3 EVENT_CONTRACT_CREATE
消息类型:String
描述:收到合约创建事件,比如创建存证记录
事件返回:
名称 | 类型 | 描述 |
---|---|---|
bizId | String | 业务ID |
contractAddress | String | 合约地址 |
data | Object | 合约内容:tableName(合约名,“Record” :存证记录合约)、create(是否是新建合约)、tableColumn(合约字段) |
timestamp | long | 事件生成时间 |
blockNumber | BigInteger | 块号 |
txHash | String | 交易hash |
regionId | String | 专区编号(专区链才有) |
regionPageHash | String | 专区页哈希(专区链才有) |
事件示例:
{
"contractAddress": "687f8d1c6e87892ad431c58ed23193f2a206d34c",
"bizId": "15232584398987404768042364175660",
"timestamp": 1523258444000,
"blockNumber": 461399,
"txHash": "d69e14de28455821f8b01142c314337d6cdc568d90c16eda240b73299b838dc5",
"data": [
{
"tableName": "Record",
"create": true,
"tableColumn": {
"updatorAddress": "ab4b0a79df5f1d710fe3fd4613312bc60e1fbcf7",
"registryAddress": "55086cef9e6bd12bc9d98c80f268b7fb9a6ca00b",
"preSeqId": null,
"bizId": "15232584398987404768042364175660",
"contractAddress": "687f8d1c6e87892ad431c58ed23193f2a206d34c",
"recordData": "recordData",
"creatorAddress": "ab4b0a79df5f1d710fe3fd4613312bc60e1fbcf7",
"seqId": "record-1523258439898",
"customString": "customString"
}
}
]
}
4.9.1.4 EVENT_CONTRACT_UPDATED
消息类型:String
描述:收到智能合约更新事件,比如更新存证记录
事件返回:
名称 | 类型 | 描述 |
---|---|---|
contractAddress | String | 合约地址 |
bizId | String | 业务ID |
timestamp | long | 事件生成时间 |
data | Object | 合约内容:tableName(合约名,“Record” :存证记录合约)、create(是否是新建合约)、tableColumn(合约字段) |
blockNumber | BigInteger | 块号 |
txHash | String | 交易hash |
regionId | String | 专区编号(专区链才有) |
regionPageHash | String | 专区页哈希(专区链才有) |
事件示例:
{
"contractAddress": "c8375c01b56024276206d342d9c7902ad7e3207d",
"bizId": "15232609064943480557577484125530",
"timestamp": 1523260910000,
"blockNumber": 462221,
"txHash": "13aef81b2ff6d80ddfa326bba1853f908857aca4843d6fef85f1c029cd56877e",
"data": [
{
"tableName": "Record",
"create": false,
"tableColumn": {
"updatorAddress": "ab4b0a79df5f1d710fe3fd4613312bc60e1fbcf7",
"registryAddress": "b6ae9b3d32a5dfc6e5403c7c27f31d3994dc54fc",
"preSeqId": null,
"bizId": "15232609064943480557577484125530",
"contractAddress": "c8375c01b56024276206d342d9c7902ad7e3207d",
"recordData": "recordData",
"creatorAddress": "ab4b0a79df5f1d710fe3fd4613312bc60e1fbcf7",
"seqId": "record-1523260907043",
"customString": "customString"
}
}
]
}
4.9.1.5 EVENT_AUTOTXRETRY_SUCCESS
消息类型:String
描述:收到重试交易成功事件
事件返回:
名称 | 类型 | 描述 |
---|---|---|
flowNumber | String | 交易流水号 |
blockLimit | long | 超时块号 |
bizId | String | 业务ID |
contractAddress | String | 合约地址 |
txHash | String | 交易哈希 |
blockNumber | long | 交易存储的块号 |
retryTimes | int | 重试次数 |
txStatus | String | 交易状态 |
description | String | 错误描述 |
createTime | String | 创建时间 |
updateTime | String | 修改时间 |
regionId | String | 专区编号(专区链才有) |
事件示例:
{
"flowNumber": "15232584904663177560751671767456",
"blockLimit": 10021,
"bizId": "12937492347927937",
"contractAddress": "e3772c2001aca5cf6a098523442d8692b98b2e8f",
"txHash": "fae20e7c0b906f050063b3e9840f62f3b46f80369306e6e24d4e217ab4e0e181",
"blockNumber": 12838,
"retryTimes": 1,
"txStatus": "SUCCESS",
"description": "",
"createTime": "2018-09-19 14:20:00",
"updateTime": "2018-09-19 19:20:00"
}
4.9.1.6 EVENT_AUTOTXRETRY_INVALID
消息类型:String
描述:收到重试交易失效事件
事件返回:
名称 | 类型 | 描述 |
---|---|---|
flowNumber | String | 交易流水号 |
blockLimit | long | 超时块号 |
bizId | String | 业务ID |
retryTimes | int | 重试次数 |
txStatus | String | 交易状态 |
txHash | String | 交易哈希 |
description | String | 错误描述 |
createTime | String | 创建时间 |
updateTime | String | 修改时间 |
regionId | String | 专区编号(专区链才有) |
事件示例:
{
"flowNumber": "15232584904663177560751671767456",
"blockLimit": 10021,
"bizId": "12937492347927937",
"retryTimes": 1,
"txStatus": "INVALID",
"txHash": "fae20e7c0b906f050063b3e9840f62f3b46f80369306e6e24d4e217ab4e0e181",
"description": "",
"createTime": "2018-09-19 14:20:00",
"updateTime": "2018-09-19 19:20:00"
}