Мы можем установить один CA для нескольких организаций через фабрику?
Я настроил множественную организацию на разных машинах.
Machine 1
-> peer0.org1.example.com
-> ca.org1.example.com
-> orderer.example.com
Machine 2
-> peer0.org2.example.com
-> peer0.org3.example.com
Я создал канал, который используется всеми тремя организациями.
Теперь проблема в том, что когда я пытаюсь получить доступ к данным из Org 2 и Org 3, появляется сообщение об ошибке ниже.
UNKNOWN: доступ запрещен: создатель канала [mychannel] org [Org2MSP]
С другой стороны, если я попытался выполнить тот же запрос через CLI, транзакция будет выполнена без ошибок
Мой вопрос: можем ли мы установить один ЦС для нескольких организаций. если да, как решить проблему отказа в доступе?
1 ответ
Чтобы ответить на ваш основной вопрос: возможно ли, чтобы 1 сервер содержал более 1 корневого идентификатора. Ответ - да. Несколько CA. Это решение использует один 1 Fabric-CA-сервер для обслуживания более чем одной корневой идентификации. В матрице Hyperledger корневая идентификация используется в качестве корневой организации Identity 1.
Но стоит ли использовать такую архитектуру? Чтобы ответить на этот вопрос, мы должны знать роль фабричного сервера и то, как идентификаторы обрабатываются в сети блокчейна (специфично для Hyperledger.)
- Для проверки личности в сети блокчейн и между различными компонентами (одноранговые узлы, заказчики, клиенты). HLF(Hyperledger Fabric) использует абстрактную концепцию MSP (членский сервис-провайдер). В текущей реализации HLF для создания этой идентичности используется сертификат X509. Важно знать, что единственными требованиями являются сертификаты X509. Вам не нужен Fabric-CA-сервер. Для построения структуры MSP необходима определенная структура на диске сертификатов MSP для создания идентификатора. Все компоненты нуждаются (некоторая часть) в этой структуре.
- Fabric-CA-сервер используется для создания сертификата X509, необходимого для структуры MSP. Например, это используется, когда вы хотите зарегистрировать дополнительного партнера, заказчика, клиента и т. Д. Чтобы получить весь этот материал в целом, вы можете использовать fabric-ca-client или SDK. Клиент может экспортировать этот материал в правильной структуре папок, используемой по умолчанию MSP.
Так что вы должны использовать 1 Fabric-CA-сервер для нескольких организаций? Мой ответ будет нет. Вы хотите, чтобы все организации были независимы друг от друга и что 1 ORG не может создать идентичность для другой ORG. Если вы используете 1 сервер для хранения нескольких удостоверений, это также означает, что материал с закрытым ключом хранится на 1 сервере, и, таким образом, вы можете создавать удостоверения для всех организаций.
Поэтому следующий вопрос " Как разрешить доступ запрещен" на самом деле другой вопрос. Скорее всего, это связано с неправильной настройкой переменных среды, которые HLF использует для указания на определенные части внутри структуры папок MSP. Таким образом, вам нужно посмотреть, какие переменные окружения используются внутри CLI и использовать то же самое внутри вашего другого контейнера (если вы хотите иметь одинаковую идентичность).
TL; DR; Fabric-CA-сервер используется для создания сертификатов X509, которые могут быть использованы для создания MSP. MSP - это то, что является подлинной идентификацией внутри HLF, наилучшей практикой является использование 1 root-ca для каждой организации.