@@ -39,8 +39,103 @@ Shell> git clone https://github.com/hyperledger/fabric-samples.git # 下载演
39
39
` Fabric ` 的认证以组织机构的身份验证管理依靠证书实现,即组织机构的层级关系是通过证书实现的,节点的加入与控制基于` CA ` 签发的证书,比较的严格。首先官方给我们提供了一个工具` cryptogen ` 来自动生成组织机构关系,该工具依赖于` crypto-config.yaml ` 配置文件,在本工程的示例文件中给出了一个配置文件模板,笔者也是基于该配置文件的组织机构构建超级账本的组织机构,笔者会根据在实际的调用过程中使用到的配置加以解释,其他配置会不断的丰富完善。模板配置文件` crypto-config.yaml ` 如下:
40
40
41
41
``` bash
42
+ # ---------------------------------------------------------------------------
43
+ # "OrdererOrgs" - Definition of organizations managing orderer nodes
44
+ # ---------------------------------------------------------------------------
45
+ OrdererOrgs:
46
+ # ---------------------------------------------------------------------------
47
+ # Orderer
48
+ # ---------------------------------------------------------------------------
49
+ - Name: Orderer
50
+ Domain: epoint.com.cn
51
+ Template:
52
+ Count: 4 # 定义在超级账本中包含了几个Orderer共识节点
53
+ # ---------------------------------------------------------------------------
54
+ # "PeerOrgs" - Definition of organizations managing peer nodes
55
+ # ---------------------------------------------------------------------------
56
+ PeerOrgs:
57
+ # ---------------------------------------------------------------------------
58
+ # Org1
59
+ # ---------------------------------------------------------------------------
60
+ - Name: city1 # 组织机构名称
61
+ Domain: city1.epoint.com.cn # 组织机构的域名,请注意该属性请不要随意的去配置,后面需要使用到
62
+ Template:
63
+ Count: 2 # 该属性表示该机构下有几个组织节点
64
+ Users:
65
+ Count: 5 # 该属性表示该组织机构下包含了多少个用户,其中会自动签发一个管理员用户供给配置管理使用
66
+ # ---------------------------------------------------------------------------
67
+ # Org2: See "Org1" for full specification
68
+ # ---------------------------------------------------------------------------
69
+ - Name: city2 # 配置同上所述
70
+ Domain: city2.epoint.com.cn
71
+ Template:
72
+ Count: 2
73
+ Users:
74
+ Count: 5
42
75
```
43
76
77
+ 如上所示,我们在组织机构中定义了4个` Orderer ` 共识节点,两个组织机构,其中每一个组织机构中包含两个` Peer ` 节点,每一个组织中预签发了` 5 ` 个用户的证书,其中包含一个管理员账户。有了如上的组织机构,我们就可以使用工具进行签发证书。
78
+
79
+ ``` bash
80
+ Shell> cryptogen generate --config=./crypto-config.yaml
81
+ [root@localhost hyperledger1.0.6_conf]# cryptogen generate --config=./crypto-config.yaml
82
+ city1.epoint.com.cn
83
+ city2.epoint.com.cn
84
+ Shell> tree -L 4 crypto-config
85
+ crypto-config
86
+ ├── ordererOrganizations
87
+ │ └── epoint.com.cn
88
+ │ ├── ca
89
+ │ │ ├── 0b275b1d0864dfad157ad6a6393a4a1ef87ad354618bcfa0d49f74c3add3e818_sk
90
+ │ │ └── ca.epoint.com.cn-cert.pem
91
+ │ ├── msp
92
+ │ │ ├── admincerts
93
+ │ │ ├── cacerts
94
+ │ │ └── tlscacerts
95
+ │ ├── orderers # 每一个Orderer共识节点对应的MSP证书文件
96
+ │ │ ├── orderer0.epoint.com.cn
97
+ │ │ ├── orderer1.epoint.com.cn
98
+ │ │ ├── orderer2.epoint.com.cn
99
+ │ │ └── orderer3.epoint.com.cn
100
+ │ ├── tlsca # TLS加密证书
101
+ │ │ ├── 5b42f46d8ae628b93e45e7dc4c502505db57d58d681cca23bbc6a9692f5f1441_sk
102
+ │ │ └── tlsca.epoint.com.cn-cert.pem
103
+ │ └── users
104
+ │ └── Admin@epoint.com.cn
105
+ └── peerOrganizations
106
+ ├── city1.epoint.com.cn
107
+ │ ├── ca # city1组织结构的CA根证书
108
+ │ │ ├── 053ec57e47cd3b71a22414bf28d87dbddec780f01b639be6c99efb8695308f45_sk
109
+ │ │ └── ca.city1.epoint.com.cn-cert.pem
110
+ │ ├── msp # city1组织的msp身份证书文件
111
+ │ │ ├── admincerts
112
+ │ │ ├── cacerts
113
+ │ │ └── tlscacerts
114
+ │ ├── peers # city1组织机构下的每一个部门的MSP身份证书
115
+ │ │ ├── peer0.city1.epoint.com.cn
116
+ │ │ └── peer1.city1.epoint.com.cn
117
+ │ ├── tlsca # 节点加密通信的TLS证书
118
+ │ │ ├── 9afd761a385f4f9230b08ff9ffecf8303daa7b566751857ac834e6f16911d46c_sk
119
+ │ │ └── tlsca.city1.epoint.com.cn-cert.pem
120
+ │ └── users # 该组织机构下用户的MSP证书,在调用链码时需要使用到
121
+ │ ├── Admin@city1.epoint.com.cn
122
+ │ ├── User1@city1.epoint.com.cn
123
+ │ ├── User2@city1.epoint.com.cn
124
+ │ ├── User3@city1.epoint.com.cn
125
+ │ ├── User4@city1.epoint.com.cn
126
+ │ └── User5@city1.epoint.com.cn
127
+ └── city2.epoint.com.cn # 目录结构同city1
128
+ ├── ca
129
+ ├── msp
130
+ ├── peers
131
+ ├── tlsca
132
+ └── users
133
+ ```
134
+
135
+
136
+
137
+
138
+
44
139
45
140
46
141
0 commit comments