如何在Hyperledger Composer中从一个链码调用另一个链码?

时间:2018-11-02 11:14:00

标签: hyperledger-fabric hyperledger-composer

我正试图在POC上工作,这需要这样做:

-来自BusinessNetwork#1的交易应调用来自BusinessNetwork#2的另一笔交易

目前,我仅尝试使用相同的数据创建两个网络,其中,如果一个网络中的数据发生更改,另一个网络应自动反映该更改。

我一直在尝试使用nativeApi()。invokeChainCode()函数,但是我不知道如何使用它来调用自定义创建的交易函数。

非常感谢您的帮助。 :)

2 个答案:

答案 0 :(得分:0)

有一个教程可以帮助您入门 https://hyperledger.github.io/composer/latest/tutorials/invoke-composer-network

但是,您应该知道,如果业务网络位于不同的通道上,您只能查询另一个业务网络,则将无法更新另一个业务网络。为此,它们必须在同一频道上。

答案 1 :(得分:0)

我利用console.log()并找到了解决方案。

const asset = '{
  "$class": "org.example.mynetwork.Trade",
  "commodity": "resource:org.example.mynetwork.Commodity#0518",
  "newOwner": "resource:org.example.mynetwork.Trader#4530"
}'

await getNativeAPI().invokeChaincode('other-tutorial-network', ['submitTransaction', 
asset]);

这里,other-tutorial-network是业务网络的名称/链码的名称。

我猜我们在composer中创建的事务处理功能始终位于结构的'submitTransaction()'函数下,并采用JSON(如字符串)作为参数。