使用Node.js SDK连接Hyperledger网络时遇'x-type'属性缺失错误求助
解决Hyperledger Composer Node.js SDK连接时"No connection type provided"错误
这个报错的核心原因是你用来连接的业务网络卡片(card)对应的连接配置文件里缺少了x-type属性——Hyperledger Composer 0.16.3版本的Node.js SDK依赖这个属性来识别底层的区块链连接类型,所以才会抛出这个提示。
你可以按照以下步骤修复:
导出并查看卡片的连接配置
先把你的目标卡片导出到本地:composer card export -c card_name -f card_name.card把导出的
.card文件重命名为.zip并解压,在解压后的文件夹里找到connection.json文件。添加
x-type属性到连接配置
打开connection.json,在配置的根节点添加"x-type": "hlfv1"(因为Composer 0.16.x对应的是Hyperledger Fabric 1.0,也就是hlfv1类型)。修改后的配置大概长这样:{ "name": "hlfv1", "x-type": "hlfv1", "x-commitTimeout": 300, "version": "1.0.0", "client": { // 原有客户端配置内容 }, // 其他原有配置内容 }重新打包并导入卡片
把修改后的connection.json放回解压的文件夹,重新打包成zip文件,再改回.card后缀。然后先删除旧卡片,再导入修改后的卡片:composer card delete -c card_name composer card import -f card_name.card验证修复效果
先通过命令行验证卡片是否能正常连接:composer ping -c card_name如果ping成功,再运行你的Node.js SDK代码,调用
bizNetworkConnection.connect("card_name")应该就能正常建立连接了。
补充一句:你之前用Composer REST API能正常工作,是因为REST API对这个属性的兼容性处理更宽松,但Node.js SDK 0.16.3版本则明确要求必须配置这个属性才能正确初始化连接。
内容的提问来源于stack exchange,提问作者Pram
相关产品推荐
相关产品推荐

