搭建多节点Fabric网络(Windows系统)
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系统)相关推荐
- 用百宝云搭建一个自己的网络验证系统的过程
为什么选择百宝云搭建网络验证系统,而不是用其他产品就不说了,速度快,难度低,成本低,优势很多,这里我描述一下百宝云搭建一个网络验证系统的过程. 指明一下 百宝云 可以做很多网络系统,这里网络验证系统只 ...
- 大数据集群搭建之节点的网络配置过程(二)
紧接着上一章来设置windows的vmnet8的ip地址和虚拟机中centos的ip地址. NAT虚拟网络的配置图如下图所示: 1.这里根据VMware中得到的网关地址去设置vmnet8的ip地址. ...
- 在Windows系统中搭建PHP环境,PHP环境搭建-Windows系统下PHP环境搭建
1.PHP环境搭建的前提是 Apache HTTP Server (Apache 服务器)已经安装部署成功,并可以正常访问到服务器的主页面.Apache HTTP Server 的安装部署已经在上一篇 ...
- windows系统使用Docker搭建MySQL服务
windows系统使用Docker搭建MySQL服务 文章目录 windows系统使用Docker搭建MySQL服务 前题 一.安装docker 二.建立镜像 三.连接mysql 前题 请先在wind ...
- 基于Java的乐嘉网络商城系统(毕设)
文章目录 前言 1.1 用户登录与注册 1.1.1 用户注册 1.1.2 用户登录 1.2 前台展示 1.2.1 首页展示 1.2.2 首页搜索 1.2.3 商品浏览 1.2.4 商品详情页搜索 1. ...
- ssm基于web的网络租房系统毕业设计源码250910
目 录 摘要 1 绪论 1.1 研究意义 1.2研究现状与发展趋势 1.3论文结构与章节安排 2网络租房系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据增加流程 2.2.2 ...
- 虚拟机Ubuntu搭建Windows系统Samba服务映射网络驱动器
前言:前段时间在公司学习有关Qemu的运行调试,其中就有关于在Windows系统下访问Ubuntu文件资源(远程访问)的操作,对于编程来说,有些开发环境最好是在虚拟机Linux系统下进行,毕竟虚拟机会 ...
- windows系统下搭建 ZeroTier moon服务器
ZeroTier 是一个虚拟局域网软件,局域网内的机器,流量不走公网,降低了风险和费用.而且软件开源,同一子网下免费使用100个机器,然而在国内如果要用好ZeroTier,最好搭建MOON转发服务器. ...
- 环境搭建:Windows系统下Nacos集群搭建
环境搭建:Windows系统下Nacos集群搭建 一.环境准备 名称 版本 下载地址 nacos NACOS 1.2.0 下载地址,提取码:5555 MySQL mysql Ver 14.14 Dis ...
最新文章
- [SQL基础教程] 1-5 表的删除和更新
- 代理 设置wsl_第一次使用WSL我做了什么
- OGNL表达式语言中的#和$的区别
- 在linux系统上运行新加的内核模块(驱动模块) 需要安装的东西
- 五邑大学数据结构邢润丹实验_哪个大学楼最高:全国大学高楼海拔高度排名
- Nature论文解读:深度学习助力毫秒之间识别癌细胞
- 电脑的发展史_互联网发展史 硅谷传奇之 IBM
- 为什么测试喜欢ie_为什么我现在喜欢测试,以及为什么您也应该如此。
- python操作三大主流数据库(12)python操作redis的api框架redis-py简单使用
- deploy dubbox 到私有的 nexus 服务
- 指纹考勤机使用的基本操作方法
- ssm毕设项目疫情防控管理系统02vsf(java+VUE+Mybatis+Maven+Mysql+sprnig)
- osip和mysql_osip2/eXosip2调试笔记
- 写出linux命令的功能,练习一LINUX命令测试题1
- Java实现判断是否参加上秒杀活动
- Mybatis源码-cursor(游标)
- Python解释大数定律
- RUOYI 框架教程 1 |小白都能学会的 3 分钟搭建框架教程
- 软件测试就是找茬的?那些年和开发小哥的“爱恨情仇”
- 《众妙之门——网页排版设计制胜秘诀》——第3章 设置网页字体的5 项原则和方法3.1 系统地进行网页版式设计...
热门文章
- SpringBoot 使用 Redis Geo 实现查找附近的位置-附近的人功能
- 【数字信号处理】MATLAB OLA(Overlap-Add)实现变调不变速/变速不变调
- 关于Precision, Accuracy, F1, Micro-Ave, Macro-Ave
- 如何成为一名优秀的后端工程师
- 兄弟hl3150cdn打印测试页6_打印性能测试:LED高效输出_兄弟 3150CDN_办公打印评测试用-中关村在线...
- HMS Core华为分析丨受众细分,多场景促进精益运营
- php for循环删除元素,php-在foreach循环中取消设置数组值
- echarts label点击_echarts 点击方法总结,点任意一点获取点击数据,举例说明:在多图联动中点击绘制标线...
- LibGDX_2.1: LibGDX 应用框架(6 大系统交互接口)
- STC89C52单片机定时器及中断系统的介绍以及代码示例