[英]Hyperledger-Composer: Why use Node.js instead of Angular?
[英]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
使用管理界面列出网络将返回已部署的该网络。 当对由作曲家档案库创建并通过作曲家部署服务进行部署的网络标识符进行更新时,不明白为什么消息是关于链码的。
无论这是否是错误,都已在最新版本的composer(v0.12)中解决。 强烈建议从package.json文件中删除所有作曲家节点模块的版本号,因为这些版本会非常频繁地更新,并且版本不匹配会产生许多虚假的错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.