Hyperledger Fabric 网络环境的一点理解

Hyperledger Fabric 开发链码,一般都是测试网络开发,然后部署到生产网络。

下面介绍测试网络、生产网络的一点理解。

1 测试网络

使用cryptogen等工具建立测试网络,开发环境使用。
这里以https://github.com/hyperledger/fabric-samples 2022.2.12的代码为例进行说明。Hyperledger Fabric 网络环境的一点理解_第1张图片

目录:fabric-samples/test-network/organizations/fabric-ca/
Hyperledger Fabric 网络环境的一点理解_第2张图片
从上面的目录可以看到,测试网络包括:
1) 2个组织。每个组织有1个peer节点;
2) 1个order组织。组织有1个order节点;

端口分配情况:
ordererOrg 排序组织 7050端口
org1 组织 7051端口
Org2 组织 9051端口

1.1 配置文件

目录:/fabric-samples/config/
包括:
core.yaml : 创建Peer节点的配置文件;
orderer.yaml :Orderer节点示例配置文件;
configtx.yaml:组织结构配置文件。
主要用来配置fabric的组织结构,通道及锚节点的配置。它主要完成以下几个功能
1)生成启动 Orderer 需要的创世区块orderer.block(genesis.block)
2)创建应用通道所需的配置交易文件
3)生成组织锚节点更新配置交易文件
在这里插入图片描述

目录:/fabric-samples/test-network/configtx/
生产创世区块(GenesisBlock)与通道(Channel)所需配置文件。如指定orderer服务的相关配置,以及当前的联盟信息、联盟中所属包含的组织信息,这些信息的配置被定义在该文件中。
在这里插入图片描述

目录:fabric-samples/test-network/organizations/cryptogen/
生产组织结构及身份认证所需的配置文件。
crypto-config-orderer.yaml
crypto-config-org1.yaml
crypto-config-org2.yaml
在这里插入图片描述

目录:fabric-samples/test-network/compose/docker/
实现节点容器的管理。
在这里插入图片描述

1.2 启动流程

启动网络:

./network.sh up

下面的说明都以当前目录:fabric-samples/test-network/

启动网络前的准备
1)为2个peer节点和1个order节点创建证书和密钥。
cryptogen工具会利用在organizations/cryptogen文件夹下的配置文件生成节点证书和密钥。看下图多了peerOrganizations、ordererOrganizations 2个文件夹。
Hyperledger Fabric 网络环境的一点理解_第3张图片

2)创建系统的创世块。
configtxgen工具使用configtx/configtx.yaml文件来创建创世块,并存储在system-genesis-block文件夹中。

当上述两步完成之后,./network.sh会启动测试网络:

启动测试网络的步骤:
1)脚本利用在compose/docker/文件夹下的docker-compose-test-net.yaml文件创建peer和orderer节点。

2)运行./network.sh createChannel子命令,脚本还会运行script文件夹下的createChannel.sh脚本来创建所需要的channel,脚本会用peer命令来创建channel,加入两个组织。

3)运行./network.sh deployCC命令,脚本会在所有peers上运行script下的deployCC.sh脚本来安装chaincode,在chaincode的定义被提交到channel。

4)最后,peer命令会调用init函数来初始化chaincode,并将所需的数据放入chaincode中。

2 生产网络

使用认证机构建立网络,设置生产组件和生产网络。

具体步骤
步骤1:选定你的网络配置;
步骤2:为资源设置一个集群;
步骤3:设置 CA节点
步骤4:用 CA 来创建身份和 MSP
步骤5:部署节点;创建1个 peer 节点、创建1个order节点
步骤6:节点加入组织,并加入通道。链码就可以安装在节点。

小结:
如果我们只是开发链码(智能合约),测试环境就足够了。
如果线上部署,涉及了多节点,需要了解和运用kafka、Kubernetes、zookeeper等各种分布式技术和框架。

你可能感兴趣的:(区块链,超级账本,fabric,网络,区块链)