一、架构图

该图出自区块链技术指南一书,架构解释也主要出自于本书,有兴趣的同学可以去自行找一找资源。
如图所示: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的应用接口,实现业务应用,来构建基本的分布式账本。

区块链技术之Fabric逻辑架构详解相关推荐

  1. 基于区块链技术的信息服务新架构探讨

    [摘  要]为探索区块链技术对信息通信基础架构的影响及实现,在梳理信息技术架构和信息服务架构演进的基础上,分析了区块链新型数字化分布式账本体系赋予数字世界生产关系升级的功能,并基于"云-管- ...

  2. 【区块链开发入门】(四) Truffle详解篇2

    由于本篇篇幅较长,因此转为两篇文章.Truffle详解篇篇1请见:link 目录导航页 [区块链开发入门](一) 以太坊的搭建与运行 [区块链开发入门](二) 以太坊的编程接口 [区块链开发入门](三 ...

  3. 认知计算与区块链技术变革金融IT架构

    IBM大中华区总经理王天義表示:"金融行业挑战重重,面对不断扩张的海量内外部数据, 无法快速发现深层次信息,将洞察力转化为创新.认知计算将成倍提高计算能力,为金融业创造一系列全新的业务机会. ...

  4. 区块链技术入门,涉及哪些编程语言?

    作者:Fickr Sung孫啟誠 链接:https://www.zhihu.com/question/46729645/answer/259780518 区块链学习更多的是去理解这种去中心化的思想和去 ...

  5. 区块链是什么,如何学习区块链技术?快速上手

    一.区块链是什么? 二.从技术角度学习区块链技术? 一.区块链是什么?区块链有很多的定义,大家的说法都不一样,业界都还没有统一.每个人心中都有自己的哈姆雷特.所以此处就不做定义了.也可以参考其他回答. ...

  6. 由浅入深区块链技术,程序员不得不看的十篇好文

    http://www.infoq.com/cn/news/2018/01/blockchain-ten-articles 区块链是目前一个比较热门的新概念,蕴含了技术与金融两层概念.从技术角度来看,这 ...

  7. 区块链技术及实际应用

    对加密货币的崛起感到兴奋?想知道Blockchain Technology的工作原理吗?你降落在正确的地方.这个博客将清除你的混乱头脑,你将更好地了解区块链. 以下将是这个博客的学习内容: 区块链技术 ...

  8. 区块链与物联网融合理论架构

    物联网作为新一代信息技术的重要领域,其价值和意义得到社会的普遍认可.物联网设备通过网络相互连接,产生大量的数据,整合强大的数据分析能力,有望彻底改变人类的生产生活方式.然而,在提供发展机遇的同时,现阶 ...

  9. 区块链技术,如何提升网络安全?

    眼下,区块链已经成为科技界的热门技术,甚至被称为颠覆性技术.那么,在网络安全领域,区块链能否发挥作用呢?答案是肯定的. --编者 当著名咨询公司Gartner在预测2018年对大部分企业公司影响显著的 ...

最新文章

  1. 2012关于钱的Tips
  2. 统计学:统计学概述(一)
  3. ubuntu 18.04 LTS 国内源安装docker
  4. [Robot Framework] 怎么写动态等待?
  5. 动荡的 Java 今年将有哪些新变化?
  6. xcode工程间的引用,iOS静态库
  7. 解决win7 安装完jdk7后,再安装jdk8出现的问题
  8. 文件流操作,报“because it is being used by another process. ”错误解决
  9. windows本地安装PLSQL
  10. 在计算机英语中 input的意思是,计算机英语词汇解释
  11. ubuntu中的 magick++编程问题及编译方法
  12. 手机定位浅析 AGPS定位 LBS基站定位 卫星定位
  13. 胡侃学习计算机--理论之外-From南大小百合
  14. PostgreSQL中uuid的使用,uuid_generate_v4()
  15. 2022年深圳市科技型中小微企业贷款贴息资助标准及申报条件,补贴100万
  16. C++在linux环境下获取毫秒、微妙级别时间
  17. 「网络流 24 题」太空飞行计划
  18. RGB 与 BGR 颜色深度、像素和字节之间的关系
  19. 1H412000机电工程专业技术——1H412010测量技术
  20. 成长笔记1:三层难度步步进阶,我用21部原版动画,带娃积累2000词汇

热门文章

  1. c语言学习题,C语言学习题目
  2. adc0832对光电二极管进行数据采集_实验十adc0832数模转换的显示
  3. Vue2.0环境安装
  4. 数据结构之稀疏数组 - SparseArray
  5. 12.MapReduce第2部分(WordCount词频统计、自然连接)
  6. CNN(Convolutional Neural Networks)没有原理只有实现
  7. Tomcat-简易使用教程
  8. 编码练习——Java-3-数组
  9. 目前最细致清晰的NSDictionary以及NSMutableDictionary用法总结
  10. JAVA 学到什么水平就可以转战 Android 了?