CN110019986A - 一种有向无环图中消息的定序方法及终端 - Google Patents
一种有向无环图中消息的定序方法及终端 Download PDFInfo
- Publication number
- CN110019986A CN110019986A CN201811128352.XA CN201811128352A CN110019986A CN 110019986 A CN110019986 A CN 110019986A CN 201811128352 A CN201811128352 A CN 201811128352A CN 110019986 A CN110019986 A CN 110019986A
- Authority
- CN
- China
- Prior art keywords
- node
- father
- value
- grouping
- father node
- 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.)
- Granted
Links
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 (10)
1.一种有向无环图中消息的定序方法,其特征在于,包括以下步骤:
S1:选取有向无环图中的一节点,得到第一节点,所述第一节点无子节点,有向无环图中的节点用于产生消息或对消息进行处理;
S2:根据所述第一节点的所有父节点,得到第一分组,选取所有父节点中的一节点作为第一分组的决策节点;
S3:判断决策节点是否存在父节点,若存在,则将所述决策节点作为第一节点,重复执行S2;否则,执行S4;
S4:按照第一分组的获取时间从后往前的顺序,排序所有的第一分组;根据每一个第一分组的排序,对有向无环图节点处理的同一消息进行排序,以使用户获取所述消息在有向无环图中的处理顺序。
2.根据权利要求1所述的一种有向无环图中消息的定序方法,其特征在于,所述S2具体为:
获取所述第一节点的所有父节点,得到第一分组;
获取有向无环图中的一节点,得到第二节点,所述第二节点无父节点;
分别计算每一个父节点到第二节点的距离,得到多个距离值;
并分别获取每一个父节点发出的所有消息被验证节点验证的总次数,得到每一个父节点对应的总次数;
获取总次数不小于预设阈值对应的父节点,得到多个第一父节点;
根据所述多个第一父节点对应的距离值,选取其中最大距离值对应的第一父节点作为第一分组的决策节点。
3.根据权利要求2所述的一种有向无环图中消息的定序方法,其特征在于,根据所述多个第一父节点对应的距离值,选取其中最大距离值对应的第一父节点作为第一分组的决策节点,具体为:
获取所述多个第一父节点对应的距离值,得到多个第一距离值;
获取多个第一距离值中的最大距离值;
若最大距离值只有一个,则选取最大距离值对应的第一父节点作为第一分组的决策节点;
否则,获取所有的最大距离值对应的第一父节点,得到2个以上的第二父节点;
获取所述第二父节点对应的总次数,得到2个以上的第一总次数;
选取第一总次数中的最大值对应的第二父节点作为第一分组的决策节点。
4.根据权利要求3所述的一种有向无环图中消息的定序方法,其特征在于,选取第一总次数中的最大值对应的第二父节点作为第一分组的决策节点,具体为:
获取第一总次数的最大值;
若第一总次数的最大值只有一个,则第一总次数的最大值对应的第二父节点作为第一分组的决策节点;
否则,获取第一总次数的最大值对应的第二父节点,得到2个以上的第三父节点;
计算每一个第三父节点对应的深度值;
所述深度值
其中,D(U′i)表示序号为i的第三父节点对应的深度值,qi表示第三父节点的总个数,表示序号为i的第三父节点对应的第一总次数;U′i表示序号为i的第三父节点,Pj表示序号为j的第三父节点,且j不等于i,d(U′i,Pj)表示求D(U′i)与Pj之间的距离;
获取最大的深度值对应的第三父节点作为第一分组的决策节点。
5.根据权利要求4所述的一种有向无环图中消息的定序方法,其特征在于,获取最大的深度值对应的第三父节点作为第一分组的决策节点,具体为:
若最大的深度值只有一个,则选取所述最大的深度值对应的第三父节点作为第一分组的决策节点;
否则,获取最大的深度值对应的第三父节点,得到2个以上的第四父节点;
分别计算每一个第三父节点与第二节点之间的距离值,得到2个以上的第二距离值;
选取第二距离值中的最大值对应的第四父节点作为决策节点。
6.根据权利要求5所述的一种有向无环图中消息的定序方法,其特征在于,选取第二距离值中的最大值对应的第四父节点作为决策节点,具体为:
若第二距离值的最大值只有一个,则选取第二距离值的最大值对应的第四父节点作为决策节点;
否则,获取第二距离值的最大值对应的第四父节点,得到2个以上的第五父节点;
分别计算每一个第五父节点对应的哈希值H(U'a),1≤a≤ka;
其中,所述ki为第五父节点的总个数,U'a表示序号为a的第五父节点,H(U'a)表示对所述消息进行哈希运算得到的哈希值;
将每一个哈希值转换为二进制数,选取其中最大的二进制数对应的第五父节点作为决策节点。
7.一种有向无环图中消息的定序终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现以下步骤:
S1:选取有向无环图中的一节点,得到第一节点,所述第一节点无子节点,有向无环图中的节点用于产生消息或对消息进行处理;
S2:根据所述第一节点的所有父节点,得到第一分组,选取所有父节点中的一节点作为第一分组的决策节点;
S3:判断决策节点是否存在父节点,若存在,则将所述决策节点作为第一节点,重复执行S2;否则,执行S4;
S4:按照第一分组的获取时间从后往前的顺序,排序所有的第一分组;根据每一个第一分组的排序,对有向无环图节点处理的同一消息进行排序,以使用户获取所述消息在有向无环图中的处理顺序。
8.根据权利要求7所述的一种有向无环图中消息的定序终端,其特征在于,所述S2具体为:
获取所述第一节点的所有父节点,得到第一分组;
获取有向无环图中的一节点,得到第二节点,所述第二节点无父节点;
分别计算每一个父节点到第二节点的距离,得到多个距离值;
并分别获取每一个父节点发出的所有消息被验证节点验证的总次数,得到每一个父节点对应的总次数;
获取总次数不小于预设阈值对应的父节点,得到多个第一父节点;
根据所述多个第一父节点对应的距离值,选取其中最大距离值对应的第一父节点作为第一分组的决策节点。
9.根据权利要求8所述的一种有向无环图中消息的定序终端,其特征在于,根据所述多个第一父节点对应的距离值,选取其中最大距离值对应的第一父节点作为第一分组的决策节点,具体为:
获取所述多个第一父节点对应的距离值,得到多个第一距离值;
获取多个第一距离值中的最大距离值;
若最大距离值只有一个,则选取最大距离值对应的第一父节点作为第一分组的决策节点;
否则,获取所有的最大距离值对应的第一父节点,得到2个以上的第二父节点;
获取所述第二父节点对应的总次数,得到2个以上的第一总次数;
选取第一总次数中的最大值对应的第二父节点作为第一分组的决策节点。
10.根据权利要求9所述的一种有向无环图中消息的定序终端,其特征在于,选取第一总次数中的最大值对应的第二父节点作为第一分组的决策节点,具体为:
获取第一总次数的最大值;
若第一总次数的最大值只有一个,则第一总次数的最大值对应的第二父节点作为第一分组的决策节点;
否则,获取第一总次数的最大值对应的第二父节点,得到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 true CN110019986A (zh) | 2019-07-16 |
CN110019986B 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) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110826110A (zh) * | 2019-11-06 | 2020-02-21 | 福建福链科技有限公司 | 一种分布式账本数据防篡改方法及系统 |
Citations (9)
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 | 重庆大学 | 一种多核实时容错系统中获取准确的最晚截止时间的方法 |
US20150227685A1 (en) * | 2014-02-11 | 2015-08-13 | Seven Bridges Genomics Inc. | Systems and methods for analyzing sequence data |
US20160086260A1 (en) * | 2014-09-19 | 2016-03-24 | Amazon Technologies, Inc. | Lifecycle transitions in log-coordinated data stores |
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分解方法 |
-
2018
- 2018-09-27 CN CN201811128352.XA patent/CN110019986B/zh active Active
Patent Citations (9)
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 | 重庆大学 | 一种多核实时容错系统中获取准确的最晚截止时间的方法 |
US20150227685A1 (en) * | 2014-02-11 | 2015-08-13 | Seven Bridges Genomics Inc. | Systems and methods for analyzing sequence data |
US20160086260A1 (en) * | 2014-09-19 | 2016-03-24 | Amazon Technologies, Inc. | Lifecycle transitions in log-coordinated data stores |
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 |
---|
S HARTUNG 等: "NP-hardness and fixed-parameter tractability of realizing degree sequences with directed acyclic graphs", 《SIAM JOURNAL ON DISCRETE MATHEMATICS》 * |
张晓磊: "云计算独立任务及关联任务调度算法研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
李友焕 等: "图数据流的模型、算法和系统", 《大数据》 * |
翁旭: "基于线性阈值模型的社交网络影响最大化研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110826110A (zh) * | 2019-11-06 | 2020-02-21 | 福建福链科技有限公司 | 一种分布式账本数据防篡改方法及系统 |
CN110826110B (zh) * | 2019-11-06 | 2021-09-07 | 福建福链科技有限公司 | 一种分布式账本数据防篡改方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110019986B (zh) | 2020-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Lieberson | Comments on the use and utility of QCA | |
Diestel et al. | The Radon-Nikodym theorem for Banach space valued measures | |
US20110161264A1 (en) | Optimized seeding of evolutionary algorithm based simulations | |
CN109871954B (zh) | 训练样本生成方法、异常检测方法及装置 | |
CN103428165B (zh) | 社交网络节点分组方法和装置 | |
Li et al. | Imbalanced sentiment classification | |
CN110097094A (zh) | 一种面向人物交互的多重语义融合少样本分类方法 | |
CN109165382A (zh) | 一种加权词向量和潜在语义分析结合的相似缺陷报告推荐方法 | |
CN109766259B (zh) | 一种基于复合蜕变关系的分类器测试方法及系统 | |
CN106251725A (zh) | 试题批改方法和服务器 | |
CN105989001A (zh) | 图像搜索方法及装置、图像搜索系统 | |
CN110019986A (zh) | 一种有向无环图中消息的定序方法及终端 | |
CN104951478A (zh) | 信息处理方法和信息处理装置 | |
CN108958925B (zh) | 一种节能的工作量证明方法与系统 | |
CN103324888A (zh) | 基于家族样本的病毒特征自动提取方法及系统 | |
Gao et al. | A hybrid approach to coping with high dimensionality and class imbalance for software defect prediction | |
CN108537279A (zh) | 基于改进Adaboost算法的数据源分类器构建方法 | |
CN105975487B (zh) | 一种app软件用户评论有关性判断方法 | |
Parvin et al. | Using clustering for generating diversity in classifier ensemble | |
Singh et al. | Implementation and performance analysis of exponential tree sorting | |
CN111159631A (zh) | 一种基于可编程逻辑的硬件sat求解器 | |
Katz et al. | Synthesis of parametric programs using genetic programming and model checking | |
CN104572868B (zh) | 基于问答系统的信息匹配的方法和装置 | |
CN109977295A (zh) | 一种黑白名单匹配方法及装置 | |
Solomonott | Inductive Inference Theory-A Unified Approach to Problems in Pattern Recognition and Artificial Intelligence. |
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 |