链上信息发布到消息队列

前置条件

  1. 您需要在区块链实例中安装云服务集成, 并开通RocketMQ集成功能。

  2. 创建一个 RocketMQ消息队列实例,文中以实例“fabric-instance”,消息主题“event”为例。

  3. 下载云服务集成示例代码

  4. 本地安装 Node.js v8 环境(版本要求是V8.17.0及以上)。

使用方法

  1. 在控制台创建云服务集成消息队列触发器,更多可以参考配置消息队列触发器

    1. 配置触发器的事件类型为 Tx。

    2. 根据帮助,填写RocketMQ实例的相关信息。

  2. 按照文档部署链码将示例链码taskmgr部署到通道中。

  3. 进入 blockchain2sms 目录,按照注释修改 main.js 中的配置参数,填入REST API地址、Refresh Token、通道名和智能合约名称。更多信息请参考文档使用REST API

  4. 执行 npm install 安装依赖包,通过 node main.js 发起示例交易。

  5. 进入RocketMQ控制台,根据以下操作便可查询到已经推送到消息队列的消息。

    1. 在左侧导航栏,单击实例列表

    2. 在顶部菜单栏,选择地域,如华东1(杭州)。

    3. 在实例列表中找到您需要查询的目标实例,在其操作列单击更多,然后在弹出的下拉菜单中选择消息查询

    RocketMQ集成

成功示例输出

Data pushed to blockchain with transaction 701c7006f26aed8457273a00bbfcc8cea4d75eac958996e07837036ea7e2fdac
{ id: '701c7006f26aed8457273a00bbfcc8cea4d75eac958996e07837036ea7e2fdac',
  status: '200',
  events:
   [ { type: 'Contract',
       platform: 'Fabric',
       instance_id: 'csi-e2ehmfqasth-bcw7tzao2dzeo',
       network: '',
       id: '',
       name: 'event-create-task',
       content: 'eyJuY...TAz' }
Data pushed to blockchain with transaction 60a06a189415db587b49cbf91b46467bce1ea16490b19f6dfc8d520aa31240bc
{ id: '60a06a189415db587b49cbf91b46467bce1ea16490b19f6dfc8d520aa31240bc',
  status: '200',
  events:
   [ { type: 'Contract',
       platform: 'Fabric',
       instance_id: 'csi-e2ehmfqasth-bcw7tzao2dzeo',
       network: '',
       id: '',
       name: 'event-task-finished',
       content: 'eyJuY...p7In0=' } ],
  data: 'eyJu...In0=' }
Data pushed to blockchain with transaction 7810e0496a1c91a16102736b00a6f26da0baa42874a907fff26bff1b7eb3bf27
{ id: '7810e0496a1c91a16102736b00a6f26da0baa42874a907fff26bff1b7eb3bf27',
  status: '200',
  events: [],
  data: 'eyJu...nIn0=' }