区块链技术之Fabric逻辑架构详解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/flyinthesky111/article/details/80427188

一、架构图
这里写图片描述
该图出自区块链技术指南一书,架构解释也主要出自于本书,有兴趣的同学可以去自行找一找资源。
如图所示:fabric的底层主要由四种服务构成,分别是:身份服务、策略服务、区块链服务、智能合约服务。在这些基础服务之上,通过一些API、SDK、CLI为上层业务应用提供一些可以编程的接口服务。
二、服务详解
2.1身份服务
首先明确一点,fabric和比特币与以太坊的最大的区别在于其身份识别能力,fabric是权限区块链,而后两者是匿名的非权限区块链。明确这一点后,fabric的身份识别主要表现在fabric的账本中的各类事件个交易中,参与者和对象都具有明确的身份信息。这些信息主要包括参与者的组织、验证者、交易者,账本中的资产和智能合约,以及系统组件包括网络和服务器、运行环境等等这些信息。验证者在fabric网络建立的时候就可以确定参加交易的权限级别。
2.2策略服务
由于fabric中的许多功能需要以策略的方式进行驱动,所以需要一套侧罗服务来提供系统所需要的策略配置和管理功能。该服务最重要的功能在于访问控制和授权管理。fabric的交易需要参与方具有相关的权限才能够进行参与。其他的功能还包括加入或者退出网络、身份的注册、验证、隐私、保密、共识策略等。
2.3区块链服务
fabric的区块链服务能够提供构建分布式账本的最基础的能力,可以实现数据传输、共识达成等功能。并且提供订阅/发布事件的管理框架。分布式账本内部的各种事件可以通知外部的监听的应用。fabric的区块链服务主要包含4个组件:P2P协议组件、分布式账本组件、共识管理器组件、和账本存储组件
2.3.1P2P协议组件
该组件主要提供的是区块链节点之间的双向的通信的能力。包括流式数据传输、流控制、多路复用等。P2P协议的通信机制采用了互联网现有的基础设施(防火墙、代理、服务器等),把数据封装为一个消息对象,采用点对点或者组播的方式在节点之间传输。
2.3.2分布式账本组件
该组件主要管理着fabric的区块链数据。区块链网络的每一个节点可以看作为一个状态机,分布式账本维持着区块链数据和各个状态机之间的相同状态。该组件的性能直接影响着区块链网络的吞吐量。所以在很多地方都需要较高的处理效率来提高网络的效率。
2.3.3共识管理器组件
由于在业务场景中,需要在不同的共识算法中进行灵活切换,fabric的模块化架构可以支持不同的场景切换不同的共识算法。通过统一的抽象接口,共识管理器接受各种交易数据,然后根据共识算法来决定如何组织或者进行交易,交易成功后,修改区块链账本的数据。
2.3.4账本存储组件
由于在区块链上存储大型文档效率很低下,所以一般大文档的存储都是放在链外存储中的。账本存储组件可以提供链外数据的持久化能力,每一个链外数据的哈希值可以保存在链上,从而可以保证数据的完整性。
2.4智能合约服务
该服务的实质是在验证节点上运行的分布式交易程序,用以自动执行特定的业务规则,最终更新账本信息的状态。智能合约又分为:公开合约、保密合约和控制合约几种。公开合约可以被任何成员调用;保密合约智能有验证成员调用;访问控制合约允许某些批准的成员调用。智能合约服务为合约代码提供了安全的运行环境和合约控制管理周期。
2.5应用编程接口
用户可以调用fabric的应用接口,实现业务应用,来构建基本的分布式账本。

猜你喜欢

转载自blog.csdn.net/flyinthesky111/article/details/80427188
今日推荐