Блокировка подтверждена даже после сбоя политики одобрения в Hyperledger Fabri c v1.4 - PullRequest
0 голосов
/ 20 марта 2020

Я установил свою политику одобрения как " AND ('Org1MSP.peer', 'OrgMainMSP.peer') ", что означает, что мне нужны сертификаты обеих организаций для успешного выполнения транзакций.

Транзакция выполняется следующим образом:

вызов однорангового цепного кода -o orderer0.org.com:7050 --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer /crypto/ordererOrganizations/org.com/orderers/orderer0.org.com/msp/tlscacerts/tlsca.org.com-cert.pem -n accessControl --peerAddresses peer0.org-main.com:7051 --tlsRootCertFiles / opt /gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org-main.com/peers/peer0.org-main.com/tls/ca.crt --peerAddresses peer0.org1.com:10051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.com/peers/peer0.org1.com/tls/ca.crt - c '{"Args" : []} '

Все работало нормально. Успешно зафиксирован новый блок, и его можно увидеть и на диване. Но когда я отправляю транзакцию, удаляя один из сертификатов, как показано ниже:

"код одноранговой сети вызывает -o orderer0.org.com:7050 --tls --cafile / opt / gopath / src / github.com / hyperledger / fabric / peer / crypto / ordererOrganizations / org.com / orderers / orderer0.org.com / msp / tlscacerts / tlsca.org.com-cert.pem -n accessControl --peerAddresses peer0.org -main.com:7051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org-main.com/peers/peer0.org-main.com/tls/ca. crt - c '{"Args": []}' "

Новый блок фиксируется транзакцией, но коммитер помечает ее как недействительную со следующим сообщением об ошибке в журналах

peer0.org-main.com | 2020-03-20 07: 59: 30.868 UT C [vscc] Validate -> ERRO 094 VS CC ошибка: сбой stateBasedValidator.Validate, ошибка проверки политики подтверждения для доступа с цепочкой кода AccessControl в tx 7: 0 завершилась неудачей: подпись установлена не соответствует политике

peer0.org-main.com | 2020-03-20 07: 59: 30.868 UT C [valimpl] preprocessProtoBlock -> WARN 097 Канал [myc]: блок [7] Индекс транзакции [0] TxId [01246b27c11f94124aee3c4ac84a011be51a26aaa50fc28f1d6f57979a как недействительный). Код причины [ENDORSEMENT_POLICY_FAILURE]

peer0.org-main.com | 2020-03-20 07: 59: 31.156 UT C [kvledger] CommitWithPvtData -> ИНФОРМАЦИЯ 098 [myc] Зафиксированный блок [7] с 1 транзакцией (ами) в 287 мс (state_validation = 0 мс block_and_pvtdata_commit = 220 мс state_commit = 17 мс) commitHash = [9d52225ddbc8f6f98edd37388cbcf369fea22666b9ec1cff1a91debdebc2d2a1]

И когда я снова отправляю транзакцию, проходящую оба сертификата, выдается ошибка:

* 1036: 1036 * 1036: транзакция: ProposalResponsePayloads не совпадают - ответ на предложение: версия: 1 статус ответа: 200 полезная нагрузка: ...>

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

1 Ответ

0 голосов
/ 23 марта 2020
  1. Транзакция подписана в соответствии с политикой одобрения.

Все в порядке. Блокировка зафиксирована и состояние обновлено.

Подписи транзакций не соответствуют политике одобрения.

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

ProposalResponsePayloads do not match.

Теперь проблема в другом. Я не думаю, что это имеет отношение к предыдущей транзакции. Подписи ожидаемые, но вы составляете транзакцию с двумя несоответствующими предложениями транзакций. Их ответ или набор записей не совпадают. Убедитесь, что вы не используете внешние вызовы, случайные числа, временные метки (кроме тех, которые указаны для транзакции или блока) или аналогичные значения в коде цепочки, которые могут не совпадать в обоих утверждениях. Конечно, транзакция признана недействительной, но новый блок зафиксирован.

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