zoukankan      html  css  js  c++  java
  • Hyperledger fabric MSP成员管理

    Hyperledger fabric 1.0 基于 PKI(Public Key Infrastructure)体系,引入了MSP模块(Membership Service Provider): 成员管理服务提供商,生成数字证书来标识和管理成员的身份。

    Fabirc的成员身份基于标准的X.509证书,密钥使用的是ECDSA算法,利用PKI体系给每个成员颁发数字证书,通道内只有相同MSP内的节点才可以通过Gossip协议进行数据分发。

    证书类型

    每个MSP只有一个根CA证书,从根CA证书到最终用户证书形成一个证书信任链(chain of trust)

    根CA证书(Root Certifiate):自签名的证书,用根CA签名生成的证书可以签发新的证书,形成树型结构 (必须配置)

    中间CA证书(Intermediate Certificate):由其他CA证书签发的证书,可以利用自己的私钥签发新的证书 (可选配置)

    MSP管理员证书: 有根CA的证书路径,有权限修改channel配置 (必须配置) – 创建channel,加入channel等请求都需要管理员私钥进行签名

    TLS根CA证书:自签名的证书,用于TLS(Transport Layer Security, 安全传输层协议)传输 (必须配置)

    MSP目录

    分析fabric v1.1示例中的crypto-config目录,网络中共有1个orderer节点和4个peer节点(分为两个组织org1,org2),该目录利用cryptogen工具生成。目录下有ordererOrganizationspeerOrgnizations两个子目录,分别表示orderer节点和peer节点MSP配置。这里分析org1的MSP配置,为了方便节点的部署,目录中有很多冗余存储。

    org1.example.com
    ├── ca                    # 根CA的私钥和证书
    │   ├── 0e729224e8b3f31784c8a93c5b8ef6f4c1c91d9e6e577c45c33163609fe40011_sk                                     
    │   └── ca.org1.example.com-cert.pem           
    ├── msp                   # MSP配置目录
    │   ├── admincerts                              # MSP管理员证书
    │   │   └── Admin@org1.example.com-cert.pem
    │   ├── cacerts                                 # MSP根CA证书(与ca目录下的证书一致)
    │   │   └── ca.org1.example.com-cert.pem
    │   └── tlscacerts                              # TLS根CA证书
    │       └── tlsca.org1.example.com-cert.pem
    ├── peers                  # peer节点的MSP配置私钥
    │   ├── peer0.org1.example.com    # peer0节点配置        
    │   │   ├── msp
    │   │   │   ├── admincerts                      # 管理员证书
    │   │   │   │   └── Admin@org1.example.com-cert.pem
    │   │   │   ├── cacerts                         # 根CA证书
    │   │   │   │   └── ca.org1.example.com-cert.pem
    │   │   │   ├── keystore                        # 节点的私钥
    │   │   │   │   └── 27db82c96b1482480baa1c75f80e5cce249beaab27b70c741bb0e2554355957e_sk
    │   │   │   ├── signcerts                       # 节点的证书
    │   │   │   │   └── peer0.org1.example.com-cert.pem
    │   │   │   └── tlscacerts                      # TLS根CA证书
    │   │   │       └── tlsca.org1.example.com-cert.pem
    │   │   └── tls
    │   │       ├── ca.crt                           # TLS根CA证书
    │   │       ├── server.crt                       # 节点用的TLS证书
    │   │       └── server.key                       # 节点的TLS私钥
    │   └── peer1.org1.example.com
    │       ├── msp
    │       │   ├── admincerts
    │       │   │   └── Admin@org1.example.com-cert.pem
    │       │   ├── cacerts
    │       │   │   └── ca.org1.example.com-cert.pem
    │       │   ├── keystore
    │       │   │   └── fdee12a3510fde3155c37128cfec26090ae249bfbca28f884e60c21338493edd_sk
    │       │   ├── signcerts
    │       │   │   └── peer1.org1.example.com-cert.pem
    │       │   └── tlscacerts
    │       │       └── tlsca.org1.example.com-cert.pem
    │       └── tls
    │           ├── ca.crt
    │           ├── server.crt
    │           └── server.key
    ├── tlsca       # TLS根CA证书和私钥
    │   ├── 945092d936f5838c5a6f6484db974d857933706737d00d04bf65f74e3976f9f8_sk
    │   └── tlsca.org1.example.com-cert.pem
    └── users       # 默认生成的用户配置,一般会包含1个管理员和1个普通成员
        ├── Admin@org1.example.com                   # MSP管理员
        │   ├── msp                                 
        │   │   ├── admincerts                       # 管理员证书
        │   │   │   └── Admin@org1.example.com-cert.pem 
        │   │   ├── cacerts                          # CA根证书
        │   │   │   └── ca.org1.example.com-cert.pem
        │   │   ├── keystore                         # 管理员私钥
        │   │   │   └── 5890f0061619c06fb29dea8cb304edecc020fe63f41a6db109f1e227cc1cb2a8_sk
        │   │   ├── signcerts                        # 管理员证书
        │   │   │   └── Admin@org1.example.com-cert.pem
        │   │   └── tlscacerts                       # TLS根证书
        │   │       └── tlsca.org1.example.com-cert.pem
        │   └── tls
        │       ├── ca.crt                           # TLS根证书
        │       ├── server.crt                       # 管理员的TLS证书
        │       └── server.key                       # 管理员的TLS私钥
        └── User1@org1.example.com
            ├── msp
            │   ├── admincerts
            │   │   └── User1@org1.example.com-cert.pem
            │   ├── cacerts
            │   │   └── ca.org1.example.com-cert.pem
            │   ├── keystore
            │   │   └── 73cdc0072c7203f1ec512232c780fc84acc9752ef30ebc16be1f4666c02b614b_sk
            │   ├── signcerts
            │   │   └── User1@org1.example.com-cert.pem
            │   └── tlscacerts
            │       └── tlsca.org1.example.com-cert.pem
            └── tls
                ├── ca.crt
                ├── server.crt
                └── server.key
    
  • 相关阅读:
    UVALive 6909 Kevin's Problem 数学排列组合
    UVALive 6908 Electric Bike dp
    UVALive 6907 Body Building tarjan
    UVALive 6906 Cluster Analysis 并查集
    八月微博
    hdu 5784 How Many Triangles 计算几何,平面有多少个锐角三角形
    hdu 5792 World is Exploding 树状数组
    hdu 5791 Two dp
    hdu 5787 K-wolf Number 数位dp
    hdu 5783 Divide the Sequence 贪心
  • 原文地址:https://www.cnblogs.com/zhayujie/p/12941556.html
Copyright © 2011-2022 走看看