创世块的生成过程
···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) 的配置文件,而不是整个排序服务的创世区块。
