免责声明:凤梨财经作为开放的信息发布平台,所提供的所有内容与凤梨财经观点和立场无关,且不构成任何投资理财建议。投资有风险,入市需谨慎。

学习区块链(四百三十六)

2018-08-31 阅读量 689
摘要:浅析Hyperledger Fabric架构原理1

浅析Hyperledger Fabric架构原理1

BLOCK COMMUNITY



Hyperledger Fabric概述


Hyperledger Fabric是由IBM公司主导开发的一个面向企业级客户的开源项目。与比特币和以太坊这类公有链不同,Hyperledger Fabric网络中的节点必须经过授权认证后才能加入,从而避免了POW资源开销,大幅提高了交易处理效率,满足企业级应用对处理性能的诉求。同时,为了满足灵活多变的应用场景,Hyperledger Fabric采用了高度模块化的系统设计理念,将权限认证模块(MSP)、共识服务模块(Ordering Service)、背书模块(Endorsing peers)、区块提交模块(committing peers)等进行分离部署,使开发者可以根据具体的业务场景替换模块,实现了模块的插件式管理(plug-in/plug-out)。所以,Hyperledger Fabric是一个私有链/联盟链的开发框架,而且系统的运行不需要token支持。


关键组件:


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


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

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

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

Ordering service:利用kafka、SBTF等共识算法对所有交易信息进行排序并打包成区块,发给committing peers节点,写入区块链中。

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

Membership service provider(MSP):管理认证信息,为client和peers提供授权服务。


Hyperledger Fabric Network中的角色


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

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

Peers:负责维护区块链账本,分为endoring peers和committing peers,其中,endorser为交易做背书(验证交易并对交易签名),committer接收打包好的区块,然后写入区块链中。Peers节点是一个逻辑的概念,endorser和committer可以同时部署在一台物理机上。

Ordering Service:接收交易信息,并将其排序后打包成区块,放入区块链,最后将结果返回给committer peers。


Hyperledger交易流程


1、客户端通过SDK接口,向endorsing peer节点发送交易信息:


2、每个endorsing peer节点模拟处理交易,此时并不会将交易信息写入账本。然后,endorser peer会验证交易信息的合法性,并对交易信息签名后,返回给client。此时的交易信息只是在client和单个endorser peer之间达成共识,并没有完成全网共识,各个client的交易顺序没有确定,可能存在双花问题,所以还不能算是一个“有效的交易”。同时,client需要收到“大多数”endorser peer的验证回复后,才算验证成功,具体的背书策略由智能合约代码控制,可以由开发者自由配置。

3、client将签名后的交易信息发送给order service集群进行交易排序和打包。Order service集群通过共识算法,对所有交易信息进行排序,然后打包成区块。Order service的共识算法是以组件化形态插入Hyperledger系统的,也就是说开发者可以自由选择合适的共识算法。

4、ordering service将排序打包后的区块广播发送给committing peers,由其做最后的交易验证,并写入区块链。ordering service只是决定交易处理的顺序,并不对交易的合法性进行校验,也不负责维护账本信息。只有committing peers才有账本写入权限。




·END·
 

区块公社

欢迎加入开发者社区

与技术大咖一起成长
声明:本文观点仅代表作者本人,不代表凤梨财经赞同或证实其观点描述。如若侵权,请联系我们删除文章。