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

如何在Hyperledger Composer交易处理器函数内获取交易ID?

在Hyperledger Composer交易处理器中获取交易ID的方法

嘿,刚好对这个问题很熟悉!在Hyperledger Composer的交易处理器函数里,获取交易ID其实非常直接——你只需要利用传入的交易上下文(Context)对象就能拿到。

核心思路

交易处理器函数的第二个参数ctx(上下文)里内置了交易的元数据,其中就包含了系统生成的唯一交易ID,直接通过ctx.transactionId就能访问到。

代码示例

假设你有一个自定义交易MyTransaction,对应的处理器函数可以这么写:

/**
 * 自定义交易处理器
 * @param {org.example.MyTransaction} tx 交易实例
 * @param {composer.runtime.Context} ctx 交易上下文
 * @transaction
 */
async function handleMyTransaction(tx, ctx) {
    // 从上下文获取交易ID
    const txId = ctx.transactionId;
    
    // 这里可以根据需求使用交易ID,比如打印日志
    console.log("当前提交的交易ID: ", txId);
    
    // 示例:把交易ID关联到某个资产上
    const targetAsset = await ctx.assetRegistry.get('org.example.MyAsset', tx.assetId);
    targetAsset.lastTxId = txId;
    await ctx.assetRegistry.update(targetAsset);
    
    // 如果需要把交易ID返回给调用客户端,直接返回即可
    return { transactionId: txId };
}

额外说明

  • ctx.transactionId是Hyperledger Fabric自动生成的唯一标识符,和你在交易模型里定义的字段无关
  • 客户端调用这个交易后,会收到处理器返回的对象,里面就包含了交易ID,刚好满足你“提交交易后返回交易ID”的需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:42:42