HyperLegder Fabric案例实施(一)

版权声明:所有文章版权所有 带刀码客,转发需附原文链接。 https://blog.csdn.net/anjing1225/article/details/84626479

    区块链发展到今年这个状况,币圈市值下跌80%估计不是很多人能预料到的。国家意志也是反对炒币。所以抽点空研究下联盟链,无币链,以及基于无币链的解决方案。目前用的比较多的就是Fabric了。下面是一些fabric的优点,以及为什么要选这个作为联盟链

    比特币和以太坊这两种实现方式,都可以划分到公共无授权区块链技术,也就是这两种技术提供的是对大众开放的公共网络,任何人都可以使用,并且彼此之间交易是匿名的。EOS由于其创建者BM的个人原因使得EOS的发展越来越脱离区块链的核心要求 - 去中心化,而且EOS是带币区块链,所以尽管EOS有跟Fabric类似的性能,作为企业级应用还是不能入选。

    随着比特币和以太坊的流行,一些其他区块链技术也在发展,很多企业对于区块链底层技术,分布式账本和分布式应用开发平台也越来越关注。但是,对于企业来说,目前公网的比特币和以太坊这种无授权的分布式网络由于其天生的特性并不能满足企业级需求。其中主要有两点,其一是性能,企业级需求要求每秒并发交易量达到一定的量级;另外一点是用户需要认证授权才能使用链上数据。在有些场景,对用户的认证几乎是硬要求,比如金融类型的交易。所以,对于企业级的要求,区块链技术需要能做到以下几点:

  • 区块链的参与者必须是认证的或者是能认证的
  • 对区块链的访问,必须要是授权的
  • 每秒交易数必须要满足企业级应用的需求
  • 对于交易的链上确认,延时需要尽可能低
  • 交易内容的私密性

    2015年,Linux基金会启动了Hyperledger项目,目标是发展跨行业的区块链技术。Hyperledger项目并不仅仅是定义一个单一的区块链标准,它更鼓励通过开源社区的力量协作开发区块链技术。Hyperledger Fabric是Hyperledger中的一个区块链项目。与其他区块链技术类似,Hyperledger Fabric包含一个公共账本,使用智能合约并且是一个通过所有参与者管理交易的系统。

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

    Hyperledger Fabric也提供了多个可拔插选项。账本数据可被存储为多种格式,共识机制可被接入或者断开,同时支持多种不同的MSP。

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

共享账本

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

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

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

智能合约

    智能合约或Fabric称之为“链代码 - Chain Code”,作为受信任的分布式应用程序,从区块链获得其安全性/信任以及同行之间的基本共识。它是区块链应用程序的主要业务逻辑。

    有三个关键点适用于智能合约,尤其是应用于平台时:

  • 许多智能合约在网络中同时运行。
  • 它们可以动态部署(在很多情况下是任何人都有权部署)。
  • 应用程序代码应视为不受信任,甚至可能是恶意的。

    大多数现有的具有智能合约能力的区块链平台遵循订单执行架构,其中共识协议的作用:

  • 验证并订购交易然后将它们传播到所有对等节点。
  • 然后,每个节点顺序执行事务。

    几乎所有现有的区块链系统都支持订单执行架构,范围从公共/ 无权平台,如 以太坊(基于PoW的共识)到许可平台,如Tendermint, Chain和Quorum。

    在区块链中执行的与订单执行架构一起运行的智能合约必须是确定性的; 否则,可能永远不会达成共识。为了解决非确定性问题,许多平台要求智能合约以非标准或特定的语言(例如Solidity)编写,以便可以消除非确定性操作。这阻碍了区块链的广泛应用,因为它要求开发人员编写智能合约需要学习新编程语言并可能导致编程错误。

    此外,由于所有节点都顺序执行所有事务,因此性能和规模有限。智能合约代码需要在系统中的每个节点上执行,因此要求采取复杂的措施来保护整个系统免受潜在恶意合约的影响,以确保整个系统的弹性和稳定性。

隐私

     根据网络的需求,在一个Business-to-Business(B2B)网络中的参与者会对信息共享的程度极为敏感。然而,对于其他的网络,隐私并不是首要考虑的因素。

    Hyperledger Fabric支持构建隐私保护严格的网络,也支持构建相对开放的网络。

共识

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

    这完全是计算机科学的研究领域,可以有多种方法实现上面提到的目标,这些方法各有优缺点。例如,PBFT (Practical Byzantine Fault Tolerance)可以为文件副本提供一种机制来相互通信,即使是在发生腐败的情况下,也可以保证每个副本保持一致。另外,在比特币中,通过一种称为挖矿的行为进行排序。在挖矿过程中,竞争的计算机竞相解决一个密码难题,这个谜题定义了所有后续的构建顺序。

    Hyperledger Fabric的设计则是允许网络构建者依据业务需求来选择采用的共识机制。好比考虑隐私性,就会有一连串的需求,从高度结构化的网络或是更加点对点的网络。

    该平台最重要的区别之一是它支持可插拔的共识协议,使平台能够更有效地进行定制,以适应特定的用例和信任模型。例如,当部署在单个企业内或由可信任的权威机构运营时,完全拜占庭容错的共识可能被认为是不必要的,并且对性能和吞吐量造成过度拖累。在这种情况下, 崩溃容错(CFT)共识协议已经足够,而在多方分散用例中,可能需要更传统的拜占庭容错(BFT)共识协议,从而能为平台带来更优越的性能。

性能和可扩展性

    区块链平台的性能可能会受到许多变量的影响,例如事务大小,块大小,网络大小以及硬件限制等.Hyperledger社区目前正在开发关于度量性能和可扩展性的一组度量标准,以及针对相应标准开发了称为Hyperledger Caliper的基准测试框架的实现。

    虽然这项工作仍在继续开发,但是应该被视为区块链平台性能和规模特征的明确衡量标准,IBM Research的一个团队发表了一份同行评审文章,评估了Hyperledger Fabric的架构和性能。

    研究团队所做的性能基准测试工作为Fabric v1.1.0版本带来了大量的性能改进,从v1.0.0版本级别将平台的整体性能提高了一倍以上。

结论

    对区块链平台的任何专业的评估都应该在名单中包含Hyperledger Fabric。

    还有,Fabric的差异化功能使其成为一个高度可扩展的系统,作为支持灵活的信任假设的带许可的区块链,使该平台能够支持从政府,金融,供应链物流到医疗保健等各种行业用例。

    更重要的是,Hyperledger Fabric是(目前)十个Hyperledger项目中最活跃的。

    围绕平台的社区建设正在稳步增长,每个连续版本提供的创新远远超过任何其他企业区块链平台。

猜你喜欢

转载自blog.csdn.net/anjing1225/article/details/84626479