2017-09-04 1 views
1
peer chaincode install -n simple-token -v 1.0 -l java -p /Users/friends/Documents/Virtual\ Machines.localized/share/projects/hsl-hsl-user-guide-examples-v14/simple-token/simple-token-chaincode 

instance de chaînage homologue a réussi.Pourquoi le chaînage instancié le succès, mais la requête a échoué

peer chaincode instantiate -o orderer:7050 -C helloch -n simple-token -v 1.0 -l java -c "{\"Args\":[\"init\",\"{'id':'admin1','nick':'admin','type':'ADMIN','balance':100}\", \"{'id':'LiLei','nick':'LiLei','type':'ORDINARY','balance':100}\", \"{'id':'HanMeimei','nick':'HanMeimei','type':'ORDINARY','balance':100}\"]}" 

mais échoué dans la requête de chaînage homologue dans mon shell non cli docker En fait,

peer chaincode query -o 127.0.0.1:7050 -C helloch -n hello -c "{\"Args\":[\"user.get\",\"\",\"LiLei\"]}" 

Error: Error endorsing query: rpc error: code = Unknown desc = could not find chaincode with name 'simple-token' - make sure the chaincode simple-token has been successfully instantiated and try again - hy

+0

Pouvez-vous exécuter "docker ps" pour voir à quel moment votre conteneur chaincode est en cours d'exécution? Ou docker "ps -a | grep -i hello" et "docker logs containerID" pour voir la sortie? –

+0

Basé sur les journaux fournis dans votre autre question: https://stackoverflow.com/questions/46045970/why-peer-chaincode-instantiate-execuate-many-times-successfully il semble que pair ne peut tout simplement pas récupérer le bloc avec une transaction instanciée, d'où Le conteneur chaincode n'est pas étendu et vous ne pouvez donc pas interroger votre code d'accès. –

Répondre

0

probablement quelque chose qui a mal tourné lorsque l'homologue effectivement essayé de démarrer/lancer le chaincode. L'appel d'instanciation crée simplement une transaction qui est renvoyée à l'homologue via l'ordonnanceur. Ainsi, bien que la CLI ait indiqué le succès, tout ce que cela signifie vraiment, c'est que la transaction d'instanciation a été approuvée avec succès par le pair et ensuite soumise avec succès à l'acheteur.

Vous voulez vérifier les journaux réels pour votre homologue.

+0

Il semble que 'peer chaincode instantiate' ne génère pas l'instance. Parce que je peux utiliser cette commande plusieurs fois. Une seule fois est correcte. Peux-tu me dire quelques raisons d'échouer? –

+0

Généralement, soit un problème de compilation du chaînage, soit l'autre problème est que le conteneur chaincode ne peut pas communiquer avec le pair. Vous devriez être en mesure de voir les erreurs dans le (s) journal (s) de votre pair (s) –

+0

Je pense que la raison est instanciée a échoué. –

1

Le comportement décrit peut être dû au fait que l'homologue n'est pas en mesure d'obtenir le bloc avec la commande instantiate. La commande instantiate après tout est une transaction qui doit être endossée, ordonnée et engagée. Ce qui vous rend probablement confus est le fait que peer cli a réussi à endosser une transaction d'instanciation et à la soumettre au service de commande. Bien qu'il ne puisse pas être validé, le conteneur chaincode n'est pas démarré et, par conséquent, vous ne pouvez pas interroger votre code d'accès.

+1

Oui, il a été résolu. [Ici] (https://stackoverflow.com/questions/46045970/why-peer-chaincode-instantiate-execuate-many-times-successfully/46048140#46048140), merci! –