1.通过一台主机,使用Docker容器搭建多节点Fabric网络,实现6节点组成的Fabric网络(一个排序节点,组织1及其2个节点,组织2及其2个节点,cli命令交互节点)。

2.配置二进制文件:在使用fabric源码库的脚本下载相关编译产物时,其相关编译产物被存放在了fabric-sample/bin(但在Windows中相关编译产物不是在fabric-sample里的bin,而是跟fabric-sample同一级目录的bin目录)目录下,所以我们在系统环境的PATH变量中加入该目录,以确保在任何目录下都能使用这些编译好的二进制文件。


然后在任何地方都可以使用git bash终端调用相关的命令,如peer help:

3.选择一个工作目录(开始部署超级账本的网络,要选择一个工作目录来存放部署网络的配置文件,以及这个网络运行所产生的数据存储的一些路径)这个工作目录是随便选择的。

(本人选择在hyperledger上创建fabric-test为工作目录,下同)

4.生成节点证书

(1)打开git bash终端进入工作目录:cd fabric-test
(2)通过配置文件来生成节点证书,生成配置文件模板命令:

cryptogen showtemplate > crypto-config.yaml


(3)在工作目录生成了配置文件crypto-config.yaml后,用VSCode打开修改里面的内容为:
1.因为这里是搭建6节点组成的Fabric网络,所以是这里的结构是三个组织的配置(排序节点:Orderer,组织1:Org1,组织1:Org2),且在组织1用户数量(Users.Count)比组织2多一个是为cli命令行交互节点准备的,放到组织2去也是一样的。
2.EnableNodeOUs用来决定生成的用户的类型:设为true,则会生成peer类型的用户证书设为false,则会生成client类型的用户证书
3.Template:模板

(4)生成证书文件:

cryptogen generate --config=crypto-config.yaml --output ./crypto-config

5.生成系统创世区块:创世区块主要提供给Orderer节点使用,也需要根据相关配置文件生成。

到fabric源码中拷贝配置文件模板(注意最后还有一个点表示复制到当前文件夹内,当前文件夹是指之前创建的工作目录(fabric-test)):

cp $GOPATH/src/github.com/hyperledger/fabric/sampleconfig/configtx.yaml .

在该配置文件中,主要包含了组织属性,能力属性,应用权限,通道属性,通道规则,共识算法等多种内容配置。
完成configtx.yaml文件的修改后(配置文件的单词很重要,也是导致错误的很重要原因),通过以下命令生成创世区块:
命令参数说明:
-profile:后面接通道名称,从configtx.yaml文件的profiles配置段中寻找相关通道配置名称载入
-channelID:自定义的通道ID,后面接通道名称,建议小写无特殊符号
-outputBlock:创世通道存储的位置,后面接创世区块输出的文件路径
-configPath:配置文件路径

configtxgen -profile TwoOrgsOrdererGenesis -channelID fabricnet02-sys-channel -outputBlock ./channel-artifacts/genesis.block -configPath .

6.生成节点channel配置文件(我这里将channelID命名为mychannel)

这里的channel是Peer间通信的通道,与前面Orderer的channel不同,

configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID mychannel -configPath .

7.生成组织的锚点(anchor)文件:

(1)生成组织1的锚点文件:

configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org1MSPanchors.tx -channelID mychannel -asOrg Org1MSP -configPath .

(2)生成组织2的锚点文件:

configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org2MSPanchors.tx -channelID mychannel -asOrg Org2MSP -configPath .

8.生成Docker配置文件:

前面已经把必要的证书,组织架构设定好,接下来就通过docker-compose对容器进行编排,(这里我们需要启动6个容器)在之前创建的工作目录(fabric-test)下创建docker-compose.yml配置文件(网上查找,或者自己写,再或者下次写一篇关于配置文件内容的博客分享给大家)

9.启动Docker容器

通过Docker-compose启动容器:
指令解释:up:启动容器;-d:使Docker相关进程可以在后台运行

docker-compose up -d

(关闭是:docker-compose down 其中down指令会关闭所有容器服务并清空容器)

搭建多节点Fabric网络(Windows系统)相关推荐

  1. 用百宝云搭建一个自己的网络验证系统的过程

    为什么选择百宝云搭建网络验证系统,而不是用其他产品就不说了,速度快,难度低,成本低,优势很多,这里我描述一下百宝云搭建一个网络验证系统的过程. 指明一下 百宝云 可以做很多网络系统,这里网络验证系统只 ...

  2. 大数据集群搭建之节点的网络配置过程(二)

    紧接着上一章来设置windows的vmnet8的ip地址和虚拟机中centos的ip地址. NAT虚拟网络的配置图如下图所示: 1.这里根据VMware中得到的网关地址去设置vmnet8的ip地址. ...

  3. 在Windows系统中搭建PHP环境,PHP环境搭建-Windows系统下PHP环境搭建

    1.PHP环境搭建的前提是 Apache HTTP Server (Apache 服务器)已经安装部署成功,并可以正常访问到服务器的主页面.Apache HTTP Server 的安装部署已经在上一篇 ...

  4. windows系统使用Docker搭建MySQL服务

    windows系统使用Docker搭建MySQL服务 文章目录 windows系统使用Docker搭建MySQL服务 前题 一.安装docker 二.建立镜像 三.连接mysql 前题 请先在wind ...

  5. 基于Java的乐嘉网络商城系统(毕设)

    文章目录 前言 1.1 用户登录与注册 1.1.1 用户注册 1.1.2 用户登录 1.2 前台展示 1.2.1 首页展示 1.2.2 首页搜索 1.2.3 商品浏览 1.2.4 商品详情页搜索 1. ...

  6. ssm基于web的网络租房系统毕业设计源码250910

    目  录 摘要 1 绪论 1.1 研究意义 1.2研究现状与发展趋势 1.3论文结构与章节安排 2网络租房系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据增加流程 2.2.2 ...

  7. 虚拟机Ubuntu搭建Windows系统Samba服务映射网络驱动器

    前言:前段时间在公司学习有关Qemu的运行调试,其中就有关于在Windows系统下访问Ubuntu文件资源(远程访问)的操作,对于编程来说,有些开发环境最好是在虚拟机Linux系统下进行,毕竟虚拟机会 ...

  8. windows系统下搭建 ZeroTier moon服务器

    ZeroTier 是一个虚拟局域网软件,局域网内的机器,流量不走公网,降低了风险和费用.而且软件开源,同一子网下免费使用100个机器,然而在国内如果要用好ZeroTier,最好搭建MOON转发服务器. ...

  9. 环境搭建:Windows系统下Nacos集群搭建

    环境搭建:Windows系统下Nacos集群搭建 一.环境准备 名称 版本 下载地址 nacos NACOS 1.2.0 下载地址,提取码:5555 MySQL mysql Ver 14.14 Dis ...

最新文章

  1. [SQL基础教程] 1-5 表的删除和更新
  2. 代理 设置wsl_第一次使用WSL我做了什么
  3. OGNL表达式语言中的#和$的区别
  4. 在linux系统上运行新加的内核模块(驱动模块) 需要安装的东西
  5. 五邑大学数据结构邢润丹实验_哪个大学楼最高:全国大学高楼海拔高度排名
  6. Nature论文解读:深度学习助力毫秒之间识别癌细胞
  7. 电脑的发展史_互联网发展史 硅谷传奇之 IBM
  8. 为什么测试喜欢ie_为什么我现在喜欢测试,以及为什么您也应该如此。
  9. python操作三大主流数据库(12)python操作redis的api框架redis-py简单使用
  10. deploy dubbox 到私有的 nexus 服务
  11. 指纹考勤机使用的基本操作方法
  12. ssm毕设项目疫情防控管理系统02vsf(java+VUE+Mybatis+Maven+Mysql+sprnig)
  13. osip和mysql_osip2/eXosip2调试笔记
  14. 写出linux命令的功能,练习一LINUX命令测试题1
  15. Java实现判断是否参加上秒杀活动
  16. Mybatis源码-cursor(游标)
  17. Python解释大数定律
  18. RUOYI 框架教程 1 |小白都能学会的 3 分钟搭建框架教程
  19. 软件测试就是找茬的?那些年和开发小哥的“爱恨情仇”
  20. 《众妙之门——网页排版设计制胜秘诀》——第3章 设置网页字体的5 项原则和方法3.1 系统地进行网页版式设计...

热门文章

  1. SpringBoot 使用 Redis Geo 实现查找附近的位置-附近的人功能
  2. 【数字信号处理】MATLAB OLA(Overlap-Add)实现变调不变速/变速不变调
  3. 关于Precision, Accuracy, F1, Micro-Ave, Macro-Ave
  4. 如何成为一名优秀的后端工程师
  5. 兄弟hl3150cdn打印测试页6_打印性能测试:LED高效输出_兄弟 3150CDN_办公打印评测试用-中关村在线...
  6. HMS Core华为分析丨受众细分,多场景促进精益运营
  7. php for循环删除元素,php-在foreach循环中取消设置数组值
  8. echarts label点击_echarts 点击方法总结,点任意一点获取点击数据,举例说明:在多图联动中点击绘制标线...
  9. LibGDX_2.1: LibGDX 应用框架(6 大系统交互接口)
  10. STC89C52单片机定时器及中断系统的介绍以及代码示例