#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 выглядит следующим образом:
-
запустите сеть с опцией CA
./network.sh up -ca
-
после подключения к сети перейдите к (предполагается, что вы уже находитесь в каталоге тестовой сети):
cd organizations/peerOrganizations/org1.example.com
-
экспортируйте путь к сертификату с помощью этой команды:
export FABRIC_CA_CLIENT_TLS_CERTFILES=$PWD/ca/ca.org1.example.com-cert.pem
-
экспортируйте базу данных-ca-client home с помощью этой команды:
export FABRIC_CA_CLIENT_HOME=$PWD
-
выполните следующую команду:
fabric-ca-client identity list
Ответ №3:
Поскольку вы используете TLS, вы должны использовать --tls.certfiles
флаг или задавать FABRIC_CA_CLIENT_TLS_CERTFILES
переменную среды при использовании fabric-ca-client
команды. Здесь должен содержаться полный путь к сертификату TLS вашей организации.