我试图通过
发出身份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上的使用。
答案 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
。