HyperLedger Fabric 介绍

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yang731227/article/details/84067570

title: HyperLedger Fabric 介绍
tags: 区块链,HyperLedger,Fabric


hyperledger全家桶

        2015年,Linux基金会启动了Hyperledger项目,目标是发展跨行业的区块链技术。Hyperledger项目并不仅仅是定义一个单一的区块链标准,它更鼓励通过开源社区的力量协作开发区块链技术。

  • BURROW和SAWTOOTH:是对以太坊智能合约虚拟机方面的拓展
  • INDY:做去中心化的数字身份平台
  • CALIPER:是一个去中心化的性能测试工具
  • COMPOSER:区块链模板部署,设一些参数,直接部署
  • EXPLORER:是区块链web端查看工具

Hyperledger Fabric是什么

        Hyperledger Fabric是Hyperledger中的一个区块链项目。与其他区块链技术类似,Hyperledger Fabric包含一个账本,使用智能合约并且是一个通过所有参与者管理交易的系统。

        Hyperledger Fabric与其他区块链系统最大的不同体现在私有和许可。与开放无需许可的网络系统允许未知身份的参与者加入网络不同(需要通过工作量证明协议来保证交易有效并维护网络的安全),Hyperledger Fabric通过Membership Service Provider(MSP)来登记所有的成员。

        Hyperledger Fabric提供了建立channel的功能,这允许参与者为交易新建一个单独的账本。当网络中的一些参与者是竞争对手时,这个功能变得尤为重要。因为这些参与者并不希望所有的交易信息——比如提供给部分客户的特定价格信息——都对网络中所有参与者公开。只有在同一个channel中的参与者,才会拥有该channel中的账本,而其他不在此channel中的参与者则看不到这个账本。

Hyperledger Fabric有以下四个内容:

  • 共享的许可制账本 (Shared,Permissioned Ledger) 是仅可附加的记录系统 (SOR) 和单一事实来源。它对业务网络的所有参与成员均可见。
  • 共识协议 (Consensus Protocol) 是业务网络的所有参与成员都赞同的协议,可确保仅使用经过网络验证的交易来更新账本。
  • 加密 (Crytography) 可确保交易的防篡改安全性、身份验证和完整性。
  • 智能合约 (Smart Contract) 封装了在网络上发生的交易的参与者协议条款;它们存储在区块链中的验证节点上并通过交易触发。

1.共享账本

        Hyperledger Fabric包含一个账本子系统,这个子系统包含两个组件:世界状态(world state)和交易记录。在Hyperledger Fabric网络中的每一个参与者都拥有一个账本的副本。

        世界状态组件描述了账本在特定时间点的状态,它是账本的数据库。交易记录组件记录了产生世界状态当前值的所有交易,它是世界状态的更新历史。那么,账本则是世界状态数据库和交易历史记录的集合。

        账本的世界状态存储数据库是可更换的。默认配置下,这是一个key-value存储数据库。交易记录模块不需要被接入。只需要记录在区块链网络中账本数据库被使用时之前和之后的值就可以了。

2.共识

        在网络中,不同的参与者写入的交易必须按照产生顺序依次被写入账本中。要实现这一目标,交易顺序必须被正确的建立并且必须包含拒绝错误(或者恶意)插入账本中的无效交易的方法。

3.加密

        根据网络的需求,在一个Business-to-Business(B2B)网络中的参与者会对信息共享的程度极为敏感。然而,对于其他的网络,隐私并不是首要考虑的因素。Hyperledger Fabric支持构建隐私保护严格的网络,也支持构建相对开放的网络。

4.智能合约

        Hyperledger Fabric智能合约被称为chaincode,当一个区块链外部的一个应用程序需要访问账本时,就会调用chaincode。大多数情况下,chaincode只会访问账本的数据库组件和世界状态(world state)(比如查询),但不会查询交易记录。

Fabric特点

        Hyperledger Fabric 是一种通用的区块链技术,其设计目标是利用一些成熟的技术实现分布式账本技术( Distributed Ledge Technology,DLT)。超级账本采用模块化架构设计,复用通用的功能模块和接口。模块化的方法带来了可扩展性、灵活性等优势,会减少模块修改、升级带来的影响,能很好地利用微服务实现区块链应用系统的开发和部署。 Hyperledger fabric设计有几个特点:

  1. 模块插件化:很多的功能模块(如CA模块、共识算法、状态数据库存储、ESCC、VSCC、 BCCSP等)都是可插拔的,系统提供了通用的接口和默认的实现,这满足了大多数的业务需求。这些模块也可以根据需求进行扩展,集成到系统中。

  2. 充分利用容器技术:不仅节点使用容器作为运行环境,链码也默认运行在安全的容器中。应用程序或者外部系统能直接操作链码,必须通过背书节点提供的接口转发给链码来执行。容器给链码运行提供的是安仝沙箱环境,把链码的环境和背书节点的环境隔离开,链码存在安全问题也不会影响到背书节点。

  3. 可扩展性: Hyperledger Fabric1.0在0.6版本的基础上,对Per节点的角色进行了拆分,有背书节点( Endorser)、排序服务节点( Orderer)、记账节点( Committer)等,不同角色的节点有不同的功能。节点可以加入到不同的通道(Channel)中,链码可以运行在不同的节点上,这样可以更好地提升并行执行的效率和吞吐量。

  4. 安全性: Hyperledger Fabric10提供的是授权访问的区块链网络,节点共同维护成员信息,MSP( Membership service Provider)模块验证、授权了最终用户后才能使用区块链网络的功能。多链和多通道的设计容易实现数据隔离,也提供了应用程序和链码之间的安全通道,实现了隐私保护。

猜你喜欢

转载自blog.csdn.net/yang731227/article/details/84067570