浏览器
双核浏览器
游戏浏览器
高速浏览器
视频浏览器
IE浏览器
浏览器周边
手机浏览器
安卓游戏
音乐舞蹈
养成游戏
儿童游戏
仙侠手游
角色扮演
策略塔防
休闲益智
动作冒险
飞行射击
模拟经营
体育运动
赛车竞速
网络游戏
安卓软件
资讯阅读
生活服务
影音播放
购物理财
效率办公
趣味娱乐
交通出行
学习教育
摄影图像
在线音乐
系统工具
网络购物
聊天工具
安全杀毒
图片编辑
新闻资讯
软件资讯
游戏资讯
手机教程
手游攻略
游戏攻略
软件教程
IE专区
安卓专题
文章合集
电脑软件专题
安全软件
杀毒软件
系统安全
加密解密
防火墙
远程控制
木马查杀
影音软件
网络电视
视频播放
音乐播放
视频制作
音频编辑
录音录像
教育学习
外语学习
教育管理
早教启蒙
在线课堂
成人教育
资格考试
聊天社交
即时通讯
视频聊天
在线交友
变声器
表情包
办公软件
线上会议
文档管理
行业管理
考勤打卡
应用工具
输入法
下载工具
时钟日历
记事本
文件管理
计算器
编程开发
编程工具
JAVA相关
加壳脱壳
编程控件
数据库
网页源码
软件开发
补丁制作
系统美化
桌面制作
壁纸大全
系统主题
屏幕保护
桌面辅助
系统软件
系统优化
备份还原
系统检测
U盘工具
磁盘工具
驱动补丁
图文处理
图片素材
图像处理
图片制作
图片压缩
电子相册
抓图工具
其他软件
电子书籍
模拟器
辅助工具
交通出行
手机管理
其他工具
素材下载
字体素材
PPT素材
专区
文章合集
软件
游戏
浏览器
安卓专题
软件
游戏
浏览器
IEfans/ 新闻资讯/ 软件教程 /超级账本Fabric 1.0是什么? 多节点集群的部署步骤是什么?

超级账本Fabric 1.0是什么? 多节点集群的部署步骤是什么?

2023-02-23 21:46:01 编辑:匿名

超级账本 Fabric 1.0即将揭开面纱,社区用户对此充满期待。为迎接 Fabric 1.0 的发布,本文分3期连载,介绍如何搭建多节点的分布式 Fabric 集群,文后可下载PDF版本。下面小编给大家介绍一下!

一、概述

在千呼万唤之后,犹抱琵琶的超级账本 Fabric 1.0 GA版即将揭开面纱,翘首以待的社区用户将广泛使用这个版本。本文将介绍如何使用 Docker 容器技术来建立起一个多节点 Fabric 集群,并且描述在集群上如何进行基本的操作,如 chaincode 的生命周期维护等。文中采用 Fabric 1.0 beta 的端到端(e2e_cli)示例作为基础来说明原理。本文提供是手动配置的方法,后续将介绍利用容器平台(如 K8s 等)自动部署超级账本的方式。

需要了解 Fabric 基本架构的读者可参考文后相关文章。

图1.1 单节点下的Fabric网络结构图

Fabric 源码中包含一个简单的e2e单机部署示例,方便用户理解、研究和开发应用。如图1.1所示,在单个机器节点上通过 docker-compose 建立了5个节点的Fabric网络,每个节点都是由单独的 Docker 容器来模拟。其中 peer0 和 peer1 是同属于 org1 的节点,peer2 和 peer3 是同属于 org2 的节点,它们都加入了相同的 channel 中,并在该 channel 中进行交易,而 orderer 则为该 channel 中的交易提供排序服务。

图1.2 多节点下的Fabric网络结构图

虽然e2e_cli的示例比较简单,但它把多个节点混合部署在一起,无法区分哪些配置对应哪个节点。另外,在实际场景中,Fabric 节点可能会由不同的组织分别拥有和维护,peers 和 orderer 必然会分布在不同的物理节点上,因此多节点的Fabric 部署成为需要解决的问题,图1.2是多节点 Fabric 集群拓扑图。

【注:下载本文PDF版本,可关注本公众号:亨利笔记,后台发送消息“多节点” 或 “DJD”即可。】

下面是把单节点e2e_cli范例改为多节点的大致步骤:

1.  准备环境

运行Fabric节点需要依赖以下工具:

a. Docker:用于管理Fabric镜像以及运行 peer 和 orderer 等组件

b.Docker-compose: 用于配置 Fabric 容器

c. Fabric源码:源码提供了用于生成证书和配置 channel 的工具和测试代码

d.Go语言开发环境:源码的工具编译依赖于 Go 语言

2.  配置多节点Fabric集群

在单节点e2e_cli示例中,所有节点部署在同一个 docker-compose 的内部网络中,通过容器的7051端口进行通信。但是在多节点的情况下,容器之间不能进行直接通讯,因此需要把容器的7051端口映射到宿主机上,通过各个宿主机的7051端口来实现节点间通信。我们在每个节点中修改 docker-compose.yaml 中的 service 定义,在不同节点只启动需要的 service。例如,在节点1中只启动peer0 的 service,在节点5中仅启动 orderer 等。

3.  启动多节点Fabric集群

在各个节点上配置好 Fabric 的启动环境后,需要依次登录到节点上通过docker-compose up的方式启动 Fabric 节点。由于启动环境有依赖关系,如 peer1 以 peer0 作为发现节点,因此需要先启动 peer0 再启动 peer1 。

4.  配置channel

在 Fabric 中,channel 代表了一个私有的广播通道,保证了消息的隔离性和私密性,它由 orderer 来管理。channel 中的成员共享该 channel 的账本,并且只有通过验证的用户才能在 channel 中进行交易,与一个 channel 相关的属性记录在该channel的初始区块中,可通过 reconfiguration 交易进行更改。channel的初始区块由 create channel 交易生成,peer 向 orderer 发送该交易时会带有的 config.tx 文件,该文件定义 channel 的相关属性。

5.  发布chaincode

chaincode 是开发人员按照特定接口编写的智能合约,通过 SDK 或者 CLI 在 Fabric 的网络上安装并且初始化后,该应用就能访问网络中的共享账本。

chaincode 的生命周期如下:

a. Install(安装)

chaincode 要在 Fabric 网络上运行,必须要先安装在网络中的 peer 上,安装同时注明版本号保证应用的版本控制。

b. Instantiate(实例化)

在 peer 上安装 chaincode 后,还需要实例化才能真正激活该 chaincode 。在实例化的过程中,chaincode 就会被编译并打包成容器镜像,然后启动运行。若 chaincode 在实例化的过程中更新了数据状态,如给某个变量赋予初始值,则该状态变化会被记录在共享账本中。每个应用只能被实例化一次,实例化可在任意一个已安装该 chaincode 的 peer 上进行。

c. Invoke和query (调用和查询)

chaincode 在实例化后,用户就能与它进行交互,其中 query 查询与应用相关的状态(即只读),而 invoke 则可能会改变其状态。

d. Upgrade(升级)

在 chaincode 添加新功能或出现 bug 需要升级时,可以通过 upgrade 交易来实现。这时需要把新的代码通过install交易安装到正在运行该 chaincode

的 peer 上,安装时需注明比先前版本更高的版本号,接下来只需要向任意一个安装了新代码的 peer 发送 upgrade 交易就能更新 chaincode ,chaincode 在更新前的状态也会得到保留。

以上就是小编带给大家的介绍,希望小编的内容能帮到大家!

相关推荐

软件更新