Hyperledger Fabric加密材料的混乱

时间:2018-11-08 03:37:32

标签: docker hyperledger-fabric hyperledger

背景

我很难理解Hyperledger Fabric中加密材料的生成。我注意到有一个类似的问题Hyperledger fabric Crypto materials,我之前也曾问过这个问题Questions on hyperledger fabric MSP setting。但是我仍然很困惑。

我遵循示例Building Your First Network,我注意到使用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(公共密钥)用于验证订购者和提交者认可的交易身份。因此,公钥应分发给所有对等方和订购者,但是如何呢?
    • admincertscacertstlscacertstls的目的是什么?为什么tls不在msp下?也许我对MSP不太了解
  3. 类似于以上第2点,users下的密钥和证书的目的是什么?它们仅用于登录区块链吗?还是将它们也用于签署交易?也许用于访问部分区块链(私有数据和访问控制?)

  4. 此外,我还注意到admincertspeer0.org1.example.compeer1.org1.example.com下的Admin@org1.example.com是相同的。但是它们不同于admincerts的{​​{1}}。这使我提出疑问,为什么User1需要管理员证书?

  5. 在最上层(不向User1@org1.example.compeers倾斜),我们仍然有三个目录:usersca和{{1 }}。他们的目的是什么?这些密钥和证书似乎不属于任何人。而且据说msp没有CA,为什么这里仍然有tlsa

谢谢!

0 个答案:

没有答案