没有群集的多主机HLF设置-CA问题

时间:2019-06-24 23:18:37

标签: docker networking docker-compose hyperledger-fabric hyperledger

我正在尝试为Hyperledger Fabric节点设置多主机,一个组织设置。我想在没有Swarm编排器的不同基于AWS的计算机上启动两个节点。由于在多个组织设置中群集集中化的潜在问题,我想避免Swarm。我正在从官方文档调整BYFN设置。目前,我最大的问题是频道创建过程中的问题。用

启动频道后

peer channel create -o orderer.mydomain.io:7050 -c mychannel -f ./channel-artifacts/channel.tx --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/mydomain.io/orderers/orderer.mydomain.io/msp/tlscacerts/tlsca.mydomain.io-cert.pem

我收到以下消息:Error: got unexpected status: FORBIDDEN -- implicit policy evaluation failed - 0 sub-policies were satisfied, but this policy requires 1 of the 'Writers' sub-policies to be satisfied: permission denied。同时docker logs <orderer container id>命令显示Principal deserialization failure (the supplied identity is not valid: x509: certificate signed by unknown authority) for identity 0如何在Hyperledger中为至少两个独立的节点实现无群的多主机配置?在主机网络模式下运行是否需要其他变量或专用设置?

配置设置

要实现无群配置,我准备了以下配置:

  • 机器0-订购者,peer0,cli和CA,它们分别在network_mode: host中运行。
  • 机器1-network_mode: host中的peer1。
  • 由于与CA的端口冲突,订购者的默认操作端口已更改为CORE_OPERATIONS_LISTENADDRESS。
  • 独奏共识机制(针对Kafka)。
  • cryptogen工具仅在Machine0上使用-通道工件和crypto-config被复制到另一台计算机上。
  • 通过FQDN,不同机器上的对等点彼此可见-它们能够在容器内彼此进行ping操作。
  • 所有容器都已连接到host网络,并在docker network inspect host中可见。

我尝试过的

  1. 我尝试根据this official guide.设置.pem文件,但_sk和.pem文件似乎已正确复制到容器中。
  2. 正在清理工作目录,包括重新启动计算机并完全删除所有项目文件。
  3. 更改环境变量-教程显示了不同的选项,我找不到合适的设置。在随附的代码段中,有两个重复项。

有用的代码

docker-compose.yaml中的CA定义

ca0:
  image: hyperledger/fabric-ca:$IMAGE_TAG
  network_mode: host
  environment:
    - FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-server
    - FABRIC_CA_SERVER_CA_NAME=ca-org1
    - FABRIC_CA_SERVER_TLS_ENABLED=true
    - FABRIC_CA_SERVER_TLS_CERTFILE=/etc/hyperledger/fabric-ca-server-config/ca.org1.mydomain.io-cert.pem
    - FABRIC_CA_SERVER_TLS_KEYFILE=/etc/hyperledger/fabric-ca-server-config/${MYNETWORK_CA1_PRIVATE_KEY}
    - FABRIC_CA_SERVER_CA_CERTFILE=/etc/hyperledger/fabric-ca-server-config/ca.org1.mydomain.io-cert.pem
    - FABRIC_CA_SERVER_CA_KEYFILE=/etc/hyperledger/fabric-ca-server-config/${MYNETWORK_CA1_PRIVATE_KEY}
    - FABRIC_CA_SERVER_PORT=7054
  ports:
    - "7054:7054"
  command: sh -c 'fabric-ca-server start --ca.certfile /etc/hyperledger/fabric-ca-server/ca.org1.mydomain.io-cert.pem --ca.keyfile /etc/hyperledger/fabric-ca-server/${MYNETWORK_CA1_PRIVATE_KEY} -b admin:adminpw -d'
  volumes:
    - ./crypto-config/peerOrganizations/org1.mydomain.io/ca/:/etc/hyperledger/fabric-ca-server-config
  container_name: ca.org1.mydomain.io

0 个答案:

没有答案