在启用隐私的链代码之间传递查询
Passing queries between chaincodes with privacy enabled
我有两个链码——我们称它们为 A 和 B——我试图让 A 在启用隐私的设置中调用 B 上的方法。下面显示了我尝试进行的那种调用的示例。
func (e *ChaincodeA) someFuncOnChaincodeA(stub *shim.ChaincodeStub, args []string) ([]byte, error) {
//Do stuff
newArgs := []string{"somevalue1","somevalue2"}
msg, err := stub.InvokeChaincode(chaincodeBName,"someFuncOnChaincodeB",args)
if err != nil{
fmt.Println(err.Error())
}
return msg, err
}
但是,每当我尝试 运行 时,它会在终止我的链代码之前给出以下错误消息:
[72047168]Error chaincode-chaincode interactions not supported for
with privacy enabled.
Sending ERROR Error starting Simple chaincode:
Error handling message:
[72047168-5f5a-4017-862a-1329660e2076]Chaincode handler FSM cannot
handle message (COMPLETED) with payload size (0) while in state: ready
Process finished with exit code 0
显然隐私会干扰链码-链码通信。有没有办法解决这个问题,在保持隐私的同时实现通信?还是将所有内容完全放入一个巨大的链代码中是最佳实践?
此外,为什么隐私会干扰链代码与链代码之间的通信?我不明白为什么会这样。
这似乎是 hyperledger 的一个已知问题,正在处理中。因此,目前没有解决方法,但将来处理此问题时可能会有。
我有两个链码——我们称它们为 A 和 B——我试图让 A 在启用隐私的设置中调用 B 上的方法。下面显示了我尝试进行的那种调用的示例。
func (e *ChaincodeA) someFuncOnChaincodeA(stub *shim.ChaincodeStub, args []string) ([]byte, error) {
//Do stuff
newArgs := []string{"somevalue1","somevalue2"}
msg, err := stub.InvokeChaincode(chaincodeBName,"someFuncOnChaincodeB",args)
if err != nil{
fmt.Println(err.Error())
}
return msg, err
}
但是,每当我尝试 运行 时,它会在终止我的链代码之前给出以下错误消息:
[72047168]Error chaincode-chaincode interactions not supported for with privacy enabled.
Sending ERROR Error starting Simple chaincode: Error handling message: [72047168-5f5a-4017-862a-1329660e2076]Chaincode handler FSM cannot handle message (COMPLETED) with payload size (0) while in state: ready
Process finished with exit code 0
显然隐私会干扰链码-链码通信。有没有办法解决这个问题,在保持隐私的同时实现通信?还是将所有内容完全放入一个巨大的链代码中是最佳实践?
此外,为什么隐私会干扰链代码与链代码之间的通信?我不明白为什么会这样。
这似乎是 hyperledger 的一个已知问题,正在处理中。因此,目前没有解决方法,但将来处理此问题时可能会有。