• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Hyperledger Fabric 网络环境的一点理解

武飞扬头像
令狐飞侠
帮助2

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

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

1 测试网络

使用cryptogen等工具建立测试网络,开发环境使用。
这里以https://github.com/hyperledger/fabric-samples 2022.2.12的代码为例进行说明。学新通

目录:fabric-samples/test-network/organizations/fabric-ca/
学新通
从上面的目录可以看到,测试网络包括:
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个文件夹。
学新通

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等各种分布式技术和框架。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgbgieb
系列文章
更多 icon
同类精品
更多 icon
继续加载