在 Hyperledger fabric composer 中启动业务网络应用程序时出错——多主机对等环境

Error starting Business network application in Hyperledger fabric composer-- Multi host peer environment

我正在创建一个包含 5 个对等点的结构网络。

2 个节点、CA 和排序者 运行 在机器 1 上, 机器 2 上的 1 个 peer 和 couch 实例, 机器 3 上的 1 个 peer 和 couch 实例, 机器 4 上有 1 个 peer 和 couch 实例。

他们都在同一个频道。我能够将 .bna 安装到网络中。但是当我尝试使用 composer 工具启动应用程序时,使用以下命令

"composer network start -c PeerAdmin@hlfv1 -n blockv6 -V 0.0.1 -A admin -S adminpw"

我没有收到有效响应错误

✖ 开始业务网络定义。这可能需要一分钟... 错误:尝试启动业务网络时出错。错误:没有来自任何同行的有效响应。 来自尝试的对等通信的响应是一个错误:错误:2 未知:链码错误(状态:500,消息:不是有效的背书系统链码) 来自尝试的对等通信的响应是一个错误:错误:2 未知:链代码错误(状态:500,消息:未知链代码类型:NODE) 来自尝试的对等通信的响应是一个错误:错误:2 未知:链代码错误(状态:500,消息:未知链代码类型:NODE) 命令失败

下面是我的 createPeerAdmin 脚本的连接配置文件

       {

            "name": "hlfv1",
            "x-type": "hlfv1",
            "x-commitTimeout": 300,
           "version": "1.0.0",
         "client": {
    "organization": "Org1",
    "connection": {
        "timeout": {
            "peer": {
                "endorser": "300",
                "eventHub": "300",
                "eventReg": "300"
            },
            "orderer": "300"
        }
    }
},
"channels": {
    "composerchannel": {
        "orderers": [
            "orderer.example.com"
        ],
        "peers": {
            "peer0.org1.example.com": {},
             "peer1.org1.example.com": {},
              "peer2.org1.example.com": {},
              "peer3.org1.example.com": {},
              "peer4.org1.example.com": {}
        }
    }
},
"organizations": {
    "Org1": {
        "mspid": "Org1MSP",
        "peers": [
            "peer0.org1.example.com",
            "peer1.org1.example.com",
            "peer2.org1.example.com",
            "peer3.org1.example.com",
            "peer4.org1.example.com"

        ],
        "certificateAuthorities": [
            "ca.org1.example.com"
        ]
    }
},
"orderers": {
    "orderer.example.com": {
        "url": "grpc://${HOST}:7050"
    }
},
"peers": {
    "peer0.org1.example.com": {
        "url": "grpc://${HOST}:7051",
        "eventUrl": "grpc://${HOST}:7053"
    },
     "peer1.org1.example.com": {
        "url": "grpc://${HOST}:8051",
        "eventUrl": "grpc://${HOST}:8053"
    },
     "peer2.org1.example.com": {
        "url": "grpc://<machineIP>:9051"
    },
     "peer3.org1.example.com": {
        "url": "grpc://<machineIP>:9051"
    },
     "peer4.org1.example.com": {
        "url": "grpc://<machineIP>:9051"
    }
},
"certificateAuthorities": {
    "ca.org1.example.com": {
        "url": "http://${HOST}:7054",
        "caName": "ca.org1.example.com"
    }
}

}

您的回复显示联系了 3 个对等方,他们每个人在实例化链代码时都遇到了问题。看起来您使用的是 composer 0.20,因此分解错误如下

  • 错误:2 未知:链码错误(状态:500,消息:不是有效的背书系统链码)

如果您将 fabric 1.1 peer 与 composer 0.20 一起使用,则会出现上述错误,composer 0.20 与 fabric 1.1 peer 不兼容。

  • 错误:2 未知:链码错误(状态:500,消息:未知链码类型:NODE)

如果您使用的是结构 1.0 对等点,则会出现上述错误。 fabric 1.1 中引入了链码类型的 NODE

所以我不知道您是如何设法在您的网络中混合这种结构对等级别的,但我建议您检查您的对等版本 运行 并确保它们如果你打算使用 composer 0.20,则都是 1.2。如果你想使用 fabric 1.1 确保你使用 composer 0.19.x

我看到的最后一点是您的连接配置文件中有一些 ${HOST} 定义,您已将其他定义替换为 <machineIP> 所以我假设那些 ${HOST} 条目没有被删除在您发布的示例中替换,而不是在您的真实连接配置文件中替换。

更改 composer 版本有助于解决此问题。

npm install -g composer-cli@0.19