System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于Fabric联盟链的交易并发冲突优化方法技术_技高网

一种基于Fabric联盟链的交易并发冲突优化方法技术

技术编号:44325479 阅读:5 留言:0更新日期:2025-02-18 20:34
本发明专利技术涉及区块链数据处理技术领域,尤其涉及一种基于Fabric联盟链的交易并发冲突优化方法,包括客户端执行提案发起操作并生成交易发送至排序节点;排序节点接收不同客户端发送的交易,根据预处理操作将所接收的全部交易划分到4类集合中;将重排序交易集合中每一交易作为一个节点,通过读写依赖关系构建交易冲突依赖图;根据交易冲突依赖图对重排序交易集合中所有交易进行重排序;对待合并交易集合中的所有交易进行分组修改;根据只读交易集合、重排序结果和分组修改结果生成交易调度序列,将交易调度序列打包形成区块;本发明专利技术保证数据一致性,并通过缓存、重排序、合并的方法,减少区块内交易失败率,提升系统整体性能和资源利用率。

【技术实现步骤摘要】

本专利技术涉及区块链数据处理,尤其涉及一种基于fabric联盟链的交易并发冲突优化方法。


技术介绍

1、hyperledger fabric(以下简称fabric)是linux foundation管理的企业级开源联盟区块链平台。它提供一些模块化设计和可插拔组件,以满足广泛的行业需求。与现有的其他联盟区块链(例如fisco bcos)不同,fabric联盟区块链采execute-order-validate交易处理模式,由于在fabric联盟区块链中,每笔交易只需要在满足交易背书策略所需的背书节点的子集执行即可。这允许交易一定程度并行执行,从而提高了系统的整体性能和规模。

2、但fabric联盟区块链采用多版本并发控制(mvcc)机制,当联盟区块链应用到实时股票交易系统、电子商务系统、实时信息发布系统等高频次交易场景中时,多个用户可能并发的提交多个对同一数据集进行修改的交易请求。这些交易请求被发送到区块链网络中进行共识,然后存储到账本时,导致一个区块内存在冲突的交易。由于冲突的交易会几乎走完整个交易流程,直到交易验证阶段才被标记为无效,进而导致联盟区块链的性能下降和资源浪费。同时,冲突交易越多越不利于交易的并行验证写入。具体来说,交易处理要依次经过模拟阶段、排序节点、验证提交阶段。其中交易的读写集在模拟阶段生成,在验证提交阶段验证,时间跨度较大,这使得当多个交易并发地修改同一个数据时可能发生并发冲突问题,从而导致大量交易失败。并发冲突主要包括两种情况:第一种情况是在上一区块提交之前,当前交易背书生成读写集,由于上一区块的提交,导致当前交易在到达验证提交阶段时,读写集已过时,发生区块间的冲突,被标为无效;第二种情况是在同一区块中,冲突的交易在模拟阶段背书生成相同版本号的读写集,但是由于第一个交易的提交会更新版本,使得后续交易的版本过时,发生区块内的冲突,在验证提交阶段被标记为无效。无效交易占用了的系统的计算资源和网络资源,同时降低了系统性能和用户体验。

3、现有的解决fabric并发冲突问题的方法主要分为两类,一类是在交易处理流程中通过缓存机制提前检测冲突,另一类是通过重排序交易减少冲突交易数量。基于缓存机制的方法通常在执行阶段或排序阶段将键值对存储在缓存中,后续交易通过查询对比缓存的信息来检测是否有潜在的冲突要发生并提前中止。但是基于缓存机制的方法并不能减少或消除冲突交易,存在着因冲突交易不断积压而引起的平均时延非常大的问题。基于重排序机制的方法通过在排序阶段调整待处理区块中的交易顺序,使其在验证阶段能够避免部分交易发生版本冲突,提高有效交易数量。但是,仍存在一些从语义的角度可以转化为合法的冲突交易在重排序机制中被提前中止,使得区块中依然有大量交易被标记为无效。


技术实现思路

1、为解决上述问题,降低冲突场景下fabric无效交易数量,提高系统吞吐量,本专利技术提供了一种基于fabric联盟链的交易并发冲突优化方法,包括以下步骤:

2、s1.客户端执行提案发起操作并生成交易发送至排序节点;

3、s2.排序节点接收不同客户端发送的交易,根据预处理操作将所接收的全部交易划分到4类集合中;4类集合包括只读交易集合、提前终止集合、待合并交易集合和重排序交易集合;

4、s3.将重排序交易集合中每一交易作为一个节点,通过读写依赖关系构建交易冲突依赖图;

5、s4.根据交易冲突依赖图对重排序交易集合中所有交易进行重排序;

6、s5.对待合并交易集合中的所有交易进行分组修改;

7、s6.根据只读交易集合、重排序结果和分组修改结果生成交易调度序列,将交易调度序列打包形成区块。

8、本专利技术的有益效果:

9、本专利技术结合fabric采用的执行-排序-验证(eov)的交易处理架构的特点,针对交易并发冲突问题提出了一种优化方法。本专利技术分析冲突产生的原因,并将冲突交易按照冲突类型进行分类处理。通过缓存读写集键值对及版本,过滤旧的交易,解决区块之间不同交易产生的冲突。然后,针对具有读写依赖关系的交易,采用重排序的策略重新生成一个可串行化的调度序列,来降低冲突交易数量。最后,基于重排序结果,进一步合并只读写单个键值的自增、自减交易,来最大化有效交易数量。在排序阶段,对于无法避免冲突的交易,提前进行中止并通知客户端,降低无效交易对网络资源和计算资源的消耗。本专利技术在保证数据一致性的基础上,通过缓存、重排序、合并的方法,减少区块内交易失败率,提升系统整体性能和资源利用率。

本文档来自技高网...

【技术保护点】

1.一种基于Fabric联盟链的交易并发冲突优化方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种基于Fabric联盟链的交易并发冲突优化方法,其特征在于,步骤S1中客户端执行提案发起操作并生成交易包括:

3.根据权利要求1所述的一种基于Fabric联盟链的交易并发冲突优化方法,其特征在于,步骤S2中,排序节点按照交易接收顺序依次解析每一个交易的读写集;针对每一个交易,基于其读写集执行预处理操作,包括:

4.根据权利要求3所述的一种基于Fabric联盟链的交易并发冲突优化方法,其特征在于,判断交易的读集版本号是否过时的具体操作为:

5.根据权利要求1所述的一种基于Fabric联盟链的交易并发冲突优化方法,其特征在于,步骤S3构建交易冲突依赖图包括:

6.根据权利要求1所述的一种基于Fabric联盟链的交易并发冲突优化方法,其特征在于,步骤S4根据交易冲突依赖图对重排序交易集合中所有交易进行重排序,包括:

7.根据权利要求1所述的一种基于Fabric联盟链的交易并发冲突优化方法,其特征在于,步骤S5对待合并交易集合中的所有交易进行分组修改,包括:

8.根据权利要求1所述的一种基于Fabric联盟链的交易并发冲突优化方法,其特征在于,步骤S6根据只读交易集合、重排序结果和分组修改结果生成交易调度序列,包括:

...

【技术特征摘要】

1.一种基于fabric联盟链的交易并发冲突优化方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种基于fabric联盟链的交易并发冲突优化方法,其特征在于,步骤s1中客户端执行提案发起操作并生成交易包括:

3.根据权利要求1所述的一种基于fabric联盟链的交易并发冲突优化方法,其特征在于,步骤s2中,排序节点按照交易接收顺序依次解析每一个交易的读写集;针对每一个交易,基于其读写集执行预处理操作,包括:

4.根据权利要求3所述的一种基于fabric联盟链的交易并发冲突优化方法,其特征在于,判断交易的读集版本号是否过时的具体操作为:

5.根据权...

【专利技术属性】
技术研发人员:钟福金张青松陈海洋闫娟
申请(专利权)人:重庆邮电大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1