не удалось построить дескриптор для цепных кодов

Я пытаюсь выполнить транзакцию от пользователя, но когда я пытаюсь получить канал, я получаю эту ошибку:

Журналы микросервисов:

error: [DiscoveryService]: send[mychannel] - Channel:mychannel received discovery error:failed constructing descriptor for chaincodes:<name:"mychannel" >
createTransaction Error: Cannot do transaction in blockchain: DiscoveryService: mychannel error: failed constructing descriptor for chaincodes:<name:"mychannel" >
at FabricRepository.<anonymous> (/app/microservice/dist/services/blockchain-client.js:235:23)
at Generator.throw (<anonymous>)
at rejected (/app/microservice/dist/services/blockchain-client.js:6:65)
at processTicksAndRejections (internal/process/task_queues.js:97:5)
POST /fabric-service/createTransaction 997.103

Журналы одноранговых узлов:

2020-10-20 20:23:54.218 UTC [discovery.endorsement] func1 -> DEBU d98 Endpoint: peer0.org2.com:7052, InternalEndpoint: , PKI-ID: 82f87b1ae00364c30ce6293dd804af5f81462b137b8e4d151580b9fcafa9b4c9, Metadata:  satisfies principal principal:"\n\013Org2MSP\020\003" 
2020-10-20 20:23:54.218 UTC [discovery.endorsement] func1 -> DEBU d99 Endpoint: peer0.org2.com:7052, InternalEndpoint: , PKI-ID: 82f87b1ae00364c30ce6293dd804af5f81462b137b8e4d151580b9fcafa9b4c9, Metadata:  doesn't satisfy principal principal:"\n\007Org2MSP\020\003"  : the identity is a member of a different MSP (expected Org1MSP, got Org2MSP)
2020-10-20 20:23:54.218 UTC [discovery] chaincodeQuery -> ERRO d9a Failed constructing descriptor for chaincode chaincodes:<name:"mychannel" > ,: no peer combination can satisfy the endorsement policy

Configtx:

    mychannel:
        Consortium: MyConsortium
        <<: *ChannelDefaults
        Application:
            <<: *ApplicationDefaults
            Organizations:
                - *Org1
                - *Org2
            Capabilities:
                <<: *ApplicationCapabilities

В целом, если я выполняю ту же транзакцию от узла org1, я получаю аналогичную ошибку на узле, оба не работают. Если я удаляю организацию из консорциума, она будет работать в этой организации, но не тогда, когда есть обе.

Есть идеи, как это решить?


person Paradox    schedule 20.10.2020    source источник
comment
Какую транзакцию вы пытаетесь выполнить? Хорошо ли вы настроили своего клиента для использования учетных данных организации? Обе организации присоединились к каналу? Создан ли смарт-контракт?   -  person Urko    schedule 24.10.2020
comment
Клиент настроен только на использование org2, и да, обе организации присоединились, и на канале зафиксирован правильный чейнкод (который одобрен ими обоими).   -  person Paradox    schedule 25.10.2020


Ответы (3)


Иногда это происходит, если Chaincode не создан или не определен в канале. лучше проверить контейнеры Docker, чтобы узнать причину этой ошибки. Если вы используете тестовую сеть FB, вы можете использовать

./monitordocker.sh fabric_test
person Badr Bellaj    schedule 27.03.2021

Проблема может быть связана с configtx.yaml, вы должны правильно разместить весь MSPDir, и когда вы дадите команду, вы должны установить переменную среды в соответствии с этим MSPDir.

person Ta-seen Junaid    schedule 22.10.2020
comment
Каталог MSP установлен правильно. Если присмотреться, удовлетворяет принципала один раз из двух - person Paradox; 22.10.2020

Таким образом, проблема заключалась в сценарии для создания однорангового узла привязки для организации, ошибка просачивалась через bash. После добавления узлов привязки для обеих организаций все решено, и я могу совершать транзакции.

person Paradox    schedule 25.10.2020
comment
Как добавить якорных пиров для организаций? - person indranil32; 09.06.2021