创世块的生成过程
···bash
创世区块 (Genesis Block) —区块链网络的第一个区块
定义了网络初始的配置信息,例如排序服务组织的成员、共识机制等

configtxgen 工具来生成创世区块文件
这个工具会读取一个名为 configtx.yaml 的配置文件
configtx.yaml 是输入的配置文件,而不是输出的区块文件
输出的创世区块文件被命名为 genesis.block
这个文件是启动排序服务节点的关键
···

各个文件的概念,文件,功能…

1
2
3
4
5
cryptogen 
用于生成和管理区块链网络中的加密材料
加密材料对于网络中的实体(peer-rderer-用户)的身份信息和安全通信很重要
作用:
-生成密钥对
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
configtx.yaml
是这个体系中最重要的文件,相当于设计总蓝图一样的存在
定义了整个区块链网络的组织结构、成员关系、策略和规则,不被peer,orderer节点使用
会被configtxgen这个工具读取其中的内容,生成两种文件
1.创世区块 (Genesis Block):用于启动和初始化排序服务 (Ordering Service) 的第一个区块。
2.通道配置交易 (Channel Configuration Transaction):用于创建新的应用通道 (Application Channel)。

文件主要内容:
1. Organizations (组织)
这部分定义了网络中的所有参与方(组织)。

Name: 组织的名称,例如 Org1MSP。
ID: 组织的唯一标识符 (MSP ID)。
MSPDir: 指向该组织 MSP (Membership Service Provider) 证书的路径,用于身份验证。
Policies: 定义该组织的内部策略,例如谁有权读、写或管理。
AnchorPeers: 定义该组织的锚节点 (Anchor Peer),用于跨组织通信。

2. Capabilities (功能)
声明了网络要启用的 Fabric 功能版本,确保网络中的所有组件(Peer, Orderer)都使用兼容的协议和特性。
3. Application (应用)
定义了应用通道的默认配置和策略,当创建新的应用通道时,这些配置会作为基础。

4. Orderer (排序服务)
定义了排序服务的配置,这是网络共识的核心。

OrdererType: 共识算法类型,例如 Raft (推荐) 或 Solo (仅用于测试)。
Addresses: 排序服务节点的网络地址。
BatchTimeout: 出块的最长等待时间。
BatchSize: 一个区块中可以包含的最大交易数量。
Organizations: 参与排序服务的组织。
Policies: 排序服务的管理策略。

5. Profiles (配置组合)
Profile (配置组合) --“菜单”,
它将上面定义好的各个部分(例如哪些组织、什么样的排序服务配置)组合在一起,用于生成特定的目标文件。

一个典型的 configtx.yaml 会包含至少两个 Profile:

创世区块 Profile: 用于定义和生成创世区块 (genesis.block)。它会指定排序服务的组织、共识算法等。
通道 Profile: 用于定义和生成通道创建交易文件 (channel.tx)。它会指定哪些应用组织可以加入这个新通道。
1
2
3
4
crypto-config.yaml

用途: 为 cryptogen 工具生成加密材料(证书和密钥)提供组织结构定义。
说明: 这个文件的主要目的是定义网络中的组织和用户结构,以便 cryptogen 工具能够据此批量生成所有网络实体所需的身份证书和私钥。虽然它也定义了组织,但它的核心功能是身份生成,而不是定义通道和共识等网络运行规则。

未归类
channel.tx 通常是用于创建应用通道 (Application Channel) 的配置文件,而不是整个排序服务的创世区块。

3群组8节点4机构