System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及区块链,特别涉及一种交易方法及其装置、计算机设备和存储介质。
技术介绍
1、在区块链的合约执行过程中,常采用并行执行交易的策略来提升整体链的交易执行性能。但对于并行执行交易,由于块内各交易的执行先后次序不确定,导致了可能存在多笔交易中同时对一个值进行修改的冲突,进而导致该区块在不同节点的执行周期不一样最终区块同步失败。
技术实现思路
1、有鉴于此,本申请旨在至少在一定程度上解决相关技术中的问题之一。为此,本申请的目的在于提供一种交易方法及其装置、计算机设备和存储介质。
2、本申请提供一种交易方法,应用于区块链内的交易。所述交易方法包括:
3、获取从交易池中切出的交易集和所述交易集的每个交易对应的键值规则;
4、根据每个所述交易对应的键值规则从所述交易集中找出每个所述交易的键值;
5、根据所述交易的键值对所述交易集的交易进行分组,并对每组的所述交易按预定排序进行排序,以生成多组组读写集;
6、对多组所述组读写集的交易并行执行,以及对每组所述组读写集内的交易按照排序顺序串行执行。
7、在某些实施方式中,在所述获取从交易池中切出的交易集和所述交易集的每个交易对应的键值规则之前,所述交易方法包括:
8、将合约文件和与所述合约文件对应的键值规则作为所述交易发送到所述区块链;
9、将所述合约文件和与所述合约文件对应的键值规则保存。
10、在某些实施方式中,所述将所述合约文件和与
11、若所述交易指定有键值规则,将所述合约文件和指定的键值规则保存;
12、若所述交易未指定键值规则,将所述合约文件和默认的键值规则保存。
13、在某些实施方式中,所述对每组的所述交易按预定排序进行排序包括:
14、按照所述交易的交易时间对每组的所述交易进行排序。
15、在某些实施方式中,所述对每组所述组读写集内的交易按照排序顺序串行执行包括:
16、对所述组读写集内的所述交易按照顺序执行;
17、在执行每一笔所述交易时,复用前一笔所述交易执行后的所述组读写集,并将所述交易的执行结果更新进所述组读写集。
18、在某些实施方式中,在所述对多组所述组读写集的交易并行执行,以及对每组所述组读写集内的交易按照排序顺序串行执行之后,所述交易方法包括:
19、在所有所述组读写集的所述交易执行完成后,将各所述组读写集合并生成区块执行读写集;
20、通过默克尔根算法计算所述区块执行读写集,以得到所述区块执行读写集的默克尔根;
21、将所述区块执行读写集的默克尔根和交易列表合并进所述区块链的区块保存。
22、在某些实施方式中,所述交易方法包括:
23、将所述区块的交易数据和所述区块执行读写集的默克尔根广播告知所述区块链的其他区块链节点,以使所述区块链的其他区块链节点根据所述交易数据和所述区块执行读写集的默克尔根重新执行一遍,以确定所述区块的交易数据是否被篡改并更新所述区块链的区块的状态。
24、本申请还提供一种交易装置。所述交易装置包括获取模块、寻找模块、生成模块和执行模块。所述获取模块用于获取从交易池中切出的交易集和所述交易集的每个交易对应的键值规则;所述寻找模块用于根据每个所述交易对应的键值规则从所述交易集中找出每个所述交易的键值;所述生成模块用于根据所述交易的键值对所述交易集的交易进行分组,并对每组的所述交易按预定排序进行排序,以生成多组组读写集;所述执行模块用于对多组所述组读写集的交易并行执行,以及对每组所述组读写集内的交易按照排序顺序串行执行。
25、本申请还提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器用于存储计算机程序,所述处理器用于执行所述存储器中存储的计算机程序,以实现上述实施方式任一项所述的交易方法。
26、本申请还提供一种包含有计算机程序的非易失性计算机可读存储介质。当所述计算机程序被一个或多个处理器执行时,实现上述实施方式任一项所述的交易方法。
27、本申请实施方式的交易方法及其装置、计算机设备和存储介质将交易集中的交易按照键值规则从交易集的执行结果中找出每个交易的键值,根据交易的键值将交易集的交易进行分组,并对每组的交易按预定排序进行排序生成组读写集,在执行交易时,对于多组组读写集的交易采用并行执行,而对于每组组读写集内的交易按照排序顺序串行执行,使得区块在并行执行多笔交易时不会同时对一个值进行修改产生冲突,进而可以保证该区块在不同节点的执行周期一样最终区块成功同步。
28、本申请的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
本文档来自技高网...【技术保护点】
1.一种交易方法,应用于区块链内的交易,其特征在于,所述交易方法包括:
2.根据权利要求1所述的交易方法,其特征在于,在所述获取从交易池中切出的交易集和所述交易集的每个交易对应的键值规则之前,所述交易方法包括:
3.根据权利要求2所述的交易方法,其特征在于,所述将所述合约文件和与所述合约文件对应的键值规则保存包括:
4.根据权利要求1所述的交易方法,其特征在于,所述对每组的所述交易按预定排序进行排序,包括:
5.根据权利要求1所述的交易方法,其特征在于,所述对每组所述组读写集内的交易按照排序顺序串行执行包括:
6.根据权利要求1所述的交易方法,其特征在于,在所述对多组所述组读写集的交易并行执行,以及对每组所述组读写集内的交易按照排序顺序串行执行之后,所述交易方法包括:
7.根据权利要求6所述的交易方法,其特征在于,所述交易方法包括:
8.一种交易装置,其特征在于,所述交易装置包括:
9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器用于存储计算机程序,所述处理器用于执行所述
10.一种包含有计算机程序的非易失性计算机可读存储介质,其特征在于,当所述计算机程序被一个或多个处理器执行时,实现权利要求1-7任一项所述的交易方法。
...【技术特征摘要】
1.一种交易方法,应用于区块链内的交易,其特征在于,所述交易方法包括:
2.根据权利要求1所述的交易方法,其特征在于,在所述获取从交易池中切出的交易集和所述交易集的每个交易对应的键值规则之前,所述交易方法包括:
3.根据权利要求2所述的交易方法,其特征在于,所述将所述合约文件和与所述合约文件对应的键值规则保存包括:
4.根据权利要求1所述的交易方法,其特征在于,所述对每组的所述交易按预定排序进行排序,包括:
5.根据权利要求1所述的交易方法,其特征在于,所述对每组所述组读写集内的交易按照排序顺序串行执行包括:
6.根据权利要求1所述的交易方法,其特...
【专利技术属性】
技术研发人员:高志强,林炜富,
申请(专利权)人:深圳市美的支付科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。