更新时间:2024-04-15 09:22:45作者:佚名
《实战(一)——快速搭建.0环境》一文中,在快速搭建网络的过程中,使用了官方的脚本。 我们所做的只是运行一个 shell 脚本。 至于搭建网络的步骤,我们就不知道了。
下面文章将简单介绍一下网络搭建的基本流程。 在此基础上,我们重点介绍几个重要的配置文件和工具。 全文结构如下:
全文结构前言
手动构建对于我们了解网络如何运行是非常有必要的。 我们下载网络源码后。 基本步骤包括本地编译、生成相应的配置文件、创建新通道、启动订单服务等,总的来说可以分为以下七个步骤:
图 1 - 启动网络的七个步骤
准备网络中的各种配置文件
在网络启动之前,需要提前生成一些启动配置文件。 主要包括:
各类文件的功能如下图所示:
表1-各配置文件的功能
上面只是介绍了我们需要准备的配置文件。 那么,这些文件应该如何准备呢?
当然,我们不需要手动创建那么多配置文件。 我们要做的就是编写依赖配置文件,即-.yaml和.yaml文件。 然后使用tools和根据上面两个配置文件自动生成最左边我们需要的配置文件。
如何理解文件的命名?
意味着加密。 -,即加密配置。 中,加密相关组件包括TLS、MSP等,因此-.yaml文件主要用于配置TLS、MSP等功能。
TX的英文缩写为TX,意思是交易。 ,代表交易配置。 因此,交易相关的配置,如应用通道、锚节点、服务等都在.tx文件中配置。
总结:
在标准代码开发过程中,一般对变量和文件命令都有一定的要求,才能达到理想的效果。 因此,在学习一些框架的过程中,我们最好了解一下每个变量和文件名的含义,这样可以更好地帮助我们理解和消化知识点。 依赖配置文件-.yaml
如表1所示,-.yaml是MSP和TLS相关文件的依赖配置文件。 它在同一文件中定义两个节点的 MSP。
该文件的主要功能:
-.yaml指定网络拓扑,主要包括两部分。
配置如下:
OrdererOrgs:
- Name: Orderer
Domain: example.com
Specs:
- Hostname: orderer
:排序节点的组织定义。 定义排序节点时,还定义了规范列表中该节点所需的节点名称、节点域名、不带域名的主机名。
:peer节点的组织定义有两种写法。
一种是在配置文件中编辑一组Specs规范条目。 每个规范条目由两个字段组成: 和 。
PeerOrgs:
- Name: Org1
Domain: org1.example.com
EnableNodeOUs: true
Specs:
- Hostname: foo
CommonName: foo27.org5.example.com
- Hostname: bar
- Hostname: baz
表示组织中节点的主机名。 是一个可选参数,可以覆盖它来指定节点的名称。 如果不指定,其节点默认名称为{{.}}.{{.}},即bar和baz的两个节点文件目录和域名分别为 和 。
另一种是官方配置文件中的写法,使用模板来定义:
- Name: Org2
Domain: org2.alibaba.com
EnableNodeOUs: true
Template:
Count: 4
Users:
Count: 6
该配置文件中指定了组织名称、域名和模板信息。 下面的Count是指组织下的组织节点的数量。 用户是指组织中除管理员之外的用户数量。 根据上述配置,生成的org2组织下的peer节点证书和用户证书文件夹如下:
整理文件目录
在 org2. 。 com/peers目录下,有四个peer节点的配置文件:
对等目录结构
在 org2. 。 com/users目录下,有一个admin用户和6个User用户:
users 目录结构取决于配置文件.yaml
.yaml 包含网络的定义并给出网络组件的拓扑。 它还指示每个网络实体的加密材料的存储位置。 用于写入用于配置系统通道的初始块文件、创建新的应用程序通道配置文件、锚节点配置更新交易文件等。
该文件的主要功能:
在正式进入.yaml文件之前,需要快速学习Yaml的语法。 您可以参考:
.yaml文件中,主要由以下部分组成:
:可以在此处编码不同配置的配置文件,将参数指定为工具的参数。 (这里可能有关于该工具的英文解释。)
:定义不同的组织标志,本节将引用这些标志。
:定义排序服务的相关参数,将用于创建创世块。 (这是进入或阻止)
:这部分定义了与交易配置相关的值,包括与创世块相关的值。 (这将进入 a 或 block for )
:这部分定义了与交易配置相关的值,包括与创世块相关的值。 (这就是“to”或“block”。)
:这部分用户定义了网络的功能。
这六个部分中,第1部分主要指其余五个部分的参数。 通过调用参数,可以生成特定的块文件。 其中fabric是什么意思,配置参数如下:
Profiles:
TwoOrgsOrdererGenesis:
<<: *ChannelDefaults
Orderer:
<<: *OrdererDefaults
Organizations:
- *OrdererOrg
Capabilities:
<<: *OrdererCapabilities
Consortiums:
SampleConsortium:
Organizations:
- *Org1
- *Org2
TwoOrgsChannel:
Consortium: SampleConsortium
Application:
<<: *ApplicationDefaults
Organizations:
- *Org1
- *Org2
Capabilities:
<<: *ApplicationCapabilities
# 重复的内容在YAML中可以使用&来完成锚点定义,使用*来完成锚点引用
配置中可以自定义s、、、、ies这五个字段,完成你搭建的联盟链的相关名称。
二进制自动生成工具
提供了一系列辅助工具,包括(生成组织结构和身份文件)、(生成配置块和配置交易)、(解释配置信息)等。
在准备网络中的各种配置文件的过程中,我们使用 和 来生成我们需要的配置文件。 这两个工具需要我们在本地自动编译生成。 生成步骤如下:
cd ~/go/src/github.com/hyperledger/fabric
make cryptogen
最后生成的工具会在这个目录下:
build/bin/cryptogen
//以fabric为根目录
同理,生成步骤如下:
cd ~/go/src/github.com/hyperledger/fabric
make configtxgen
最后生成的工具会在这个目录下:
build/bin/configtxgen
//以fabric为根目录
在上面两步中,我们生成了 和 toolsfabric是什么意思,同时也有了 -.yaml 和 .yaml 文件。 接下来,我们使用它们来生成我们需要的各种配置文件:
例如,要生成我们需要的创世块,我们可以使用以下命令:
cd examples/e2e_cli/
../../build/bin/configtxgen -profile TwoOrgsOrdererGenesis -outputBlock ./channel-artifacts/genesis.block
这里的 s 在我们的 .yaml 文件中定义。 最后将生成的创世块放入-目录中。
要生成其他文件,您可以使用类似的命令。 具体步骤会在后面的实践笔记中一一介绍。
使用介绍参见:
总结
通过这篇文章,我们了解了构建过程中的两个重要文件和两个重要工具:
有了它们,我们可以生成构建网络的所有基本配置文件。 手动搭建网络的主要基础知识已经介绍到这里了。 在接下来的一步一步的实际网络搭建中,我们将把这些基础知识联系在一起,彻底了解网络搭建过程。