Fabric从1.X开始,在扩展性及安全性上面有了大大的提升,且新增了诸多的新特性:

多通道:支持多通道,提高隔离安全性。

可拔插的组件:支持共识组件、权限管理组件等可拔插功能。

账本数据可被存储为多种格式。

分化了Peer节点的多种角色,可以根据具体情况实现灵活部署

Hyperledger Fabric超级账本整体逻辑架构如下图所示:

Fabric四大核心组件:

Membership Services:成员管理保证了Fabric平台访问的安全性。提供了成员的注册、管理及审核功能。

Blockchain Services:是区块链的核心部分,为区块链的主体功能提供了底层支撑;包括共识管理、分布式账本实现、账本的存储以及网络中各节点之间的通信实现。

BlockChain:区块之间以Hash连接为结构的交易日志。peer从order service接收交易区块k,并根据背书策略和并发冲突标记区块上的交易是否有效,然后将该区块追加到peer文件系统中的Hash Chain上。

Transaction:交易有对链码的部署或调用两种操作类型:

部署交易:部署是请求在peer上启动链码容器;创建新的链码并设置一个程序作为参数。当一个部署交易执行成功,表明链码已被安装到区块链上。

调用交易:调用是从账本中请求读写集。是在之前已部署链码的情况下执行一个操作。调用交易将使用链码提供的一个函数。当成功时,链码执行特定的函数对账本数据进行操作(修改状态),并返回操作结果。

Chaincode Services:提供了链码的部署及运行时的所需环境。

Chaincode:是一个可以对账本数据进行操作的可开发的组件程;链码被布署运行在一个安全的容器中;用户可以通过调用链码中的指定函数对账本数据进行修改或读取操作。

Event:为各组件之间提供异步通信提供了技术实现。

2.1.2 实际中的运行时架构

实际运行时架构如下图所示:

运行时架构图中各项解释如下:

APP:代表一个客户端(CLI)或SDK,作用是创建交易并获取到足够的背书之后向Orderer排序服务节点提交交易请求(Peer与Orderer节点提供了gRPC远程访问接口,供客户端调用)。

CA:负责对网络中所有的证书进行管理(对Fabric网络中的成员身份进行管理), 提供标准的PKI服务。

MSP(Member Service Provider):为客户端和Peer提供证书的系统抽象组件。

Channel:将一个大的网络分割成为不同的私有"子网"。

通道的作用:通道提供一种通讯机制,将peers和orderer连接在一起,形成一个具有保密性的通讯链路(虚拟), 进行数据隔离。

要加入通道的每个节点都必须拥有自己的通过成员服务提供商(MSP)获得的身份标识。

Orderer:对客户端提交的交易请求进行排序,之后生成区块广播给通道内的所有peer节点。

Org1:代表联盟中的某一个组织(一个联盟中可以多个不同的组织组成)。

Peer:表示组织中的节点;Peer节点以区块的形式从Orderer排序服务节点接收有序状态更新,维护状态和账本。在Fabtic网络环境中 Peer 节点可以划分为如下角色:

Endorsing peer:根据指定的策略调用智能合约,对结果进行背书, 返回提案响应到客户端。

Committing peer:验证数据并保存至账本中。

Anchor peer:跨组织通信。

Leading peer:作为组织内所有节点的的代表连接到Orderer排序服务节点, 将从排序服务节点接收到的批量区块广播给组织内的其它节点。

网络中只有部分节点为背书节点; 网络中所有Peer节点为账本节点。

Chaincode:链式代码,简称链码;运行在容器中,提供相应的API与账本数据进行交互。

Ledger:是由排序服务构建的一个全部有序的交易哈希链块,保存在所有的peer节点中。账本提供了在系统运行过程中发生的可验证历史,它包含所有成功的状态更改(有效交易)和不成功的状态更改(无效交易)。

FAQ

应用程序或客户端到底需要连接到哪些Peer节点?

只需要连接到背书节点即可。

背书节点怎么指定?

在实例化链码时由背书策略指定。

Fabric架构:抽象的逻辑架构与实际的运行时架构的更多相关文章

  1. Flink 运行时架构

    参考链接:https://blog.csdn.net/dajiangtai007/article/details/88575553 1.Flink 运行时架构 Flink 运行时架构主要包含几个部分: ...

  2. [翻译] WCF运行时架构

    原文地址 http://www.cnblogs.com/idior/articles/971252.html 介绍 WCF具有非常易用的编程模型,服务开发者在掌握ABC的概念后可以很容易的使用WCF去 ...

  3. ILBC 运行时 (ILBC Runtime) 架构

    本文是 VMBC / D# 项目 的 系列文章, 有关 VMBC / D# , 见 <我发起并创立了一个 VMBC 的 子项目 D#>(以下简称 <D#>)  https:// ...

  4. IT咨询顾问:一次吐血的项目救火 java或判断优化小技巧 asp.net core Session的测试使用心得 【.NET架构】BIM软件架构02:Web管控平台后台架构 NetCore入门篇:(十一)NetCore项目读取配置文件appsettings.json 使用LINQ生成Where的SQL语句 js_jquery_创建cookie有效期问题_时区问题

    IT咨询顾问:一次吐血的项目救火   年后的一个合作公司上线了一个子业务系统,对接公司内部的单点系统.我收到该公司的技术咨询:项目启动后没有规律的突然无法登录了,重新启动后,登录一断时间后又无法重新登 ...

  5. iOS 架构模式--解密 MVC,MVP,MVVM以及VIPER架构

    本文由CocoaChina译者lynulzy(社区ID)翻译 作者:Bohdan Orlov 原文:iOS Architecture Patterns 在 iOS 中使用 MVC 架构感觉很奇怪? 迁 ...

  6. 2017最新技术java高级架构、千万高并发、分布式集群、架构师入门到精通视频教程

    * { font-family: "Microsoft YaHei" !important } h1 { color: #FF0 } 15套java架构师.集群.高可用.高可扩展. ...

  7. 你真的了解微服务架构吗?听听八年阿里架构师怎样讲述Dubbo和Spring Cloud微服务架构

    微服务架构是互联网很热门的话题,是互联网技术发展的必然结果.它提倡将单一应用程序划分成一组小的服务,服务之间互相协调.互相配合,为用户提供最终价值.虽然微服务架构没有公认的技术标准和规范或者草案,但业 ...

  8. 听听八年阿里架构师怎样讲述Dubbo和Spring Cloud微服务架构

    转自:https://baijiahao.baidu.com/s?id=1600174787011483381&wfr=spider&for=pc 微服务架构是互联网很热门的话题,是互 ...

  9. iOS - 架构模式 - 解密 MVC、MVP、MVVM、VIPER架构

    在 iOS 中使用 MVC 架构感觉很奇怪? 迁移到MVVM架构又怀有疑虑?听说过 VIPER 又不确定是否真的值得切换? 相信你会找到以上问题的答案,如果没找到请在评论中指出. 你将要整理出你在 i ...

随机推荐

  1. ubuntu上u-boot的编译

    1,下载u-boot 2,将Windows中的u-boot复制到ubuntu虚拟机中自定义目录并解压 3,进入该目录cd 4,安装dtc:sudo apt-get install device-tre ...

  2. EC2(elastic compute cloud,弹性计算云,又称EC2实例)

    (一)定义:EC2和实例EC2(elastic compute cloud,弹性计算云),即云中的虚拟服务器. 是用于在云中创建和运行虚拟机的 Amazon Web 服务.简言之,EC2就是一部具有无 ...

  3. php中$this->的用法简单介绍

    php中我们一般是先声明一个类,然后用这个类去实例化对象!$this 的含义是表示实例化后的具体对象!$this->表示在类本身内部使用本类的属性或者方法.‘->’符号是“插入式解引用操作 ...

  4. 配置SQL Server 2016无域AlwaysOn(转)

    Windows Server 2016 以及 SQL Server 2016出来已有一段时间了,因为Windows Server 2016可以配置无域的Windows群集,因此也能够以此来配置无域的S ...

  5. System.getProperty("user.dir")

    /**获得当前类的完整路径.最后一句*/package test;import java.net.MalformedURLException;import java.net.URI;import ja ...

  6. JavaScript 全栈工程师培训教程 - 阮一峰

    http://www.ruanyifeng.com/blog/2016/11/javascript.html https://github.com/ruanyf/jstraining 我现在的技术方向 ...

  7. Hive和SparkSQL:基于 Hadoop 的数据仓库工具

    Hive 前言 Hive 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的 SQL 查询功能,将类 SQL 语句转换为 MapReduce 任务执行. ...

  8. PHP类名获取的几种方式及单例模式实现

    参考:https://www.cnblogs.com/water0729/p/5803217.html <?php class foo { static public function test ...

  9. [Java in NetBeans] Lesson 03. More Variables / Type Casting

    这个课程的参考视频在youtube. 主要学到的知识点有: It is different from python, that "1" only present string &q ...

  10. [LeetCode] 610. Triangle Judgement_Easy tag: SQL

    A pupil Tim gets homework to identify whether three line segments could possibly form a triangle. Ho ...