合约冲突检测方法、装置、可读存储介质和计算机设备制造方法及图纸

技术编号:22532843 阅读:32 留言:0更新日期:2019-11-13 09:54
本申请涉及一种合约冲突检测方法、装置、计算机可读存储介质和计算机设备,该方法包括:接收交易请求,交易请求包括至少一个待处理交易,根据交易请求获取各个待处理交易对应的智能合约方法,创建目标块对应的块缓存,创建与各个待处理交易对应的初始交易缓存,在各个待处理交易对应的初始交易缓存中并行执行对应的智能合约方法,得到各个待处理交易对应的更新交易缓存,获取各个待处理交易的交易顺序,根据交易顺序依次将各个待处理交易对应的更新交易缓存合并至块缓存,当当前待处理交易对应的待合并更新交易缓存与块缓存中历史已合并交易缓存数据存在交集时,得到合约冲突结果。本申请提供的方案能够提高合约冲突检测的多样性。

Contract conflict detection method, device, readable storage medium and computer equipment

The application relates to a contract conflict detection method, device, computer-readable storage medium and computer device, the method comprises: receiving a transaction request, the transaction request includes at least one pending transaction, obtaining an intelligent contract method corresponding to each pending transaction according to the transaction request, creating a block cache corresponding to the target block, and creating an initial corresponding to each pending transaction Transaction cache: execute the corresponding intelligent contract method in the initial transaction cache corresponding to each pending transaction in parallel, get the update transaction cache corresponding to each pending transaction, obtain the transaction sequence of each pending transaction, merge the update transaction cache corresponding to each pending transaction into the block cache according to the transaction sequence, and then the corresponding pending transaction cache corresponding to the current pending transaction When there is an intersection between the transaction cache and the historical merged transaction cache data in the block cache, the contract conflict result is obtained. The scheme provided in this application can improve the diversity of contract conflict detection.

【技术实现步骤摘要】
合约冲突检测方法、装置、可读存储介质和计算机设备
本申请涉及计算机
,特别是涉及一种合约冲突检测方法、装置、计算机可读存储介质和计算机设备。
技术介绍
随着计算机技术的发展,智能合约与区块链密切相关,智能合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。然而,目前区块链中的智能合约冲突检测都必须在智能合约执行之前检测是否存在冲突,而无法在智能合约并行执行时检测各个待处理交易对应的智能合约是否存在冲突,检测方式较为单一。
技术实现思路
基于此,有必要针对上述技术问题,提供一种能够提高合约冲突检测多样性的合约冲突检测方法、装置、计算机可读存储介质和计算机设备。一种合约冲突检测方法,该方法包括:接收交易请求,交易请求包括至少一个待处理交易;根据交易请求获取各个待处理交易对应的智能合约方法;创建目标块对应的块缓存,创建与各个待处理交易对应的初始交易缓存;在各个待处理交易对应的初始交易缓存中并行执行对应的智能合约方法,得到各个待处理交易对应的更新交易缓存;获取各个待处理交易的交易顺序,根据交易顺序依次将各个待处理交易对应的更新交易缓存合并至块缓存;当当前待处理交易对应的待合并更新交易缓存与块缓存中历史已合并交易缓存数据存在交集时,得到合约冲突结果。一种合约冲突检测装置,该装置包括:交易请求接收模块,用于接收交易请求,交易请求包括至少一个待处理交易;智能合约方法获取模块,用于根据交易请求获取各个待处理交易对应的智能合约方法;缓存区域创建模块,用于创建目标块对应的块缓存,创建与各个待处理交易对应的初始交易缓存;智能合约方法执行模块,用于在各个待处理交易对应的初始交易缓存中并行执行对应的智能合约方法,得到各个待处理交易对应的更新交易缓存;交易结果合并模块,用于获取各个待处理交易的交易顺序,根据交易顺序依次将各个待处理交易对应的更新交易缓存合并至块缓存;合约冲突结果生成模块,用于当当前待处理交易对应的待合并更新交易缓存与块缓存中历史已合并交易缓存数据存在交集时,得到合约冲突结果。一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行程序时实现以下步骤:接收交易请求,交易请求包括至少一个待处理交易;根据交易请求获取各个待处理交易对应的智能合约方法;创建目标块对应的块缓存,创建与各个待处理交易对应的初始交易缓存;在各个待处理交易对应的初始交易缓存中并行执行对应的智能合约方法,得到各个待处理交易对应的更新交易缓存;获取各个待处理交易的交易顺序,根据交易顺序依次将各个待处理交易对应的更新交易缓存合并至块缓存;当当前待处理交易对应的待合并更新交易缓存与块缓存中历史已合并交易缓存数据存在交集时,得到合约冲突结果。一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:接收交易请求,交易请求包括至少一个待处理交易;根据交易请求获取各个待处理交易对应的智能合约方法;创建目标块对应的块缓存,创建与各个待处理交易对应的初始交易缓存;在各个待处理交易对应的初始交易缓存中并行执行对应的智能合约方法,得到各个待处理交易对应的更新交易缓存;获取各个待处理交易的交易顺序,根据交易顺序依次将各个待处理交易对应的更新交易缓存合并至块缓存;当当前待处理交易对应的待合并更新交易缓存与块缓存中历史已合并交易缓存数据存在交集时,得到合约冲突结果。上述合约冲突检测方法、装置、计算机可读存储介质和计算机设备,将至少一个待处理交易通过交易请求获取对应的智能合约方法,通过创建目标块对应的块缓存,再创建与各个待处理交易对应的初始交易缓存,在各个待处理交易对应的初始交易缓存中并行执行对应的智能合约方法,得到各个待处理交易对应的更新交易缓存,获取各个待处理交易的交易顺序,根据交易顺序依次将各个待处理交易对应的更新交易缓存合并至块缓存,当当前待处理交易对应的待合并更新交易缓存与块缓存中历史已合并交易缓存数据存在交集时,得到合约冲突结果。因此,在各个待处理交易对应的智能合约方法并行时,通过当前待处理交易对应的待合并更新交易缓存与块缓存中历史已合并交易缓存数据是否存在交集来检测当前待处理交易对应的智能合约方法与历史待处理交易对应的智能合约方法是否存在冲突。无需在智能合约方法执行之前就检测是否存在冲突,在各个待处理交易对应的智能合约方法并行执行的过程中检测是否存在冲突,提高了合约冲突检测的多样性。进一步地,实时检测是否存在合约冲突,合约冲突检测便利,其中,若出现问题不仅可以及时修复,而且容易维护,提高了合约冲突检测的全面性和准确率。附图说明图1为一个实施例中合约冲突检测方法的应用环境图;图2为一个实施例中合约冲突检测方法的流程示意图;图3为一个实施例中块缓存和初始交易缓存的示意图;图4为一个实施例中智能合约方法执行步骤的流程示意图;图5为一个实施例中更新交易缓存合并至块缓存的合并步骤的流程示意图;图5A为一个实施例中更新交易缓存中的交易结果合并至块缓存的示意图;图6为一个实施例中合约冲突结果生成步骤的流程示意图;图6A为一个实施例中智能合约方法冲突检测的示意图;图7为一个实施例中当前更新写缓存与历史已合并交易缓存数据是否存在交集的判断步骤的流程示意图;图8为另一个实施例中智能合约方法冲突检测的示意图;图9为一个实施例中当前更新读缓存与历史已合并交易缓存数据是否存在交集的判断步骤的流程示意图;图9A为一个实施例中当前更新读缓存与历史已合并交易缓存数据是否存在交集的判断步骤的原理示意图;图10为另一个实施例中合约冲突检测方法的流程示意图;图11为一个实施例中合约冲突检测装置的结构框图;图12为一个实施例中智能合约方法执行模块的结构框图;图13为一个实施例中交易结果合并模块的结构框图;图14为一个实施例中计算机设备的结构框图。具体实施方式为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。图1为一个实施例中合约冲突检测方法的应用环境图。参照图1,该合约冲突检测方法应用于合约冲突检测系统。该合约冲突检测系统包括终端110和服务器120。终端110和服务器120通过网络连接。终端110具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。服务器120可以用独立的服务器或者是至少一个服务器组成的服务器集群来实现。其中,服务器120为一个节点,节点中保存有一条完整的区块链,区块链包括至少一个区块。具体地,终端110将至少一个待处理交易通过交易请求发送至服务器120。服务器120接收到交易请求,根据交易请求获取各个待处理交易对应的智能合约方法,创建目标块对应的块缓存,创建与各个待处理交易对应的初始交易缓存,在各个待处理交易对应的初始交易缓存中并行执行对应的智能合约方法,得到各个待处理交易对应的更新交易缓存,获取各个待处理交易的交易顺序,根据交易顺序依次将各个待处理交易对应的更新交易缓存合并至块缓存,当当前待处理交易对应的待合并更新交易缓存与块缓存中历史已合并交易缓存数据存在本文档来自技高网...

【技术保护点】
1.一种合约冲突检测方法,包括:接收交易请求,所述交易请求包括至少一个待处理交易;根据交易请求获取各个所述待处理交易对应的智能合约方法;创建目标块对应的块缓存,创建与各个所述待处理交易对应的初始交易缓存;在各个所述待处理交易对应的初始交易缓存中并行执行对应的智能合约方法,得到各个所述待处理交易对应的更新交易缓存;获取各个所述待处理交易的交易顺序,根据所述交易顺序依次将各个所述待处理交易对应的更新交易缓存合并至所述块缓存;当当前待处理交易对应的待合并更新交易缓存与所述块缓存中历史已合并交易缓存数据存在交集时,得到合约冲突结果。

【技术特征摘要】
1.一种合约冲突检测方法,包括:接收交易请求,所述交易请求包括至少一个待处理交易;根据交易请求获取各个所述待处理交易对应的智能合约方法;创建目标块对应的块缓存,创建与各个所述待处理交易对应的初始交易缓存;在各个所述待处理交易对应的初始交易缓存中并行执行对应的智能合约方法,得到各个所述待处理交易对应的更新交易缓存;获取各个所述待处理交易的交易顺序,根据所述交易顺序依次将各个所述待处理交易对应的更新交易缓存合并至所述块缓存;当当前待处理交易对应的待合并更新交易缓存与所述块缓存中历史已合并交易缓存数据存在交集时,得到合约冲突结果。2.根据权利要求1所述的方法,其特征在于,所述创建目标块对应的块缓存,创建与各个所述待处理交易对应的初始交易缓存,包括:获取目标块,基于合约缓存为所述目标块创建对应的块读缓存和块写缓存;基于所述块读缓存和所述块写缓存为各个所述待处理交易创建对应的初始交易读缓存和初始交易写缓存。3.根据权利要求2所述的方法,其特征在于,所述在各个所述待处理交易对应的初始交易缓存中并行执行对应的智能合约方法,得到各个所述待处理交易对应的更新交易缓存,包括:在各个所述待处理交易对应的初始交易读缓存中执行对应的智能合约方法,得到各个所述待处理交易对应的更新交易读缓存;在各个所述待处理交易对应的初始交易写缓存中执行对应的智能合约方法,得到各个所述待处理交易对应的更新交易写缓存。4.根据权利要求3所述的方法,其特征在于,所述获取各个所述待处理交易的交易顺序,根据所述交易顺序依次将各个所述待处理交易对应的更新交易缓存合并至所述块缓存,包括:获取各个所述待处理交易对应的交易顺序;根据所述交易顺序依次将各个所述待处理交易对应的更新交易写缓存合并至所述块写缓存中。5.根据权利要求1所述的方法,其特征在于,所述当前交易结果为当前更新交易写缓存或当前更新交易读缓存,所述初始交易缓存包括初始交易读缓存和初始交易写缓存,所述当前更新交易写缓存是当前待处理交易在当前初始交易写缓存中执行对应的智能合约方法得到的,所述当前更新交易读缓存是所述当前待处理交易在当前初始交易读缓存中执行对应的智能合约方法得到的,所述块缓存包括块读缓存和块写缓存;所述当当前待处理交易对应的待合并更新交易缓存与所述块缓存中历史已合并交易缓存数据存在交集时,得到合约冲突结果,包括:当所述待合并更新交易缓存为当前更新交易写缓存时,获取所述块写缓存中的历史已合并交易缓存数据,所述历史已合并交易缓存数据是已处理交易对应的更新交易写缓存,待处理交易对应的更新交易缓存合并至所述块缓存后更新为已处理交易;当所述当前更新交易写缓存与至少一个所述历史已合并交易缓存数据存在交集时,则确定所述当前待处理交易对应的智能合约方法与所述已处理交易对应的智能合约方法存在冲突。6.根据权利要求5所述的方法,其特征在于,所述当所述当前更新交易写缓存与至少一个所述历史已合并交易缓存数据存在交集时,包括:获取所述当前更新交易写缓存对应的当前交易写键值对,所述当前交易写键值对包括当前键和对应的当前值;获取所述历史已合并交易缓存数据对应的历史交易写键值对,所述历史交易写键值对包括历史键和对应的历史值;当各个所述历史键中存在至少一个与所述当前键相同的目标历史键时,则确定所述当前更新交易写缓存与至少一个所述历史已合并交易缓存数据存在交集。7.根据权利要求5所述的方法,其特征在于,所述方法还包括:获取所述当前待处理交易对...

【专利技术属性】
技术研发人员:李茂材王宗友刘区城蓝虎杨常青时一防孔利周开班朱耿良陈秋平刘攀张劲松
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

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

1