Hyperledger Fabric技术框架详解

2020-08-09 18:07 栏目:经验之谈 来源:网络整理 查看()

在上一课中,我们介绍了Hyperledger结构的基本情况和组成。今天,我们将分解它的架构组成,并阐述Hyperledger结构的技术框架。

结构模块-成员服务

区块链网络中的每个参与者(包括客户端应用程序、计费节点、分拣服务节点等。)必须具有封装在X.509数字证书中的数字身份,才能加入区块链网络。这些身份非常重要,因为它们决定了参与者对区块链网络中资源的访问权限。

要使身份可验证,它必须来自可信的权威。成员服务提供商(MSP)在结构中充当权威,默认情况下使用X.509证书作为其身份,并采用传统的公钥基础设施(PKI)分层模型。

公钥基础设施的目标是实现不同成员之间的安全通信(建立信任),而不需要彼此见面。结构采用的模型基于可信第三方组织(即证书颁发机构)颁发的证书。认证中心将在确认申请人身份后颁发证书,并在线提供认证中心颁发的证书的最新吊销信息,以便用户验证证书是否仍然有效。

证书是包含公钥、申请人信息和数字签名的文件。数字签名确保证书的内容不会被任何攻击者篡改,并且验证算法可以发现任何伪造的数字签名。一般来说,公钥基础设施系统包括证书颁发机构、注册机构、证书数据库和证书存储实体。

RA是一个受信任的实体,负责认证用户并检查用于支持用户请求的数据、证书或其他材料的合法性。

认证中心将根据注册局的建议向指定用户颁发数字证书,这些证书将由根认证中心直接或分级认证。

Hyperledger Fabric技术框架详解

进一步介绍上图中的实体:

root CErtificate authority(root ca):root ca代表PKI系统中的一个受信任实体,也是PKI系统中的顶级证书颁发机构。

注册机构(RA):注册机构是一个受信任的实体,可以确定希望参与区块链许可的用户的有效性和身份信息。它通过与带外用户通信来验证用户的身份和角色。同时,注册局还负责创建注册所需的注册证书。

注册证书颁发机构(ECA):在验证用户提供的注册证书后,ECA负责颁发注册证书(ECerts)。

交易认证机构(TCA):在核实用户提供的注册证书后,TCA负责签发交易证书。

证书颁发机构(TLS-CA):负责颁发TLS(传输层安全)证书和凭证,以允许用户使用他们的网络。

注册证书(e cert):e cert是为所有角色颁发的长期证书。

交易证书(t cert):t cert是每笔交易的短期证书。它们是由TCA根据授权用户的要求发布的。此外,电信运营商可以配置为不携带用户身份信息。它们不仅使用户能够匿名参与系统,还防止了交易的可链接性。

TLS证书(TLS-certs): TLS-certs携带其所有者的身份,用于系统和组件之间的通信,并维护网络级安全性。

代码签名者(code signer):负责对代码进行数字签名,以识别软件源代码和软件开发人员的真实身份,从而确保代码在签名后不会被恶意篡改。

Hyperledger Fabric技术框架详解

简要介绍了具体的用户注册流程。成员注册分为两个过程:

离线过程

每个用户或对等节点必须向注册机构提供一个身份证书(身份证书),并且该过程必须通过带外(OOB)传输,以提供注册机构需要为用户创建(和存储)帐户的证据。

ra注册机构返回与用户和信任锚(包括TLS-CA Cert)相关的用户名和密码。如果用户可以访问本地客户端,客户端可以使用TLS-CA证书作为信任锚。

在线流程

用户连接到客户端,请求登录系统。在此过程中,用户将用户名和密码发送给客户端。

然后,用户端代表用户向成员服务发送请求,成员服务接受该请求。

成员服务向客户端发送包含多个证书的包。

一旦客户端验证所有加密的材料都是正确和有效的,它将把证书存储在本地数据库中,并通知用户用户注册已经完成。

现在让我们看看这些身份是如何被用来代表区块链网络的可信成员的。这是成员服务提供者(MSP)发挥作用的地方:它通过列出其成员的身份来识别哪个根证书颁发机构和中间证书颁发机构应该被信任为信任域的成员,或者哪个证书颁发机构被授权为其成员颁发有效的身份。

MSP比仅仅列出谁是网络参与者或渠道成员更强大。MSP可以识别参与者在其所代表的组织中可能扮演的特殊角色,并为设置网络和频道的访问权限奠定基础。在区块链网络中,MSP将出现在两个地方,一个是本地MSP,另一个是频道MSP。

本地MSP用于定义节点和用户的权限,并定义哪些本地成员有权管理哪些成员有权参与。

如果组织的一个节点想要加入一个通道,本地MSP也应该加入通道配置,并且通道中的所有节点共享通道MSP的视图。让我们看一个例子。

Hyperledger Fabric技术框架详解

用户b的身份由RCA1发布,并存储在本地MSP中。当b想要连接到对等体并尝试在对等体上安装智能合同时,它需要执行以下操作:

对等体首先检查ORG1-MSP,以验证b的身份确实是ORG1的成员。成功验证后,将允许安装命令安装链代码。

b希望在渠道上实例化智能合同,因此渠道上的所有组织都必须同意。因此,对等方必须在成功提交该命令之前检查信道的MSP。

本地MSP仅在用户的应用程序或文件系统的节点上定义。因此,在物理和逻辑上,每个节点或用户只有一个本地MSP。

由于信道MSP可以用于信道中的所有节点,因此它们在信道配置中被逻辑定义一次。事实上,通道MSP实例化通道中每个节点的文件系统,并通过一致性保持同步。

织物模块-区块链服务

Fabric的区块链服务包括四个模块:一致性管理、分布式分类帐、分类帐存储和P2P网络协议。

一致性管理用于在具有多个节点的分布式复杂网络中使消息达成一致。

分布式分类账和分类账存储负责管理区块链系统中的所有数据存储,如交易信息和世界状况。

P2p网络协议是网络中节点的通信方式,它负责结构中节点之间的通信和交互。

1.P2P网络

在结构的网络环境中,节点是区块链的通信实体,有三种不同类型的节点,即客户端、对等端和订购服务节点或订购者。

客户端节点代表最终用户实体

您必须先连接到对等节点,然后才能与区块链进行通信和交互。

,根据自己的选择连接到任何对等节点,创建事务和调用事务。

在实际的系统运行环境中,客户端负责与对等节点通信以提交实际的事务调用,并与一致服务通信以请求广播事务任务。

对等节点负责与一致服务节点通信,以维护和更新世界状态

他们将接收由一致服务广播的消息,以块的形式接收分类的交易信息,然后更新和维护本地世界状态和账簿。

对等节点还可以扮演背书节点的角色,负责背书交易。每个合同代码程序可以指定一个包含多个背书节点集的背书策略。

2.共识服务

结构网络中的订购者节点聚集在一起形成一致的服务

它可以被视为一个提供交付保证的沟通组织。

一致性服务为客户端和对等节点提供了一个共享的通信通道,同时也为包含事务的消息提供了广播服务功能。

共识服务可以用不同的方式实现。在1.0版中,结构将一致性服务设计为可插拔模块,并且可以根据不同的应用场景配置不同的一致性选项。目前,织物提供三种模式:独奏,卡夫卡和拉特夫。

Solo是部署在单个节点上的简单定时服务,它只支持单个链和单个通道。

卡夫卡是一个支持多通道划分的集群共识服务,它可以支持CFT(崩溃容错)。它容忍一些节点的故障,但不能容忍恶意节点。

RAFT遵循“领导者和追随者”的模式,每个渠道选出一个“领导者”,其决策将被复制到“追随者”。只要节点总数和故障节点数满足n=2f 1,它就允许包括领导者在内的一些节点因停机而发生故障。

3.分布式分类帐

通过分析其底层结构,区块链技术可以被定义为共享分类账技术。分类账是区块链的核心组成部分。在区块链的分类账中,存储了所有历史交易和状态变化记录。

在结构中,每个通道对应一个共享分类帐,连接到共享分类帐的每个对等节点都可以参与网络并查看分类帐信息,也就是说,它允许网络中的所有节点参与并查看分类帐信息。

分类帐上的信息是公开共享的,并且分类帐的副本保存在每个对等节点上。

结构模块-合同代码服务

结构合同代码服务提供了一种安全和轻量级的方式,它在节点上沙箱化合同代码的执行,提供安全容器服务和安全合同代码注册服务。

它的运行环境是一个锁定和安全的容器,合同代码将被编译成一个独立的应用程序,并在一个隔离的Docker容器中运行。当部署合同代码时,将自动生成一组带有签名的智能合同的Docker基本图像。在Docker容器中,对等节点和合同代码之间的交互过程如图所示:

Hyperledger Fabric技术框架详解

步骤如下:

对等节点收到客户端发送的合同代码执行请求后,通过gRPC与合同代码进行交互,并向相应的合同代码发送合同代码消息对象。

通过调用Invoke()方法,合同代码执行getState()操作和putState()操作,从对等节点获取分类帐状态数据库,并发送分类帐预提交状态号。若要读写私有数据,请使用getPrivateDate()和putPrivateDate()方法。

合同代码执行成功后,输出结果发送到对等节点,背书节点对输入输出信息进行背书签名,完成后回复客户端。

图形学院第三单元的课程今天结束了!谢谢你一路陪伴~每个人都应该记得复习!我们将从下期进入新的篇章,所以请期待~

微信二维码
售前客服二维码

文章均源于网络收集编辑侵删

提示:币友交流QQ/WX群请联系客服加入!

郑重申明:资讯文章为网络收集整理,官方公告以外的资讯内容与本站无关!
虚拟币开发,虚拟币交易平台开发,山寨币交易平台开发 Keywords: 虚拟币开发 虚拟币交易平台开发 山寨币交易平台开发