Hyperledger Fabric:注册检查失败:Idemix注册信息不存在

时间:2019-03-19 20:20:56

标签: hyperledger-fabric

每当我们尝试运行fabric-ca-client时,都会出现此错误。下面的示例:

# fabric-ca-client register --url https://ica-org:7054 --id.name user-org --id.affiliation=org
2019/03/19 20:18:07 [INFO] Configuration file location: /home/fabric-ca-client-config.yaml
2019/03/19 20:18:07 [INFO] TLS Enabled
2019/03/19 20:18:07 [ERROR] Enrollment check failed: Idemix enrollment information does not exist
Error: Enrollment information does not exist. Please execute enroll command first. Example: fabric-ca-client enroll -u http://user:userpw@serverAddr:serverPort

我们如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

fabric-ca-client找不到任何X509或Idemix身份时,会发生这种情况。 fabric-ca-client需要使用身份进行初始化(除非用于enroll用户)。它首先尝试从mspdir文件中指定的fabric-ca-client-config.yaml位置或-M命令行参数中加载X509身份,该位置优先于配置文件中的mspdir。如果无法找到X509身份,它将寻找idemix身份。如果此操作同样失败,则会显示相关错误。

对于X509身份:

  • 其公共证书必须位于signcerts
  • 私钥必须位于keystore
  • ,颁发公共/私有密钥对的颁发机构的公共证书必须位于cacerts文件夹中(如果使用了中间ca,则其证书必须位于intermediatecerts中)

以上所有文件夹都位于mspdir

答案 1 :(得分:0)

由于您使用 TLS,因此在使用 --tls.certfiles 命令时应该使用 FABRIC_CA_CLIENT_TLS_CERTFILES 标志或设置 fabric-ca-client 环境变量。这应该包含您组织的 TLS 证书的完整路径。

答案 2 :(得分:0)

来自超级账本列表:

发出fabric-ca-client identity list命令的解析如下:

  1. 使用 CA 选项启动网络

    ./network.sh up -ca
    
  2. 网络启动后,导航到(假设您已经在 test-network 目录中):

    cd organizations/peerOrganizations/org1.example.com
    
  3. 使用此命令导出证书路径:

    export FABRIC_CA_CLIENT_TLS_CERTFILES=$PWD/ca/ca.org1.example.com-cert.pem
    
  4. 使用以下命令导出 fabric-ca-client home:

    export FABRIC_CA_CLIENT_HOME=$PWD
    
  5. 发出以下命令:

    fabric-ca-client identity list