提问者:小点点

查询链码时Hyperledger崩溃


我使用的是Hyperledger Fabric V1.0,在尝试使用以下git存储库中的示例项目fabcar时遇到错误:git clone https://github.com/Hyperledger/Fabric-samples.git

我可以使用以下shell脚本启动所有容器:

./startFabric.sh

创建了对等项和通道,但当我使用命令时

node query.js

它会崩溃,出现以下错误:创建客户端并设置钱包位置

设置钱包路径,并将用户PeerAdmin与应用程序检查用户已注册相关联,并在network Make query Assigning transaction_id中设置查询URL:27D48DE27350BBEEB3ADAE69EC5E783D3AF1C42AF03230877F71C3343BFBC905错误:[client-utils.js]:SendPeersProposition-Promise被拒绝:错误:无法反序列化创建者标识,err提供的标识无效,Verify()返回X509:由未知授权机构签署的证书(可能是由于“X509:尝试验证候选授权证书“ca.org1.example.com”时“ECDSA验证失败”),位于/home/eres_admin/hyperledger/fabric-samples/fabcar/node_modules/grpc/src/node/src/client.js:554:15从查询返回查询结果计数=1从查询返回错误={错误:无法反序列化创建者标识,错误为提供的标识无效,在/home/eres_admin/hyperledger/fabric-samples/fabcar/node_modules/grpc/src/node/src/src/src/src/src/src/src/src/client返回X509:由未知机构签署的证书(可能是由于“X509:ECDSA验证失败”)。js:554:15代码:2,Metadata:Metadata{_internal_repr:{}}}响应错误为:无法反序列化创建者标识,错误为提供的标识无效,错误为提供的标识无效

我使用的是节点版本6.11.4,我是否需要使用任何其他版本,或者错误是由于其他原因造成的。


共1个答案

匿名用户

TL;DR可能是您使用的docker compose已经对CA密钥的名称进行了harcoded编码,但是您重新生成了加密材料,从而更改了密钥和文件名。

我遇到了完全相同的错误,并发现发生此错误的原因是basic-network/docker-compose.yaml硬编码了CA密钥。如果您重新生成加密材料(例如,在basic-network中,您确实生成了.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就可以正常工作了。