hyperledger-composer nodejs sdk ping 失败

hyperledger-composer nodejs sdk ping fails

使用最新级别的 hyperledger-composer NodeJS SDK。尝试使用 composer-admin ping

中提供的示例代码来 ping 网络
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()});
                });
            });

执行该命令时,得到如下响应:

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

但是,ping命令没有参数。请帮助?

检查 composer-admin 代码,表明在 ping 之前评估了安全上下文。当我查看 new composer.AdminConnection() 请求返回的安全上下文对象时,网络标识符对象为空 - 未定义。如果我使用以下代码

用我的网络标识符更新该字段
adminConnection.securityContext.connection.businessNetworkIdentifier = "zerotoblockchain-network@0.1.6";

错误消息更改为:

Error: error trying to ping. 
Error: error trying to query chaincode. 
Error: could not find chaincode with name 'zerotoblockchain-network@0.1.6' - make sure the chaincode zerotoblockchain-network@0.1.6 has been successfully instantiated and try again

使用管理界面列出网络 returns 此网络已部署。不明白为什么消息是关于链代码的,当更新是由作曲家存档创建并通过作曲家部署服务部署的网络标识符时。

无论这是否是一个错误,它已在最新版本的 composer (v0.12) 中得到解决。强烈建议从 package.json 文件中删除所有 composer 节点模块的版本号,因为这些模块更新非常频繁,并且版本不匹配会产生许多虚假错误。