Гиперледжер Ткань криптографический материал путаница - PullRequest
0 голосов
/ 08 ноября 2018

Фон

У меня есть некоторые трудности в понимании создания криптографических материалов в Hyperledger Fabric. Я заметил, что есть похожий вопрос, Hyperledger fabric Crypto Materials , и я задал этот вопрос Вопросы по настройке MSP Hyperledger Fabric ранее. но у меня все еще много путаницы.

Я последовал примеру, Создание вашей первой сети , я заметил, что с помощью инструмента cryptogen и потребляю это crypto-config.yaml. Он генерирует ключи и сертификаты для заказчиков и организаций.

Например, в стороне каталог crypto-config/peerOrganizations/org1.example.com/, который имеет двух пиров и одного пользователя, имеет следующую структуру

|-- ca
|-- msp
|   |-- admincerts
|   |-- cacerts
|   `-- tlsacerts
|-- peers
|   |-- peer0.org1.example.com
|   |   |-- msp
|   |   |   |-- admincerts
|   |   |   |-- cacerts
|   |   |   |-- keystore
|   |   |   |-- signcerts
|   |   |   `-- tlscacerts
|   |   `-- tls
|   `-- peer1.org1.example.com
|       |-- msp
|       |   |-- admincerts
|       |   |-- cacerts
|       |   |-- keystore
|       |   |-- signcerts
|       |   `-- tlscacerts
|       `-- tls
|-- tlsca
|-- users
    |-- Admin@org1.example.com
    |   |-- msp
    |   |   |-- admincerts
    |   |   |-- cacerts
    |   |   |-- keystore
    |   |   |-- signcerts
    |   |   `-- tlscacerts
    |   `-- tls
    `-- User1@org1.example.com
        |-- msp
        |   |-- admincerts
        |   |-- cacerts
        |   |-- keystore
        |   |-- signcerts
        |   `-- tlscacerts
        `-- tls

Ниже мое понимание и растерянность, которые нуждаются в разъяснении

  1. Файлы в peers - это идентификаторы для этого конкретного однорангового узла (часть сети блокчейна), в то время как файлы в users - это идентификаторы для конечного пользователя (т.е. клиенты?). Я прав?

  2. Для файлов в peer#@org1.example.com:

    • keystore (закрытый ключ) используется для подписания транзакции, когда конечный пользователь вызывает транзакцию (например, с помощью команды peer invoke ....). Закрытый ключ также используется для одобрения?
    • signcerts (открытый ключ) используется для проверки идентификатора подтвержденной транзакции заказчиками и коммиттерами. Итак, открытый ключ должен быть разослан всем партнерам и заказчикам, но как?
    • Каковы цели admincerts, cacerts, tlscacerts и tls? А почему tls не под msp? Возможно, у меня нет хорошего понимания MSP
  3. Как и в пункте 2 выше, для чего предназначены ключи и сертификаты в users? Они используются только для входа в блокчейн? Или они также будут использоваться для подписания сделки? и, возможно, использовать для доступа к части блокчейна (частные данные и контроль доступа?)

  4. Более того, я также заметил, что admincerts при peer0.org1.example.com, peer1.org1.example.com и Admin@org1.example.com одинаковы. Но они отличаются от admincerts от User1@org1.example.com. Это приводит меня к вопросу, зачем User1 нужны admincerts?

  5. В самом верхнем слое (без учета peers и users) у нас все еще есть три каталога: ca, msp и tlsa. Каковы их цели? Кажется, эти ключи и сертификаты никому не принадлежат. И у cryptogen, как говорят, нет CA, почему здесь все еще есть ca?

Спасибо!

...