CN110019986B - 一种有向无环图中消息的定序方法及终端 - Google Patents
一种有向无环图中消息的定序方法及终端 Download PDFInfo
- Publication number
- CN110019986B CN110019986B CN201811128352.XA CN201811128352A CN110019986B CN 110019986 B CN110019986 B CN 110019986B CN 201811128352 A CN201811128352 A CN 201811128352A CN 110019986 B CN110019986 B CN 110019986B
- Authority
- CN
- China
- Prior art keywords
- node
- father
- value
- nodes
- acquiring
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012163 sequencing technique Methods 0.000 title claims abstract description 59
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000012795 verification Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 8
- 125000002015 acyclic group Chemical group 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种有向无环图中消息的定序方法及终端,其方法包括:S1:选取有向无环图中的一节点,得到第一节点,所述第一节点无子节点,有向无环图中的节点用于产生消息或对消息进行处理;S2:根据所述第一节点的所有父节点,得到第一分组,选取所有父节点中的一节点作为第一分组的决策节点;S3:判断决策节点是否存在父节点,若存在,则将所述决策节点作为第一节点,重复执行S2;否则,执行S4;S4:按照第一分组的获取时间从后往前的顺序,排序所有的第一分组;根据每一个第一分组的排序,对有向无环图节点处理的同一消息进行排序。本发明通过上述方法,解决了有向无环图中无法对消息进行定序的问题。
Description
技术领域
本发明涉及有向无环图技术领域,尤其涉及一种有向无环图中消息的定序方法及终端。
背景技术
字节雪球Byteball中提出了基于主链+见证者的有向无环图(directed acyclicgraph,DAG)中的消息定序方法。通过见证者对消息的引用情况确定一条主链,再根据每个消息相对于主链的位置为消息定序。
Byteball提出的基于主链+见证者的DAG中的消息见证方法中,在同一时刻,每个消息上确定的主链是不完全相同的,且形成的主链可能被修改,存在无法对消息进行定序的问题。
发明内容
本发明所要解决的技术问题是:本发明提供了一种有向无环图中消息的定序方法及终端,解决了有向无环图中无法对消息进行定序的问题。
为了解决上述技术问题,本发明提供了一种有向无环图中消息的定序方法,包括以下步骤:
S1:选取有向无环图中的一节点,得到第一节点,所述第一节点无子节点,有向无环图中的节点用于产生消息或对消息进行处理;
S2:根据所述第一节点的所有父节点,得到第一分组,选取所有父节点中的一节点作为第一分组的决策节点;
S3:判断决策节点是否存在父节点,若存在,则将所述决策节点作为第一节点,重复执行S2;否则,执行S4;
S4:按照第一分组的获取时间从后往前的顺序,排序所有的第一分组;根据每一个第一分组的排序,对有向无环图节点处理的同一消息进行排序,以使用户获取所述消息在有向无环图中的处理顺序。
本发明还提供了一种有向无环图中消息的定序终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
S1:选取有向无环图中的一节点,得到第一节点,所述第一节点无子节点,有向无环图中的节点用于产生消息或对消息进行处理;
S2:根据所述第一节点的所有父节点,得到第一分组,选取所有父节点中的一节点作为第一分组的决策节点;
S3:判断决策节点是否存在父节点,若存在,则将所述决策节点作为第一节点,重复执行S2;否则,执行S4;
S4:按照第一分组的获取时间从后往前的顺序,排序所有的第一分组;根据每一个第一分组的排序,对有向无环图节点处理的同一消息进行排序,以使用户获取所述消息在有向无环图中的处理顺序。
本发明的有益效果为:
本发明提供了一种有向无环图中消息的定序方法及终端,通过选取有向无环图无子节点的第一节点,获取第一节点的所有父节点,得到第一分组,所述第一分组包括第一节点的所有父节点,选取所有父节点中的一节点作为第一分组的决策节点;并判断决策节点是否存在父节点,若存在,则将所述决策节点作为第一节点,重复执行步骤“获取第一节点的所有父节点,得到第一分组,选取所有父节点中的一节点作为第一分组的决策节点”;否则,按照第一分组的获取时间从后往前的顺序,排序所有的第一分组;根据每一个第一分组的排序,对有向无环图节点处理的同一消息进行排序,以使用户获取所述消息在有向无环图中的处理顺序。在原始DAG图中节点是并发、自主的方式加入图中,容易出现节点验证时间不确定、账本全局一致性差等问题。通过上述方法,能够将有向无环图中的节点进行分组后并排序,从而根据分组的排序,对有向无环图节点处理的同一消息进行排序,以使用户获取所述消息在有向无环图中的处理顺序,可有效解决账本全局一致性差的问题。在原始DAG图中节点是并发、自主的方式加入图中,容易出现节点验证时间不确定、账本全局一致性差等问题。;并且通过分组的决策节点能够对该组内发起的消息进行验证,提高了系统的安全性。
附图说明
图1为根据本发明实施例的一种有向无环图中消息的定序方法的主要步骤示意图;
图2为根据本发明实施例的一种有向无环图中消息的定序终端的结构示意图;
标号说明:
1、存储器;2、处理器。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图详予说明。
请参照图1,本发明提供了一种有向无环图中消息的定序方法,包括以下步骤:
S1:选取有向无环图中的一节点,得到第一节点,所述第一节点无子节点,有向无环图中的节点用于产生消息或对消息进行处理;
S2:根据所述第一节点的所有父节点,得到第一分组,选取所有父节点中的一节点作为第一分组的决策节点;
S3:判断决策节点是否存在父节点,若存在,则将所述决策节点作为第一节点,重复执行S2;否则,执行S4;
S4:按照第一分组的获取时间从后往前的顺序,排序所有的第一分组;根据每一个第一分组的排序,对有向无环图节点处理的同一消息进行排序,以使用户获取所述消息在有向无环图中的处理顺序。
从上述描述可知,本发明提供了一种有向无环图中消息的定序方法,通过选取有向无环图无子节点的第一节点,获取第一节点的所有父节点,得到第一分组,所述第一分组包括第一节点的所有父节点,选取所有父节点中的一节点作为第一分组的决策节点;并判断决策节点是否存在父节点,若存在,则将所述决策节点作为第一节点,重复执行步骤“获取第一节点的所有父节点,得到第一分组,选取所有父节点中的一节点作为第一分组的决策节点”;否则,按照第一分组的获取时间从后往前的顺序,排序所有的第一分组;根据每一个第一分组的排序,对有向无环图节点处理的同一消息进行排序,以使用户获取所述消息在有向无环图中的处理顺序。在原始DAG图中节点是并发、自主的方式加入图中,容易出现节点验证时间不确定、账本全局一致性差等问题。通过上述方法,能够将有向无环图中的节点进行分组后并排序,从而根据分组的排序,对有向无环图节点处理的同一消息进行排序,以使用户获取所述消息在有向无环图中的处理顺序,可有效解决账本全局一致性差的问题。在原始DAG图中节点是并发、自主的方式加入图中,容易出现节点验证时间不确定、账本全局一致性差等问题。;并且通过分组的决策节点能够对该组内发起的消息进行验证,提高了系统的安全性。
进一步的,所述S2具体为:
获取所述第一节点的所有父节点,得到第一分组;
获取有向无环图中的一节点,得到第二节点,所述第二节点无父节点;
分别计算每一个父节点到第二节点的距离,得到多个距离值;
并分别获取每一个父节点发出的所有消息被验证节点验证的总次数,得到每一个父节点对应的总次数;
获取总次数不小于预设阈值对应的父节点,得到多个第一父节点;
根据所述多个第一父节点对应的距离值,选取其中最大距离值对应的第一父节点作为第一分组的决策节点。
从上述描述可知,根据每一个父节点发出消息被验证的总次数,及父节点到第二节点的距离,可能够筛选出唯一的决策节点,使得第一分组的节点发起的消息能够被决策节点进行有效验证,可提高系统的安全性。
进一步的,根据所述多个第一父节点对应的距离值,选取其中最大距离值对应的第一父节点作为第一分组的决策节点,具体为:
获取所述多个第一父节点对应的距离值,得到多个第一距离值;
获取多个第一距离值中的最大距离值;
若最大距离值只有一个,则选取最大距离值对应的第一父节点作为第一分组的决策节点;
否则,获取所有的最大距离值对应的第一父节点,得到2个以上的第二父节点;
获取所述第二父节点对应的总次数,得到2个以上的第一总次数;
选取第一总次数中的最大值对应的第二父节点作为第一分组的决策节点。
从上述描述可知,当筛选出的第一父节点对应的第一距离值的最大值有多个时,通过上述方法,能够进一步筛选出第一分组的唯一决策节点。
进一步的,选取第一总次数中的最大值对应的第二父节点作为第一分组的决策节点,具体为:
获取第一总次数的最大值;
若第一总次数的最大值只有一个,则第一总次数的最大值对应的第二父节点作为第一分组的决策节点;
否则,获取第一总次数的最大值对应的第二父节点,得到2个以上的第三父节点;
计算每一个第三父节点对应的深度值;
其中,D(U′i)表示序号为i的第三父节点对应的深度值,qi表示第三父节点的总个数,表示序号为i的第三父节点对应的第一总次数;U′i表示序号为i的第三父节点,Pj表示序号为j的第三父节点,且j不等于i,d(U′i,Pj)表示求D(U′i)与Pj之间的距离;
获取最大的深度值对应的第三父节点作为第一分组的决策节点。
从上述描述可知,当筛选出的第二父节点对应的第一总次数的最大值有多个时,通过上述方法,能够进一步筛选出第一分组的唯一决策节点。
进一步的,获取最大的深度值对应的第三父节点作为第一分组的决策节点,具体为:
若最大的深度值只有一个,则选取所述最大的深度值对应的第三父节点作为第一分组的决策节点;
否则,获取最大的深度值对应的第三父节点,得到2个以上的第四父节点;
分别计算每一个第三父节点与第二节点之间的距离值,得到2个以上的第二距离值;
选取第二距离值中的最大值对应的第四父节点作为决策节点。
从上述描述可知,当筛选出的第三父节点对应的深度值的最大值有多个时,通过上述方法,能够进一步筛选出第一分组的唯一决策节点。
进一步的,选取第二距离值中的最大值对应的第四父节点作为决策节点,具体为:
若第二距离值的最大值只有一个,则选取第二距离值的最大值对应的第四父节点作为决策节点;
否则,获取第二距离值的最大值对应的第四父节点,得到2个以上的第五父节点;
分别计算每一个第五父节点对应的哈希值H(U′a),1≤a≤ka;
其中,所述ki为第五父节点的总个数,U′a表示序号为a的第五父节点,H(U′a)表示对所述消息进行哈希运算得到的哈希值;
将每一个哈希值转换为二进制数,选取其中最大的二进制数对应的第五父节点作为决策节点。
从上述描述可知,当筛选出的第四父节点对应的第二距离值的最大值有多个时,通过上述方法,能够进一步筛选出第一分组的唯一决策节点。
请参照图2,本发明提供的一种有向无环图中消息的定序终端,包括存储器1、处理器2及存储在存储器1上并可在处理器2上运行的计算机程序,所述处理器2执行所述计算机程序时实现以下步骤:
S1:选取有向无环图中的一节点,得到第一节点,所述第一节点无子节点,有向无环图中的节点用于产生消息或对消息进行处理;
S2:根据所述第一节点的所有父节点,得到第一分组,选取所有父节点中的一节点作为第一分组的决策节点;
S3:判断决策节点是否存在父节点,若存在,则将所述决策节点作为第一节点,重复执行S2;否则,执行S4;
S4:按照第一分组的获取时间从后往前的顺序,排序所有的第一分组;根据每一个第一分组的排序,对有向无环图节点处理的同一消息进行排序,以使用户获取所述消息在有向无环图中的处理顺序。
进一步的,所述的一种有向无环图中消息的定序终端,所述S2具体为:
获取所述第一节点的所有父节点,得到第一分组;
获取有向无环图中的一节点,得到第二节点,所述第二节点无父节点;
分别计算每一个父节点到第二节点的距离,得到多个距离值;
并分别获取每一个父节点发出的所有消息被验证节点验证的总次数,得到每一个父节点对应的总次数;
获取总次数不小于预设阈值对应的父节点,得到多个第一父节点;
根据所述多个第一父节点对应的距离值,选取其中最大距离值对应的第一父节点作为第一分组的决策节点。
进一步的,所述的一种有向无环图中消息的定序终端,根据所述多个第一父节点对应的距离值,选取其中最大距离值对应的第一父节点作为第一分组的决策节点,具体为:
获取所述多个第一父节点对应的距离值,得到多个第一距离值;
获取多个第一距离值中的最大距离值;
若最大距离值只有一个,则选取最大距离值对应的第一父节点作为第一分组的决策节点;
否则,获取所有的最大距离值对应的第一父节点,得到2个以上的第二父节点;
获取所述第二父节点对应的总次数,得到2个以上的第一总次数;
选取第一总次数中的最大值对应的第二父节点作为第一分组的决策节点。
进一步的,所述的一种有向无环图中消息的定序终端,选取第一总次数中的最大值对应的第二父节点作为第一分组的决策节点,具体为:
获取第一总次数的最大值;
若第一总次数的最大值只有一个,则第一总次数的最大值对应的第二父节点作为第一分组的决策节点;
否则,获取第一总次数的最大值对应的第二父节点,得到2个以上的第三父节点;
计算每一个第三父节点对应的深度值;
其中,D(U′i)表示序号为i的第三父节点对应的深度值,qi表示第三父节点的总个数,表示序号为i的第三父节点对应的第一总次数;U′i表示序号为i的第三父节点,Pj表示序号为j的第三父节点,且j不等于i,d(U′i,Pj)表示求D(U′i)与Pj之间的距离;
获取最大的深度值对应的第三父节点作为第一分组的决策节点。
进一步的,所述的一种有向无环图中消息的定序终端,获取最大的深度值对应的第三父节点作为第一分组的决策节点,具体为:
若最大的深度值只有一个,则选取所述最大的深度值对应的第三父节点作为第一分组的决策节点;
否则,获取最大的深度值对应的第三父节点,得到2个以上的第四父节点;
分别计算每一个第三父节点与第二节点之间的距离值,得到2个以上的第二距离值;
选取第二距离值中的最大值对应的第四父节点作为决策节点。
进一步的,所述的一种有向无环图中消息的定序终端,选取第二距离值中的最大值对应的第四父节点作为决策节点,具体为:
若第二距离值的最大值只有一个,则选取第二距离值的最大值对应的第四父节点作为决策节点;
否则,获取第二距离值的最大值对应的第四父节点,得到2个以上的第五父节点;
分别计算每一个第五父节点对应的哈希值H(U'a),1≤a≤ka;
其中,所述ki为第五父节点的总个数,U'a表示序号为a的第五父节点,H(U'a),表示对所述消息进行哈希运算得到的哈希值;
将每一个哈希值转换为二进制数,选取其中最大的二进制数对应的第五父节点作为决策节点。
请参照图1,本发明的实施例一为:
本发明提供了一种有向无环图中消息的定序方法,包括以下步骤:
S1:选取有向无环图中的一节点,得到第一节点,所述第一节点无子节点,有向无环图中的节点用于产生消息或对消息进行处理;
S2:根据所述第一节点的所有父节点,得到第一分组,选取所有父节点中的一节点作为第一分组的决策节点;
其中,所述S2具体为:
获取所述第一节点的所有父节点,得到第一分组;
获取有向无环图中的一节点,得到第二节点,所述第二节点无父节点;
分别计算每一个父节点到第二节点的距离,得到多个距离值;
并分别获取每一个父节点发出的所有消息被验证节点验证的总次数,得到每一个父节点对应的总次数;
获取总次数不小于预设阈值对应的父节点,得到多个第一父节点;
根据所述多个第一父节点对应的距离值,选取其中最大距离值对应的第一父节点作为第一分组的决策节点。
其中,根据所述多个第一父节点对应的距离值,选取其中最大距离值对应的第一父节点作为第一分组的决策节点,具体为:
获取所述多个第一父节点对应的距离值,得到多个第一距离值;
获取多个第一距离值中的最大距离值;
若最大距离值只有一个,则选取最大距离值对应的第一父节点作为第一分组的决策节点;
否则,获取所有的最大距离值对应的第一父节点,得到2个以上的第二父节点;
获取所述第二父节点对应的总次数,得到2个以上的第一总次数;
选取第一总次数中的最大值对应的第二父节点作为第一分组的决策节点。
其中,选取第一总次数中的最大值对应的第二父节点作为第一分组的决策节点,具体为:
获取第一总次数的最大值;
若第一总次数的最大值只有一个,则第一总次数的最大值对应的第二父节点作为第一分组的决策节点;
否则,获取第一总次数的最大值对应的第二父节点,得到2个以上的第三父节点;
计算每一个第三父节点对应的深度值;
其中,D(U′i)表示序号为i的第三父节点对应的深度值,qi表示第三父节点的总个数,表示序号为i的第三父节点对应的第一总次数;U′i表示序号为i的第三父节点,Pj表示序号为j的第三父节点,且j不等于i,d(U′i,Pj)表示求D(U′i)与Pj之间的距离;
获取最大的深度值对应的第三父节点作为第一分组的决策节点。
其中,获取最大的深度值对应的第三父节点作为第一分组的决策节点,具体为:
若最大的深度值只有一个,则选取所述最大的深度值对应的第三父节点作为第一分组的决策节点;
否则,获取最大的深度值对应的第三父节点,得到2个以上的第四父节点;
分别计算每一个第三父节点与第二节点之间的距离值,得到2个以上的第二距离值;
选取第二距离值中的最大值对应的第四父节点作为决策节点。
其中,选取第二距离值中的最大值对应的第四父节点作为决策节点,具体为:
若第二距离值的最大值只有一个,则选取第二距离值的最大值对应的第四父节点作为决策节点;
否则,获取第二距离值的最大值对应的第四父节点,得到2个以上的第五父节点;
分别计算每一个第五父节点对应的哈希值H(U'a),1≤a≤ka;
其中,所述ki为第五父节点的总个数,U'a表示序号为a的第五父节点,H(U'a)表示对所述消息进行哈希运算得到的哈希值;若第五父节点没有对该消息进行处理,则为0;
将每一个哈希值转换为二进制数,选取其中最大的二进制数对应的第五父节点作为决策节点。
S3:判断决策节点是否存在父节点,若存在,则将所述决策节点作为第一节点,重复执行S2;否则,执行S4;
S4:按照第一分组的获取时间从后往前的顺序,排序所有的第一分组;根据每一个第一分组的排序,对有向无环图节点处理的同一消息进行排序,以使用户获取所述消息在有向无环图中的处理顺序,即排序在前的分组上的节点处理消息的排序在前,排序在后的分组上的节点处理消息的排序在后。
请参照图2,本发明的实施例二为:
本发明提供了一种有向无环图中消息的定序终端,包括存储器1、处理器2及存储在存储器1上并可在处理器2上运行的计算机程序,所述处理器2执行所述计算机程序时实现以下步骤:
S1:选取有向无环图中的一节点,得到第一节点,所述第一节点无子节点,有向无环图中的节点用于产生消息或对消息进行处理;
S2:根据所述第一节点的所有父节点,得到第一分组,选取所有父节点中的一节点作为第一分组的决策节点;
其中,所述S2具体为:
获取所述第一节点的所有父节点,得到第一分组;
获取有向无环图中的一节点,得到第二节点,所述第二节点无父节点;
分别计算每一个父节点到第二节点的距离,得到多个距离值;
并分别获取每一个父节点发出的所有消息被验证节点验证的总次数,得到每一个父节点对应的总次数;
获取总次数不小于预设阈值对应的父节点,得到多个第一父节点;
根据所述多个第一父节点对应的距离值,选取其中最大距离值对应的第一父节点作为第一分组的决策节点。
其中,根据所述多个第一父节点对应的距离值,选取其中最大距离值对应的第一父节点作为第一分组的决策节点,具体为:
获取所述多个第一父节点对应的距离值,得到多个第一距离值;
获取多个第一距离值中的最大距离值;
若最大距离值只有一个,则选取最大距离值对应的第一父节点作为第一分组的决策节点;
否则,获取所有的最大距离值对应的第一父节点,得到2个以上的第二父节点;
获取所述第二父节点对应的总次数,得到2个以上的第一总次数;
选取第一总次数中的最大值对应的第二父节点作为第一分组的决策节点。
其中,选取第一总次数中的最大值对应的第二父节点作为第一分组的决策节点,具体为:
获取第一总次数的最大值;
若第一总次数的最大值只有一个,则第一总次数的最大值对应的第二父节点作为第一分组的决策节点;
否则,获取第一总次数的最大值对应的第二父节点,得到2个以上的第三父节点;
计算每一个第三父节点对应的深度值;
其中,D(U′i)表示序号为i的第三父节点对应的深度值,qi表示第三父节点的总个数,表示序号为i的第三父节点对应的第一总次数;U′i表示序号为i的第三父节点,Pj表示序号为j的第三父节点,且j不等于i,d(U′i,Pj)表示求D(U′i)与Pj之间的距离;
获取最大的深度值对应的第三父节点作为第一分组的决策节点。
其中,获取最大的深度值对应的第三父节点作为第一分组的决策节点,具体为:
若最大的深度值只有一个,则选取所述最大的深度值对应的第三父节点作为第一分组的决策节点;
否则,获取最大的深度值对应的第三父节点,得到2个以上的第四父节点;
分别计算每一个第三父节点与第二节点之间的距离值,得到2个以上的第二距离值;
选取第二距离值中的最大值对应的第四父节点作为决策节点。
其中,选取第二距离值中的最大值对应的第四父节点作为决策节点,具体为:
若第二距离值的最大值只有一个,则选取第二距离值的最大值对应的第四父节点作为决策节点;
否则,获取第二距离值的最大值对应的第四父节点,得到2个以上的第五父节点;
分别计算每一个第五父节点对应的哈希值H(U'a),1≤a≤ka;
其中,所述ki为第五父节点的总个数,U'a表示序号为a的第五父节点,H(U'a),表示对所述消息进行哈希运算得到的哈希值;
将每一个哈希值转换为二进制数,选取其中最大的二进制数对应的第五父节点作为决策节点。
S3:判断决策节点是否存在父节点,若存在,则将所述决策节点作为第一节点,重复执行S2;否则,执行S4;
S4:按照第一分组的获取时间从后往前的顺序,排序所有的第一分组;根据每一个第一分组的排序,对有向无环图节点处理的同一消息进行排序,以使用户获取所述消息在有向无环图中的处理顺序。
综上所述,本发明提供了一种有向无环图中消息的定序方法及终端,通过选取有向无环图无子节点的第一节点,获取第一节点的所有父节点,得到第一分组,所述第一分组包括第一节点的所有父节点,选取所有父节点中的一节点作为第一分组的决策节点;并判断决策节点是否存在父节点,若存在,则将所述决策节点作为第一节点,重复执行步骤“获取第一节点的所有父节点,得到第一分组,选取所有父节点中的一节点作为第一分组的决策节点”;否则,按照第一分组的获取时间从后往前的顺序,排序所有的第一分组;根据每一个第一分组的排序,对有向无环图节点处理的同一消息进行排序,以使用户获取所述消息在有向无环图中的处理顺序。在原始DAG图中节点是并发、自主的方式加入图中,容易出现节点验证时间不确定、账本全局一致性差等问题。通过上述方法,能够将有向无环图中的节点进行分组后并排序,从而根据分组的排序,对有向无环图节点处理的同一消息进行排序,以使用户获取所述消息在有向无环图中的处理顺序,可有效解决账本全局一致性差的问题。在原始DAG图中节点是并发、自主的方式加入图中,容易出现节点验证时间不确定、账本全局一致性差等问题。;并且通过分组的决策节点能够对该组内发起的消息进行验证,提高了系统的安全性。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种有向无环图中消息的定序方法,其特征在于,包括以下步骤:
S1:选取有向无环图中的一节点,得到第一节点,所述第一节点无子节点,有向无环图中的节点用于产生消息或对消息进行处理;
S2:根据所述第一节点的所有父节点,得到第一分组,选取所有父节点中的一节点作为第一分组的决策节点;
S3:判断决策节点是否存在父节点,若存在,则将所述决策节点作为第一节点,重复执行S2;否则,执行S4;
S4:按照第一分组的获取时间从后往前的顺序,排序所有的第一分组;根据每一个第一分组的排序,对有向无环图节点处理的同一消息进行排序,以使用户获取所述消息在有向无环图中的处理顺序;
其中,所述S2具体为:
获取所述第一节点的所有父节点,得到第一分组;
获取有向无环图中的一节点,得到第二节点,所述第二节点无父节点;
分别计算每一个父节点到第二节点的距离,得到多个距离值;
并分别获取每一个父节点发出的所有消息被验证节点验证的总次数,得到每一个父节点对应的总次数;
获取总次数不小于预设阈值对应的父节点,得到多个第一父节点;
根据所述多个第一父节点对应的距离值,选取其中最大距离值对应的第一父节点作为第一分组的决策节点。
2.根据权利要求1所述的一种有向无环图中消息的定序方法,其特征在于,根据所述多个第一父节点对应的距离值,选取其中最大距离值对应的第一父节点作为第一分组的决策节点,具体为:
获取所述多个第一父节点对应的距离值,得到多个第一距离值;
获取多个第一距离值中的最大距离值;
若最大距离值只有一个,则选取最大距离值对应的第一父节点作为第一分组的决策节点;
否则,获取所有的最大距离值对应的第一父节点,得到2个以上的第二父节点;
获取所述第二父节点对应的总次数,得到2个以上的第一总次数;
选取第一总次数中的最大值对应的第二父节点作为第一分组的决策节点。
3.根据权利要求2所述的一种有向无环图中消息的定序方法,其特征在于,选取第一总次数中的最大值对应的第二父节点作为第一分组的决策节点,具体为:
获取第一总次数的最大值;
若第一总次数的最大值只有一个,则第一总次数的最大值对应的第二父节点作为第一分组的决策节点;
否则,获取第一总次数的最大值对应的第二父节点,得到2个以上的第三父节点;
计算每一个第三父节点对应的深度值;
其中,D(U′i)表示序号为i的第三父节点对应的深度值,qi表示第三父节点的总个数,表示序号为i的第三父节点对应的第一总次数;U′i表示序号为i的第三父节点,Pj表示序号为j的第三父节点,且j不等于i,d(U′i,Pj)表示求D(U′i)与Pj之间的距离;
获取最大的深度值对应的第三父节点作为第一分组的决策节点。
4.根据权利要求3所述的一种有向无环图中消息的定序方法,其特征在于,获取最大的深度值对应的第三父节点作为第一分组的决策节点,具体为:
若最大的深度值只有一个,则选取所述最大的深度值对应的第三父节点作为第一分组的决策节点;
否则,获取最大的深度值对应的第三父节点,得到2个以上的第四父节点;
分别计算每一个第三父节点与第二节点之间的距离值,得到2个以上的第二距离值;
选取第二距离值中的最大值对应的第四父节点作为决策节点。
5.根据权利要求4所述的一种有向无环图中消息的定序方法,其特征在于,选取第二距离值中的最大值对应的第四父节点作为决策节点,具体为:
若第二距离值的最大值只有一个,则选取第二距离值的最大值对应的第四父节点作为决策节点;
否则,获取第二距离值的最大值对应的第四父节点,得到2个以上的第五父节点;
分别计算每一个第五父节点对应的哈希值H(U'a),1≤a≤ka;
其中,所述ka为第五父节点的总个数,U'a表示序号为a的第五父节点,H(U'a)表示对所述消息进行哈希运算得到的哈希值;
将每一个哈希值转换为二进制数,选取其中最大的二进制数对应的第五父节点作为决策节点。
6.一种有向无环图中消息的定序终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现以下步骤:
S1:选取有向无环图中的一节点,得到第一节点,所述第一节点无子节点,有向无环图中的节点用于产生消息或对消息进行处理;
S2:根据所述第一节点的所有父节点,得到第一分组,选取所有父节点中的一节点作为第一分组的决策节点;
S3:判断决策节点是否存在父节点,若存在,则将所述决策节点作为第一节点,重复执行S2;否则,执行S4;
S4:按照第一分组的获取时间从后往前的顺序,排序所有的第一分组;根据每一个第一分组的排序,对有向无环图节点处理的同一消息进行排序,以使用户获取所述消息在有向无环图中的处理顺序;
其中,所述S2具体为:
获取所述第一节点的所有父节点,得到第一分组;
获取有向无环图中的一节点,得到第二节点,所述第二节点无父节点;
分别计算每一个父节点到第二节点的距离,得到多个距离值;
并分别获取每一个父节点发出的所有消息被验证节点验证的总次数,得到每一个父节点对应的总次数;
获取总次数不小于预设阈值对应的父节点,得到多个第一父节点;
根据所述多个第一父节点对应的距离值,选取其中最大距离值对应的第一父节点作为第一分组的决策节点。
7.根据权利要求6所述的一种有向无环图中消息的定序终端,其特征在于,根据所述多个第一父节点对应的距离值,选取其中最大距离值对应的第一父节点作为第一分组的决策节点,具体为:
获取所述多个第一父节点对应的距离值,得到多个第一距离值;
获取多个第一距离值中的最大距离值;
若最大距离值只有一个,则选取最大距离值对应的第一父节点作为第一分组的决策节点;
否则,获取所有的最大距离值对应的第一父节点,得到2个以上的第二父节点;
获取所述第二父节点对应的总次数,得到2个以上的第一总次数;
选取第一总次数中的最大值对应的第二父节点作为第一分组的决策节点。
8.根据权利要求7所述的一种有向无环图中消息的定序终端,其特征在于,选取第一总次数中的最大值对应的第二父节点作为第一分组的决策节点,具体为:
获取第一总次数的最大值;
若第一总次数的最大值只有一个,则第一总次数的最大值对应的第二父节点作为第一分组的决策节点;
否则,获取第一总次数的最大值对应的第二父节点,得到2个以上的第三父节点;
计算每一个第三父节点对应的深度值;
其中,D(U′i)表示序号为i的第三父节点对应的深度值,qi表示第三父节点的总个数,表示序号为i的第三父节点对应的第一总次数;U′i表示序号为i的第三父节点,Pj表示序号为j的第三父节点,且j不等于i,d(U′i,Pj)表示求D(U′i)与Pj之间的距离;
获取最大的深度值对应的第三父节点作为第一分组的决策节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811128352.XA CN110019986B (zh) | 2018-09-27 | 2018-09-27 | 一种有向无环图中消息的定序方法及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811128352.XA CN110019986B (zh) | 2018-09-27 | 2018-09-27 | 一种有向无环图中消息的定序方法及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110019986A CN110019986A (zh) | 2019-07-16 |
CN110019986B true CN110019986B (zh) | 2020-12-29 |
Family
ID=67188441
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811128352.XA Active CN110019986B (zh) | 2018-09-27 | 2018-09-27 | 一种有向无环图中消息的定序方法及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110019986B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110826110B (zh) * | 2019-11-06 | 2021-09-07 | 福建福链科技有限公司 | 一种分布式账本数据防篡改方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102971988A (zh) * | 2010-03-19 | 2013-03-13 | 思科技术公司 | 用于有向无环图(dag)路由的替代下行路径 |
CN103699455A (zh) * | 2013-12-27 | 2014-04-02 | 重庆大学 | 一种多核实时容错系统中获取准确的最晚截止时间的方法 |
CN106683674A (zh) * | 2017-01-16 | 2017-05-17 | 西安电子科技大学 | 利用语音控制智能家居的系统及方法 |
CN106922008A (zh) * | 2017-03-06 | 2017-07-04 | 重庆邮电大学 | 一种基于RPL路由协议的IPv6无线传感网多路径传输方法 |
CN107015856A (zh) * | 2017-03-30 | 2017-08-04 | 青海大学 | 云环境下科学工作流中的任务调度方案生成方法及装置 |
CN107301500A (zh) * | 2017-06-02 | 2017-10-27 | 北京工业大学 | 一种基于关键路径任务前瞻的工作流调度方法 |
CN107911851A (zh) * | 2017-12-28 | 2018-04-13 | 西安电子科技大学 | 以数据为中心的无线传感器网络中生命期最优dag分解方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9817944B2 (en) * | 2014-02-11 | 2017-11-14 | Seven Bridges Genomics Inc. | Systems and methods for analyzing sequence data |
US10373247B2 (en) * | 2014-09-19 | 2019-08-06 | Amazon Technologies, Inc. | Lifecycle transitions in log-coordinated data stores |
-
2018
- 2018-09-27 CN CN201811128352.XA patent/CN110019986B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102971988A (zh) * | 2010-03-19 | 2013-03-13 | 思科技术公司 | 用于有向无环图(dag)路由的替代下行路径 |
CN103699455A (zh) * | 2013-12-27 | 2014-04-02 | 重庆大学 | 一种多核实时容错系统中获取准确的最晚截止时间的方法 |
CN106683674A (zh) * | 2017-01-16 | 2017-05-17 | 西安电子科技大学 | 利用语音控制智能家居的系统及方法 |
CN106922008A (zh) * | 2017-03-06 | 2017-07-04 | 重庆邮电大学 | 一种基于RPL路由协议的IPv6无线传感网多路径传输方法 |
CN107015856A (zh) * | 2017-03-30 | 2017-08-04 | 青海大学 | 云环境下科学工作流中的任务调度方案生成方法及装置 |
CN107301500A (zh) * | 2017-06-02 | 2017-10-27 | 北京工业大学 | 一种基于关键路径任务前瞻的工作流调度方法 |
CN107911851A (zh) * | 2017-12-28 | 2018-04-13 | 西安电子科技大学 | 以数据为中心的无线传感器网络中生命期最优dag分解方法 |
Non-Patent Citations (4)
Title |
---|
NP-hardness and fixed-parameter tractability of realizing degree sequences with directed acyclic graphs;S Hartung 等;《Siam Journal on Discrete Mathematics》;20111031;第29卷(第4期);第283-292页 * |
云计算独立任务及关联任务调度算法研究;张晓磊;《中国优秀硕士学位论文全文数据库 信息科技辑》;20150115(第01(2015)期);第I138-8页 * |
图数据流的模型、算法和系统;李友焕 等;《大数据》;20180715(第04(2018)期);第44-55页 * |
基于线性阈值模型的社交网络影响最大化研究;翁旭;《中国优秀硕士学位论文全文数据库 信息科技辑》;20180115(第01(2018)期);第I138-12页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110019986A (zh) | 2019-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2015021934A1 (zh) | 一种生成数字签名的方法及装置 | |
CN110942154A (zh) | 基于联邦学习的数据处理方法、装置、设备及存储介质 | |
CN106101740B (zh) | 一种视频内容识别方法和装置 | |
CN110807109A (zh) | 数据增强策略的生成方法、数据增强方法和装置 | |
CN107688733B (zh) | 业务接口调用方法、装置、用户终端和可读存储介质 | |
CN110890985B (zh) | 虚拟网络映射方法及其模型训练方法、装置 | |
CN114281888A (zh) | 一种区块链共识方法、装置、设备及存储介质 | |
CN111897742B (zh) | 生成智能合约测试案例的方法和装置 | |
CN109766259B (zh) | 一种基于复合蜕变关系的分类器测试方法及系统 | |
CN110019986B (zh) | 一种有向无环图中消息的定序方法及终端 | |
CN110708269B (zh) | 区块链数据传输方法、区块链节点和计算机可读存储介质 | |
CN111222553A (zh) | 机器学习模型的训练数据处理方法、装置和计算机设备 | |
CN110633071A (zh) | 一种随机数生成方法及装置 | |
CN111651137A (zh) | 排序方法、装置、电子装置以及计算机设备 | |
CN104102748B (zh) | 文件映射方法及装置和文件推荐方法及装置 | |
US9437007B2 (en) | Image processing device | |
CN112948895A (zh) | 数据的水印嵌入方法、水印溯源方法及装置 | |
US20170010943A1 (en) | Ordering device, data processing device, ordering method, computer program product, and multiplex system | |
CN105573726B (zh) | 一种规则处理方法及设备 | |
CN110585727B (zh) | 一种资源获取方法及装置 | |
CN107204856B (zh) | 一种检测椭圆曲线算法漏洞的方法及装置 | |
US11257399B2 (en) | Decoding apparatus, decoding method, and program | |
CN108846672B (zh) | 个性化地址生成方法、装置、电子设备及存储介质 | |
CN115580489A (zh) | 数据传输方法、装置、设备及存储介质 | |
CN109347640B (zh) | 一种基于区块链动态智能合约的数据处理方法及终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
EE01 | Entry into force of recordation of patent licensing contract | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20190716 Assignee: Fuzhou Lingyun Data Technology Co.,Ltd. Assignor: FUJIAN FULIAN TECHNOLOGY Co.,Ltd. Contract record no.: X2024980009990 Denomination of invention: A method and terminal for sequencing messages in a directed acyclic graph Granted publication date: 20201229 License type: Common License Record date: 20240726 |