智能合约数据处理方法和系统与流程

文档序号:34539542发布日期:2023-06-27 15:08阅读:81来源:国知局
智能合约数据处理方法和系统与流程

本技术实施例涉及区块链,尤其涉及一种智能合约数据处理方法、系统、计算机设备及计算机可读存储介质。


背景技术:

1、随着大量应用基于智能合约实现之后,越来越发现区块链的性能瓶颈不足以支撑大规模的去中心化应用。其中,以太坊的智能合约执行环境是以太坊虚拟机(ethereumvirtual machine,evm),智能合约语言是solidity。由于evm的先发优势,有大量的开发工具和应用生态,越来越成为智能合约执行的事实标准。现有技术中,越来越多的区块链都会集成evm,以兼容以太坊技术生态和应用生态,然而,由于evm的执行效率较低,存在性能瓶颈,以太坊网络tps较低很大一方面就是受制于evm低效的执行效率。

2、目前,对于兼容evm的区块链网络的来说,为了解决此类虚拟机的执行效率问题,主要有重写evm方案和链下扩容方案。但是,重新实现evm的工程量巨大,而且由于交易在链上执行,性能提升有限。而链下扩容方案由于将交易从链上移到链下,会降低交易的安全性,而且需要依赖额外的组件,造成提高了整个系统的复杂度。


技术实现思路

1、本技术实施例的目的是提供一种智能合约数据处理方法、系统、计算机设备及计算机可读存储介质,用于解决以下问题:如何提高兼容evm的区块链网络的智能合约交易效率。

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、合并所述初始状态依赖集合和新增状态依赖集合得到第三状态依赖集合;

29、根据所述第三状态依赖集合,合并存在相同的状态依赖的交易得到多个交易队列。

30、可选地,所述方法还包括:

31、对输出的所述目标交易结果或预处理结果进行持久化存储。

32、可选地,在所述获取区块内的多个待执行交易的步骤之前,还包括:

33、从预设交易池中获取多个待执行交易,并打包所述多个待执行交易生成交易区块。

34、本技术实施例的一个方面又提供了一种智能合约数据处理系统,包括:

35、交易获取模块,用于获取区块内的多个待执行交易;其中,所述待执行交易包含第一字段内容和第二字段内容,且所述待执行交易支持跨合约交易;

36、初始状态依赖确定模块,用于根据所述第一字段内容和第二字段内容确定确定每一个所述待执行交易对应的初始状态依赖;

37、预处理模块,用于根据所述初始状态依赖对所述多个待执行交易进行预处理得到预处理结果,确定每一个所述待执行交易的跨合约交易对应的新增状态依赖,并生成新增状态依赖集合;

38、交易处理模块,用于根据所述新增状态依赖集合重新执行所述待执行交易得到目标交易结果。

39、本技术实施例的一个方面又提供了一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述的智能合约数据处理方法的步骤。

40、本技术实施例的一个方面又提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行所述计算机程序时实现如上述的智能合约数据处理方法的步骤。

41、本技术实施例提供的智能合约数据处理方法、系统、设备及计算机可读存储介质,通过对待执行交易进行预处理,根据发生跨合约交易对应的新增状态依赖,确定新增状态依赖集合,并对根据新增状态依赖集合需要再次执行的交易重新执行的方式,提高交易执行的效率,从而既不需要重新实现evm,也不会引入其他的执行环境或者依赖,不增加区块链系统的复杂度,在对原有evm实现的侵入性修改最小的程度下,实现evm处理交易性能的提升,同时,不需要在应用层做适配,易于实现。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1