invoke操作成功后如何获取txid |超级账本结构 2.x

How to get txid after successful invoke operation | hyperledger fabric 2.x

在 HLF 1.4 中,我可以在调用操作成功后获取事务 ID。但是在 HLF 2.x 中,我没有收到 txid。我可以在状态数据库(couch db)中看到我提交给 hlf 的数据。那为什么我没有收到 txid。这是链码的最后一行,

return shim.Success(nil)

使用节点 sdk 提交交易。

result = await contract.submitTransaction(fcn, args);
console.log("Result:", result.toString())

以上一行为空。帮我获取tx id。

函数 submitTransaction 只有 1 line of code:

return this.createTransaction(name).submit(...args);

因此您可以使用此代码代替您的代码:

const transaction = contract.createTransaction(fcn);
const result = await transaction.submit(...args);
console.log("Result:", result.toString())
console.log("TxID:", transaction.getTransactionId());

添加到@harisato_vn 优秀的答案,我发现官方文档 here 在末尾使用大写字母,如 getTransactionID(),但它实际上是 getTransactionId()。这让我发疯了一会儿。