[发明专利]一种基于DAG的拓扑排序方法在审
申请号: | 202211142261.8 | 申请日: | 2022-09-20 |
公开(公告)号: | CN115391614A | 公开(公告)日: | 2022-11-25 |
发明(设计)人: | 梁志强;刘志雄 | 申请(专利权)人: | 福建省闽保信息技术有限公司 |
主分类号: | G06F16/901 | 分类号: | G06F16/901 |
代理公司: | 福州市景弘专利代理事务所(普通合伙) 35219 | 代理人: | 徐宝珺 |
地址: | 350001 福建省福州市鼓*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 dag 拓扑 排序 方法 | ||
一种基于DAG的拓扑排序方法,包括如下步骤,S1、获取第一无直接前驱头节点集,所述无直接前驱头节点为无前节点的节点,无直接前驱头节点集就是无前节点的节点的集合,S2、循环遍历所述第一无直接前驱头节点集中的无直接前驱头节点,对每个无直接前驱头节点引出的所有边,对每条边逐一获取该边连接的第二节点,再对每条边逐一进行移除,并进行判断:如果获取的所述第二节点的入度在移除边之后为0,则将所述第二节点放到当前批次的第一无直接前驱头节点集中;通过上述方案,使数据存储效能呈现几何级提升,完全解决了传统区块链的单链线性存储效率低下的问题,使得区块链的瓶颈问题得以突破和解决。
技术领域
本发明涉及信息技术领域,尤其涉及一种能够并行存储并提高存储效率的技术方案。
背景技术
威链(WILL)账本存储包括DAG链存储和状态的level-DB存储。DAG链存储采用DAG有向无环图数据结构,进行多线程异步并行存储处理。DAG数据结构因其独特的拓扑结构而呈现出优异特性,被广泛应用于处理动态规划,导航中寻求最短路径,数据压缩等多种算法场景。DAG技术将区块链从单链进化到树状和网状、从区块粒度细化到交易粒度、从单点跃迁到并发写入,是区块链从容量到速度的一次重大突破和革新。
发明内容
为此,需要提供一种新的共识生成的方法,从而更好地进行区块链领域中进行强的技术效果。
为实现上述目的,发明人提供了一种基于DAG的拓扑排序方法,包括如下步骤,
S1、获取第一无直接前驱头节点集,所述无直接前驱头节点为无前节点的节点,无直接前驱头节点集就是无前节点的节点的集合,
S2、循环遍历所述第一无直接前驱头节点集中的无直接前驱头节点,对每个无直接前驱头节点引出的所有边,对每条边逐一获取该边连接的第二节点,再对每条边逐一进行移除,并进行判断:如果获取的所述第二节点的入度在移除边之后为0,则将所述第二节点放到当前批次的第一无直接前驱头节点集中;
S3、然后循环上述操作;
当无直接前驱头节点集为空之后,检查拓扑图中DAG是否还存在边,如果存在的话,则图中至少存在一条环路,与DAG背驰;不存在边的话则返回所述第一无直接前驱头节点集中的无直接前驱头结点序列。
在本申请的一些实施例中,所述DAG为有向无环图数据结构。
在本申请的一些实施例中,则将所述第二节点放到当前批次的第一无直接前驱头节点集中之后还包括步骤,记录所述无直接前驱头节点的个数和索引。
在本申请的一些实施例中,所述第一无直接前驱头节点集还包括正确结果清单。
在本申请的一些实施例中,返回所述第一无直接前驱头节点集中的无直接前驱头结点序列之后,还包括步骤,返回所述正确结果清单。
一种基于DAG的拓扑排序存储介质,存储有计算机程序,所述计算机程序在被运行时执行包括如下步骤,
S1、获取第一无直接前驱头节点集,所述无直接前驱头节点为无前节点的节点,无直接前驱头节点集就是无前节点的节点的集合,
S2、循环遍历所述第一无直接前驱头节点集中的无直接前驱头节点,对每个无直接前驱头节点引出的所有边,对每条边逐一获取该边连接的第二节点,再对每条边逐一进行移除,并进行判断:如果获取的所述第二节点的入度在移除边之后为0,则将所述第二节点放到当前批次的第一无直接前驱头节点集中;
S3、然后循环上述操作;
当无直接前驱头节点集为空之后,检查拓扑图中DAG是否还存在边,如果存在的话,则图中至少存在一条环路,与DAG背驰;不存在边的话则返回所述第一无直接前驱头节点集中的无直接前驱头结点序列。
在本申请的一些实施例中,所述DAG为有向无环图数据结构。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福建省闽保信息技术有限公司,未经福建省闽保信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211142261.8/2.html,转载请声明来源钻瓜专利网。