浅析Hyperledger Fabric架构原理

当前位置:首页 > 币圈百科 > 浅析Hyperledger Fabric架构原理

浅析Hyperledger Fabric架构原理

2022-11-30币圈百科328

Hyperledger Fabric概述

Hyperledger Fabric是IBM领导的面向企业客户的开源项目。与比特币、以太坊等公链不同,Hyperledger Fabric网络中的节点必须经过授权和认证才能加入,避免了POW资源开销,大大提高了交易处理效率,满足了企业应用对处理性能的需求。同时,为了满足灵活的应用场景,Hyperledger Fabric采用了高度模块化的系统设计理念,分别部署了权限认证模块(MSP)、共识服务模块(订购服务)、背书模块(背书对等体)、分块提交模块(提交对等体),使得开发者可以根据具体的业务场景更换模块,实现模块的插件化管理(plug-in/plug-in),因此Hyperledger Fabric是一个私有链/联盟链的开发框架,系统的运行不需要令牌支持。

关键组件:

通道:是一种数据隔离机制,保证交易信息只对交易参与者可见。每个通道都是一个独立的区块链,这使得多个用户可以共享同一个区块链系统,而不用担心信息泄露。

Chaincode:也叫智能合约,将资产定义和资产处理逻辑封装到一个接口中,当被用户调用时,改变账簿的状态。

Ledger:区块链Ledger,保存交易信息和智能合约代码。

网络:交易处理节点之间的P2P网络,用于维护区块链账簿的一致性。

排序服务:利用卡夫卡、SBTF等共识算法将所有交易信息排序打包成块,发送到提交对等节点,写入区块链。

世界状态:显示当前资产数据的状态。底层通过LevelDB和CouchDB数据库组织区块链中的资产信息,提供高效的数据访问接口。

成员资格服务提供商(MSP):管理身份验证信息蓑衣网小编2022,并为客户端和对等方提供授权服务。

hyperledger_architecture

Hyperledger Fabric Network中的角色

在Hyperledger中,有三种类型的角色:

Client:应用客户端,用于向区块链网络发送最终用户的交易请求;

对等方:负责维护区块链分类帐,该分类帐分为背书对等方和承诺对等方。其中,背书者对交易进行背书(对交易进行验证和签名),提交者接收打包后的块,并将其写入区块链。对等节点是一个逻辑概念,签署者和提交者可以同时部署在一台物理机器上。

排序服务:接收交易信息,排序,打包成块,放入区块链,最后将结果返回给提交者对等体。

Hyperledger交易流程

1。客户端通过SDK接口向签核对等节点发送交易信息:

1 2。各背书对等节点模拟交易,此时不会将交易信息写入账簿。然后,背书人peer将验证交易信息的合法性,签署交易信息并将其返回给客户端。这时,交易的信息只在客户端和单个背书者之间达成共识,而不是全网共识。每个客户的交易顺序都没有确定,可能存在双花问题,所以不能视为“有效交易”。同时,在被认为成功之前,客户端需要接收来自蓑衣网小编2022背书者对等体的“大多数”验证响应。具体的背书策略由智能合约代码控制,开发者可以自由配置。

3。客户端将签名的交易信息发送到订单服务集群,以进行交易分类和打包。订单聚类通过一致性算法对所有交易信息进行排序,然后打包成块。订单的一致算法以组件的形式插入到Hyperledger系统中,这意味着开发人员可以自由选择合适的一致算法。2

4。订购服务将经过排序和打包的块广播发送给提交对等方,后者将进行最终的交易验证,并将其写入区块链。订购服务只确定交易处理的顺序,不检查交易的合法性,不负责维护账簿信息 3

Hyperledger Fabric Network的一致算法4

在所有同行中,交易信息必须以一致的顺序写入分类帐(区块链的基本原理)。比如比特币通过POW机制,由第一个完成数学题的节点决定本块中的信息顺序,并广播给全网所有蓑衣网小编2022节点,从而达成账本的一致。Hyperledger Fabric采用更加灵活高效的共识算法,满足企业场景下高TPS的要求。目前,Hyperledger Fabric有三种事务排序算法可供选择。

SOLO:只有一个订单服务节点负责接收交易信息并进行排序。这是最简单的排序算法,一般用于实验室测试环境。鞋底是集中加工方式。

kafka:是Apache的开源项目,主要提供分布式消息处理/分发服务。每个Kafka集群由多个服务节点组成。Hyperledger Fabric使用kafka对交易信息进行排序,提供高吞吐量和低延迟,并支持集群内的节点容错。

SBFT:简单的拜占庭算法,与卡夫卡相比,提供了更可靠的排序算法,包括容忍节点失效和一定数量的恶意节点。目前,Hyperledger Fabric社区正在开发这种算法。

交易流程汇总

区块链的账簿由对等节点维护,而不是由订购服务集群维护。因此,只有对等节点才能找到完整的区块链信息,而订餐服务集群只负责对交易进行排序,在处理过程中只保留部分区块链信息。Hyperledger Fabric系统中的节点是一个逻辑概念,不一定是物理设备,但是对于生产环境的设计者来说,对等节点不能和订单节点部署在同一台机器上,而持久对等节点和提交对等节点可以部署在同一台机器上。这种设计主要是为了通过主机隔离,实现系统架构的解耦,提高可扩展性,提高安全性。Endsingpeer验证客户端的签名,然后执行智能合约代码模拟事务。交易完成后,在交易信息上签名,返回给客户端。客户端收到签名后的交易信息后,发送到订单节点进行排序。在Order节点将事务信息分类并打包成块后,它将它们广播给提交对等方,并将其写入区块链。一个完整的交易处理流程如下图所示:

通道的概念9

通道使不同的上层用户业务共享相同的区块链系统资源,主要包括网络、计算和存储资源。本质上,渠道通过不同的区块链账本为上层企业服务。并且,这些区块链统一部署在对等节点上,通过排序服务对事务进行排序和块打包。通道由权限隔离控制。不同渠道的会员不能访问对方的交易信息,只能访问自己渠道的交易信息。

通道可以理解为系统资源的逻辑单元。每个渠道包含对等资源、订单资源、网络资源等,这些资源可以与其他渠道共享。

状态数据库6

状态数据库保存账簿中所有资产的最新状态(例如,账户A拥有的某些资产的总额)。同时为智能合约提供了丰富的资产查询语义。所有的资产信息最终都以文件的形式记录在区块链账本中,数据库是区块链账本的视图表示,可以让智能合同与账本信息的交互更加高效。数据库会自动更新或恢复基础区块链分类帐中的数据。默认的状态数据库是LevelDB,也可以用CouchDB代替。

Level DB:Hyperledger Fabric的默认数据库,简单存储键值对信息;

CouchDB:提供更丰富的查询语义,可以保存JSON对象,以及范围键的查询。

智能合约

智能合约是部署在区块链分类帐中的计算机程序,用于执行交易和修改资产状态。在Hyperledger Fabric中,智能合约被称为chaincode,它是用Go语言编写的。 7

会员服务提供商(MSP)

Hyperledger Fabric是一种许可的区块链,所有节点必须获得授权才能访问区块链网络(比特币属于许可的区块链)。是MSP Hyperledger Fabric中的身份认证模块,用于验证和授权用户的身份以及控制网络访问权限。默认的MSP接口是Fabric-CA API。同时,开发者可以根据自己的业务需求,实现自己的身份认证接口,对接MSP。Hyperledger Fabric网络可以由多个MSP控制,以满足各种组织的需求。

Hyperledger Fabric的商业价值

8随着比特币、以太坊等一系列虚拟货币的暴涨,区块链一度被认为是下一个可能颠覆互联网的革命性技术。然而,我们需要清楚地意识到,虚拟货币的价格并不代表区块链技术能够为人类创造的实际价值。此外,大多数区块链应用本身不需要令牌激励机制。因此,区块链的未来发展取决于它能否广泛应用于商业领域,为人类的生活和生产降低成本、提高效率。

Hyperledger Fabric的意义在于,它为区块链进入商业领域迈出了第一步,未来会有更多的区块链项目在各个行业创造价值。

本文由作者“极简主义”首发于信息,未经允许不得转载。

浅析Hyperledger Fabric架构原理 | 分享给朋友: