余额转移示例的invoke-transaction.js中的事务ID响应有什么用途?

时间:2018-07-15 04:48:01

标签: node.js hyperledger-fabric hyperledger hyperledger-fabric-sdk-go

我目前正在学习如何使用Hyperledger Fabric Node SDK开发客户端应用程序。为此,我现在尝试了解fabric-samples中余额转移示例的Node JS代码。

balance-transfer / app / invoke-transaction.js 文件中,invokeChaincode函数返回交易ID。返回的值是app.js调用后函数的res参数。

我的问题是,仅凭交易ID可以做什么?如果我想知道调用的阻止号怎么办?只是没有进一步使用的回应吗?

如果这是一个愚蠢的问题,请忍受,我是新来的。

谢谢!


这是陈述的app.js的代码段

// Invoke transaction on chaincode on target peers
app.post('/channels/:channelName/chaincodes/:chaincodeName', function(req, res) {
    logger.debug('==================== INVOKE ON CHAINCODE ==================');
    var peers = req.body.peers;
    var chaincodeName = req.params.chaincodeName;
    var channelName = req.params.channelName;
    var fcn = req.body.fcn;
    var args = req.body.args;
    logger.debug('channelName  : ' + channelName);
    logger.debug('chaincodeName : ' + chaincodeName);
    logger.debug('fcn  : ' + fcn);
    logger.debug('args  : ' + args);
    if (!chaincodeName) {
        res.json(getErrorMessage('\'chaincodeName\''));
        return;
    }
    if (!channelName) {
        res.json(getErrorMessage('\'channelName\''));
        return;
    }
    if (!fcn) {
        res.json(getErrorMessage('\'fcn\''));
        return;
    }
    if (!args) {
        res.json(getErrorMessage('\'args\''));
        return;
    }

    invoke.invokeChaincode(peers, channelName, chaincodeName, fcn, args, req.username, req.orgname)
    .then(function(message) {
        res.send(message);
    });
});

1 个答案:

答案 0 :(得分:0)

您可以使用交易ID侦听任何事件,或稍后在分类帐中查询交易。

收听事件:https://github.com/hyperledger/fabric-samples/blob/release/balance-transfer/app/invoke-transaction.js#L101

查询交易记录:https://github.com/hyperledger/fabric-samples/blob/release/balance-transfer/app/query.js#L100

这取决于您如何使用它。

有关更多信息,请参阅SDK文档:https://fabric-sdk-node.github.io/index.html