公链和联盟链是目前两类主流的区块链系统,公链所采用的序列化交易执行机制导致系统性能低下,为此联盟链引入交易并发执行机制以实现系统吞吐量的有效提升。当前主流联盟链平台Hyperledger Fabric在交易并发执行过程中存在隔离性,导致大量冲突交易只能在最后的验证阶段才被发现并丢弃,系统产生大量失效交易的同时,也造成了较为严重的计算资源浪费。因此,如何降低联盟链系统中的交易中止率(即减少失效交易率)成为当前面临的主要挑战。为此,Fabric++采用重排序机制将部分冲突交易转化为合法交易,一定程度上减少了失效交易,降低了交易中止率。然而,Fabric++因其较高的时间复杂度,在处理高交易量时面临明显的性能瓶颈。我们旨在解决Hyperledger Fabric面临的并发冲突问题,研究更高效的块间冲突检测和块内交易冲突缓解算法,从而全面释放联盟链系统的并发执行性能,减少因交易冲突而导致的大量失效交易。我们的主要研究内容如下:
(1)我们提出了一种基于缓存的块间冲突检测算法FabricInter,用于解决Hyperledger Fabric平台中出现的区块间冲突问题。该算法在排序阶段引入了一段缓存结构,用于存储最新将要提交以及最新已提交的区块交易信息,并实时更新。过时的交易能够被尽早发现并及时中止,从而避免了在验证节点上重复执行冲突交易,并减少了验证阶段计算资源的浪费。实验结果表明,FabricInter的交易中止率相较于Fabric最高降低了23%。
(2)我们提出了一种基于重排序的交易冲突缓解算法MoryFabric,用于解决Hyperledger Fabric平台中出现的交易冲突问题。该算法基于FabricInter,并针对区块内交易冲突的特点,首先通过交易实际有效性验证机制检测交易的实际有效性,及时发现实际无效交易并中止,同时确保实际有效性交易的顺利提交;此外,采用一种低时间复杂度的基于键的重排序机制解决区块内的读写冲突问题,及时发现冲突交易并解决冲突循环。实验结果表明,在较高冲突可能性的条件下,MoryFabric交易中止率相较于Fabric的交易中止率最高可降低50%,相较于Fabric++最高可降低32%。