Hyperledger Fabric: ошибка проверки регистрации: информация о регистрации Idemix не существует

#hyperledger-fabric

#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
  

Как мы можем это исправить?

Ответ №1:

Это происходит, когда fabric-ca-client не удается найти какой-либо идентификатор X509 или Idemix. fabric-ca-client необходимо инициализировать идентификатор (за исключением случаев, когда он используется для enroll пользователя). Сначала он пытается загрузить идентификатор X509 из mspdir расположения, указанного в fabric-ca-client-config.yaml файле или -M аргументе командной строки, который имеет приоритет над mspdir в файле конфигурации. И если не удается найти идентификатор X509, он будет искать идентификатор idemix. Если это также не удается, отображается соответствующая ошибка.

Для удостоверения X509:

  • его общедоступный сертификат должен быть в signcerts
  • и закрытый ключ должен быть в keystore
  • и общедоступный сертификат органа, который выдал общедоступную / закрытую пару ключей, должен находиться в cacerts папке (если использовался промежуточный центр сертификации, то его сертификат должен быть в intermediatecerts )

все указанные выше папки находятся под mspdir

Ответ №2:

Решение 1 Потенциальная причина, если папка, указанная FABRIC_CA_CLIENT_HOME, не создана, вы получите эту ошибку. Вы должны проверить, указывает ли FABRIC_CA_CLIENT_HOME на существующую папку. Это также происходит при указании неправильного MSP-пути exp

 fabric-ca-client gencrl -M ~/wrong_path
  

Решение2:

Решение для выдачи команды fabric-ca-client identity list выглядит следующим образом:

  1. запустите сеть с опцией CA

     ./network.sh up -ca
      
  2. после подключения к сети перейдите к (предполагается, что вы уже находитесь в каталоге тестовой сети):

     cd organizations/peerOrganizations/org1.example.com
      
  3. экспортируйте путь к сертификату с помощью этой команды:

     export FABRIC_CA_CLIENT_TLS_CERTFILES=$PWD/ca/ca.org1.example.com-cert.pem
      
  4. экспортируйте базу данных-ca-client home с помощью этой команды:

     export FABRIC_CA_CLIENT_HOME=$PWD
      
  5. выполните следующую команду:

     fabric-ca-client identity list
      

Ответ №3:

Поскольку вы используете TLS, вы должны использовать --tls.certfiles флаг или задавать FABRIC_CA_CLIENT_TLS_CERTFILES переменную среды при использовании fabric-ca-client команды. Здесь должен содержаться полный путь к сертификату TLS вашей организации.