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.一种合约冲突检测方法,包括:接收交易请求,所述交易请求包括至少一个待处理交易;根据交易请求获取各个所述待处理交易对应的智能合约方法;创建目标块对应的块缓存,创建与各个所述待处理交易对应的初始交易缓存;在各个所述待处理交易对应的初始交易缓存中并行执行对应的智能合约方法,得到各个所述待处理交易对应的更新交易缓存;获取各个所述待处理交易的交易顺序,根据所述交易顺序依次将各个所述待处理交易对应的更新交易缓存合并至所述块缓存;当当前待处理交易对应的待合并更新交易缓存与所述块缓存中历史已合并交易缓存数据存在交集时,得到合约冲突结果。
【技术特征摘要】
1.一种合约冲突检测方法,包括:接收交易请求,所述交易请求包括至少一个待处理交易;根据交易请求获取各个所述待处理交易对应的智能合约方法;创建目标块对应的块缓存,创建与各个所述待处理交易对应的初始交易缓存;在各个所述待处理交易对应的初始交易缓存中并行执行对应的智能合约方法,得到各个所述待处理交易对应的更新交易缓存;获取各个所述待处理交易的交易顺序,根据所述交易顺序依次将各个所述待处理交易对应的更新交易缓存合并至所述块缓存;当当前待处理交易对应的待合并更新交易缓存与所述块缓存中历史已合并交易缓存数据存在交集时,得到合约冲突结果。2.根据权利要求1所述的方法,其特征在于,所述创建目标块对应的块缓存,创建与各个所述待处理交易对应的初始交易缓存,包括:获取目标块,基于合约缓存为所述目标块创建对应的块读缓存和块写缓存;基于所述块读缓存和所述块写缓存为各个所述待处理交易创建对应的初始交易读缓存和初始交易写缓存。3.根据权利要求2所述的方法,其特征在于,所述在各个所述待处理交易对应的初始交易缓存中并行执行对应的智能合约方法,得到各个所述待处理交易对应的更新交易缓存,包括:在各个所述待处理交易对应的初始交易读缓存中执行对应的智能合约方法,得到各个所述待处理交易对应的更新交易读缓存;在各个所述待处理交易对应的初始交易写缓存中执行对应的智能合约方法,得到各个所述待处理交易对应的更新交易写缓存。4.根据权利要求3所述的方法,其特征在于,所述获取各个所述待处理交易的交易顺序,根据所述交易顺序依次将各个所述待处理交易对应的更新交易缓存合并至所述块缓存,包括:获取各个所述待处理交易对应的交易顺序;根据所述交易顺序依次将各个所述待处理交易对应的更新交易写缓存合并至所述块写缓存中。5.根据权利要求1所述的方法,其特征在于,所述当前交易结果为当前更新交易写缓存或当前更新交易读缓存,所述初始交易缓存包括初始交易读缓存和初始交易写缓存,所述当前更新交易写缓存是当前待处理交易在当前初始交易写缓存中执行对应的智能合约方法得到的,所述当前更新交易读缓存是所述当前待处理交易在当前初始交易读缓存中执行对应的智能合约方法得到的,所述块缓存包括块读缓存和块写缓存;所述当当前待处理交易对应的待合并更新交易缓存与所述块缓存中历史已合并交易缓存数据存在交集时,得到合约冲突结果,包括:当所述待合并更新交易缓存为当前更新交易写缓存时,获取所述块写缓存中的历史已合并交易缓存数据,所述历史已合并交易缓存数据是已处理交易对应的更新交易写缓存,待处理交易对应的更新交易缓存合并至所述块缓存后更新为已处理交易;当所述当前更新交易写缓存与至少一个所述历史已合并交易缓存数据存在交集时,则确定所述当前待处理交易对应的智能合约方法与所述已处理交易对应的智能合约方法存在冲突。6.根据权利要求5所述的方法,其特征在于,所述当所述当前更新交易写缓存与至少一个所述历史已合并交易缓存数据存在交集时,包括:获取所述当前更新交易写缓存对应的当前交易写键值对,所述当前交易写键值对包括当前键和对应的当前值;获取所述历史已合并交易缓存数据对应的历史交易写键值对,所述历史交易写键值对包括历史键和对应的历史值;当各个所述历史键中存在至少一个与所述当前键相同的目标历史键时,则确定所述当前更新交易写缓存与至少一个所述历史已合并交易缓存数据存在交集。7.根据权利要求5所述的方法,其特征在于,所述方法还包括:获取所述当前待处理交易对...
【专利技术属性】
技术研发人员:李茂材,王宗友,刘区城,蓝虎,杨常青,时一防,孔利,周开班,朱耿良,陈秋平,刘攀,张劲松,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。