2017-09-01 7 views
0

En utilisant le SDK NodeJS hyperledger-compositeur aux derniers niveaux. Toute tentative de réseau ping en utilisant le code exemple fourni dans ping compositeur-adminhyperledger-compositeur nodejs sdk ping échoue

var fs = require('fs'); 
var path = require('path'); 
var composer = require('composer-admin'); 
var composerClient = require('composer-client'); 
var composerCommon = require('composer-common'); 

    var adminConnection = new composer.AdminConnection(); 
    adminConnection.connect(config.composer.connectionProfile, config.composer.adminID, config.composer.adminPW) 
     .then(function(){ 
      adminConnection.ping() 
       .then(function(result){ 
        console.log("network ping successful: ",result); 
        res.send({ping: result}); 
       }) 
       .catch(function(error){ 
        var _error = error; 
        console.log("network ping failed: "+_error); 
        res.send({ping: _error.toString()}); 
       }); 
      }); 

Lors de l'exécution de cette commande, obtenir la réponse suivante:

Error: error trying to ping. 
Error: error trying to query chaincode. 
Error: Missing "chaincodeId" parameter in the proposal request 

Cependant, la commande ping ne prend aucun paramètre. Aidez-moi, s'il vous plaît?

L'inspection du code de l'administrateur-compositeur montre que le contexte de sécurité est évalué avant un ping. Lorsque je regarde l'objet de contexte de sécurité renvoyé par la demande new composer.AdminConnection(), l'objet d'identificateur de réseau est vide - non défini. Si je mets à jour ce champ avec mon identifiant de réseau en utilisant le code suivant

adminConnection.securityContext.connection.businessNetworkIdentifier = "[email protected]"; 

les messages d'erreur changent à:

Error: error trying to ping. 
Error: error trying to query chaincode. 
Error: could not find chaincode with name '[email protected]' - make sure the chaincode [email protected] has been successfully instantiated and try again 

Utilisation de l'interface d'administration à la liste des rendements des réseaux ce réseau déployé. Je ne comprends pas pourquoi le message concerne le chaincode lorsque la mise à jour a été effectuée sur l'identifiant réseau créé par l'archive du composeur et déployé via les services de déploiement du composeur.

Répondre

0

Qu'il s'agisse ou non d'un bogue, il a été résolu dans la dernière version de composer (v0.12). Recommandez fortement de supprimer les numéros de version du fichier package.json pour tous les modules de noeud compositeur car ceux-ci sont mis à jour très fréquemment et les incompatibilités de versions génèrent de nombreuses erreurs parasites.