确定有向无环图的方法、装置以及电子设备与流程

文档序号:35979108发布日期:2023-11-09 22:06阅读:24来源:国知局
确定有向无环图的方法、装置以及电子设备与流程

本技术实施例涉及区块链,并且更具体地,涉及确定有向无环图的方法、装置以及电子设备。


背景技术:

1、对于长安链的区块内交易,可以构建区块的有向无环图(directed acyclicgraph,dag),dag用于表达区块内部交易之间的依赖关系,从而使得共识节点中的验证节点能够根据提案节点发送的所打包区块的dag,按照和提案节点相同的顺序执行交易,从而能够达成共识。

2、截止目前,确定区块的dag时,通常需要先按照实际交易的执行顺序针对区块内的当前交易确定当前交易的读集位图和写集位图,然后通过遍历的方式确定用于表示与当前交易发生冲突的交易的读累计位图和写累计位图,最后基于当前交易的读集位图、写集位图、累计读位图和累计写位图,通过速度较慢的位图比较的方式遍历所有交易,以确定和当前交易直接冲突的交易。由此可见,这种确定dag方法在确定当前交易的累积读位图和累计写位图,以及在查找与当前交易直接冲突的交易时均需要遍历所有交易进行冲突检查,降低了确定dag的效率。

3、尤其是,在冲突率较低的情况下,由于需要遍历大部分交易才能找到冲突的交易,增加了不必要的工作量,降低了确定dag的效率。


技术实现思路

1、本技术实施例提供了一种确定有向无环图的方法、装置以及电子设备,能够提升确定dag的效率。

2、第一方面,本技术实施例提供了一种确定有向无环图的方法,包括:

3、获取交易集合中的交易的交易顺序;

4、基于该交易顺序,确定该交易集合的读集字典、该交易集合的写集字典、该交易集合的读集关键字位置字典以及该交易集合的写集关键字位置字典;

5、其中,该读集字典的关键字包括:该交易集合中的交易的读集关键字,该读集字典中每一个读集关键字的值包括:依赖该每一个读集关键字的交易的编号;

6、该写集字典的关键字包括:该交易集合中的交易的写集关键字,该写集字典中每一个写集关键字的值包括:依赖该每一个写集关键字的交易的编号;

7、该读集关键字位置字典的关键字包括:由该交易集合中的交易的编号和该交易集合中的交易的读集关键字形成的读集二维关键字;该读集关键字位置字典中的每一个读集二维关键字的值用于指示:该每一个读集二维关键字中的交易的编号,在该读集字典中读集关键字为该每一个读集二维关键字中的读集关键字的值所包括的交易的编号中的位置;

8、该写集关键字位置字典的关键字包括:由该交易集合中的交易的编号和该交易集合中的交易的写集关键字形成的写集二维关键字;该写集关键字位置字典中的每一个写集二维关键字的值用于指示:该每一个写集二维关键字中的交易的编号,在该写集字典中写集关键字为该每一个写集二维关键字中的写集关键字的值所包括的交易的编号中的位置;

9、基于该读集关键字位置字典以及该写集关键字位置字典,在该读集字典和该写集字典中确定与该交易集合中的当前交易发生直接冲突的交易的编号;

10、基于与该当前交易发生直接冲突的交易的编号,确定该交易集合的有向无环图。

11、第二方面,本技术实施例提供了一种确定有向无环图的装置,包括:

12、获取单元,用于获取交易集合中的交易的交易顺序;

13、确定单元,用于基于该交易顺序,确定该交易集合的读集字典、该交易集合的写集字典、该交易集合的读集关键字位置字典以及该交易集合的写集关键字位置字典;

14、其中,该读集字典的关键字包括:该交易集合中的交易的读集关键字,该读集字典中每一个读集关键字的值包括:依赖该每一个读集关键字的交易的编号;

15、该写集字典的关键字包括:该交易集合中的交易的写集关键字,该写集字典中每一个写集关键字的值包括:依赖该每一个写集关键字的交易的编号;

16、该读集关键字位置字典的关键字包括:由该交易集合中的交易的编号和该交易集合中的交易的读集关键字形成的读集二维关键字;该读集关键字位置字典中的每一个读集二维关键字的值用于指示:该每一个读集二维关键字中的交易的编号,在该读集字典中读集关键字为该每一个读集二维关键字中的读集关键字的值所包括的交易的编号中的位置;

17、该写集关键字位置字典的关键字包括:由该交易集合中的交易的编号和该交易集合中的交易的写集关键字形成的写集二维关键字;该写集关键字位置字典中的每一个写集二维关键字的值用于指示:该每一个写集二维关键字中的交易的编号,在该写集字典中写集关键字为该每一个写集二维关键字中的写集关键字的值所包括的交易的编号中的位置;

18、该确定单元还用于:基于该读集关键字位置字典以及该写集关键字位置字典,在该读集字典和该写集字典中确定与该交易集合中的当前交易发生直接冲突的交易的编号;

19、该确定单元还用于:基于与该当前交易发生直接冲突的交易的编号,确定该交易集合的有向无环图。

20、第三方面,本技术提供了一种电子设备,包括:

21、处理器,适于实现计算机指令;以及,

22、计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令适于由处理器加载并执行上述第一方面的方法。

23、第四方面,本技术实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机指令,该计算机指令被计算机设备的处理器读取并执行时,使得计算机设备执行上述第一方面的方法。

24、第五方面,本技术实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述第一方面的方法。

25、基于以上技术方案,本技术在确定与交易集合中的当前交易发生直接冲突的交易时,引入了交易集合的读集字典、交易集合的写集字典、交易集合的读集关键字位置字典以及交易集合的写集关键字位置字典,并通过对读集字典、写集字典、读集关键字位置字典以及写集关键字位置字典的设计,使得本技术可基于该读集关键字位置字典以及该写集关键字位置字典,在该读集字典和该写集字典中确定与该交易集合中的当前交易发生直接冲突的交易的编号,即直接从读集关键字和写集关键字的角度直接确定与当前交易存在直接冲突的交易,不仅不需要针对当前交易构建读集位图和写集位图,也避免了通过速度较慢的位图比较的方式以及遍历所有交易的方式确定与当前交易直接冲突的交易,能够提升确定dag的效率。

26、以该读集字典和该读集关键字位置字典为例,本技术将该读集字典的关键字设计为包括:该交易集合中的交易的读集关键字,并将该读集字典中每一个读集关键字的值设计为包括:依赖该每一个读集关键字的交易的编号;相当于,能够使得该读集字典中读集关键字为该当前交易的关键字的值包括:与当前交易发生直接冲突的交易;进一步的,本技术将该读集关键字位置字典的关键字设计为包括:由该交易集合中的交易的编号和该交易集合中的交易的读集关键字形成的读集二维关键字,并将该读集关键字位置字典中的每一个读集二维关键字的值设计为:用于指示该每一个读集二维关键字中的交易的编号,在该读集字典中读集关键字为该每一个读集二维关键字中的读集关键字的值所包括的交易的编号中的位置;也即是说,在当前交易的关键字确定的情况下,可以基于读集关键字位置字典中包括该当前交易的关键字的读集二维关键字的值所指示的位置,在读集字典中关键字为当前关键字的值所包括的交易的编号中,确定与当前交易发生直接冲突的交易,即避免了通过遍历所有交易的方式确定与当前交易发生直接冲突的交易,能够提升确定dag的效率。

27、以该写集字典和该写集关键字位置字典为例,本技术将该写集字典的关键字设计为包括:该交易集合中的交易的写集关键字,并将该写集字典中每一个写集关键字的值设计为包括:依赖该每一个写集关键字的交易的编号;相当于,能够使得该写集字典中写集关键字为该当前交易的关键字的值包括:与当前交易发生直接冲突的交易;进一步的,本技术将该写集关键字位置字典的关键字设计为包括:由该交易集合中的交易的编号和该交易集合中的交易的写集关键字形成的写集二维关键字,并将该写集关键字位置字典中的每一个写集二维关键字的值设计为:用于指示该每一个写集二维关键字中的交易的编号,在该写集字典中写集关键字为该每一个写集二维关键字中的写集关键字的值所包括的交易的编号中的位置;也即是说,在当前交易的关键字确定的情况下,可以基于写集关键字位置字典中包括该当前交易的关键字的写集二维关键字的值所指示的位置,在写集字典中关键字为当前关键字的值所包括的交易的编号中,确定与当前交易发生直接冲突的交易,即避免了通过遍历所有交易的方式确定与当前交易发生直接冲突的交易,能够提升确定dag的效率。

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