分布式共享的超级账本F a b r i c部署和使用
1简介
F a b r i c从1.0版本开始,在架构上进行了重新设计,解耦了节点的角,同时在安全性、性能、可扩展性和可插拔性方面都有了不少改进。在将交易发送到网络中之前,需要先向背书节点收集足够多的背书支持,同时采用专门的排序节点来负责整个网络中十分核心的排序环节。
目前,网络中存在以下4种不同种类的服务节点,彼此协作完成整个区块链系统的功能。对网络中节点角进行解耦是F a b r i c设计中的一大创新,这也是联盟链场景下的特殊需求和环境所决定的:
·背书节点(E n do r s e r):负责对交易的提案(p r opo s a l)进行检查和背书,计算交易执行结果;
·确认节点(C o mm i tt e r):负责在接受交易结果前再次检查合法性,接受合法交易对账本的修改,并写入区块链结构;
·排序节点(O r d e r e r):对所有发往网络中的交易进行排序,将排序后的交易按照配置中的约定整理为区块,之后提交给确认节点进行处理;
·证书节点(C A):负责对网络中所有的证书进行管理,提供标准的P K I服
务。另外,网络中支持多通道的特性。使用一条独立的系统通道(s y s t e m
c h a nn e l)负责管理网络中的各种配置信息,并完成对其他应用通道
(a pp li c a t i o n c h a nn e l,供用户发送交易使用)的创建。
目前,要启动一个Fabric网络,需要遵循如下的主要步骤:1)预备网络内
各项配置,包括网络中成员的组织结构和对应的身份证书(使用
cryptogen工具完成);生成系统通道的初始配置区块文件,新建应用通道的配置更新交易文件以及可能需要的锚节点配置更新交易文件(使用c o n f i g t x g e n工具完
成)。
2)使用系统通道的初始配置区块文件启动排序节点,排序节点启动后自动按照
指定配置创建系统通道。
3)不同的组织按照预置角分别启动Peer节点。这个时候网络中不存在应用通道,Peer节点也并没有加入网络中。
4)使用新建应用通道的配置更新交易文件,向系统通道发送交易,创建新的应用通道。
5)让对应的Peer节点加入所创建的应用通道中,此时Peer节点加入网络,可以准备接收交易了。
6)用户通过客户端向网络中安装注册链码(相关定义参见后面5节),链码容器启动成功后用户即可对链码进行调用,将交易发送到网络中。
后续章节将详细介绍各个步骤的操作顺序及方法。
2本地编译安装
动手能力较强的读者,建议通过本地编译安装来部署超级账本F a b r i c网络,以便对相关组件有更深入的理解。
超级账本F a b r i c基于G o语言实现,本地编译推荐配置G o l a n g1.7或更高版本的环境。下面将讲解如何编译生成f a b r i c-p ee r、f a b r i c-o r d e r e r和
f a b r i c-c a等组件的二进制文件,以及如何安装一些配置和开发相关的工具。
2.1操作系统
常见的L i nu x发行版(包括U b un t u、R e d h a t、C e n t O S等)和M a c O S等都可以原生支持F a b r i c编译和运行。
操作系统推荐L i nu x内核3.10+版本,支持64位环境。另外,作为F a b r i c 节点,物理内存建议至少为2GB,如果有较多的链码则需要更多容器;预留足够硬盘空间(一般建议20GB或更多)以存储区块文件。在生产环境中对性能和稳定性要求高的场景下,甚至要预留更多的物理资源。
下面将默认以U b un t u16.04操作系统为例进行操作。
go语言开发环境搭建提示运行F a b r i c节点需要的资源并不苛刻,作为实验,F a b r i c节点甚至可以在树莓派(R a s pb e rr y P i)上正常运行。
2.2环境配置
1.安装G o语言环境G o语言环境可以自行访问go l a n g.o r g网站下载二进制压
缩包安装。注意不推荐
通过包管理器安装,版本往往比较旧。
如下载G o1.8版本,可以采用如下命令:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。