我们想从go语言链代码本身调用其中一个函数。这样做的原因是我们希望基于流为某些逻辑创建单独的事务块。
例如, 如果我们有一个名为' transferFund '的函数,那么我们正在阅读两个人的余额(让它成为名为' readBalance '的函数)。我们需要创建3个块:1个用于“ transferFund ”,2个用于“ readBalance ”
答案 0 :(得分:1)
要在您的链码中调用另一个链码,您可以使用
stub.InvokeChaincode(chaincodeName, queryArgs, channelName)
如果您想在同一频道中调用链码,channelName
可以为空。
但是,我认为调用不会添加新事务,因为必须验证另一个代码的调用,并且您可以使用调用结果更改基于它的分类帐上的数据。所以一切都将在一次交易中结束。
还要确保区分块和交易。
块
一组有序的事务,以加密方式链接到通道上的前一个块。
交易
调用或实例化提交用于排序,验证和提交的结果。调用是从分类帐读取/写入数据的请求。 Instantiate是一个启动和初始化通道上的链代码的请求。应用程序客户端收集来自支持对等方的调用或实例化响应,并将结果和认可打包到提交用于排序,验证和提交的事务中。
http://hyperledger-fabric.readthedocs.io/en/release/glossary.html