区块链知识—HyperledgerFabric深入解读课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《区块链知识—HyperledgerFabric深入解读课件.pptx》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 区块 知识 HyperledgerFabric 深入 解读 课件
- 资源描述:
-
1、Hyperledger Fabric 深入解读介绍随着比特币,以太坊和其他一些衍生技术的普及,区块链,分布式账本 和分布式技术在企业用例的需求也在增长。但是,企业案例还需要一些特 殊的性能特征,而这些性能特征是目前公有区块链技术不能提供的。Hyperledger Fabric是一个开源的企业级许可分布式分类帐技术(DLT)平台,专为在企业环境中使用而设计。Fabric具有高度模块化和可配置的架构,可为各种行业用例提供支持,例如银行,金融,保险,医疗保健,人力资源,供应链甚至数字音乐交付,Fabric的应用在未来拥有广阔的前景。目录一、Hyperledger Fabric 项目简介二、Hyper
2、ledger Fabric 架构详解三、Hyperledger Fabric 合约代码 四、Hyperledger Fabric 交易流程一、Hyperledger Fabric 项目简介1.Hyperledger Fabric 项目介绍2.Hyperledger Fabric 基本概念1.Hyperledger Fabric项目介绍Hyperledger项目是一个大型的开源项目,希望通过各方合作,共同促进和推进区块链 技术在商业应用方面的发展。在组成结构上,包含了很多相关的具体子项目。项目官方地址托管在 Linux 基金会网站,代码托管在 Gerrit上,并通过GitHub提供代 码镜像。H
3、yperledger项目在管理所属子项目时采用了一种生命周期的形式,赋予每个项目一个 生命周期,方便项目的运行和管理。整个生命周期分为5个阶段,分别分别是提是提案案(proposal)阶段)阶段、孵化孵化(incubation)阶阶段、段、活活跃跃(active)阶段阶段、弃用弃用(deprecated)阶段以及最 后终止(End of Life)阶段。每个项目在开发运行过程中,一个时间点只会对应着一个阶 段。当然,项目不一定会按照以上阶段顺序发展,项目可能会一直处于某个阶段,也可 能会因为一些特殊原因在多个阶段之间进行变换。目前,Hyperledger项目下共有14个子项目在运行中,详细信息
4、如下表所示。1.Hyperledger Fabric项目介绍项 目 名状态依赖描述Hyperledger Aries孵化Fabric区块链点对点互动的基础设施Hyperledger Burrow孵化许可的以太坊智能合约区块链Hyperledger Caliper孵化区块链基准框架Hyperledger Cello孵化Fabric,(Sawtooth,Iroha)区块链管理/运营Hyperledger Composer孵化Fabric,(Sawtooth,Iroha)用于构建区块链业务网络的开发框架/工具Hyperledger Explorer孵化Fabric,(Sawtooth,Iroha)区
5、块链Web UIHyperledger Fabric活跃Golang中的分布式账本Hyperledger Grid孵化Fabric用于构建包含分布式账本组件的供应链解决方案的平台。Hyperledger Indy活跃用于分散身份的分布式账本Hyperledger Iroha活跃C+中的分布式账本Hyperledger Quilt孵化区块链,DLT和其他类型账本的互操作性解决方案Hyperledger Sawtooth活跃具有多语言支持的分布式账本Hyperledger Transact Home孵化事务执行平台Hyperledger Ursa孵化一个共享的加密库1.Hyperledger Fa
6、bric项目介绍我们重点来关注Fabric,Fabric是一种区区块链技块链技术术的实现,也是一种基于交易调用和数字事件的分布式共享账分布式共享账本本技技术术。比起其他的区块链技术实现,它采用了模块模块化化的架构设计,支持可插可插拔组拔组件件的开发与 使用。其总帐上的数据,由多方参与节点共同维护,并且一旦被记录,账本上的交易信 息永远无法被篡改无法被篡改,并支持通过时间戳进行溯溯源查源查询询。Fabric引入了成成员员管管理理服务服务,因此每个参与者在进入前均需要提供对应的证书证明身份才能允许访问Fabric系统,同时引入多通道多通道多多账本账本的设计来增强系统的安全性和私密性。与以太坊相比,
7、Fabric采用了强大的Docker容器容器技术来运行服务,支持比以太坊更便捷、更强大的智能合约服务,以太坊只能通过提供的Solidity语言进行合约编写,而Fabric可以支持多语言多语言的合约编写,例如GO、Java和Node.js。1.Hyperledger Fabric项目介绍HyperledgerFabric是分布式账本技术(DLT)的独特实现,它可在模块化的区块链架构基础上提 供企业级的网络安全性、可扩展性、机密性以及高性能。当前Fabric的最新版本与最早的v0.6版本相 比,在安全、保密、部署、维护、实际业务场景需求等方面都进行了很多改进:架构设计上的Peer节点的功能分离、多
8、通道的隐私隔离、共识的可插拔实现等功能上引入Raft崩溃容错共识服务、改进可维护性和可操作性、加入私有数据支持等Fabric具有以下特具有以下特性性:身份管理身份管理(Identity management):Fabric区块链是一个许可链网络,因此Fabric提供了一个成 员服务(Member Service),用于管理用户ID并对网络上所有的参与者进行认证。在 Hyperledger Fabric区块链网络中,成员之间可以通过身份信息互相识别,但是他们并不知道彼 此在做什么,这就是Fabric提供的机密性和隐私性。隐私和隐私和保保密密(Privacy and confidentiality
9、):Hyperledger Fabric允许竞争的商业组织机构和其他 任意对交易信息有隐私和机密需求的团体在相同的许可链网络中共存。其通过通道来限制消息 的传播路径,为网络成员提供了交易的隐私性和机密性保护。在通道中的所有数据,包括交易、成员以及通道信息都是不可见的,并且对于未订阅该通道的网络实体都是无法访问的。1.Hyperledger Fabric项目介绍高效的高效的性性能能(Efficient processing):Hyperledger Fabric按照节点类型分配网络角色。为了提供更 好的网络并发性和并行性,Fabric对事务执行、事务排序、事务提交进行了有效的分离。先于排 序之前
10、执行事务可以使得每个Peer节点同时处理多个事务,这种并发执行极大地提高了Peer节点 的处理效率,加速了交易到共识服务的交付过程。函数式函数式合合约代约代码编码编程程(chaincodefunctionality):合约代码是通道中交易调用的编码逻辑,定义 了用于更改资产所有权的参数,确保数字资产所有权转让的所有交易都遵守相同的规则和要求。模块化设计模块化设计(Modular design):Hyperledger Fabric实现的模块化架构可以为网络设计者提供功能选择。例如,特定的身份识别、共识和加密算法可以作为可插拔组件插入Fabric网络中,基于此,任何行业或公共领域都可以采用通用的
11、区块链架构,并确保其网络可跨市场、监管和地理边界 进行互操作。可维护性可维护性和和可操可操作作性性(Serviceability and operations):日志记录的改进以及健康检查机制以 和运营指标的加入,使得v1.4版本在可维护行和可操作性上实现了巨大飞跃。新的RESTful运营 服务为生产运营商提供三种服务来监控和管理对等节点和共识服务节点运营。第一种服务使用日 志记录/logspec端点,允许操作员动态获取和设置对等节点和共识服务节点的日志记录级别;第 二种服务使用健康检查/healthz端点,允许运营商和业务流程容器检查对等节点和共识服务节点 的活跃度和健康情况;第三种服务使用
12、运营指标/metrics端点,允许运营商利用Prometheus记 录来自对等节点和共识服务节点的运用指标。一、Hyperledger Fabric 项目简介1.Hyperledger Fabric 项目介绍2.Hyperledger Fabric 基本概念Hyperledger Fabric 基本概念锚节点锚节点gossip协议使用锚节点确保不同组织中的对等节点彼此了解。当提交包含锚节点更新的配置块时,对等节点 能探测到锚节点并能获知锚节点已知的所有对等节点。由于组织间通过gossip通信,因此通道配置中必须定 义至少一个锚节点。每个组织都提供一组锚节点则可实现高可用性和减少冗余。访问控制列
13、表访问控制列表访问控制列表(ACL)将对特定对等节点资源(如系统链码APIs或事务服务)的访问与策略(指定所需的 组织或角色的数量和类型)相关联。ACL是通道配置的一部分,可使用标准配置更新机制更新。区块区块区块包含一组有序的交易,由共识系统创建,由对等节点验证。在通道中以加密的方式先与前序区块链接,然后连接到后序区块。第一个区块被称为创世区块。区块链区块链区块链是一个交易日志,由交易区块经过“哈希连接”结构化得到。对等节点从共识服务收到交易区块后,基 于背书策略和并发冲突,标注区块的交易为有效或者无效,并将区块追加到对等节点文件系统的哈希链中。Hyperledger Fabric 基本概念智
14、能合约智能合约智能合约是由区块链网络外部客户端调用的代码,可以用于管理世界状态中键值对的访问和修改,安装在 对等节点上,并在通道上实例化。智能合约也被称为合约代码。通道通道通道是构建在Fabric网络上的私有区块链,由“配置块”定义,保障数据的隔离及隐私性。所有对等节点共享通道中特定的账本,交易方与账本的交互必须通过通道的正确性验证。提交提交一个通道中的每个对等节点都会验证交易区块的有序性,然后将区块提交(写或附加)至该通道上账本的各个副本。对等节点也会标记交易是否有效。并发控制版并发控制版本检查本检查并发控制版本检查(CCVC)可以保持通道中的对等节点状态同步。对等节点并行地执行交易,在交易
15、提交 至账本之前,对等节点会检查交易在执行期间读取的数据是否被修改。如若被修改,则引发CCVC冲突,该 交易就会在账本中被标记为无效,其值不会更新到状态数据库中。Hyperledger Fabric 基本概念配置区块配置区块包含系统链(共识服务)或通道定义成员和策略的配置数据。对某个通道或整个网络的配置修改(比如,成员离开或加入)将导致生成一个新的配置区块并追加到适当的链上。这个配置区块会包含创始区块的内 容加上增量。共识共识共识用于确认交易的排序以及交易集本身的正确性。同意集同意集在Raft共识服务中,同意集是通道上积极参与共识机制的排序节点。如果系统通道上存在其他排序节点,但是不属于通道的
16、一部分,则这些排序节点不属于通道的排序集。联合体联合体联合体是区块链网络上无序组织的集合。这些集合组建并加入通道,且拥有自己的对等节点,虽然区块链 网络可以拥有多个联合体,但大多数的网络都只有一个联合体。在通道创建时,所有加入通道的组织必须 是联合体的一部分。未在联合体中定义的组织可能会被添加到现有通道中。Hyperledger Fabric 基本概念世界世界状态状态世界状态也被称为账本的当前状态,表示区块链交易日志中所有key的最新值。对等节点将最近处理过的每笔交易对应修改的 value值更新到账本的世界状态。由于世界状态可以直接访问key的最新值,而不是通过遍历整个交易日志,所以合约代码必
17、须 先知道key-value的世界状态,然后针对这个世界状态执行交易提案。动态动态成员成员管管理理Fabric支持在不影响整个网络操作性的情况下,动态添加/移除成员、对等节点和共识服务节点。动态成员管理在业务关系调整或因各种原因需添加/移除实体时至关重要。创世创世区块区块创世区块是初始化区块链网络或通道的配置区块,也是区块链上的第一个区块。Gossip协议协议Gossip数据传输协议有3项功能:管理对等节点,发现通道上的成员;通道上的所有对等节点间广播账本数据;通道上的所有对 等节点间同步账本数据。账本账本账本由区块链和世界状态组成。区块链不可变,一旦将一个区块添加到链中,它就无法更改。而世界
18、状态是一个数据库,包含 已由区块链中验证和提交事务集添加、修改或删除的键-值集合的当前值。由于网络中每个通道都有一个逻辑账本是有帮助的。实际上,通道中每个对等节点都维护着属于自己的账本副本,这些副本通过共识过程与其他对等节点的副本保持一致,逻辑上 是单一的,但在一组网络节点(对等节点和共识服务)中分布着许多相同的副本。术语分布式账本技术(DLT)通常与这种账 本相关联。Hyperledger Fabric 基本概念追随者追随者在基于领导者的共识协议(如Raft)中,追随者是复制由领导者生成的日志条目的节点。在Raft中,追随者 也会收到领导者的“心跳”信息,如果领导者在可配置的时间内停止发送这
19、些信息,追随者将发起领导者选举,其中一名追随者会被选为领导者。领导者领导者在基于领导者的共识协议(如Raft)中,领导者负责提取新的日志记录,将其复制到追随者共识节点,并且管理记录何时被认为是已提交。主要对等节点主要对等节点每个组织可以在它们订阅的通道上拥有多个对等体节点,它们中至少有一个作为主要对等节点,以便代表 该组织与网络共识服务通信。共识服务向通道上主要对等节点提供块,然后将其分发给同一组织内的其他 对等节点。日志记录日志记录日志记录是Raft共识服务中的主要工作单元,从领导者分发给追随者。这些记录的完整序列称为“日志”。如 果所有成员就记录及其排序达成一致,则该日志被认为是一致的。H
20、yperledger Fabric 基本概念成员服务提成员服务提供组件供组件成员服务提供组件(MSP)是指为客户端节点和对等节点提供证书的系统抽象组件。客户端节点用证书来 认证他们的交易;对等节点用证书认证其交易(背书)。该接口与系统的交易处理组件密切相关,旨在使 已定义的成员身份服务组件以这种方式顺利插入而不会修改系统的交易处理组件的核心。成员管理服务成员管理服务成员管理服务在许可区块链上认证、授权和管理身份。在对等节点和排序服务节点中运行成员管理服务的代理。排序服务或排序服务或共识共识服服务务将交易排序放入区块的节点的集合。排序服务独立于对等节点流程之外,并以先到先得的方式为网络上所有的通
21、道做交易排序。排序服务支持可插拔实现,目前默认实现了Solo和Kafka。组织组织组织也被称为“成员”,由区块链服务提供商邀请加入区块链网络。组织通过将其MSP添加到网络加入网络。组织的交易端点是对等节点,一组组织形成一个联合体。虽然网络上的所有组织都是成员,但并非每个组 织都会成为联盟的一部分。Hyperledger Fabric 基本概念节点节点维护账本并运行合约容器来对账本执行读写操作的网络实体。节点由成员拥有和维护。策略策略策略是由数字标识(digital identities)的属性组成的表达式,如Org.Peer 和Org2.Peer,用于限制对区块链网络上资源 的访问。策略可以在
22、引导共识服务或创建通道之前定义,也可以在实例化通道上的链码时指定。私有数据私有数据私有数据是存储在每一个授权对等节点的私有数据库中的机密数据,在逻辑上与通道账本数据分开。对私有数据的 访问仅限于私有数据集上定义的组织。未经授权的组织只能在通道账本上拥有私有数据的哈希值,作为交易数据的 证据。此外,为了进一步保护隐私,私有数据的哈希值通过共识服务而不是私有数据本身传递,这使得私有数据对 共识服务节点保密。私有数私有数据集据集私有数据集用于管理通道上两个或多个希望与该通道上其他组织保密的组织,描述了通道上有权存储私有数据的组 织子集,只有这些组织能与私有数据交易。RaftRaft是v1.4.1新增
23、功能,基于Raft协议etcd库的崩溃容错(CFT)订购服务实现。Raft遵循“领导者和追随者”模型。与 基于Kafka的订购服务相比,Raft共识服务更容易设置和管理,并且允许组织为分布式共识服务贡献节点。二、Hyperledger Fabric 架构详解1.Hyperldger Fabric 架构解读2.Hyperldger Fabric 架构组成Fabric主要由3个服务模块部组成,分别是 成员服务(成员服务(Membership Service)、区块链区块链 服务(服务(Blockchain Service)和合约代码服务合约代码服务(Chaincode Service)。在逻辑架构
24、图中,还能看到事件流贯穿三 大服务组件间,它的功能是为各个组件的异 步通信提供技术支持。1.Hyperledger Fabric架构解读201.Hyperledger Fabric架构解读Fabric运行架构的变化:v0.6版本的结构非常简单,应用成员管理Peer呈现三角形关系,系统所有的业务功能均由Peer节点完成在v1.4版本中,官方对架构进行了改进和重构,v1.4版版本本将将共共识识服服务务部部分分从从Peer节节点中完点中完全全分离分离出出来来,独 立形成一个新的节点提供共识服务和广播服务。同时v1.4版本引入了通道的概念,实现多多通通道结道结构构和和多多链链 网络网络,增强了系统的灵
25、活性。图4.2 运行时架构(v0.6)图4.3 运行时架构(v1.4)211.Hyperledger Fabric架构解读相比v0.6版本,新的架构使得系统在很多方面有了很大的提升,主要有以下的几大优势。合约代合约代码码信任信任的灵的灵活性活性(chaincodetrust flexibility)。v1.4版本从架构上,将合约代码的 信任假设(trust assumptions)与共识服务(ordering service)的信任假设进行了分离。新版 本的共识服务可以由一组单独的节点(orderer)来提供,甚至允许出现一些失效节点或恶 意节点。而对于合约代码程序而言,它可以指定不同的背书节
展开阅读全文