Hyperledger Fabric是当前最热门的联盟链技术之一,在大量的领域得到了应用。Fabric的背书节点的验证阶段通常都是系统的性能瓶颈。由于背书节点的数量固定,提案请求往往得不到及时的处理,影响系统的吞吐量。本文提出了一种根据当前物理资源动态调整背书节点的机制。根据实验分析,优化后的Hyperledger fabric具有更快的交易处理速度,在背书成功率仅下降1%的前提下,数据上链的吞吐量提高了约19.6%,数据上链的平均时延下降了26.7%。
2008 年中本聪提出了比特币[1]的概念,在此基础之上发展出了区块链技术。区块链是在数学、密码学、计算机科学的发展成果之上发展起来的一个的领域。比特币是区块链技术的第一代应用。随着人们对区块链的深入研究,将区块链更广泛地运用在金融,交通,军事等领域。区块链很可能对当今互联网产生颠覆式的改变,实现信息互联网向价值互联网的转变[2]。区块链技术的一个核心问题是在无中心、弱信任的分布式系统中让各个节点达成共识[3],克服了中心化机构中权力高度集中,数据高度集中,安全成本高的缺点。
Hyperledger Fabric 是一个许可的区块链架构(permissioned blockchain infrastructure)。其由IBM 和Digital Asset 提交给Linux 基金会,是一个成熟的商业区块链平台[4]。Fabric 将节点区分为客户节点(Client)、对等节点(Peer)和排序节点(Orderer)。客户创建交易,提交给背书节点背书。Hyperledger Fabric采用“背书–排序–验证”这三步最后达到共识[5]。Hyperledger Fabric 将应用层的信任模型同底层的共识协议解耦,共识机制设计成“可插入式”的架构。背书提高了交易的成功率,验证保证交易内容的合法性, 排序保证交易顺序的最终一致性。通过将这两部分进行解耦[6],开发者可以更灵活的使用超级账本。
目前,Hyperledger Fabric 相关研究都集中在对于共识机制的改进,对于背书过程的研究较少。Wang C.等[7]在Fabric 平台上进行了一项性能研究和瓶颈分析。研究了交易生命周期各个阶段的表现,以及比较了不同的排序服务。实验结果表明背书节点的验证阶段是测试平台的性能瓶颈,因为验证节点的计算工作量比较大。本文为了突破Fabric 验证阶段的性能瓶颈,对背书策略的分发方案进行了改进。
2. Hyperledger Fabric 共识机制分析 Fabric 由各个节点以及各个组织架构共同完成整个上链、查询等功能。节点只是一个逻辑上起到通信功能的实体。
在一台物理服务器上可能运行着多个不同类型的节点。
节点主要包括客户端, Peer 节点, 排序节点这三种: 客户端(Client):客户与系统交互的入口,代表着客户实体。主要是创建交易并将交易提交给选中的背书节点,以及背书成功后将广播交易提交到排序节点。
Peer 节点:主要是提交交易、维持世界态以及将账本的复制到所有节点。Peer 中的一部分节点还可