ImageVerifierCode 换一换
格式:PPTX , 页数:99 ,大小:1.69MB ,
文档编号:4401149      下载积分:28 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-4401149.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(晟晟文业)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(区块链知识—HyperledgerFabric深入解读课件.pptx)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

区块链知识—HyperledgerFabric深入解读课件.pptx

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)来提供,甚至允许出现一些失效节点或恶 意节点。而对于合约代码程序而言,它可以指定不同的背书节

26、点,这极大地增强了合约代 码的灵活性。可扩展可扩展性性(scalability)。在新的架构下,负责为指定合约代码背书的背书节点与共识节点 是一种正交的关系,所以相比原来v0.6架构所有业务功能都在Peer节点上执行,v1.4版本架 构的扩展性有了很大的提升。尤其是当不同的合约代码所指定的背书节点不存在交集时,系统可以同时进行多个合约代码程序的背书操作,这很好地提高了系统处理的效率。机密性机密性(confidentiality)。Mutichannel的设计使得对内容和执行状态更新有机密性需求的 合约代码的部署变得容易了。为了提高其隐私和机密的能力,Fabric增加了对私有数据的 支持,并且正

27、在开发的零知识证明(ZKP)将在未来可用。共共识模块识模块性性(consensus modularity)。v1.4架构将共识服务从Peer节点分离出来独自成为 共识节点,共识服务还被设计为可插拔的模块化组件,允许不同共识算法的实现来应用于 复杂多样的商业场景。网络拓扑结构的变化:在v0.6版本中,整个网络由两类节点构成:VP(Validating Peer)验证节点和验证节点和NVP非验证节点非验证节点 在v1.4版本中,网络拓扑结构随着网络节点类型的变化也发生了很大的改变,将共识服务抽离出来,而 Peer节点中可以分为背书节点或者提交Peer节点,并且它们还可以进行分组,然后整个共识服务与

28、Peer节 点所构成的组一起形成新的完成网络。1.Hyperledger Fabric架构解读1.Hyperledger Fabric架构解读通道的引入通道的引入在v1.0之后的版本中,Fabric引入了新的通 道概念,共识服务上的消息传递支持多通道,使得Peer节点可以基于应用访问控制策略来 订阅任意数量的通道。Peer节点的子集可以 被应用程序指定架设相关通道,指定相同通 道的Peer节点组成集合提交该通道的交易,而且只有这些Peer节点可以接收相关交易区 块,与其他交易完全隔离。Fabric支持多链 与多通道,即系统中可以存在多个通道以及 多条链。应用根据业务逻辑决定将每个交易 发送到指

29、定的一个或多个通道,不同通道上 的交易不会存在任何联系。1.Hyperledger Fabric架构解读私有数据支持私有数据支持从v1.2开始,Fabric能够在账本中创建私私有数有数据集据集,允许通道上组织的子集能够认可、提交或查询私有数据,不用创建单独的通道就能实现通道上的一组组织的数据向其他 组织保密的功能。实际的私有数据存储在授权组织的对等节点上的私有状态数据私有状态数据库库中(有时候被称为“side”数据库或“SideDB”),能被授权节点上的链码通过gossip协议访问。共识服 务不涉及其中也无法看到私有数据。由于gossip协议在授权组织中对等分发私有数据,这需要在通道中建立锚节

30、点。私有数据的哈希值能够被认可、排序并写入通道上每个对等方的帐本中,可作为交易 的证据,用于状态验证,还可用于审计。2.Hyperledger Fabric架构组成2.Hyperledger Fabric架构组成1成员服务2区块链服务3合约代码服务为什么需要成员服务区块链网络中的每一个参与者:peer,orderers,客户端应用程序,管理 员等,要想参与区块链网络,都必须具有封装在X.509数字证书中的数字身 份。这些身份非常重要,因为它们确定了参与者在区块链网络中对资源的访 问权限。要使身份可以验证,它必须来自可信任的权威机构。会员会员服服务提供商务提供商(MSP)在Fabric中就充当权

31、威机构的角色。Fabric中MSP默认使用X.509证书 作为身份,采用传统的公钥基础结构(PKI)分层模型。(1)成员服务理解PKI与MSP想象一下,你去超市购买东西,在结账时,你看到一个标志,表示只接受Visa,Mastercard和AMEX卡。如果你尝试使用其他卡付款,即使卡中有足够的资金,它也不会被接受。拥有有效的信用卡是不够的-它必须被商店接受!PKI和MSP以相同的方式协同工作-PKI提供 身份列表,MSP说哪些是参与网络的给定组织的成员。PKI证书颁发机构和MSP提供了类似的功能组合。PKI就像一个卡提供商-它分配了许多不同 类型的可验证身份。另一方面,MSP类似于商店接受的卡提

32、供商列表,确定哪些身份是商店支 付网络的可信成员(参与者)。MSP将可验证的身份转变为区块链网络的成员。(1)成员服务PKI体系PKI(Public Key Infrastructure,公钥基础设施)的目标就是实现不同成员在不见面的情况 下进行安全通信,Fabric采用的模型是基于可信的第三方机构,也就是证书颁发机构(Certification Authority,CA)签发的证书。CA会在确认申请者的身份后签发证书,同时会在线 提供其所签发证书的最新吊销信息,这样使用者就可以验证证书是否仍然有效。证书证书是一个包含公钥、申请者相关信息以及数字签名的文件。数字签名保证了证书中的内 容不能被任

33、何攻击者篡改,而且验证算法可以发现任何伪造的数字签名。通常情况下,PKI体系包含证书颁布机构(CA)、注册机构(RA)、证书数据库和证书存储实体。RA是一个信任实体,它负责对用户进行身份验证以及对数据、证书或者其他用于支持用户 请求的材料进行合法性审查CA则会根据RA的建议,给指定用户颁发数字证书,这些证书由根CA直接或分层进行认证(1)成员服务PKI体系(1)成员服务成员服务实体组成对上图中的实体进行进一步介绍说明:Root Certificate Authority(Root CA):根CA,代表PKI体系中信任的实体,同时也是PKI体 系结构中的最顶层认证机构。Registration

34、Authority(RA):注册机构,是一个可信任的实体,通过它可以确定希望参与 许可区块链的用户的有效性和身份信息。它通过与用户进行带外通信的方式以验证用户的身份 和角色。同时RA还需要负责创建注册所需的注册凭证。Enrollment Certificate Authority(ECA):在验证用户提供的注册凭证后,ECA负责发出注 册证书(ECerts)。Transaction Certificate Authority(TCA):在验证用户提供的注册凭证后,TCA负责发出交易证书(TCerts)。(1)成员服务TLS Certificate Authority(TLS-CA):负责颁发T

35、LS(Transport Layer Security,传输层 安全协议)证书和凭据,以允许用户使用其网路。Enrollment Certificates(ECerts):ECerts是长期证书,针对所有角色颁发。TransactionCertificates(TCerts):TCerts是每个交易的短期证书。它们是由TCA根据授权 的用户请求颁发的。此外,TCerts可以被配置为不携带用户身份的信息。它们使得用户不仅可 以匿名地参与系统,还可以防止事务的可链接性。TLS-Certificates(TLS-Certs):TLS-Certs携带其所有者的身份,用于系统和组件之间进行通信及维护网络

36、级安全性。Code Signer Certificates(CodeSignerCerts):负责对代码进行数字签名来标识软件来源及软 件开发者的真实身份,以此保证代码在签名之后不被恶意篡改(1)成员服务金融IC卡系统中也使用了PKI体系,它的架构如图所 示。与Fabric的PKI体系相比,它没有TCert,每次交易 都是使用ECert完成,所以这个系统中的交易是没有匿 名的。(1)成员服务接下来针对具体的用户注册流程用户注册流程做一个简单的介绍,如图,成员的注册分为两个过程:离线过程离线过程(1)每个用户或者Peer节点必须向RA注册机构提供身份证件(ID证明),同时这个流程必须通过带外数据

37、(out-of-band,OOB)进行传输,以提供RA为用户创建(和存储)账户所需的证据。(2)RA注册机构返回用户有关的用户名和密码,以及信任锚(包含TLS-CA Cert)。如果用户可以访问本地客户端,那么客户端 可以将TLS-CA证书作为信任锚的一种方式。在线过程在线过程(3)用户连接客户端以请求登录系统,在这一过程中,用户将 用户名和密码发送给客户端。(4)用户端接着代表用户向成员服务发送请求,成员服务接受请求(5)成员服务将包含几个证书的包发送给客户端。(6)一旦客户端验证完成所有的加密材料是正确有效的,它就 会将证书存储于本地数据库中并通知用户,至此,用户注册完成(1)成员服务MS

38、P(Membership Service Provider)我们已经了解了PKI如何提供可验证的身份。现在来看看这些身份如何用于表示区块链网络 的可信成员。这是会员服务提供商(MSP)发挥作用的地方-它通过列出其成员的身份来识别应该信任哪些根CA和中间CA是信任域的成员,或者哪些CA被授权为成员签发有效的身份。MSP的强大不仅仅是列出谁是网络参与者或频道成员。MSP可以在它所代表的组织范围内 识别参与者可能扮演的特殊角色,为网络和通道的访问权限设置奠定基础。在区块链网络中,有两个地方会出现MSP,一个是本地MSP,一个是通道MSP本本地地MSP用来定义节点(peer,orderer)和用户的权

39、限,定义了本地层面的成员哪些有管 理权哪些有参与权,如果一个组织的节点想要加入某个通道,那么本地MSP也要加入通道 的配置中,一个通道中的所有节点共享通道MSP的视图。下面来看一个例子。(1)成员服务(1)成员服务(1)成员服务管理员B的身份由RCA1签发,存储在本地MSP中,当B想要连接到peer并尝试在peer上安 装智能合约时,peer先检查ORG1-MSP,以验证B的身份确实是ORG1的成员。验证成功后 将允许install命令实现链码的安装。随后,B希望在通道上也实例化智能合约,那么通道上 的所有组织必须都同意。,因此,peer必须先检查通道的MSP,然后才能成功提交此命令。(当然在

40、此过程中也有其他的事件发生,不过现在只讨论MSP)本地MSP仅在应用的节点或用户的文件系统上定义。因此,在物理上和逻辑上,每个节 点或用户只有一个本地MSP。由于通道MSP可用于通道中的所有节点,因此它们在通道配置 中进行逻辑定义一次。但其实,通道MSP也在通道中为每个节点的文件系统实例化,并通过 一致性保持同步。(1)成员服务MSP(Membership Service Provider)本地MSP文件系统MSP(Membership Service Provider)RootCAs:此文件夹包含由此MSP信任的根CA自签名X.509证书列表。这是最重要的文件 夹,因为它标识了一个根CA,只

41、有这个根CA才可以派生证书产生其他成员CA.中中间间CA:此文件夹包含此组织信任的中间CA的X.509证书列表。每个证书必须由MSP中的一个根CA或中间CA签名,中间CA的颁发CA最终会连接到受信任的根CA.组织单组织单位位(OU):):当希望将组织成员限制为拥有其中包含特定OU的身份(由MSP指定的CA之一签名)的成员时,此功能有用。管理管理员员:此文件夹包含一个标识列表,用于定义具有此组织管理员角色的角色。对于标准MSP类型,此列表中应该有一个或多个X.509证书。撤销撤销证书证书:则在此文件夹中保存有关被撤销的身份的信息。节点标节点标识识:该文件夹包含节点的标识,即加密材料-与KeySt

42、ore的内容组合-将允许节点在发送给其信道和网络的其他参与者的消息中认证自身。(1)成员服务MSP(Membership Service Provider)私钥私钥的的KeyStore:此文件夹是为对等或订购者节点(或客户端的本地MSP)的本地MSP定 义的,包含节点的签名密钥。此密钥以加密方式匹配节点标识文件夹中包含的节点标识,并用 于签署数据-例如签署交易提议响应,作为认可阶段的一部分。TLS根根CA:此文件夹包含此组织信任的用于TLS通信的根CA的自签名X.509证书列表。TLS通信的一个示例是当对等方需要连接到订货人以便它可以接收分类帐更新时。TLS中中间间CA:此文件夹包含由此MSP

43、用于TLS通信的组织信任的列表中间CA证书CA.当商 业CA用于组织的TLS证书时,此文件夹特别有用。与成员资格中间CA类似,指定中间TLS CA 是可选的。(1)成员服务(2)区块链服务2.Hyperledger Fabric架构组成1成员服务2区块链服务3合约代码服务(2)区块链服务区块链服务包含4个模块:共共识管识管理理、分、分布布式账式账本本、账、账本本存储存储以以及及P2P网网络络协议协议。共识管共识管理理用于在多个节点的分布式复杂网络中使消息达成共识分布式账本与账本存分布式账本与账本存储储负责区块链系统中所有的数据存储,比如交易信息、世界状态等。而P2P网络协议网络协议则是网络中节

44、点的通信方式,负责Fabric中各节点间的通信与交互。1.P2P网络这种分布式应用架分布式应用架构构是对等计算模型在应用 层形成的一种组网或网络形式,用于对等实体间 分配任务和工作负载。彼此连接的多台计算机在 P2P网络环境中处处于于对对等地等地位位,有相同的功能,不分主从。一台计算机可作为服务器,设定供网 络中其他计算机使用的共享资源,又可以作为工 作站来请求服务。一般来说,整个网络不依赖专 用的集中服务器,也没有专用的工作站。而区块 链所处的分布式环境中,各个节点间本应该是平 等的,天然适合P2P网络协议。在Fabric的网络环境中,节点是区块链的通信实体。存在三类不同的节点,分别是客客户

45、端节户端节 点(点(Client)、)、Peer节节点点(Peer)以以及共及共识识服务服务节节点点(Ordering Service Nodes或者或者Orderers)客户端节客户端节点点代表着终端用户实体。必须连接到Peer节点后才可以与区块链进行通信交互。可以根据它自己的选择来连接到任意的Peer节点上,创建交易和调用交易。在实际系统运行环境中,客户端负责与Peer节点通信提交实际交易调用,与共识服务通信 请求广播交易的任务。Peer节点节点负责与共识服务节点通信来进行世界状态的维护和更新。它们会收到共识服务广播的消息,以区块的形式接收排序好的交易信息,然后更新和维护本地的世界状态与账

46、本。Peer节点可以额外地担当背书节点的角色,负责为交易交易背书背书。每个合约代码程序都可以指 定一个包含多个背书节点集合的背书背书策策略略。(2)区块链服务为了更加清楚的了解客户端节点与Peer节点的交互,我们来看一个简化的例子。(2)区块链服务(2)区块链服务上图显示了查询账本和更新账本的操作,在进行查询操作时,只需要三步:1.application链接到peer,并把提案提交给peer。2.peer根据提案调用相应的链码执行相关操作。3.链码查询账本,并向application返回结果。而更新账本的还需要下面的额外操作:1.application根据所有的响应结果构建一个transact

47、ion发送给orderer排序。2.orderer将来自网络的事务收集到块中进行排序,把块再发给所有的peer。3.peer收到后,先验证事务是否正确,再更新账本。4.账本更新完成后产生事件通知给application更新完成。2.共识服务共识服务网络中的Orderers节点聚集在一起形成了共识服务。它可以看作一个提供交付保证的通信组织。共识服务为客户端和Peer节点提供了一个共享的通信通道,还为包含交易的消息提供了一个广播服务的功能。共识服务可以有不同的实现方式,在v1.0版本中,Fabric将共识服务设计成了可插可插拔拔模块模块,可 以根据不同的应用场景配置不同的共识选项。目前,Fabri

48、c提供了3种模式实现:Solo、Kafka和和 Ratf。Solo是一种部署在单个节点上的简单时序服务,它只支持单链和单通道。Kafka是一种支持多通道分区的集群共识服务,可以支持CFT(Crash Faluts Tolerance)。它容 忍部分节点宕机失效,但是不能容忍恶意节点。Raft遵循“领导者和追随者”模型,每个通道都选举一个“领导者”,它的决定将被复制给“追随者”,支持CFT。只要总节点数与失效节点数目满足n=2f+1,它就允许包括领导者 在内的部分节点宕机失效。(2)区块链服务(2)区块链服务回忆一下之前的例子应用程序想要执行一个更新操作时,只经过一个peer节点的同意是无法更新

49、账本的,具体而 言,想要更新账本涉及三个阶段过程,这三个阶段可确保区块链网络中的所有peer保持账本彼 此一致。在第一阶段,应用程序需要收集背书节点对账本更新的背书签名,每个peer提供对应用程序 更新操作的认可,但此时不将更新应用于它所持有的账本。在第二阶段,这些单独的背书被收 集在一起并打包成块。在最后的阶段,这些块将被分发回每个peer,在每个peer都验证完块中 的每个事务后,再应用于peer所持有的账本。orderer节点是此过程的核心,因此让我们更详细地研究应用程序和peer如何使用orderers生成应用于分布式帐本的更新。(2)区块链服务第1阶段:提案第1阶段涉及应用程序和一组

50、peer之间的交互-它不涉及Orderers。第1阶段仅涉及 一个应用程序,要求不同组织的peer节点为应用程序提交的请求背书。首先,应用程序生成一个交易提案,并将提案发送给每个背书节点以进行背书。然后,这些背书节点中的每一个使用交易提议独立地执行链码以生成提案响应。在这 时,这些背书节点并不会将更新应用于账本,只是简单地对其进行签名并将其返回给 应用程序。一旦应用程序收到足够数量的签名提案响应,事务流程的第一阶段就完成 了。我们用一个图来更详细地研究这个阶段。(2)区块链服务(2)区块链服务在示例中,应用程序A1生成事务T1提议P,其通道C上发送给P1和P2,P1使用事务T1提议P执行S1,

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|