Hyperledger Fabric: Регистрация 'orderer1-ord' завершилась неудачно при проверке принадлежности: Не удалось получить присоединение 'ord.OU':: - PullRequest
0 голосов
/ 12 декабря 2018

мы настроили образец fabric-ca , чтобы удалить нижнюю строку в env.sh

export FABRIC_CA_CLIENT_ID_AFFILIATION=org1

и добавить --id.affiliation $ORG.OU во все вызовы fabric-ca-client register или enroll.Пример:

scripts/env.sh:   fabric-ca-client enroll -d --enrollment.profile tls -u $ENROLLMENT_URL -M /tmp/tls --csr.hosts $HOST_NAME --csr.names O=$ORG --id.affiliation $ORG.OU
scripts/env.sh:      fabric-ca-client enroll -d -u https://$ADMIN_NAME:$ADMIN_PASS@$CA_HOST:7054 --csr.names O=$ORG --id.affiliation $ORG.OU
scripts/env.sh:      fabric-ca-client enroll -d -u https://$USER_NAME:$USER_PASS@$CA_HOST:7054 --csr.names O=$ORG --id.affiliation $ORG.OU
scripts/setup-fabric.sh:         fabric-ca-client register -d --id.name $ORDERER_NAME --id.secret $ORDERER_PASS --id.type orderer --id.affiliation $ORG.OU
scripts/setup-fabric.sh:      fabric-ca-client register -d --id.name $ADMIN_NAME --id.secret $ADMIN_PASS --id.attrs "admin=true:ecert" --id.affiliation $ORG.OU
scripts/setup-fabric.sh:         fabric-ca-client register -d --id.name $PEER_NAME --id.secret $PEER_PASS --id.type peer --id.affiliation $ORG.OU
scripts/setup-fabric.sh:      fabric-ca-client register -d --id.name $ADMIN_NAME --id.secret $ADMIN_PASS --id.attrs "hf.Registrar.Roles=client,hf.Registrar.Attributes=*,hf.Revoker=true,hf.GenCRL=true,admin=true:ecert" --id.affiliation $ORG.OU
scripts/setup-fabric.sh:      fabric-ca-client register -d --id.name $USER_NAME --id.secret $USER_PASS --id.affiliation $ORG.OU
scripts/setup-fabric.sh:      fabric-ca-client getcacert -d -u https://$CA_HOST:7054 -M $ORG_MSP_DIR --id.affiliation $ORG.OU
scripts/start-orderer.sh:fabric-ca-client enroll -d --enrollment.profile tls -u $ENROLLMENT_URL -M /tmp/tls --csr.hosts $ORDERER_HOST --csr.names O=$ORG --id.affiliation $ORG.OU
scripts/start-orderer.sh:fabric-ca-client enroll -d -u $ENROLLMENT_URL -M $ORDERER_GENERAL_LOCALMSPDIR --csr.names O=$ORG --id.affiliation $ORG.OU
scripts/start-peer.sh:fabric-ca-client enroll -d --enrollment.profile tls -u $ENROLLMENT_URL -M /tmp/tls --csr.hosts $PEER_HOST --csr.names O=$ORG --id.affiliation $ORG.OU
scripts/start-peer.sh:fabric-ca-client enroll -d -u $ENROLLMENT_URL -M $CORE_PEER_MSPCONFIGPATH --csr.names O=$ORG --id.affiliation $ORG.OU

когда мы делаем это, мы видим эту ошибку в файле setup.log:

Error: Response from server: Error Code: 0 - Registration of 'orderer1-ord' failed in affiliation validation: Failed getting affiliation 'ord.OU': : scode: 404, code: 63, msg: Failed to get Affiliation: sql: no rows in result set

Если мы изменим enrollCAADmin , чтобы добавить:

# https://stackoverflow.com/a/48840929/147530
   fabric-ca-client affiliation add $1

теперь мы видим эту ошибку:

Error: Response from server: Error Code: 60 - Affiliation already exists

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

1 Ответ

0 голосов
/ 26 декабря 2018

Добавление присоединения $ORG.OU завершается неудачно, но добавление присоединения $ORG работает.В файле setup-fabric.sh функция registerPeerIdentities

fabric-ca-client register -d --id.name $ADMIN_NAME --id.secret $ADMIN_PASS --id.attrs "hf.Registrar.Roles=client,hf.Registrar.Attributes=*,hf.Revoker=true,hf.GenCRL=true,admin=true:ecert,abac.init=true:ecert" --id.affiliation=$ORG
      log "Registering user identity with $CA_NAME"
      fabric-ca-client register -d --id.name $USER_NAME --id.secret $USER_PASS --id.affiliation=$ORG

отмечает следующий раздел в $FABRIC_CA_SERVER_HOME/fabric-ca-server-config.yaml из rca-myorg1

root@cad23a1fb013:/etc/hyperledger/fabric-ca# cat fabric-ca-server-config.yaml
affiliations:
   ord: []
   myorg1: []
   myorg2: []
   myorg3: []
   org1:
      - department1
      - department2
   org2:
      - department1

из https://hyperledger -fabric-ca.readthedocs.io/en/latest/users-guide.html#registering-a-new-identity

Присоединение регистратора должно быть равно или префикс присоединенияудостоверяющий личность, будучи зарегистрирован.Например, регистратор с принадлежностью «ab» может зарегистрировать личность с принадлежностью «abc», но не может зарегистрировать личность с принадлежностью «ac».Если для идентификации требуется корневая принадлежность, то запрос на присоединение должен быть точкой («.»), И регистратор также должен иметь корневую принадлежность.Если в запросе на регистрацию не указана принадлежность, зарегистрированному лицу будет присвоена принадлежность регистратора.

, поэтому не уверен, почему установка присоединения на $ORG работает, а $ORG.OU не

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...