一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于有向无环图的数据处理系统

2022-05-21 08:48:23 来源:中国专利 TAG:


1.本公开涉及区块链领域,特别涉及一种基于有向无环图的数据处理系统。


背景技术:

2.区块链是一个分布式的共享账本和数据库,具有去中心化、不可篡改、公开透明等特点。这些特点保证了区块链的“诚实”与“透明”,为区块链创造信任奠定基础。区块链中具有网络节点,各个网络节点具有自己的记录(或称为账目),与其他网络节点具有的记录是一致的。但是目前现有的区块链区块链的系统效率普遍比较低,不利于区块链的系统大规模的拓展。其根本原因在于,区块链需要使用共识机制来维持数据的链式结构,这在分布式系统中实现难度较大,因此相应的共识算法通常比较复杂,从而导致了区块链效率低下和可拓展性差。


技术实现要素:

3.本公开实施例的目的在于提供一种基于有向无环图的数据处理系统,该处理系统能够基于网络节点之间的交易记录,对自身的基于有向无环图构造的分布式记录数据集进行适当调整,提高了交易数据记录和验证的效率。
4.为了解决上述技术问题,本公开的实施例采用了如下技术方案。
5.根据本公开的第一方面,提供了一种基于有向无环图的数据处理系统,包括多个通过网络连接的网络节点,所述网络节点对应有用户端。所述网络节点存储有分布式记录数据集,其中,所述分布式记录数据集记录有网络节点之间的交易信息,且基于包括有多个顶点的有向无环图构建,所述顶点表征相应的网络节点之间的交易记录。所述分布式记录数据集可以配置为:对于各个顶点,在一顶点被其他顶点所引用的情况下,在该顶点与其他顶点之间建立有向边;在该顶点没有被预定数量的其他顶点所引用的情况下,将该顶点转化为梢顶点。所述分布式记录数据集可以进一步配置为:在网络节点之间产生交易记录的情况下,至少基于所产生的交易记录对应的顶点的可信度对所产生的交易记录进行验证,并在验证通过后,在所述分布式记录数据集中添加所产生的交易记录的对应顶点,并使对应的网络节点对所产生的交易记录进行响应。
6.在一些实施例中,所述顶点的可信度可以高于所述梢顶点的可信度。所述分布式记录数据集配置为基于所述网络节点之间的产生的交易记录,利用预设可信度模型对所述顶点和/或所述梢顶点的可信度进行调整。
7.在一些实施例中,所述分布式记录数据集可以进一步配置为:在网络节点之间产生交易记录的情况下,对所述有向无环图中的所述梢顶点进行遍历;获取遍历过程中出现次数符合预设次数且没有发生冲突的梢顶点,以使所产生的交易记录对应的顶点对其进行引用。
8.在一些实施例中,所述交易记录可以包含与交易判断相关的信息。所述网络节点可以进一步配置为:获取交易记录;在所获取的交易记录满足预设的交易判断条件的情况
下,确定获取的交易记录被验证通过;在所述分布式记录数据集中添加与所获取的交易记录相对应的顶点,更新该顶点和其引用的顶点的可信度。
9.在一些实施例中,所述交易判断条件可以包括以下至少一种:所述交易记录对应的网络节点的信用无异常;所述交易记录的电子签名合法;所述交易记录的交易识别码有效;所述交易记录所引用的交易记录的数目符合预设条件;所引用的交易记录已被标记为合法;所引用的交易记录之间无冲突;无引用自身的交易记录;所述交易记录的信息本身有效。
10.在一些实施例中,所述交易记录对应的顶点的可信度可与相应的所述网络节点的信用值相关联,所述网络节点的信用值随所述网络节点的交互行为而做出相应的调整。
11.在一些实施例中,所述网络节点的信用值可根据相应的交易记录中交易数量以及交易时间的变化而发生变化。并且/或者,所述网络节点的信用值可根据所引用交易记录的冲突信息而做出调整。
12.在一些实施例中,数据处理系统可进一步配置为,对于各个网络节点,如果出现以下至少一种情况则降低其信用值:其他网络节点确定该网络节点的交易记录与其他交易记录发生冲突;其他网络节点确定该网络节点所引用的网络节点之间发生冲突;该网络节点仅引用其他网络节点的已被验证通过的通过信息;该网络节点出现信息传输不一致或电子签名无效。
13.在一些实施例中,所述网络节点进一步配置为通过如下的至少一种处理对自身的信用值进行更新:自所述网络节点上一次信用值更新操作后,所述网络节点接收到的交易记录达到预定数量后,启动对自身的信用值进行更新的操作;和/或所述网络节点从异常状态中恢复为正常状态后,启动对自身的信用值进行更新的操作。
14.在一些实施例中,所述分布式记录数据集可进一步配置为:定期对存储的交易记录进行维护操作,其中包括清除超出预定时间没有被验证通过的交易记录,以及相对应的顶点。
15.在一些实施例中,所述维护操作还可包括:去除所述有向无环图中的创世顶点,转而将产生交易记录却被隐藏掉该交易记录的顶点作为起始顶点。
16.在一些实施例中,所述数据处理系统还可以包括交易平台,所述交易平台为用户端随机分配所述网络节点,以使用户通过所述用户端与相应的所述网络节点进行数据交互。
17.在一些实施例中,在所述网络节点还存储有第一合约,所述交易平台基于所述第一合约与所述分布式记录数据集进行数据交互。
18.本公开的各个实施例的有益效果在于:该数据处理系统能够对网络节点之间的交易记录进行监控,有效地对该交易记录进行验证,并在验证通过后能够及时准确地;对网络节点的基于有向无环图构造的分布式记录数据集进行动态调整,从而准确的被记录在各个网络节点的分布式记录数据集中,提高了交易数据记录和验证的效率,并且在不需要消耗过多计算能力的基础上提高交易的安全性和可信度。
附图说明
19.图1为本技术实施例的基于有向无环图的数据处理系统的结构示意图。
20.附图标记说明
21.1-网络节点;2-分布式记录数据集;3-第一合约;4-交易平台;5-用户端。
具体实施方式
22.此处参考附图描述本技术的各种方案以及特征。
23.应理解的是,可以对此处申请的实施例做出各种修改。因此,上述说明书不应该视为限制,而仅是作为实施例的范例。本领域的技术人员将想到在本公开的范围和精神内的其他修改。
24.包含在说明书中并构成说明书的一部分的附图示出了本公开的实施例,并且与上面给出的对本公开的大致描述以及下面给出的对实施例的详细描述一起用于解释本公开的原理。
25.通过下面参照附图对给定为非限制性实例的实施例的优选形式的描述,本公开的这些和其它特性将会变得显而易见。
26.还应当理解,尽管已经参照一些具体实例对本公开进行了描述,但本领域技术人员能够确定地实现本公开的很多其它等效形式。
27.当结合附图时,鉴于以下详细说明,本公开的上述和其他方面、特征和优势将变得更为显而易见。
28.此后参照附图描述本公开的具体实施例;然而,应当理解,所申请的实施例仅仅是本公开的实例,其可采用多种方式实施。熟知和/或重复的功能和结构并未详细描述以避免不必要或多余的细节使得本公开模糊不清。因此,本文所申请的具体的结构性和功能性细节并非意在限定,而是仅仅作为权利要求的基础和代表性基础用于教导本领域技术人员以实质上任意合适的详细结构多样地使用本公开。
29.本说明书可使用词组“在一种实施例中”、“在另一个实施例中”、“在又一实施例中”或“在其他实施例中”,其均可指代根据本公开的相同或不同实施例中的一个或多个。
30.本公开实施例的基于有向无环图的数据处理系统,应用在区块链中,该数据处理系统本身也可以为一个区块链,数据处理系统中包括多个网络节点1,网络节点1之间能够进行数据交互,例如经由p2p网络进行数据交互。每个网络节点1具有分布式记录数据集2,该分布式记录数据集2能够根据网络节点1之间的交互情况(包括但不限于交易情况)进行记录(对于交易情况相应称为记账,但记录并不限于记账),以使区块链能够对该交易情况做出正确响应。
31.下面结合具体对该数据处理系统进行说明,本公开实施例的一种基于有向无环图的数据处理系统,如图1所示,包括多个通过网络(例如但不限于p2p网络)连接的网络节点1,所述网络节点1对应有用户端5。
32.网络节点1之间通过网络能够进行数据交互,各个网络节点1为分布式节点,网络节点1对应有用户端5,该用户端5可以对应有用户,使得用户可以通过用户端5来发布信息或与其他用户进行数据交互,该数据交互的信息被每个网络节点1记录下来。
33.所述网络节点1存储有分布式记录数据集2,其中,所述分布式记录数据集2记录有网络节点1之间的交易信息,且基于包括有多个顶点的有向无环图构建,所述顶点表征相应的网络节点1之间的交易记录。
34.具体来说,每个网络节点1均存储有分布式记录数据集2,该分布式记录数据集2记录有数据处理系统中所有的网络节点1之间的交易信息,分布式记录数据集2中包括分布式的顶点和/或梢顶点。对于一个分布式记录数据集2中的各个顶点来说,如果一项交易记录被足够多的新的交易记录引用,则该交易记录变为“已通过”状态,其对应了一顶点,而没有“被通过”的交易记录对应被称为梢顶点。其中顶点中具有创世顶点,创世顶点可以在系统初始化时被其他顶点所引用。顶点和/或梢顶点基于有向无环图构建。对于该有向无环图来说,在图论中,图被定义为g=(v,e),其中v是顶点的集合,e是边的集合。如果(u,v)和(v,u)是两条方向相反的边,则g是一个有向图,环是从某个顶点出发最后又回到该顶点的一条有向路径,而本公开中所述的有向无环图便是不存在这种环的有向图。本实施例中的有向无环图上具有顶点和/或梢顶点,和/或梢顶点表征相应的网络节点1之间的交易记录,从而可以通过顶点和/或梢顶点来得到该交易记录或者进行相应的响应。
35.所述分布式记录数据集2可以配置为:对于各个顶点,在一顶点被其他顶点所引用的情况下,在该顶点与其他顶点之间建立有向边;在该顶点没有被预定数量的其他顶点所引用的情况下,将该顶点转化为梢顶点。
36.具体来说,分布式记录数据集2中的各个顶点均可以被其他顶点引用,例如第二顶点引用了第一顶点,顶点表征相应的网络节点1之间的交易记录,该引用关系,能够表示第一顶点所表征的交易记录被第二顶点所表征的交易记录所引用。第一顶点与第二顶点之间建立有有向边,该有向边能够表示上述的引用关系。此外,如果第一顶点再被第二顶点所引用的情况下,还同时被多个其他顶点所引用,如还同时还被其他顶点引用,但是被引用的数量并没有超过预设数值时,则可以将该顶点转化为梢顶点,当然,作为梢顶点也可以在被超过预设数值的顶点所引用的情况下转换为顶点。
37.所述分布式记录数据集2进一步配置为:在网络节点1之间产生交易记录的情况下,至少基于所产生的交易记录对应的预处理的顶点的可信度对所产生的交易记录进行验证,并在验证通过后,在所述分布式记录数据集2中添加所产生的交易记录的对应顶点,并使对应的网络节点1对所产生的交易记录进行响应。
38.具体来说,由于每个网络节点1中均具有分布式记录数据集2,因此在网络节点1之间产生交易记录后,分布式记录数据集2将对该交易记录进行验证,即至少基于所产生的交易记录对应的顶点(此时还未将其添加到分布式记录数据集2中)的可信度进行验证,能够有效提高交易的安全性。而验证的手段可以通过对多个子信息进行验证而实现,例如可以对以下至少一个子信息进行验证来实现:实际交易记录info,如交易账户、金额、明细、时间戳等;网络节点1身份id;交易识别码mc和对应的电子签名sign,可通过cash-createmc(sk,info)获得;被引用交易的地址addr1,...,addrr,可通过梢节点选取算法获得;信息的电子签名σ,可通过sign(sk,msg)获得,msg=(info,id,mc,sign,addr1,...,addrr)。通过对上述的子信息进行验证后,如果均能够通过或主要的子信息可以通过验证的情况下,则交易记录对应的顶点的可信度符合要求,在所述分布式记录数据集2中添加所产生的交易记录的对应顶点,从而使得所有的网络节点1均能够记录该交易记录。由于交易记录通过验证,与该交易记录相关的网络节点1对所产生的交易记录进行响应,例如可以将交易资金从一个网络节点1转移到另一个网络节点1,或者相关的网络节点1完成其他的与该交易记录对对应的任务。
39.该数据处理系统能够对网络节点1之间的交易记录进行监控,有效的对该交易记录进行验证,并在验证通过后能够及时准确的对网络节点1的基于有向无环图构造的分布式记录数据集2进行动态调整,从而准确的被记录在各个网络节点1的分布式记录数据集2中,提高了交易数据记录和验证的效率,并且在不需要消耗过多计算能力的基础上提高交易的安全性和可信度。
40.在本公开的一个实施例中,所述顶点的可信度高于所述梢顶点的可信度。所述分布式记录数据集2配置为基于所述网络节点1之间的产生的交易记录,利用预设可信度模型对所述顶点和/或所述梢顶点的可信度进行调整。
41.具体来说,分布式记录数据集2中的顶点和梢顶点均具有可信度,交易记录对应的顶点的可信度与相应的网络节点1的信用值相关联,网络节点1的信用值随网络节点1的交互行为而做出相应的调整。顶点的可信度高于梢顶点的可信度。网络节点1之间进行数据交互时会生成相应的交易记录,该交易记录中的具体内容可以体现出相应的顶点和/或所述梢顶点的可信度的相关信息。本实施例中利用预设可信度模型对交易记录进行分析,从而根据分析结果对相应的顶点和/或所述梢顶点的可信度进行调整。预设可信度模型可以根据实际需要预先构建,例如根据网络节点1的行为变化以及结合对行为的奖惩机制来对交易记录对应的顶点的可信度做出调整。
42.下面结合一个具体实施例进行举例说明,每个网络节点i将记录下数据处理系统中各网络节点j对应的信用值,记作crediti(j)。crediti(j)是个介于0和1之间的值,网络节点将按照以下的标准被划分为4个集合:
43.kh={j:h≤crediti(j)≤1};
44.kf={j:0.5≤crediti(j)《h};
45.k
l
={j:l≤crediti(j)《0.5};
46.ks={j:0≤crediti(j)《l}。
47.其中,参数可以设置为l=0.2,h=0.8。信用值crediti(j)统一储存在网络节点的基于rdma服务的rdma存储区中,如果j是一个新加入网络的未知网络节点1,在初始化时,crediti(j)统一设为0.5。信用值会随着网络节点1的行为而变化,具体的奖惩机制将在随后内容中说明。
48.类似地,对每项交易记录v(对应有顶点)也可以定义一个可信度。假设交易记录u和交易记录v分别由网络节点i和网络节点j生成并提交。当网络节点j生成记录v时,j将v的初始可信度confj(v)记录下来:
49.confj(v)

λ
·
creditj(j);
50.另外,当网络节点i接受到网络节点j提交记录v时,网络节点i也会给交易记录v设置一个初始可信度:
51.confi(v)

λ
·
crediti(j),
52.其中,可以设定λ=0.5。可信度是个[0,1]中的值,表示成为“已通过”状态的几率。创世顶点的可信度定义为1。
[0053]
由于不同网络节点1更新可信度的方式是一样的,所以在不引起混淆的情况下省略下标,直接写作conf和credit。当v引用u时,(v,u)将会添加至边的集合e中,且u的可信度作如下更新:
[0054]
conf(u)

min(1,conf(u) λ
·
credit(j))。
[0055]
同时,从v到创世顶点v0的有向路径上的其他梢顶点w的可信度都将发生如下更新:
[0056]
conf(w)

max(conf(w),conf(u))。
[0057]
可见,conf(v)随时间单调递增,一旦达到1后,conf(v)不再发生更新。
[0058]
结合可信度的定义,如果交易v同时满足以下条件,则网络节点1将交易v视为“已通过”状态,并从梢顶点集v
tip
中移除:
[0059]
顶点v的入度d-(v)≥2,即有超过两条交易直接引用v;
[0060]
交易v的可信度conf(v)=1.
[0061]
则梢顶点集v
tip
可以写作:
[0062]vtip
={v≠v0:d-(v)<2∨conf(v)<1}。
[0063]
此外,本公开实施例涉及到了利用rdma服务和cash(counter assignment service in hardware)两种硬件服务相结合,提高系统对拜占庭错误的容忍程度,可以将rdma和cash这两种服务写入安全硬件中,与操作系统分离,限制了拜占庭错误发生的几率。其中,该rdma(remote direct memory access)是一种与处理器、缓存和操作系统分离的内存数据交换服务,具有吞吐量高、数据传输速度快、延迟低等优点,它可以将数据传输协议直接放在网络接口卡上实现,可以使一台设备上通过网络直接读取另一台设备的存储的数据。
[0064]
在本公开的一个实施例中,所述分布式记录数据集2进一步配置为:在网络节点1之间产生交易记录的情况下,对所述有向无环图中的所述梢顶点进行遍历;获取遍历过程中出现次数符合预设次数且没有发生冲突的梢顶点,以使所产生的交易记录对应的顶点对其进行引用。
[0065]
具体来说,发生冲突的梢顶应该尽量避免交易记录对其进行引用,网络节点1之间产生交易记录对应的顶点尽量让其引用未发生冲突且出现次数较多的梢顶点,或者引用发生冲突但不超过预设次数的梢顶点。这将尽量减少对当前的顶点的信用度的影响。本实施例中,对梢顶点进行遍历获取遍历过程中出现次数符合预设次数且没有发生冲突的梢顶点,当然该预设次数可以根据实际使用场景来设定。获取到该梢顶点后便能够使所产生的交易记录对应的顶点对其进行引用,避免了对顶点的信用度造成影响。
[0066]
结合具体实施例,举例说明,网络节点i在生成交易记录v时,需要选取r∈[2,r]条旧记录u1,...,ur进行引用。可以采用加权马尔科夫链蒙特卡洛(weighted markov chain monte carlo,wmcmc)随机遍历算法。算法步骤如下:
[0067]
(1)初始化梢顶点选取数组u[1...iter]

{

,

,...,

}(符号
“⊥”
代表没有值)。
[0068]
(2)在第it次遍历中:
[0069]

选择从创世顶点为起始位置:u

v0;
[0070]

找出引用顶点u的所有顶点:n-(u)={w∈v:(w,u)∈e};
[0071]

从n-(u)中选择一个顶点x,选择概率为
[0072]

若conf(u)=1,则直接将顶点x作为移动目标:u

x。否则,计算移动概率并按以下方式移动:
[0073][0074]

若没有发生移动,则u[t]

u,并开始第t 1次遍历。若发生了移动,则回到步骤


[0075]
(3)遍历次数it达到iter后停止。选择u中出现次数最多的且没有发生冲突的r个梢顶点进行引用。若不足r个,则将r和r更新为u中不冲突的所有梢顶点个数,并引用这些梢顶点。
[0076]
其中,最大遍历次数iter应选择较大的数值,这样既可以增加选择到没有发生冲突的交易的概率,也能防止交易记录生成速度过快而导致分布式拒绝服务攻击现象,即ddos。此处可以将iter设置为100。另外,g中顶点的度随着r的增加而增加,交易的并行程度也随之提高。但反过来,同时进行的交易越多,交易之间发生冲突的几率也增加了,所以r也不能无限制增加。这里可以取r=8,能够适应上述遍历方式。
[0077]
在本公开的一个实施例中,所述交易记录包含与交易判断相关的信息,
[0078]
所述网络节点1进一步配置为:获取交易记录。可以在所获取的交易记录满足预设的交易判断条件的情况下,确定获取的交易记录被验证通过;并在所述分布式记录数据集2中添加与所获取的交易记录相对应的顶点,更新该顶点和其引用的顶点的可信度。
[0079]
具体来说,交易记录是否满足预设的交易判断条件,可以根据交易记录汇总与交易相关的信息来进行判断,交易相关的信息可以包括实际交易记录info,如交易账户、金额、明细、时间戳等;网络节点1身份id;交易识别码mc和对应的电子签名sign,可通过cash-createmc(sk,info)获得;被引用交易的地址addr1,...,addrr,可通过梢节点选取算法获得;信息的电子签名σ,可通过sign(sk,msg)获得,msg=(info,id,mc,sign,addr1,...,addrr)。如果上述的交易相关的信息全部或多数满足相应条件则可以认为交易记录满足预设的交易判断条件。从而将与所获取的交易记录相对应的顶点添加到分布式记录数据集2中,并更新该顶点和其引用的顶点的可信度。
[0080]
此外,上述涉及到了cash,其主要用来为交易分配交易识别码,这种标识是唯一的且单调递增的,且有电子签名,可以防止节点重复提交已通过验证的旧交易来骗取信用值。cash提供以下两种接口服务:生成:cash-createmc(sk,msg),为信息msg生成一个数值mc作为交易识别码,并返回电子签名sign;验证:cash-verifymc(pk,msg,mc,sign),验证信息msg、交易识别码mc和电子签名sign是否有效。若电子签名sign无效或数值mc已丧失时效性,则返回invalid,否则返回valid。其中,sk为私钥,pk为公钥。这里的公钥与私钥可以与信息加密所用的公钥和私钥有所区别,从而提高安全性。
[0081]
在一个实施例中,所述交易判断条件包括以下至少一种:所述交易记录对应的网络节点1的信用无异常;所述交易记录的电子签名合法;所述交易记录的交易识别码有效;所述交易记录所引用的交易记录的数目符合预设条件;所引用的交易记录已被标记为合法;所引用的交易记录之间无冲突;无引用自身的交易记录;所述交易记录的信息本身有
效;等等。如果交易记录符合上述的交易判断条件则可以认为该交易记录被验证通过。进而可以在分布式记录数据集2中添加与所获取的交易记录相对应的顶点。
[0082]
进一步举例来说,当网络节点j通过gossip协议收到i发送的记录v=(msg,σ)时,会对v进行以下一系列的验证:
[0083]
网络节点i的信用是否异常,即检验creditj(i)是否小于l,如果小于l则网络节点i异常;
[0084]
调用verify(pk,msg,σ)验证信息的电子签名σ是否合法,如果不合法则网络节点i异常;
[0085]
调用cash-verifymc(pk,info,mc,sign)检验交易识别码是否真实且有效,如果不真实则网络节点i异常;
[0086]
引用数目r是否大于或等于2,如果不是则网络节点i异常;
[0087]
所引用的记录是否已被标记为合法,如果不合法则网络节点i异常;
[0088]
引用的交易之间是否有冲突,如果有冲突则网络节点i异常;
[0089]
是否引用了网络节点i自己的交易,如果引用了自身则网络节点i异常;
[0090]
交易记录本身info是否有效,如果无效则网络节点i异常。
[0091]
如果以上各项全部通过验证,则将交易记录对应的顶点v加入有向无环图中,更新顶点v及其引用的顶点的可信度,并更新梢顶点集合vtip。但上述验证步骤中若有任意一项未通过,则将该交易记录标记为不合法。通过上述的多个验证步骤,能够更加准确的完成了对获取到的交易记录的验证。
[0092]
在本公开的一个实施例中,数据处理系统中各个网络节点1的信用值并不是固定的,可以随所述网络节点1的交互行为而做出相应的调整。具体的,如果网络节点1的行为合乎规范,则其信用值会得到相应的提升,否则信用值就会下降。若网络节点1的信用值偏低,则需要被更多的交易记录引用才能通过,这便降低了低信用值网络节点1交易通过的几率。因此,网络节点1需要规范行为,以便交易更高效地进行。为了能够对网络节点1的信用值进行动态的调整,本公开中针对网络节点1的信用值设置了奖惩模型,该奖惩模型能够根据网络节点1的交互行为而对其信用值进行增加或降低。
[0093]
一方面,所述网络节点1的信用值根据相应的交易记录中交易数量以及交易时间的变化而发生变化;和/或,所述网络节点1的信用值根据所引用交易记录的冲突信息而做出调整。具体的,网络节点1的信用值可以随着交易数量以及交易时间的增加而增加,和/或,网络节点1的信用值可以根据所引用交易记录的冲突信息的减少而增加等。
[0094]
另一方面,数据处理系统进一步配置为,对于各个网络节点1,如果出现以下至少一种情况则降低其信用值:
[0095]
其他网络节点确定该网络节点1的交易记录与其他交易记录发生冲突;
[0096]
其他网络节点确定该网络节点1所引用的网络节点之间发生冲突;
[0097]
该网络节点1仅引用其他网络节点的已被验证通过的通过信息;
[0098]
该网络节点1出现信息传输不一致或电子签名无效。
[0099]
具体来说,如果该网络节点1的交易记录与其他交易记录发生冲突,如账目冲突,签名冲突,引用冲突等,则输出处理系统可以根据其他网络节点提供的信息来降低该网络节点1的信用值,从而降低其他与其相关的网络节点的安全风险。相关的,该网络节点1可以
引用数据处理系统中的其他网络节点,如果该网络节点1所引用的网络节点发生了冲突,那么该网络节点1的交易记录必然是不可信程度增加,从而数据处理系统可以降低该网络节点1的信用值。如果该网络节点1仅引用其他网络节点的已被验证通过的通过信息,则可以认为该网络节点1为“懒惰节点”,仅简单的引用“已通过”状态的交易记录,这不利于提高通过效率,因此分布式记录数据集2可以相应的降低该网络节点1的信用值。如果该网络节点1出现信息传输不一致或电子签名无效,可以认为该网络节点1的交互行为可能已经出现错误,从而可以相应的降低该网络节点1的信用值。
[0100]
下面结合一个具体实施例来进行说明,网络节点i提交的合法的交易记录v变为“已通过”状态后:
[0101][0102]
其中,s为交易记录v的交易额,t为交易记录v从提交到通过经历的时间,α∈(0,1)为常数。交易额越大且通过用时越短,信用值提升越高。同时,若交易记录v引用了r个其他没有冲突的交易记录,则网络节点i的信用值也会得到提升:
[0103]
credit(i)

min(1,credit(i) βlog(r-0.8)),
[0104]
其中β∈(0,1)为常数。网络节点引用的无冲突交易记录越多,其信用值提升越高。但如果只引用一项交易记录,信用值反而会降低。这样也可以激励引用更多交易记录的行为,加快交易记录通过的速度,提升系统的效率。虽然引用更多交易记录有机会提高信用值,但也增加了引用交易记录发生冲突的几率。因此,选择适中的r值才是比较理性的做法。这里可以取α=β=0.05。
[0105]
当其他网络节点发现网络节点i提交的交易记录v与其他交易记录发生冲突时,网络节点i的信用值会被进行下面的调整:
[0106]
credit(i)

γ
·
credit(i),
[0107]
其中,γ∈(0,1)为常数。如果交易记录v引用的交易记录之间存在冲突,网络节点i的信用值也会下降:
[0108][0109]
其中ctd为发生冲突的交易数目,δ∈(0,1)为常数。
[0110]
接收到交易记录v的网络节点会检测是否引用了网络节点i自己的交易记录。如果有,则降低网络节点i的信用值:
[0111][0112]
其中r为交易记录v引用的网络节点i的交易记录的数目,ε∈(0,1)为常数。
[0113]
对于数据处理系统中存在“懒惰节点”的问题,即网络节点简单地引用“已通过”状态的交易记录(或引用创世顶点),这不利于提高交易记录通过的效率。分布式记录数据集2虽然允许这种行为,但会以降低信用值作为“懒惰”的惩罚:
[0114][0115]
其中apprv是引用的已通过的交易记录,ζ∈(0,1)为常数。
[0116]
当其他网络节点检测到网络节点i发生其他拜占庭错误(如信息传输不一致、电子签名无效等)时,也降低网络节点i的信用值:
[0117]
credit(i)

max(0,credit(i)-η),
[0118]
其中η∈(0,1)为常数。
[0119]
常数的选取反映了系统对网络节点不规范行为的容忍程度,这里可以取γ=0.95,δ=ε=ζ=0.8,η=0.2。
[0120]
在本公开的一个实施例中,所述网络节点1进一步配置为通过如下的至少一种处理对自身的信用值进行更新:
[0121]
自所述网络节点1上一次信用值更新操作后,所述网络节点1接收到的交易记录达到预定数量后,启动对自身的信用值进行更新的操作;和/或
[0122]
所述网络节点1从异常状态中恢复为正常状态后,启动对自身的信用值进行更新的操作。
[0123]
具体来说,为了防止一些网络节点1因为网络断开或其他原因导致的信息滞后,本实施例中需要对网络节点1的信用值进行定期或不定期更新。信用同步线程单独运行,不影响其他线程。下面结合一个具体实施例进行说明:
[0124]
首先可以对网络节点1定期同步更新信用值以及不定期同步更新信用值。定期同步:可以自上一次更新以来,接收到的新交易记录达到一定数目之后触发;不定期同步:可以从异常状态中恢复后触发。
[0125]
虽然两种更新操作触发条件不同,更新的方式具有共同点。
[0126]
第一:读取(如rdma读取)kh中所有节点k储存的信用值:
[0127]ck
(j)

rdma-read(k,creditk(j));
[0128]
第二:将crediti(j)(j∈v且i≠j)更新为:
[0129][0130]
第三:将crediti(i)更新为:
[0131][0132]
注意,网络节点i自身的信用值是其他高信用值网络节点k的crediti(i)的平均值,与crediti(i)原本的值无关,这可以防止网络节点1篡改自身的信用值造成的影响。
[0133]
在本公开的一个实施例中,所述分布式记录数据集2进一步配置为:定期对存储的交易记录进行维护操作,其中包括清除超出预定时间没有被验证通过的交易记录,以及相对应的顶点。
[0134]
在本公开的一个实施例中,所述维护操作还包括:去除所述有向无环图中的创世顶点,转而将产生交易记录却被隐藏掉该交易记录的顶点作为起始顶点。
[0135]
具体的,为了防止交易记录(其对应有顶点,也可以将交易记录看做顶点),占据过
多存储空间,网络节点1需要定期对分布式记录数据集2进行自动维护,省略比较陈旧的(如3年前的)交易记录,清除长时间(如7天)没有成为“已通过”状态的交易记录。维护后,如果交易记录v直接引用的交易被省略,则将交易记录v加入集合v0。维护后的账本不再有创世顶点v0,而是以集合v0中的交易记录作为起始。同时,梢顶点的选取不再从创世顶点v0开始,而是从集合v0中随机选择一个顶点u作为起始位置,选择概率为
[0136][0137]
在本公开的一个实施例中,所述数据处理系统还包括交易平台4,所述交易平台4为用户端5随机分配所述网络节点1,以使用户通过所述用户端5与相应的所述网络节点1进行数据交互。
[0138]
具体的,交易平台4设置与用户端5与网络节点1之间,网络节点1并不固定对应用户端5,而是交易平台4随机为用户端5随机分配所述网络节点1,从而进一步提高用户端5与数据处理系统之间的数据交互的安全性。
[0139]
在本公开的一个实施例中,在所述网络节点1还存储有第一合约3,所述交易平台4基于所述第一合约3与所述分布式记录数据集2进行数据交互。
[0140]
具体的,各个网络节点1中均存储有第一合约3以及分布式记录数据集2,交易平台4可以基于该第一合约3实现用户端5与分布式记录数据集2进行数据交互。
[0141]
下面结合一个买卖双方的交互的具体实施例并结合图1进行说明,交易平台4(可以为p2p)为用户端5随机分配基于p2p的网络节点1,用于发布供需要求、交易匹配和交易记录。
[0142]
交易匹配通过第一合约3自动执行。这里交易匹配可以采用差别k-double auction(k-da)算法。买方b发布购买价格需求bp,卖方s发布销售价格sp。将所有bp组成的列表按升序排列,所有sp组成的列表按降序排列,然后按顺序配对。如果找到一对(bpi,spj)使得bpi≥spj,则网络节点i与j之间发生交易,交易金额为
[0143]
p=kbpi (1-k)spj,
[0144]
其中k为(0,1)中的常数。
[0145]
用户之间发生交易时,交易记录会被提交至数据处理系统。一旦交易记录通过,符合交易配额的能量将会从卖方传输给买方,而对应金额的资金则会从买方流向买方。
[0146]
在交易过程中,使用本公开各个实施例的能量交易平台4,可以在无中心信息认证机构的条件下,快速、有效的实现小规模、分布式的能量交易,并能显著节省交易成本,保证交易的公平性和有效性。
[0147]
以上实施例仅为本公开的示例性实施例,不用于限制本公开,本公开的保护范围由权利要求书限定。本领域技术人员可以在本公开的实质和保护范围内,对本公开做出各种修改或等同替换,这种修改或等同替换也应视为落在本公开的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献