Hyperledger Fabric 应用实战(2)–网络节点设置

1. 网络节点设置

网络名称:rentnet

联盟组织:orderer排序组织+三个成员组织supervisor、rentalcrop、 agency

通道:rentsign

账本数据库: couchdb

物理节点 组织 容器节点
supervisor supervisor.freerent.cn peer0.supervisor.freerent.cn
peer1.supervisor.freerent.cn
peer2.supervisor.freerent.cn
couchdb0.supervisor.freerent.cn
couchdb1.supervisor.freerent.cn
couchdb2.supervisor.freerent.cn
orderer0.orderer.freerent.cn
rentalcrop rentalcrop.freerent.cn peer0.rentalcrop.freerent.cn
peer1.rentalcrop.freerent.cn
couchdb0.rentalcrop.freerent.cn
couchdb1.rentalcrop.freerent.cn
orderer1.orderer.freerent.cn
agency agency.freerent.cn peer0.customer.freerent.cn
peer1.customer.freerent.cn
couchdb0.agency.freerent.cn
couchdb1.agency.freerent.cn
orderer2.orderer.freerent.cn

2. 节点身份生成

Fabric网络通过证书和密钥来管理和认证成员身份,Fabric通过Fabric-CA提供了PKI服务。为了方便批量管理组织证书,fabric基于Go语言的标准crypto库提供了cryptogen工具。用了cryprtogen工具生成加密材料,就无需CA来到动态生成加密材料。

cryptogen支持的命令包括:

  • generate[flages] 生成密钥和证书文件
  • showtemplate,查看配置模板信息
  • extend[flages],扩展当前密钥和证书文件
  • version,版本信息

flag :

  • –config :yaml配置模板文件
  • – output:指定材料生成路径,默认为当前目录下的crypto-config目录

2.1 crypto-config.yaml

crypto-config.yaml为节点生成加密材料的配置文件。
存放目录: /home/freerent/network/channel


# ---------------------------------------------------------------------------
# "OrdererOrgs" - 管理排序节点的组织的定义
# ---------------------------------------------------------------------------
OrdererOrgs:
  - Name: Orderer          # 组织名称
    Domain: freerent.cn    # 组织命名域
    Specs:                  # 每个主机配置,通用名
      - Hostname: orderer0
      - Hostname: orderer1
      - Hostname: orderer2

# ---------------------------------------------------------------------------
# "PeerOrgs" - 管理对等节点的组织的定义
# ---------------------------------------------------------------------------
PeerOrgs:

  - Name: Supervisor
    Domain: supervisor.freerent.cn
    
    # 如果设置了 EnableNodeOUs ,就在msp下生成config.yaml文件
    EnableNodeOUs: true
    Template:
      Count: 3 #生成证书的数量  => 组织中peer节点的数目
    Users:
      Count: 2 #生成用户证书个数

  - Name: Rentalcrop
    Domain: rentalcrop.freerent.cn
    EnableNodeOUs: true
    Template:
      Count: 2 #生成证书的数量
    Users:
      Count: 1 #生成用户证书个数

  - Name: Agency
    Domain: agency.freerent.cn
    EnableNodeOUs: true
    Template:
      Count: 2 
    Users:
      Count: 1 

2.2 加密材料生成脚本

将fabric提供三个工具拷贝至bin目录下,并赋777权限。这三个脚本可以到fabric-samples里面去下载,放到bin目录下。
在这里插入图片描述

3. 加密材料分析

目录 : /home/freerent/network/channel

默认情况下,generate生成的加密材料在当前目录下的crypto-config目录下,目录结构如下所示。生成了ordererOrganizations和peerOrganizations两个组织树。每棵组织树下面都有ca、tlsca、msp、orderers(或者peers),users等子目录。
以supervisor组织为例,

peerOrganizations/  #peer组织
├── supervisor.freerent.cn  #组织的所有身份证书
│   ├── ca  #存放私钥与组织根证书
│   │   ├── ca.supervisor.freerent.cn-cert.pem
│   │   └── priv_sk
│   ├── msp  #存放代表组织根证书的身份信息
│   │   ├── admincerts  # 组织管理员的身份验证证书,被根证书签名
│   │   ├── cacerts  # 组织信任的CA根证书,同ca目录下文件
│   │   │   └── ca.supervisor.freerent.cn-cert.pem
│   │   ├── config.yaml  # 指定是否开启OU,存放组织根证书路径和OU识别关键字
│   │   └── tlscacerts # 用于TLS验证的信任的CA证书,自签名
│   │       └── tlsca.supervisor.freerent.cn-cert.pem
│   │  
│   ├── peers  #peers目录与order组织的orderers目录类似
│   │   ├── peer0.supervisor.freerent.cn
│   │   │   ├── msp  # 存放代表身份的相关证书和私钥文件
│   │   │   │   ├── admincerts # 该Peer认可的管理员身份证书。可以确认交易是否被管理员签署,默认是Admin用户的身份证书
│   │   │   │   ├── cacerts  # 存放组织的CA根证书
│   │   │   │   │   └── ca.supervisor.freerent.cn.pem
│   │   │   │   ├── config.yaml
│   │   │   │   ├── keystore   # 节点的身份私钥,用来签名
│   │   │   │   │   └── priv_sk
│   │   │   │   ├── signcerts # 验证本节点签名的证书,被组织根证书签名,
│   │   │   │   │   └── peer0.supervisor.freerent.cn.pem
│   │   │   │   └── tlscacerts # TLS连接用的CA证书
│   │   │   │       └── tlsca.supervisor.freerent.cn.pem
│   │   │   └── tls  
│   │   │       ├── ca.crt  # 组织的TLS CA证书
│   │   │       ├── server.crt # 验证本钱点签名的证书,被组织根证书签名
│   │   │       └── server.key # 本节点TLS私钥,用来签名
│   │   └── peer1.supervisor.freerent.cn # 一样
│   │ 
│   │   └── peer2.supervisor.freerent.cn # 一样
│   │ 
│   ├── tlsca  #存放该组织的TLS证书和对应的私钥 和msp中一样
│   │   ├── priv_sk
│   │   └── tlsca.supervisor.freerent.cn-cert.pem
│   │ 
│   └── users # 该组织的用户的实体
│       ├── [email protected] # 管理员
│       │   ├── msp # 存放代表身份的相关证书和私钥文件
│       │   │   ├── admincerts #Admin用户的管理身份证书,被组织根证书签名
│       │   │   ├── cacerts # 组织根证书
│       │   │   │   └── ca.supervisor.freerent.cn-cert.pem
│       │   │   ├── config.yaml
│       │   │   ├── keystore  # 用户签名私钥
│       │   │   │   └── priv_sk
│       │   │   ├── signcerts # 管理员身份验证证书,若被peer认可,则会存放到peer的msp/admincerts目录下
│       │   │   │   └── [email protected]
│       │   │   └── tlscacerts # 验证TLS连接用的CA证书,即组织的TLS CA证书
│       │   │       └── tlsca.supervisor.freerent.cn.pem
│       │   └── tls 
│       │       ├── ca.crt # 组织的TLS CA证书
│       │       ├── client.crt # 管理员用户的身份验证证书,被组织根证书签名
│       │       └── client.key # 管理员用户的私钥,用来签名
│       └── [email protected] # admin类似
│           

说明:
1、crypto-config.yaml一般默认一个组织仅一个admin,因此在一个组织内部,所有的admincerts是一样的,admin的私钥在Users的Admin文件夹下;
2、在一个组织内部,所有的cacerts是一样的,ca的私钥在ca文件夹下;
3、在一个组织内部,所有的tlscerts是一样的,且和tls文件夹下的ca.cert一样,tlsca的私钥在tlsca文件夹下。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>