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

问题描述 投票:0回答:1

我正在尝试为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中至少为两个独立节点实现无群多主机配置?在主机网络模式下运行是否需要其他变量或专用设置?

配置设置

为了实现无拥挤的配置,我准备了以下配置:

  • Machine0-命令程序,peer0,cli和CA,每个都在network_mode: host中运行。
  • 计算机1-network_mode: host中的peer1。
  • 由于端口与CA冲突,订购者的默认操作端口已更改为CORE_OPERATIONS_LISTENADDRESS。
  • Solo共识机制(针对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
docker networking docker-compose hyperledger-fabric hyperledger
1个回答
0
投票

您是否能够在docker compose文件中使用“ network_mode:host”克服此问题?您是否将“ network_mode:host”变量放入了组合文件中的所有服务?您是否进行了其他修改以使其正常工作?非常感谢。

© www.soinside.com 2019 - 2024. All rights reserved.