Я сгенерировал сертификаты с cryptogen
.
и проверил сгенерированные сертификаты с openssl
и заметил, что в нем отсутствует информация, которая может использоваться для различения ролей партнеров и клиентов. Я считаю, что admin
можно различить, потому что admincerts написаны в блокчейне, но нет никакой информации о клиенте и пирах.
Certificate:
Data:
Version: 3 (0x2)
Signature Algorithm: ecdsa-with-SHA256
Issuer: C = US, ST = California, L = San Francisco, O = test.com, CN = ca.test.com
Validity
Not Before: Sep 19 01:49:00 2019 GMT
Not After : Sep 16 01:49:00 2029 GMT
Subject: C = US, ST = California, L = San Francisco, CN = User1@test.com
...
Certificate:
Data:
Version: 3 (0x2)
Signature Algorithm: ecdsa-with-SHA256
Issuer: C = US, ST = California, L = San Francisco, O = test.com, CN = ca.test.com
Validity
Not Before: Sep 19 01:49:00 2019 GMT
Not After : Sep 16 01:49:00 2029 GMT
Subject: C = US, ST = California, L = San Francisco, CN = p0.test.com
...
(Единственные различия, которые я вижу, это CN, ключ и ID субъектасвязанные вещи)
Причина, по которой я задаюсь вопросом, заключается в том, что, хотя их роли не могут быть различены, установка подтверждающего узла с MSP клиента не будет работать из-за сбоя CSCC при присоединении к каналу.
Error: proposal failed (err: bad proposal response 500: access denied for [JoinChain][testc]: [Failed verifying that proposal's creator satisfies local MSP principal during channelless check policy with policy [Admins]: [This identity is not an admin]])
(другим партнерам со своим MSP удалось присоединиться к каналу между прочим)
Таким образом, система ролей работает, как предполагалось, но как CSCC фактически узнал роль сертификата? Есть ли скрытый механизм?