1

私はこれを手に入れました。かなり一般的なエラーだと思います"..LedgerError - ResourceNotFound: ledger: resource not found" .

簡単にするために、これは私が持っているものです:

  1. 単純なチェーンコード、指定されたchaincode_example02.goコードを試してください

  2. セキュリティがオフになっているため、CA がありません(CORE_SECURITY_ENABLED=false CORE_SECURITY_PRIVACY=falss)

  3. 1 つのピア ノードのみ (0.5 バージョンを使用)、ピア Docker イメージです

  4. 開発モードで実行

これは、開発モードでコードをデプロイした方法です。cli が正しいかどうかを確認してください。

CORE_CHAINCODE_ID_NAME=mycc CORE_PEER_ADDRESS=0.0.0.0:30303 ./chaincode_example02 

そしてそれは示しています

'Received REGISTERED, ready for invocations'

今それを照会しようとして、pls はこの cli が正しいかどうか確認します:

peer chaincode query -n mycc -c '{"Function": "query", "Args": ["b"]}'

しかし、返されたエラーは次のとおりです。

Error: Error querying chaincode: rpc error: code = 2 desc = "Error:Failed to launch chaincode spec(Could not get deployment transaction for chaincode_example02 - LedgerError - ResourceNotFound: ledger: resource not found)"

何か案が?下のすべてのログをチェックしました/varが、役に立つものは何も見つかりませんでした。 /var/hyperledger/var/hyperledger/production/db

この試行は非常に単純に見えますが、エラーが発生するのは驚きです。

..では、これをデバッグするにはどうすればよいですか?

4

1 に答える 1

0

次のコマンド、

CORE_CHAINCODE_ID_NAME=mycc CORE_PEER_ADDRESS=0.0.0.0:30303 ./chaincode_example02 

チェーンコードではなくdeploy、チェーンコードを開始して検証ピアに登録するだけです。

登録したら、する必要がdeployありinvokeますquery

ここに記載されているように、

まず、検証ピアにチェーンコード デプロイ トランザクションを 1 回だけ送信します。CLI は、core.yaml ファイルで定義されたプロパティを使用して検証ピアに接続します。注: 通常、デプロイ トランザクションには、チェーンコードを検索、ビルド、およびデプロイするためのパス パラメーターが必要です。ただし、これらの手順はローカル開発モードに固有であり、チェーンコードは手動でデプロイされるため、代わりに name パラメーターが使用されます。

peer chaincode deploy -n mycc -c '{"Function":"init", "Args": ["a","100", "b", "200"]}'

デプロイしたら、何度でも呼び出すことができ、その後query、呼び出されたトランザクション、

invoke

peer chaincode invoke -l golang -n mycc -c '{"Function": "invoke", "Args": ["a", "b", "10"]}'

そしてquery

peer chaincode query -l golang -n mycc -c '{"Function": "query", "Args": ["b"]}'

またpeer、1 つのターミナルで実行し、2 番目のターミナルでチェーンコードを実行し、3 番目のターミナルからトランザクションをデプロイ、呼び出し、クエリしていることを確認してください。

于 2016-09-28T01:03:20.523 に答える