我正在使用Hyperledger Fabric v1.0,并且在尝试在以下git存储库上使用示例项目fabcar时遇到错误: git clone https://github.com/hyperledger/fabric-samples.git
我可以使用以下shell脚本启动所有容器:
./startFabric.sh
创建了对等体和通道,但是当我使用命令
时node query.js
崩溃时出现以下错误: 创建客户端并设置钱包位置
设置钱包路径,并将用户PeerAdmin与应用程序检查相关联 用户已注册,并在网络Make查询中设置查询URL 分配transaction_id: 27d48de27350bbeeb3adae69ec5e783d3af1c42af03230877f71c3343bfbc905 错误:[client-utils.js]:sendPeersProposal - 拒绝承诺: 错误:无法反序列化创建者身份,错误提供 身份无效,Verify()返回x509:证书签名 未知权限(可能是因为“x509:ECDSA验证 在尝试验证候选机构证书时失败 “ca.org1.example.com”) at /home/eres_admin/hyperledger/fabric-samples/fabcar/node_modules/grpc/src/node/src/client.js:554:15 从查询返回查询结果计数=来自query = {1的错误 错误:无法反序列化创建者身份,错误提供 身份无效,Verify()返回x509:证书签名 未知权限(可能是因为“x509:ECDSA验证 在尝试验证候选机构证书时失败 “ca.org1.example.com”) at /home/eres_admin/hyperledger/fabric-samples/fabcar/node_modules/grpc/src/node/src/client.js:554:15 代码:2,元数据:元数据{_internal_repr:{}}}响应是 错误:无法反序列化创建者身份,错误提供 身份无效,Verify()返回x509:证书签名 未知权限(可能是因为“x509:ECDSA验证 在尝试验证候选机构证书时失败 “ca.org1.example.com”)
我正在使用节点版本6.11.4我是否需要使用任何其他版本或错误是由于其他原因。
答案 0 :(得分:1)
TL; DR机会是您正在使用的docker撰写的已编码CA密钥的名称,但您重新生成了加密材料,从而更改了密钥和文件名。
我有完全相同的错误,发现发生此错误是因为basic-network / docker-compose.yaml具有CA密钥硬编码。如果重新生成加密材料(例如,在basic-network中,则执行generate.sh),密钥文件名会更改。因此,CA无法找到密钥。
重新生成加密材料后,您应该更改FABRIC_CA_SERVER_CA_KEYFILE
...
services:
ca.example.com:
image: hyperledger/fabric-ca
environment:
- FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-server
- FABRIC_CA_SERVER_CA_NAME=ca.example.com
- 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/4239aa0dcd76daeeb8ba0cda701851d14504d31aad1b2ddddbac6a57365e497c_sk
...
在此之后,query.js将正常工作。