hyperledger fabric 应用程序的钱包里放什么,加密 material 是使用 cryptogen 生成的?

What to put inside wallet for hyperledger fabric application, if crypto material is generted using cryptogen?

场景:

Hyperledger Fabric:v2.2.x

做了什么?

*注:遵循Docker基础开发

  1. 使用“cryptogen”生成密码 material
    • 1 位订购者
    • 1 个同行组织
      • 2 个同行和 2 个用户(管理员,正常)
  2. 已创建频道
  3. 同行加入频道
  4. 已部署链代码并使用“cli”进行测试

下一步是什么?

The wallet holds a set of identities – X.509 digital certificates

你可以在问题的末尾看到我的密码 material,请告诉我文档在这里建议的 X.509 数字证书是什么?


Org1

用户的加密 material

(生成加密的其他文件夹material不提供以免混淆)

users
    ├── Admin@org1.example.com
    │   ├── msp
    │   │   ├── admincerts
    │   │   ├── cacerts
    │   │   │   └── ca.org1.example.com-cert.pem
    │   │   ├── config.yaml
    │   │   ├── keystore
    │   │   │   └── priv_sk
    │   │   ├── signcerts
    │   │   │   └── Admin@org1.example.com-cert.pem
    │   │   └── tlscacerts
    │   │       └── tlsca.org1.example.com-cert.pem
    │   └── tls
    │       ├── ca.crt
    │       ├── client.crt
    │       └── client.key
    └── User1@org1.example.com
        ├── msp
        │   ├── admincerts
        │   ├── cacerts
        │   │   └── ca.org1.example.com-cert.pem
        │   ├── config.yaml
        │   ├── keystore
        │   │   └── priv_sk
        │   ├── signcerts
        │   │   └── User1@org1.example.com-cert.pem
        │   └── tlscacerts
        │       └── tlsca.org1.example.com-cert.pem
        └── tls
            ├── ca.crt
            ├── client.crt
            └── client.key

您应该使用 client APIs 来填充您的钱包,而不仅仅是将文件复制到钱包目录。

要用于与 Fabric 网络进行交易的客户端身份所需的凭据通常是 X.509 certificate(实际上是身份的 public 密钥,由受信任的证书颁发机构签名),以及相关的私钥(用于签名消息)。在您列为 crytogen 输出的文件中,Org1 管理员身份的凭据是:

  • 证书:users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem
  • 私钥:users/Admin@org1.example.com/msp/keystore/priv_sk

对于 Org1 用户身份,凭据为:

  • 证书:users/User1@org1.example.com/msp/signcerts/User1@org1.example.com-cert.pem
  • 私钥:users/User1@org1.example.com/msp/keystore/priv_sk

但是,您链接的教程中提到的示例应用程序使用证书颁发机构以编程方式创建新的用户身份(和相应的凭据)以供应用程序使用。我建议您仔细阅读本教程及其引用的示例应用程序代码,以了解这是如何完成的。