0

我安装了 Hyperledger Fabric,我试图通过 docker swarm 将我的链码分布在两个不同主机(正好是两台 Ubuntu 16.04 机器)上的两个对等点上。我找到了一个解释如何执行此操作的链接,但我无法让它工作(https://medium.com/@wahabjawed/hyperledger-fabric-on-multiple-hosts-a33b08ef24f)。我专门将 Build-Multi-Host-Network 文件夹放在 fabric-samples 文件夹中,并在终端中运行命令 ./bmhn.sh 但它给了我以下错误:

FATA 001 Missing channelID, please specify it with '-channelID'
Failed to generate orderer genesis block ...

谁能告诉我如何解决?我还在错误行的 ./bmhn.sh 代码中指定了 -channelID,但没有。谢谢。

4

1 回答 1

0

本教程在旧版本的 Hyperledger Fabric 上运行。您可以使用 Fabric v1.4.1。使用此命令下载二进制和 docker 图像。

curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap.sh | bash -s -- 1.4.1 1.4.1

之后,在启动网络组件(peer、orderer、..)时,您必须指定 docker 映像的版本。运行 CA 的示例,您使用图像 hyperledger/fabric-ca:1.4.1:

docker run --rm -it --network="my-net" --name ca.example.com -p 7054:7054 -e FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-server -e FABRIC_CA_SERVER_CA_NAME=ca.example.com -e FABRIC_CA_SERVER_CA_CERTFILE=/etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem -e FABRIC_CA_SERVER_CA_KEYFILE=/etc/hyperledger/fabric-ca-server-config/{put the name of secret key} -v $(pwd)/crypto-config/peerOrganizations/org1.example.com/ca/:/etc/hyperledger/fabric-ca-server-config -e CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=hyp-net hyperledger/fabric-ca:1.4.1 sh -c 'fabric-ca-server start -b admin:adminpw -d'

您的网络返回错误,因为:在较新的版本中,您必须在生成创世块配置时指定系统通道的名称。例子:

configtxgen -profile TwoOrgsOrdererGenesis -channelID system-channel -outputBlock ./system-genesis-block/genesis.block
于 2020-06-04T07:29:36.440 回答