在尝试发布身份时,它表示我的CA不存在

时间:2017-07-04 11:59:23

标签: hyperledger hyperledger-composer

我试图通过

发出身份
composer identity issue -p hlfv1 -n bonusetis -i PeerAdmin -s password -u perelluis -x true -a perelluis

但是我得到了

Error: fabric-ca request register failed with errors [[{"code":0,"message":"CA 'ca_peerOrg1' does not exist"}]]
Command failed.

Command succeeded

我确实有一个名为ca_peerOrg1的CA,因为到目前为止我已经使用它了,它显示在我的docker容器中:

CONTAINER ID        IMAGE                                        COMMAND                  CREATED             STATUS              PORTS                                              NAMES
425df4a2d729        hyperledger/composer-playground              "pm2-docker compos..."   30 minutes ago      Up 30 minutes       0.0.0.0:8080->8080/tcp                             composer-playground
5d6ac09d2f41        dev-peer0.org1.example.com-bonusetis-0.9.0   "chaincode -peer.a..."   2 hours ago         Up 2 hours                                                             dev-peer0.org1.example.com-bonusetis-0.9.0
b115a06eebdb        dev-peer1.org1.example.com-bonusetis-0.9.0   "chaincode -peer.a..."   2 hours ago         Up 2 hours                                                             dev-peer1.org1.example.com-bonusetis-0.9.0
bd2b4a5dfced        hyperledger/fabric-tools                     "/bin/bash"              3 hours ago         Up 3 hours                                                             cli
76a1159e510c        hyperledger/fabric-ca                        "sh -c 'fabric-ca-..."   3 hours ago         Up 3 hours          0.0.0.0:8054->7054/tcp                             ca_peerOrg2
92c6786f3ff1        hyperledger/fabric-peer                      "peer node start"        3 hours ago         Up 3 hours          0.0.0.0:10051->7051/tcp, 0.0.0.0:10053->7053/tcp   peer1.org2.example.com
f439f9f809c6        hyperledger/fabric-orderer                   "orderer"                3 hours ago         Up 3 hours          0.0.0.0:7050->7050/tcp                             orderer.example.com
8584208cd8a8        hyperledger/fabric-peer                      "peer node start"        3 hours ago         Up 3 hours          0.0.0.0:9051->7051/tcp, 0.0.0.0:9053->7053/tcp     peer0.org2.example.com
7e68ac2e33b4        hyperledger/fabric-peer                      "peer node start"        3 hours ago         Up 3 hours          0.0.0.0:7051->7051/tcp, 0.0.0.0:7053->7053/tcp     peer0.org1.example.com
8688c0ef16da        hyperledger/fabric-ca                        "sh -c 'fabric-ca-..."   3 hours ago         Up 3 hours          0.0.0.0:7054->7054/tcp                             ca_peerOrg1
baa42aa6bb12        hyperledger/fabric-peer                      "peer node start"        3 hours ago         Up 3 hours          0.0.0.0:8051->7051/tcp, 0.0.0.0:8053->7053/tcp     peer1.org1.example.com

我的连接配置文件显示CA的名称与正确的端口相同。

如果有任何帮助,如果我尝试访问同行的端口,我会得到一个

此页面无效

0.0.0.0发送了无效的回复。

消息,但如果我尝试访问localhost:7054,则会找不到404页面。我认为这是预料之中的,但万一它会说明一些事情。

正如容器中所见,我使用最新版本的Fabric(beta)和Composer(0.9)以及我在Ubuntu 16.04 TLS上的使用。

4 个答案:

答案 0 :(得分:14)

问题是连接配置文件上的CA名称必须是服务器的名称,作为由
定义的全局 - FABRIC_CA_SERVER_CA_NAME = $ CA_NAME 因此,必须在您的连接配置文件中设置$ CA_NAME,而不是容器名称。 希望如果有人面临同样的问题会有所帮助

答案 1 :(得分:6)

对于使用docker时遇到此错误的任何其他人,请确保为docker-compose.yml文件中的CA容器FABRIC_CA_SERVER_CA_NAME=myca-name设置此标志

答案 2 :(得分:0)

在Pere-Lluis答案中添加了一些细节。

network-config中的ca名称必须等于ca容器的FABRIC_CA_SERVER_CA_NAME=ca-org1


CA服务

services:
  ca.org1.example.com:
    image: hyperledger/fabric-ca
    environment:
      - FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-server
      - FABRIC_CA_SERVER_CA_NAME=ca-org1
      - FABRIC_CA_SERVER_CA_CERTFILE=/etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem
      - FABRIC_CA_SERVER_CA_KEYFILE=/etc/hyperledger/fabric-ca-server-config/a7d47efa46a6ba07730c850fe93c5b8ef6f4c1c91d9e6e577c33163609fe40011_sk
      - FABRIC_CA_SERVER_TLS_ENABLED=true
      - FABRIC_CA_SERVER_TLS_CERTFILE=/etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem
      - FABRIC_CA_SERVER_TLS_KEYFILE=/etc/hyperledger/fabric-ca-server-config/a7d47efa46a6ba07730c850fe93c5b8ef6f4c1c91d9e6e577c33163609fe40011_sk
    ports:
      - "7054:7054"
    command: sh -c 'fabric-ca-server start -b admin:adminpw -d'
    volumes:
      - ./channel/crypto-config/peerOrganizations/org1.example.com/ca/:/etc/hyperledger/fabric-ca-server-config
    container_name: ca_peerOrg1

CA名称为ca-org1-- FABRIC_CA_SERVER_CA_NAME=ca-org1

network-config.yaml

certificateAuthorities:
  ca-org1:
    url: "http://localhost:7054"
    httpOptions:
      verify: false
    tlsCACerts:
      path: "artifacts/channel/crypto-config/peerOrganizations/org1.example.com/ca/ca.org1.example.com-cert.pem"
    registrar:
      - enrollId: "admin"
        enrollSecret: "adminpw"
    caName: ca-org1

caName必须是为此环境变量FABRIC_CA_SERVER_CA_NAME设置的名称。在这种情况下,它是ca-org1

除此以外的任何内容都不会为该服务提供不存在错误。

答案 3 :(得分:0)

将容器名称ca_peerOrg1转换为小写ca_peerorg1