联盟链——03.Fabric核心模块详解

版权声明:忠于祖国,忠于人民 https://blog.csdn.net/boss2967/article/details/85093019

1.1 导语

  • Fabric 的核心模块,核心模块配置信息的管理方式

1.2 Fabric 核心模块

  • peer 主节点模块,负责存储区块链数据,运行维护链码
  • orderer 交易打包、排序模块
  • cryptogen 组织和证书生成模块
  • configtxgen 区块和交易生成模块
  • configtxlator 区块 交易解 模块
    1

1.3 Fabric 模块的通用选项和命令

  • 5个核心模块都是基于命令行的方式运行,必须熟悉这些模块的命令,介绍一下这些通用选项。

  • help 选项

    • Available Commands :表示表命 ,包含子命令
    • Flags :显示当前命令的参数
    • Global Flags :表示全局参数,所有的子命令都可以使用
  • -v ,–version

1.4 Fabric 模块的子命令、选项和配置文件

  • Fabric 核心模块的配置信息、由配置文件 命令行选型 环境变量三个部分组成
    环境变量〉配置文件〉命令选项

1.4.1 cryptogen

  • cryptogen 模块主要用来生成组织结构和账号相关的文件, 任何 Fabric 系统的开发通常都是从 cryptogen 模块开始的 Fabric 项目中,当系统设计完成之后第一项工作就是根据系统的设计来编写 cryptogen 的配置文件,然后通过这些配 文件生成相关的证书文件cryptogen 模块所使用的配置文件是整个 Fabric 项目的基石 下面我们将介绍 cryptogen 模块命令行选项及其使用方式
1.cryptogen 模块命令说明
  • cryptogen 模块是通过命令行的方式运行的,一个 cryptogen 命令由命令行参数和配置文件两部分组成,通过执行命 cryptogen --help 可以显示 cryptogen 模块的命令行选项,执行结果如下所示
usage : cryptogen [<flags>] <command> [<args> . . ] 
Utility for generating Hyperledger Fabr key material 
Flags : 
--help 
Commands : 
help 
ge erate
showtemplate 
version
cryptogen 模块 共有 4个命令,这 个命令及其作用如下所示
  • help 显示帮助信息

  • generate :根据配置文件生成证书信息

  • showtemplate :显 系统默认 cryptogen 模块配 文件信息

  • version 当前模块的版本号

其中 generate 选项是用来根据配 文件生成 Fabric 系统相关的证书文件

2.cryptogen 模块的配置文件
  • cryptogen 模块的配 文件用来描述 要生成的证书文件的特性

23

上述模板文件定义了一个 or erer 节点,这个 orderer 节点的名字为 or erer, orderer点的根域名为 examp le .com ,主机名为 order 模板文件同时定义了两个组织,两个组织的分别为 orgl org2 ,其中组织 orgl 包含了 个节点和 个用户,组织 orgl节点和2 个用户

3.cyptogen 实例:创建测试配置文件

2

根据上述 Fabric 系统的基本信息,我们可以编 cryptogen 模块用的配置文件,配置文件的内容如下所示:

在这里插入图片描述

测试环境中域名可以随便定义的,但是在正式的生 环境中,域名最好选择已经通过备案的。

  • 生成证书文件
    cryptogen 模块的 generate 命令可以生成相关的证书文件 命令如下
cryptogen generate --config=/opt/hyperledger/fabricconfig/crypto-config . yaml 
--output /opt/hyperledger/fabricconfig/crypto-config

/opt hyperledger fabricconfig 是证 书文件存放目录,也可以是任何具有读写权限的文件夹,但是需妥提前创建

进入 opt hyper!edger fabricconfig crypto config 件夹之后有两个子文件夹,通过命tree -L 显示如下:

在这里插入图片描述

  • tree 工具是 Linux 系统中的常用命令,可以显示文件夹中文件的层次结构

  • 命令执行成功之后,进入 ordererOrganizations 然后通过命令 往四”L4 显示如下:

4

4.Fabric 证书文件的结构

cryptogen 模块生成的证书文件就是 Fabric 系统运行所需要的证书文件,接下来我们将详细介绍这些证书文件的种类和作用 进入文件夹 peerOrganizations 后执行命令 tree -L 1, 命令结果如下所示:

在这里插入图片描述

三个子文件和描述的组织的对应关系

在这里插入图片描述

文件夹 orgl .qklszzn.com 行命令 tree -L5 显示如下:
在这里插入图片描述

在这里插入图片描述

  • cryptogen模块生成的证书是 Fabric 系统的重要组成部分,是所有Fablic系统的开始。

1.4.2 configtxgen

1.configtxgen模块的命令
  • configtxgen 模块用来生成 orderer 的初始化文件和 channel 的初始化文件 configtxgen模块包含如下子命令选项:

• asOrg 所属的组织
• channe!ID : chann 名字,如果没有系统会提供 个默认值
• inspectBlock :打印制定区块文件中的配置内容
• inspectChanne!CreateTx :打印创建通道的交易的配置文件
• outputAnchorPeersUpdate 更新 channel 配置信息
• outputBlock :输出区块文件的路径
• outputCreateChanne!Tx :标示输出创始块文件
• profile :配置文件的节点
• version 显示版本信息

2.configtxgen 模块的配 文件

configxgen 模块的配 置文件包含 Fabric 系统初始块 Channel 初始块文件等信息.

configtxgen 模块配置文件的样例如下所示:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
(注释:缺失)

  • Profiles节点详解:Profiles 点定义了整个系统的结构和 channel 的结构,配置文件中
    Profiles 关键字不允许更改 ,否则配置无效。 系统配置信息 中设置了系统中 orderer 节点
    的信息以及系统中包含的组织数

3.configtxgen 典型的应用场景

  1. 创建orderer的初始块

在这里插入图片描述

  1. 创建 channel 初始块

在这里插入图片描述

  1. 创建锚点更新文件

在这里插入图片描述

1.4.3 configtxlator

configtxator 模块可以把区块链的二进制文件转化 JSON 格式的文件,便于我们阅和理解.

含有三个命令,configtxlator–help

在这里插入图片描述

其中start命令包含两个参数:

在这里插入图片描述

  • configtxlator 是一个RESTAPI服务的形式提供服务的,可以通过标准的http请求来访问 configtxlator

  • configtxlator 启动示例

  • conf gtxlator start --hostname=O 0 . 0 . 0 --port=

  • configtxlator的REST服务提供了解码,编码,计算配置更新,交易打包 四个功能 (下面请确保curl已经安装好了)

  1. 解码
    在这里插入图片描述
curl -X POST --data-binary @configurat on block.block http :ll127. 0 . 0 . 1 : 7059/ 
protolator/decode/commo Block> . /configuration_ block . json 
  1. 编码
    在这里插入图片描述
curl -X POST --data-binary @updated onfig . json http :ll127 . 0 . 0 . 1 : 7059/ 
protolator/encode/commo Config > updated_con f 工 . pb 

上述命令将json格式的配置文件pdated_config.json转化成区块链文件updateconfig.pb

3.计算配置更新量

23

4.交易打包
在这里插入图片描述

1.4.4 orderer

  • order 模块负责对交易进行排序,并将排好序的交易打包成区块
  1. 命令
  • help 显示帮助信息
  • start *启动 orderer 节点
  • version 显示版本信息
  • Show vers on information
  • benchmark 采用基准本模式运行 orderer
    2.配置信息

orderer 模块配置信息可以用环境变量或者配置文件的方式来配置。

环境变量配置:

在这里插入图片描述

export set ORDERER_GENERAL_LOGLEVEL=debug 
export set ORDERER_GENERAL_LISTENADDRESS=0 . 0 . 0 . 0 
export set ORDERER_GENERAL_LISTENPORT=7050 
export set ORDERER_GENERAL GENESISMETHOD=file 
export set ORDERER GENERAL GENESISFILE=/opt/hyperledger/order/orderer . genesis . 
block 
export set ORDERER GENERAL_LOCALMSPID=OrdererMSP
export set ORDERER_GENERAL_LOCALMSPDIR=/opt/hyperledger/fabr cconfig/crypto-config/
ordererOrgan zat ons/qklszzn.com/orderers/orderer qklszzn com/msp 
export set ORDERER_GENERAL_ LEDGERTYPE=file 
export set ORDERER_GENERAL BATCHTIMEOUT=10s 
export set ORDERER_GENERAL_MAXMESS.l\GECOUNT= 10 
export set ORDERER_GENERAL_TLS ENABLED= false 
export set ORDERER_GENERAL_TLS_ PRIVATEKEY=/opt/hyperledger/fabricconfig/crypto 
config/ordererOrganizations/qklsz com/ /orderer . qklsz com/tls/server key 
export set ORDERER_GENERAL_TLS_ CERTIFICATE=/opt/hyperledger/fabricconfig/ 
crypto-co f 工 g/ordererOrganizations/qklszzn com/orderers/orderer qklszzn com/tls/
server crt 
export set ORDERER_GENERAL_TLS_ ROOTCAS= [I opt /hyper ledger If abr cconfig/cryptoconf g/ordererOrganizations/qklszzn com/orderers/orderer qklszzn .c om/tls/ca crt)

orderer模块配置文件:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.orderer模块配置文件详解

orderer模式的配置文件功5部分,

  • Genera
  • FileLedger
  • RAMLedger
  • Kafka
  • Debug
1. General节点配置

General 节点中包含了 orderer 模块的基本控制信息

在这里插入图片描述

在这里插入图片描述

配置项:

LedgerType :账本的类型,有 ram json file 种类型可以选择 ram 表示账本的数据保存在内存中, 般用于测试环境 json file 表示账本数据保存在文件中,在生产环境中 般推荐使用 file
• enAddress : ord rer 服务器监昕的地址,如果服务器有多个网卡, 般需要指明
监听的具体地址
• ListenPort 监听端口
• Enabled 启用 TLS 时的相关配
• PrivateKey 私钥文件
• Certificate :证书文件
• RootCAs :根证书文件
• ClientAuthEnabled :启用客户端证书验证
• ClientRootCAs :客户端根证书
• LogLevel :日志级别
• LogFormat :日志格式
GenesisMethod :初始块的来源方式,支持 provisional file, provisional 表示 GenesisProfile 选项指定的内容在默认的配 文件中的配置是自动生成的,后者使用 GenesisFile指定的现成初始的文件
GenesisProfile :初始块的 profile ,在 configtxgen 模块的配置文件中指
• GenesisF 巳:初始块文件的路
• LocalMSPDir: orderer 模块 msp 文件的路
• LocalMSPID: orderer 模块 编号,在 configtxgen 模块的配置文件中指
• Enabled :是否启动 go profile 信息
• Address: go profile 信息的访问地址
• efault :采用的密码机制, SW 为软件程序实现, PKCSll 为硬件的 方式
• Hash 算法类型

2.FileLedger节点配置

FileLedger 节点中包含了 ordrerer 模块中账本文件相关的配置信息
在这里插入图片描述

配置项

• Location :账本文件的路径
• Prefix :账本存放在临时 目录时候的目 录名 ,如果已经指定了 Location 值, 则该选项无效

3.RAMLedger节点配置

RAMLedger 节点中包含了 rderer 模块的账本在内存中数据保存方式的相 配置信息
在这里插入图片描述

配置项

• storySize :如果 Ledg rType 类型为 RAM 时内存中保存的区块的数目, 超过这个数目的区块将被放弃

4.Kafka节点配置

Kafka 节点中包 orderer 模块中连接 Kafka 关的信息,注意 :如 果ordrer节点的排序模式选择了solo 那么该节点的所有配均无效.

3

在这里插入图片描述

配置项

• Retry:如果 orderer 在启动的时候, Kafka 还没有启动或者 Kafka 若机时重试的次数
• Shortlnterval :操作失败短重试状态下重试的时间间隔
• ShortTotal :短重试状态下最多重试的时间
• Longlnterval :长 试状 下重试的时间间隔
• LongTotal :长 试状态下 多重试时间
• DialTimeout 等待超时时间
• ReadTimeout 超时时间
• WriteTimeout 超时时间
• RetryBackoff: Kafka 集群选举 leader 的元数据
• RetryMax: Kafka 群选举 leader 元数据
• RetryBackoff 者消息超时时间
• Verbose : Kafka 户端的日志级别,在 orderer 的运行日志中显示 Kafka 的日志信息
• Enabled :是否启动 TLS
• PrivateKey :私钥前面
certificate: Kafka 的证书
rootCAs :验证 Kafka 的根证书
version: Kafka 的版本号

5.Debug节点配置

Debug 节点中包含了 orderer 模块调试相关的选项
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/boss2967/article/details/85093019
今日推荐