照片摄于广州:珠江猎德大桥
超级账本Fabric 1.0即将亮相,社区用户期待。为了迎接Fabric 1.0的发布,本文分三期连载,介绍如何构建一个多节点分布式Fabric集群,PDF版本可以稍后下载。
一.概述
期待已久的召唤之后,依然捧着琵琶的超级账本Fabric 1.0 GA即将亮相,期待的社区用户将广泛使用。本文将介绍如何使用Docker容器技术构建一个多节点Fabric集群,并描述如何在集群上执行基本操作,如链码生命周期维护。本文以Fabric 1.0 beta的端到端(e2e)实例为基础来说明这一原理。本文提供了手动配置的方法,以及利用集装箱平台(如K8s等)自动部署超级台账的方法。)后面会介绍。
图1.1单节点下的结构网络结构图
Fabric源代码包含一个简单的e2e单机部署示例,方便用户理解、研究和开发应用。如图1.1所示,通过docker-compose在单个机器节点上建立具有5个节点的Fabric网络,并且每个节点由单独的docker容器模拟。Peer0和peer1属于org1,peer2和peer3属于org2。他们都加入了同一个渠道,在这个渠道进行交易,而orderer为这个渠道的交易提供分拣服务。
图1.2多节点下的结构网络结构图
虽然e2e_cli的示例相对简单,但它以混合方式部署多个节点,并且无法区分哪个配置对应哪个节点。此外,在实际场景中,Fabric节点可能由不同的组织拥有和维护,对等体和订购者必然分布在不同的物理节点上,因此多节点Fabric部署成为一个有待解决的问题。图1.2是多节点结构集群的拓扑图。
【注意:下载这篇文章的PDF版本,关注本微信官方账号:亨利笔记,后台发消息“多节点”或“DJD”。】
以下是将单节点e2e命令行界面示例更改为多节点的一般步骤:
1.准备环境
运行结构节点取决于以下工具:
A.Docker:用于管理结构映像和运行对等和订购者等组件
B.Docker-compose:用于配置结构容器
C.结构源代码:源代码提供了生成证书和配置通道的工具和测试代码
D.Go语言开发环境:源代码的工具编译依赖于Go语言
2.配置多节点结构集群
在单节点e2e CLI示例中,所有节点都部署在同一个docker-compose内部网络中,并通过容器的7051端口进行通信。但是在多节点的情况下,容器之间不能直接通信,需要将容器的7051端口映射到主机上,通过每台主机的7051端口实现节点之间的通信。我们在每个节点修改docker-compose.yaml中的服务定义,只在不同的节点启动需要的服务。例如,只有peer0的服务在节点1中启动,只有orderer在节点5中启动。
3.启动多节点结构集群
在每个节点上配置结构的启动环境后,需要依次登录到节点,并通过配置启动结构节点。由于启动环境是依赖的,例如,peer1将peer0作为发现节点,因此有必要在peer1之前启动peer0。
4.配置频道
在Fabric中,通道代表私有广播通道,确保消息的隔离和隐私,由订购者管理。一个渠道的成员共享该渠道的账簿,只有经过认证的用户才能在该渠道进行交易。与通道相关的属性被记录在通道的初始块中,并且可以通过重新配置交易来改变。通道的初始块是由create channel事务生成的,当对等方将事务发送给订购方时,将会带来config.tx文件,该文件定义了通道的相关属性。
5.发布链码
Chaincode是开发人员根据特定接口编写的智能契约。通过软件开发工具包或命令行界面在结构网络上安装和初始化后,应用程序可以访问网络中的共享分类帐。
链码的生命周期如下:
A.安装(安装)
要在结构网络上运行链码,必须首先将其安装在网络中的对等端,同时应标记版本号,以确保应用程序的版本控制。
B.实例化(实例化)
在对等机上安装链码后,需要实例化它来激活链码。在实例化的过程中,chaincode会被编译打包成一个容器映像,然后开始运行。如果链码在实例化过程中更新了数据状态,比如给一个变量一个初始值,那么状态的改变将被记录在共享分类账中。每个应用程序只能实例化一次,实例化可以在安装了链码的任何对等机上执行。
C.调用和查询(调用和查询)
链代码实例化后,用户可以与它交互,其中查询查询与应用程序相关的状态(即只读),而调用可能会改变它的状态。
D.升级(升级)
当chaincode添加新功能或bug需要升级时,可以通过升级事务实现。此时,您需要通过安装事务将新代码安装到正在运行的链代码中
在的对等方上,安装时应标记高于以前版本的版本号,然后只能通过向任何安装了新代码的对等方发送升级事务来更新链码,并且更新前链码的状态将被保留。
【注意:下载这篇文章的PDF版本,关注本微信官方账号:亨利的笔记,后台发“多节点”或“DJD”。】
招聘区块链外包开发工程师
VMware是Hyperledger项目的创始成员,中国R&D中心现招聘区块链外包软件开发工程师,工作地点在北京知春里。要求有3年以上软件开发经验,熟悉Java或Go开发语言,熟悉Docker,了解区块链技术。有意者请将简历发送至:
harbor@vmware.com
区块链技术指南介绍
更多关于区块链超级账本和技术细节的信息,包括比特币、以太网、公链、联盟链、侧链、闪电网等。,请参考作者与邹军博士合著的新书《区块链技术指南》,机械工业出版社:
JD.COM采购链接:
http://item.jd.com/12007317.html
欢迎文后继续交流消息。亨利的笔记主要包括关于区块链和云计算的技术文章。欢迎关注:
1.《多节点 干货 | 超级账本Fabric 1.0 多节点集群的部署》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《多节点 干货 | 超级账本Fabric 1.0 多节点集群的部署》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/fangchan/1251471.html