1 Fabric核心模块及其功能
前面的实践我们发现,Fabric是一个由5个核心模块组成的程序组。分别是peer、orderer、cryptogen、configtxgen、configtxlator,他们功能如下:
模块名称 | 功能 |
---|---|
peer | 节点模块,负责存储区块链数据,有时候还承担背书节点角色 |
order | 负责交易打包,区块生成 |
cryptogen | 负责组织证书生成 |
configtxgen | 负责生成格式化后的区块和提案文件 |
configtxlator | 负责解析格式化后的区块和交易文件 |
这5个模块中peer和orderer属于系统模块,cryptogen、configtxgen和configtxlator属于工具模块。工具模块负责证书文件、区块链创世块、通道创世块等相关文件和证书生成,但是工具模块不会参与系统运行。peer模块和orderer模块作为系统模块是fabric的核心模块,启动之后会一直以进程的形式存在。
2 Fabric核心模块的通用命令选项
Fabric的5个核心模块都是基于命令行的方式运行的,在Fabric核心模块的命令选项中有一些通用选项,下面我们介绍一些这些通用选项。
1. --help选项
help选项将显示该模块的所有选项。help选项的内容分成3部分:
Available Commands: 表示该命令包含哪些子命令
Flags: 显示当前命令的参数
Global Flags: 表示全局参数,所有子命令都可以使用
help还可以查询子命令的选项信息,命令格式如下:
模块名称 + 子命令 + --help
2.-v, --version
-v和--version的作用是相同的,都是显示当前模块的版本信息。
3 Fabric核心模块配置信息
Fabric核心模块的配置信息由配置文件、命令行选项、环境变量这三部分组成。这也是初学者容易混淆的地方,特别是三者的关系。
举个例子,peer模块有个全局选项--logging-level,这个选项会设定peer模块启动后系统日志的级别,同时在core.yaml配置文件的logging节点下面的peer子节点也可以设定peer模块的日志级别,另外环境变量CORE_LOGGING_LEVEL也可以设定peer模块的日志级别。
如果上述三种参数配置方式同时出现,peer模块会用谁的呢?通过分析源码会发现三者的优先级存在如下关系:
环境变量 > 配置文件 > 命令选项
后面我们会详细介绍Fabric5个核心模块的命令选项、配置文件、环境变量等。