1

我遵循了 hyperledger fabric 1.0.0-alpha 的 hyperledger composer quick start,并在本地运行了一个工作的 hyperledger fabric。我为作曲家游乐场下载了最新的(0.7.2)docker 映像并按照 docker hub 说明启动它,但是当我定义

"type": "hlfv1",
"orderers": [
    "grpc://localhost:7050"
],
"ca": "http://localhost:7054",
"peers": [
    {
        "requestURL": "grpc://localhost:7051",
        "eventURL": "grpc://localhost:7053"
    },
    {
        "requestURL": "grpc://localhost:7056",
        "eventURL": "grpc://localhost:7058"
    }
],
"keyValStore": "/home/ubuntu/.hfc-key-store",
"channel": "mychannel",
"mspID": "Org1MSP",
"deployWaitTime": "300",
"invokeWaitTime": "100"

UI 挂起,按钮中有一个旋转的图标。这里有什么问题?

4

1 回答 1

1

这是由于 docker-compose 在自己的网络中启动了超级账本结构运行时。如果您按照快速入门指南进行操作,那么它将创建的网络称为“hlfv1_default”。当您启动另一个 docker 容器时,除非您明确说明您希望它成为哪个网络的一部分,否则它将被添加到“网桥”中。这将环境彼此隔离。您可以使用命令查看网络

docker network ls

为了让 composer docker 容器与您的本地结构通信,您需要确保它连接到本地结构网络。例如,如果您的本地结构在网络上,hlfv1_default那么您可以使用命令将 composer-playground 连接到该网络

docker run --network hlfv1_default --name composer-playground --publish 8080:8080 --detach hyperledger/composer-playground

完成后,您可以创建连接配置文件,但是,您不能使用 localhost,您必须使用 docker-compose 创建的主机名。对于当前使用 hlf v1.0.0-alpha(而不是 alpha2)的快速入门,您将使用看起来像的连接配置文件

"type": "hlfv1",
"orderers": [
    "grpc://orderer0:7050"
],
"ca": "http://ca0:7054",
"peers": [
    {
        "requestURL": "grpc://peer0:7051",
        "eventURL": "grpc://peer0:7053"
    },
    {
        "requestURL": "grpc://peer1:7056",
        "eventURL": "grpc://peer1:7058"
    }
],
"keyValStore": "/home/composer/.hfc-key-store",
"channel": "mychannel",
"mspID": "Org1MSP",
"deployWaitTime": "300",
"invokeWaitTime": "100"

请注意,将 localhost 替换为用于启动本地结构的 docker-compose 文件中的服务名称:'orderer0'、'ca0'、'peer0'、'peer1'。

一个有用的工具是docker network inspect命令,它将向您显示哪些容器正在使用该网络。

于 2017-05-22T15:56:09.227 回答