fabric社区发展概况

前言

官网:https://github.com/hyperledger/fabric
fabric作为联盟链底层的基础设施已经发展几年,也陆续在一些场景中落地。在发展过程中,也在不断完善。从最早fabric0.6版本到现在1.4,1.X版本后面会停止更新,会切换到2.0版本。本文就从fabric发展历程,把几个版本主要的特性做一下总结,也可从中发现商业落地对社区发展的一些推动。

fabric主要版本特点

fabric0.6

fabric0.6算是最早的一个release版本,peer节点承担记账和共识功能,peer节点压力比较大,系统性能和扩展性不好,难以商业落地。其共识算法采用的是PBFT算法。PBFT算法的最大容错节点数量是(n-1)/3, pbft 算法支持容错故障节点之外,还需要支持容错作恶节点。另外,其他各个模块的耦合性也比较大。在商业落地应用时,特别是互联网环境,网络环境恶劣情况下,容易出现区块不同步的问题,后面1.0版本进行了拆分,节点拆分成peer+orderer节点,peer主要负责验证,记账功能,orderer节点负责共识功能,共识算法改成zk+kafka,提高了交易性能。

fabric1.0

  • 节点拆分:peer+orderer
    系统更加模块化,扩展性,性能均有提高,提高了商业落地的可能性。

  • 共识:zookeeper+kafka

fabric1.0采用了松耦合模块化的方式,解耦了peer,orderer节点,共识算法也改成了zookeeper+kafka。共识这一块就只支持容错误节点,不支持容作恶节点,其最大容错节点为:(n-1)/2.在引入zk+kafka后系统复杂度上会增加,另外网络连接规模也增大,在一些场景中也比较容易出现区块不同步问题,后来发现基本上是因为网络问题,以及orderer与kafka之前共识问题。在商业落地中需要解决这些问题。

fabric 1.2

  • private data

支持同一channel内只对指定的collection中的subset可见。
具体地,chaincode进行模拟执行,模拟执行的结果分为公开部分和私密部分,peer对其中的公开部分进行签名并返回给客户端,其中公开部分指公开的读写集以及私密数据读写集hash。 对于模拟执行过程中的私密数据部分,模拟执行完毕后得到的私密数据,gossip模块一方面对这些数据按照之前制定的共享规则进行分发。另一方面将这些数据提交到transient store中。接收到该私密数据的节点同样将该私密数据提交到transient store中。
客户端将返回结果发送给orderer做共识。可以发现在交易过程中只对模拟执行的公开部分进行处理的话。模拟执行的私密数据部分是不会放在链上的,上链的是私密数据的hash值,作为记录和监管。

fabric1.4

  • raft共识

    1.4主要的改变就是加入了raft共识,这个共识是从etcd上引入进来的,这样的好处是降低了系统的复杂度,维护更加方便,共识效率上也会更高。到目前为止fabric支持Solo, Kafka, Raft共识,这个可以通过配置文件来进行配置。

  • Fabric operations service
    peer、orderer开放一些接口。来实现节点的健康检查、日志等级的改变、go routine stack获取、grpc info输出等。

  • private data 共享给新加入collection的peer

  • private data client access control

  • peer 区块回滚
    提供peer回滚区块功能,在数据冲突时需要回滚到之前的区块。私有数据会保持不变,因为私有数据不能从Orderer上或者其他peer上拉取。

  • specify orderer endpoint at orgnization level

  • bug fix
    bug的修复。这个版本也将社区长期支持的发布版本。

fabric2.0

  • chaincode lifecycle

    多个组织指定policy,而不是由一个组织就可决定。
    升级policy也要满足指定的组织数,而不是由一个组织就可决定。
    更简单的升级,不必重新安装chaincode
    更简便的操作

  • fabric token
    支持在channel上代表资产的token.采用 Unspent Transaction Output (UTXO) 模型来进行相关操作。这个模型也是比特币所采用的模型。

后语

从fabric的发展看,基本上是从可用性到后面的全场景的覆盖这样的一个过程,用起来也是越来越方便,场景覆盖也是越来越全面。

你可能感兴趣的:(区块链,fabric)