2016-07-18 14:15 浏览 14


I have two chaincodes - let's call them A and B - and I am trying to get A to invoke a method on B, in a setup that has privacy enabled. An example of the sort of call I'm trying to make is shown below.

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{

    return msg, err

However, whenever I try to run this, it gives me the following error messages before killing my chaincode:

[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

Evidently privacy interferes with chaincode-chaincode communications. Is there any way around this, to enable communications while maintaining privacy? Or is it a best-practice to put absolutely everything into a single gigantic chaincode?

Additionally, why does privacy interfere with chaincode-chaincode communications? I don't understand exactly why this occurs.

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答 默认 最新

  • 已采纳
    douzhan8303 douzhan8303 2016-07-18 17:59

    It appears that this is a known issue with hyperledger, that is being worked on. As such there is no current workaround, but there will likely be one in the future when this issue is dealt with.

    Relevent Issue

    点赞 评论 复制链接分享