0

私は 2 つのチェーンコードを持っています。それらを 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] プライバシーが有効になっていると、チェーンコードとチェーンコードの相互作用がサポートされないというエラーが発生しました。

Sending ERROR Error starting Simple chaincode: エラー処理メッセージ: [72047168-5f5a-4017-862a-1329660e2076]Chaincode handler FSM cannot handle message (COMPLETED) while in state: ready

プロセスは終了コード 0 で終了しました

明らかに、プライバシーがチェーンコード間の通信を妨害します。プライバシーを維持しながら通信を可能にする方法はありますか? それとも、絶対にすべてを単一の巨大なチェーンコードに入れるのがベストプラクティスですか?

さらに、プライバシーがチェーンコード間の通信を妨害するのはなぜですか? なぜこれが起こるのか正確にはわかりません。

4

1 に答える 1

0

これはハイパーレジャーの既知の問題であり、現在取り組んでいるようです。そのため、現時点では回避策はありませんが、将来的にこの問題が処理されるときに回避策が提供される可能性があります。

関連する問題

于 2016-07-18T17:59:39.587 に答える