0

我目前正在运行一个包含 2 个链码、2 个通道和 2 个组织的项目。我想在由 org1 和 org2 组成的第一个通道 (channel-1) 上安装我的第一个链代码 (CC1)。第二个链码(CC2)将安装在仅由 org2 组成的通道 2 上。

我想从第一个链码中检索数据,检索到的数据将用于第二个链码。是否可以使用 invokeChaincode 方法从不同通道上的链码中检索数据?

如果不可能,那么从安装在不同通道上的其他链码中检索数据的方法是什么?

我正在使用超级账本结构 2.0 版和节点 js 来构建我的链码。

4

2 回答 2

0

您可以使用 invokeChaincode 函数从不同的通道调用链代码:

//get data from channel 1
const cc1Args = ['arg1', 'arg2'];
const cc1Res = await ctx.stub.invokeChaincode('CC1', cc1Args, 'channel-1');
if (cc1Res.status !== 200) {
    throw new Error(cc1Res.message);
}
const cc1Asset = JSON.parse(cc1Res.payload.toString('utf8'));

//save data to channel 2
const cc2Args = [cc1Asset.arg1, cc1Asset.arg2];
const cc2Res = await ctx.stub.invokeChaincode('CC2', cc2Args, 'channel-2');
if (cc2Res.status !== 200) {
    throw new Error(cc2Res.message);
}
const cc2ResObj = JSON.parse(cc1Res.payload.toString('utf8'));

您还可以阅读以下文档invokeChaincodehttps ://hyperledger.github.io/fabric-chaincode-node/master/api/fabric-shim.ChaincodeStub.html#invokeChaincode__anchor

于 2020-05-28T03:18:44.493 回答