一种一致性数据累积协同组装方法与流程

文档序号:12752486阅读:309来源:国知局
一种一致性数据累积协同组装方法与流程

本发明属于计算机技术领域,具体涉及网络并行计算环境中,多节点对等审核、协同组装公有共享数据的方法。



背景技术:

互联网应用中存在着大量离散数据的存储和处理需求,这些数据同时具有逻辑离散性和时间离散性的特点,在传统的基于事务的数据处理方式下显得尤为低效且封闭,由此业界逐渐改用大数据技术来应对这类离散性数据的读写和处理需求,改善了性能和扩展能力,但出于对性能和操作性的考量,大数据技术一定程度上降低了对数据一致性的要求。因此当网络中的离散节点需要以各自持有离散数据形成公有共享数据,并要求该数据同时满足在校验逻辑上公认的一致性时(如分布式多节点分别同时维护一组离散交易数据并需要保持交易的全局一致性;多个处理节点各自离散的接收或产生一组输入数据后实时的协调生成一组公认的一致性数据等),则必须通过一些特定仲裁和协调机制来实现。目前的仲裁方法一般包括:中心服务器仲裁、代理节点仲裁、加权节点仲裁。

以上仲裁方法均为中心化/准中心化协调手段,需要设置和运行一组中心节点/准中心节点,其他节点向该组节点注册,使用中心化的协调和仲裁机制实现对数据的组装,并相应的为数据建立一致性校验关系。这是目前分布式计算应用对公有共享数据一致性的常见的处理方式。

此外,还有一种采用POW(工作量证明)算法来协调节点的数据组装行为的方法,即POW仲裁方法,被用在完全去中心化计算环境中。

综上,在目前的网络运算中,采用中心化的仲裁机制会降低系统的并行性,增加单点失效的风险。同时中心节点因其重要性,也成为网络攻击和劫持的对象。另外中心化仲裁手段也不适用于去中心化计算的应用场合。而目前的对去中心化应用支持较好的POW仲裁方法需要耗费大量的计算资源,仲裁效率也非常低。



技术实现要素:

针对现有技术中存在的技术问题,本发明的目的在于提供一种一致性数据累积协同组装方法。本发明利用节点间信任累积和倍增的方式,实现了一种多节点协同组装具有一致性校验关系的公有共享数据的方法:

任一网络节点A以自有数据块DA,与网络上的任意对等节点B的数据块DB,按照节点间约定的公认规则fcheck相互审核对方的数据块,其中,节点A和B间通过广播方式相互发现,公认规则fcheck在节点运行的软件中预定义或由A、B节点协商产生(下同);运行相同软件的节点一般遵循相同的通讯协议和公认规则。符合公认规则fcheck的数据块被视为可信数据块,由A、B节点分别按照约定的生成规则fcheck各自独立组装为数据块组[C]并交换组装结果,A、B节点分别使用生成规则fcheck相互审查组装结果,若组装结果相同则A、B节点结为信任伙伴,节点若持不同结果则将被对方忽略;信任伙伴节点将[C]视为新的自有数据,各自重复以上步骤,寻找其他节点按照生成规则fcheck不断扩展数据块组[C],直至达到生成规则fcheck的限制条件;网络中允许同时组装任意多个数据块组,多个数据块组[C]n由各节点分别独立审核和按照合并规则fjoin组装合并,合并后的数据块组广播发送给其它节点进行审核,不符合合并规则fjoin的结果被抛弃,一致的组装结果向网络广播,由网络中的节点分别独立审查并按照规则fsign封装,节点间通过广播相互审核封装结果,受最多数节点支持的封装结果即为参与节点公认的公有共享数据块组。

本发明的技术方案为:

一种一致性数据累积协同组装方法,其步骤为:

1)有数据添加需求的任一网络节点A按照生成规则fcheck将数据D封装为待认证的数据块DA;然后节点A向网络广播互信组装邀请;

2)网络节点B根据生成规则fcheck审查收到的互信组装邀请;如果节点A的互信组装邀请通过审查,则节点B将该互信组装邀请中的数据块DA与节点B的待认证数据块DB按照生成规则fcheck进行组装,然后将得到的组装结果[C]回复给节点A;

3)节点A验证该组装结果[C]的合法性,如果验证通过则回复节点B,并与节点B结成互信伙伴;

4)组成互信伙伴的节点检查存储的组装结果[C]是否达到组装规则fbuild的设定条件;如果未达到该设定条件,则组成互信伙伴的节点分别向网络广播互信组装邀请,然后进行步骤5),直至达到该设定条件;

5)网络节点i根据生成规则fcheck审查收到的互信组装邀请,如果通过审查,则节点i将该互信组装邀请中的组装结果[C]与节点i的待认证数据块Di按照生成规则fcheck进行组装,然后将更新后的组装结果[C]回复给邀请节点;邀请节点根据生成规则fcheck验证该回复,若验证通过,则将该更新后的组装结果[C]发送给互信伙伴中的其他节点审核,当该互信伙伴中的所有节点均审核通过后,该互信伙伴中的节点保存该更新后的组装结果[C],并在该互信伙伴中增加该节点i。

进一步的,网络中同时存在多个组装结果,每一组装结果对应一互信伙伴群;组装结果i对应的互信伙伴群由对该组装结果i审核通过的节点构成。

进一步的,各互信伙伴群向网络广播合并邀请,收到该合并邀请的互信伙伴群的群内节点根据生成规则fcheck审核并记录其他互信伙伴群的组装结果,将审查通过的组装结果构成一组装结果列表;然后各互信伙伴群之间交换组装结果列表,选取共同认可的组装结果;然后按合并规则fjoin将共同认可的组装结果组成公认数据组[C]all

进一步的,所有参与生成并认可该公认数据组[C]all的节点按照同一封装规则fsign独立对[C]all进行封装和添加一致性校验数据,得到公有共享数据;各互信伙伴群中的节点分别持有该公有共享数据,节点间的互信关系解除。

进一步的,网络中各节点分别对多个组装结果独立审核,然后将审核通过的组装结果按照合并规则fjoin组装合并,然后将合并后的数据块组发送给其他节点审核;节点将符合合并规则fjoin的数据块组向网络广播,网络中的节点对收到的数据块组分别独立审查并按照合并规则fsign封装,然后节点间通过广播相互审核封装结果,将受最多数节点支持的封装结果作为公有共享数据块组。

进一步的,当网络中仅存在一个组装结果[C]时,该组装结果[C]对应一个互信伙伴群,该组装结果[C]即为公认数据组[C]all

进一步的,该互信组装邀请包含待认证的数据块DA、生成规则fcheck;该互信组装邀请包含当前组装结果[C]、生成规则fcheck

进一步的,该生成规则fcheck为预定义的规则或由若干节点协商产生的规则。

进一步的,该生成规则fcheck包括fcheck难度系数、校验方式信息、当前信任链长度、组装顺序和期望链长度。

进一步的,该设定条件为期望链长度。

进一步的,步骤3)中,当节点A收到多个不同节点返回的组装结果[C],且各组装结果[C]均验证通过时,选择最先收到且验证通过的验证结果对于的节点进行回复,并与该节点结成互信伙伴。

与现有技术相比,本发明的积极效果为:

网络节点不需依赖特定的中心化协调手段,即可自行组织和共同组装一致性数据;数据组装过程是开放的和可扩展的;数据组装过程由参与节点分别独立审核,恶意数据和恶意节点被忽略,可有效抵御恶意攻击和意外错误;组装的数据由参与节点分别持有并相互验证,可防止恶意篡改或劫持;数据组装效率较高,组装规模以2n增长,可在短时间内完成大量数据和节点的互审及协调。

附图说明

图1示例了本发明中的节点数据组装过程;

(a)数据组装阶段1,(b)数据组装阶段2,(c)数据组装阶段3,

图2示例本发明中的数据组装节点的执行流程。

具体实施方式

下面结合附图对本发明进行进一步详细描述。

实施例1:

1,如图2所示,有数据添加需求的任一网络节点A将自有数据D按照生成规则fcheck封装为待认证的数据块DA

2,节点A向网络广播互信组装邀请,该邀请包含待认证的数据块DA、组装要求生成规则fcheck(包括难度系数定义,校验方式定义,当前信任链长度,期望链长度,组装顺序等信息);

3,任一监听节点B收到互信组装邀请后,选择符合组装条件的邀请,按照生成规则fcheck审查该邀请中数据块的合法性,忽略请求中不符合组装期望的请求和难度系数、校验方式、当前信任链长度、期望链长度等要求不合法的请求。将合法请求中的数据与本节点的待认证数据块DB按照生成规则fcheck组装成为{DA,DB}并称作[C](如图1所示),然后将组装结果[C]回复给邀请方节点A,请求审核;

4,邀请方节点A收到组装回复,根据生成规则fcheck验证该组装[C]的合法性,并回复受邀方节点B,结成互信伙伴。若组装回复不合法则节点A忽略该回复,监听其他节点的回复。若监听超时,重复步骤2;

5,组成互信伙伴的节点必然拥有一致的组装结果[C],并各自存储,若未达到组装规则fcheck中期望链长度的限制,则继续向网络广播互信组装邀请。若已达生成规则fcheck中期望链长度的限制,视同[C]已组装结束,则跳转至步骤7;

6,互信伙伴中的任意一节点在监听时收到组装邀请/组装回复后,继续根据生成规则fcheck验证该邀请/回复,若是合法组装结果,则提交给互信伙伴中的其他节点审核该组装结果的一致性,获得所有互信节点的审核认可后,节点A及其互信节点在组装结果[C]中增加该新回复所对应的数据块(如图1所示),互信伙伴中增加该新节点,形成互信伙伴群,重复步骤5;

7,由于并行处理的原因,网络中同时存在多个互信伙伴群和多个已完成组装的[C]。互信伙伴群向网络广播合并邀请,同时监听网络上的其他合并请求;该合并邀请包括组装结果[C]本身和一个识别域,该识别域表明其为一个合并邀请;该合并邀请也可仅仅广播合并邀请包,待有节点响应后再发送[C]给对方。

8,互信伙伴群尽可能收集监听到的合并邀请,并由群内节点根据生成规则fcheck审核和记录其他互信伙伴群的组装结果[C]的合法性,最终形成当前群认可的[C]列表;

9,各互信伙伴群之间交换获本群认可的[C]列表,选取共同认可的[C]按合并规则fjoin组成[C]all,[C]all成为互信伙伴群的公认数据组;

10,所有参与生成并认可[C]all的节点按照同一封装规则fsign独立对[C]all进行封装和添加一致性校验数据,该封装结果在各节点计算结果应一致(或节点间再次广播封装结果或封装结果的数字摘要来确认计算结果的一致性),获多数节点一致性认可的封装结果即为合法的公有共享数据。数据完成封装后,互信伙伴群中的节点分别持有合法公有共享数据,节点间的互信关系解除。组装过程中未能通过审核而被抛弃的数据所对应的节点,需持自有数据D重复步骤1重新尝试新一轮的数据组装。

实施例2

1,如图2所示,有数据添加需求的任一网络节点A将自有数据D按照生成规则fcheck封装为待认证的数据块DA

2,节点A向网络广播互信组装邀请,该邀请包含待认证的数据块DA、组装要求生成规则fcheck(包括难度系数定义,校验方式定义,当前信任链长度,期望链长度,组装顺序等信息);

3,任一监听节点B收到互信组装邀请后,选择符合组装条件的邀请,按照生成规则fcheck审查该邀请中数据块的合法性,忽略请求中不符合组装期望的请求和难度系数,校验方式,当前信任链长度,期望链长度等要求不合法的请求。将合法请求中的数据与本节点的待认证数据块DB按照生成规则fcheck组装成为{DA,DB}并称作[C](如图1所示),然后将组装结果[C]回复给邀请方节点A,请求审核;

4,邀请方节点A收到组装回复,根据生成规则fcheck验证该组装[C]的合法性,并回复受邀方节点B,结成互信伙伴。若组装回复不合法则节点A忽略该回复,监听其他节点的回复。若监听超时,重复步骤2;

5,组成互信伙伴的节点必然拥有一致的组装结果[C],并各自存储,若未达到组装规则fcheck中期望链长度的限制,则继续向网络广播互信组装邀请。若已达生成规则fcheck中期望链长度的限制,视同[C]已组装结束,则跳转至步骤7;

6,互信伙伴中的任意一节点在监听时收到组装邀请/组装回复后,继续根据生成规则fcheck验证该邀请/回复,若是合法组装结果,提请节点A及其互信节点在组装结果[C]中增加该新回复所对应的数据块(如图1所示),互信伙伴中增加该新节点,按照互信依赖链形成互信伙伴群,重复步骤5;

7,由于并行处理的原因,网络中同时存在多个互信伙伴群和多个已完成组装的[C]。互信伙伴群向网络广播合并邀请,同时监听网络上的其他合并请求;

8,互信伙伴群尽可能收集监听到的合并邀请,并由群内节点根据生成规则fcheck审核和记录其他互信伙伴群的组装结果[C]的合法性,最终形成当前群认可的[C]列表;

9,各互信伙伴群之间交换获本群认可的[C]列表,选取共同认可的[C]按合并规则fjoin组成[C]all,[C]all成为互信伙伴群的公认数据组;

10,所有参与生成并认可[C]all的节点按照同一封装规则fsign独立对[C]all进行封装和添加一致性校验数据,除必须的校验码以外,fcheck和fsign也作为校验规则添加进一致性校验数据中。该封装结果在各节点计算结果应一致(或节点间再次广播封装结果或封装结果的数字摘要来确认计算结果的一致性),即为合法的公有共享数据。数据完成封装后,互信伙伴群中的节点分别持有合法公有共享数据,节点间的互信关系解除。组装过程中未能通过审核而被抛弃的数据所对应的节点,需持自有数据D重复步骤1重新尝试新一轮的数据组装。

实施例3:

1,如图2所示,有数据添加需求的任一网络节点A将自有数据D按照生成规则fcheck封装为待认证的数据块DA

2,节点A向网络广播互信组装邀请,该邀请包含待认证的数据块DA、组装要求生成规则fcheck(包括难度系数定义,校验方式定义,当前信任链长度,期望链长度,组装顺序等信息);

3,任一监听节点B收到互信组装邀请后,选择符合组装条件的邀请,按照生成规则fcheck审查该邀请中数据块的合法性,忽略请求中不符合组装期望的请求和难度系数,校验方式,当前信任链长度,期望链长度等要求不合法的请求。将合法请求中的数据与本节点的待认证数据块DB按照生成规则fcheck组装成为{DA,DB}并称作[C](如图1所示),然后将组装结果[C]回复给邀请方节点A,请求审核;

4,邀请方节点A收到组装回复,根据生成规则fcheck验证该组装[C]的合法性,并回复受邀方节点B,结成互信伙伴。若组装回复不合法则节点A忽略该回复,监听其他节点的回复。若监听超时,重复步骤2;

5,组成互信伙伴的节点必然拥有一致的组装结果[C],并各自存储,若未达到组装规则fcheck中期望链长度的限制,则继续向网络广播互信组装邀请。若已达生成规则fcheck中期望链长度的限制,视同[C]已组装结束,则跳转至步骤7;

6,互信伙伴中的任意一节点在监听时收到组装邀请/组装回复后,继续根据生成规则fcheck验证该邀请/回复,若是合法组装结果,则提交给互信伙伴中的其他节点审核该组装结果的一致性,获得所有互信节点的审核认可后,节点A及其互信节点在组装结果[C]中增加该新回复所对应的数据块(如图1所示),互信伙伴中增加该新节点,形成互信伙伴群,重复步骤5;

7,互信伙伴群尽可能收集监听到的组装邀请,网络节点参与组装时也优先选择互信伙伴多的群加入,一段时间后,最终优势群形成当前网内互信节点最多的互信伙伴群,称为当前最大互信群;

8,最大互信群对外广播[C]请求封装确认,任一节点均可参与封装确认,认可[C]的节点按照同一封装规则fsign独立对[C]进行封装和添加一致性校验数据,该封装结果在各节点计算结果应一致(或节点间再次广播封装结果或封装结果的数字摘要来确认计算结果的一致性),即为合法的公有共享数据。数据完成封装后,互信伙伴群中的节点分别持有合法公有共享数据,节点间的互信关系解除。组装过程中未能通过审核而被抛弃的数据所对应的节点,需持自有数据D重复步骤1重新尝试新一轮的数据组装。

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