2017-09-01 2 views
0

Verwenden des HyperLEDGER-Composer NodeJS SDK auf den neuesten Ebenen. Der Versuch, Ping-Netzwerk mit dem mitgelieferten Beispiel-Code in Komponisten-admin pinghyperledger-composer nodejs sdk ping schlägt fehl

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()}); 
       }); 
      }); 

Wenn Sie diesen Befehl ausführen, erhalten die folgende Antwort:

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

Allerdings dauert der Ping-Befehl keine Parameter. Hilfe bitte?

Die Überprüfung des Composer-Admin-Codes zeigt, dass der Sicherheitskontext vor einem Ping ausgewertet wird. Wenn ich das Sicherheitskontextobjekt anschaue, das von der new composer.AdminConnection()-Anforderung zurückgegeben wird, ist das Netzwerkbezeichnerobjekt leer - undefiniert. Wenn ich das Feld mit meiner Netzwerk-ID aktualisieren mit dem folgenden Code

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

die Fehlermeldungen zu ändern:

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 

Mit dem Admin-Interface Netzwerke kehren dieses Netzwerk zur Liste wie im Einsatz. Verstehe nicht, warum die Nachricht über Chaincode erfolgt, wenn das Update auf die Netzwerk-ID angewendet wurde, die vom Composer-Archiv erstellt und über die Composer-Deploy-Services bereitgestellt wurde.

Antwort

0

Ob dies ein Fehler war oder nicht, wurde in der neuesten Version von Composer (v0.12) behoben. Es wird dringend empfohlen, Versionsnummern aus der Datei "package.json" für alle Knotenmodule des Composers zu entfernen, da diese sehr häufig aktualisiert werden und Versionskonflikte viele falsche Fehler erzeugen.

Verwandte Themen