Fabric Network Setup ガイドの助けを借りて、4 つのピアをセットアップしました。CC をデプロイし、REST API 呼び出しを使用して呼び出し関数を呼び出すことができました。
両方のメッセージは成功しましたが、クエリ メッセージは単に失敗しました。同じコマンド セットが dev モード (peer node start --peer-chaincodedev) でインスタンス化された単一のピアに適用された場合に正常に動作するため、これは奇妙です。
4 つのノードは Docker コンテナーを使用してセットアップされていることに注意してください。クエリに対する JSON 応答の例を次に示します。
{
"jsonrpc":"2.0",
"error":{
"code":-32003,
"message":"Query failure",
"data":"Error when querying chaincode: Error:Failed to launch chaincode spec(Could not get deployment transaction for 04233c6dd8364b9f0749882eb6d1b50992b942aa0a664182946f411ab46802a88574932ccd75f8c75e780036e363d52dd56ccadc2bfde95709fc39148d76f050 - LedgerError - ResourceNotFound: ledger: resource not found)"
},
"id":5
}
インボーク コールの後に取得したハッシュに基づいてトランザクションのデータを取得するために GET コールを実行したところ、指定されたトランザクションが見つからないという応答が返されました。
ブロック内のデータを表示すると、データが含まれていないと思われるブロックが生成されます。つまり、展開トランザクションが単に失敗したことを意味します。
編集: 以下は、URL http://172.17.0.2:7050/chaincode (POST)でのデプロイ用に JSON 経由で渡されるパラメーターです。
{
"jsonrpc":"2.0",
"method":"deploy",
"params":{
"type":1,
"chaincodeID":{
"path":"github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02"
},
"ctorMsg":{
"function":"init",
"args":[
"a",
"100",
"b",
"200"
]
}
},
"id":1
}