2

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

balance-transfer/app/invoke-transaction.js文件中,invokeChaincode 函数返回 Transaction ID。而那个返回值就是 app.js 调用 post 函数的 res 参数。

我的问题是,仅使用 Transaction 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);
    });
});
4

1 回答 1

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

于 2018-07-15T08:40:09.160 回答