You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过交易ID获取资产与参与者状态及交易历史查询咨询

问题解答

一、如何通过交易ID获取资产和参与者的状态

你可以通过REST API或Composer SDK两种方式实现,具体步骤如下:

方法1:使用REST API

  1. 首先调用 GET /system/historian/{transactionId} 接口,获取对应的HistorianRecord记录。这个记录里的transactionInvoked字段会指向实际执行的交易资源(比如创建参与者、更新资产的交易)。
  2. 解析transactionInvoked的值:它的格式是resource:{命名空间}.{类型}#{ID},比如resource:org.example.biznet.Customer#C001。从中拆分出资产/参与者的类型和ID。
  3. 调用对应的资产或参与者查询接口:
    • 如果是参与者,用GET /participants/{参与者类型}#{参与者ID}(比如GET /participants/org.example.biznet.Customer#C001)获取当前状态。
    • 如果是资产,用GET /assets/{资产类型}#{资产ID}(比如GET /assets/org.example.biznet.Asset#A001)获取当前状态。

方法2:使用Composer SDK

如果你用代码开发,可以通过SDK直接查询:

  1. 先建立与业务网络的连接:
    const BusinessNetworkConnection = require('composer-client').BusinessNetworkConnection;
    const businessNetworkConnection = new BusinessNetworkConnection();
    await businessNetworkConnection.connect('admin@your-network');
    
  2. 根据交易ID获取HistorianRecord:
    const historianRecord = await businessNetworkConnection.getHistorianRecord('你的交易ID');
    
  3. 解析transactionInvoked,提取资源类型和ID:
    const resourceRef = historianRecord.transactionInvoked;
    const [type, id] = resourceRef.split('#');
    const resourceType = type.replace('resource:', '');
    
  4. 获取对应的资产或参与者:
    const resource = await businessNetworkConnection.getResource(resourceType, id);
    console.log(resource); // 输出资产/参与者的当前状态
    

二、关于GET /system/historian返回的HistorianRecord格式说明

你看到的返回格式是Composer系统日志记录的标准结构,每个字段的含义如下:

  • $class:标识这条记录是Hyperledger Composer内置的org.hyperledger.composer.system.HistorianRecord类型,用于系统的序列化与反序列化处理。
  • transactionId:该交易的唯一全局标识符,也就是你用来查询的ID。
  • transactionType:实际执行的交易的完全限定类名,比如org.hyperledger.composer.system.AddParticipant是系统内置的添加参与者交易,如果你是自定义交易,这里会显示你自己定义的交易类(比如org.example.biznet.TransferAsset)。
  • transactionInvoked:指向触发该日志记录的具体交易资源的引用。因为HistorianRecord是系统的审计日志,它只保存交易的引用而非完整内容,你可以通过这个引用去查询交易的详细信息,或者从中提取关联的资产/参与者ID(如第一部分所述)。

另外,HistorianRecord通常还包含其他有用字段,比如timestamp(交易执行的时间戳)、identityUsed(执行该交易的用户身份)等,这些信息可以帮你做审计和追溯。


内容的提问来源于stack exchange,提问作者HARESH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:08:42