一种数据存储方法、系统及设备与流程

文档序号:11275955阅读:278来源:国知局
一种数据存储方法、系统及设备与流程

本发明涉及计算机信息处理技术领域,具体而言,涉及一种数据存储方法、系统及设备。



背景技术:

随着信息技术的快速发展,人们的日常生活中涉及到的数据内容和数据处理过程也越来越多。由于信息化发展的需要,数据处理的时效性和安全性变得越来越重要,尤其,当某一目标事件发生后,需要对该事件的相关数据进行存储,以便于后续对目标事件的发生过程进行追溯。

当前,相关技术中给出的一种数据存储方法,该方法主要包括:任一参与节点在确定目标事件发生后,首先,生成该目标事件发生后产生的数据,然后,将该目标事件发生后产生的数据存储至本地内存,具体的,以用户的网购过程为例,该网购过程中的参与节点包括:购物平台、支付平台和物流平台;当购物平台确定购买事件发生后,购买平台生成该购物事件发生后产生的购物数据,并将该购物数据存储至本地内存;购物事件完成后,需要触发支付平台来执行支付事件,当支付平台确定支付事件发生后,支付平台生成该支付事件发生后产生的付款数据,并将该付款数据存储至本地内存;同样的,物流平台也采用类似的存储方式将产生的送货数据存储至本地内存。

在上述过程中,数据的创建者同时也是该数据的存储者,由于缺乏有效的监督机制,导致存储的数据的可信度较低。



技术实现要素:

有鉴于此,本发明实施例的目的在于提供一种数据存储方法、系统及设备,在数据存储过程中,由相关联的多个参与节点共同协商选举出一个参与节点来记录已建立的数据标签,这样能够使得各参与节点都参与数据的存储竞争与选举,形成了有效的监督机制,能够提高存储的数据的可信度,进而从源头上保证存储的所有数据的真实性和有效性。

第一方面,本发明实施例提供了一种数据存储方法,该方法包括:

第一参与节点确定目标事件发生后,为所述目标事件生成数据标签,所述数据标签中包含所述目标事件发生后产生数据的属性信息;

向第二参与节点发送数据标签存储请求,以便与所述第二参与节点竞争确定一个参与节点作为存储节点,由该存储节点存储所述数据标签并提供各参与节点共享;

其中,所述第二参与节点所参与事件与所述目标事件相关联。

第二方面,本发明实施例还提供了一种数据存储设备,该设备包括:

数据标签生成模块,用于在确定目标事件发生后,为所述目标事件生成数据标签,所述数据标签中包含所述目标事件发生后产生数据的属性信息;

存储请求发送模块,用于向第二参与节点发送数据标签存储请求,以便与所述第二参与节点竞争确定一个参与节点作为存储节点,由该存储节点存储所述数据标签并提供各参与节点共享;

其中,所述第二参与节点所参与事件与所述目标事件相关联。

第三方面,本发明实施例还提供了一种数据存储系统,该系统包括:第一参与节点和至少一个第二参与节点;

所述第一参与节点确定目标事件发生后,为所述目标事件生成数据标签,所述数据标签中包含所述目标事件发生后产生数据的属性信息;并向所述至少一个第二参与节点发送数据标签存储请求;

所述至少一个第二参与节点接收所述数据标签存储请求,并与所述第一参与节点竞争确定一个参与节点作为存储节点,由该存储节点存储所述数据标签并提供各参与节点共享;

其中,所述第二参与节点所参与事件与所述目标事件相关联。

第四方面,本发明实施例提供了一种数据存储设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,该处理器执行所述计算机程序时实现上述第一方面所述的方法的步骤。

第五方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面所述的方法的步骤。

在本发明实施例提供的数据存储方法、系统及设备中,该方法包括:第一参与节点确定目标事件发生后,为该目标事件生成数据标签;向第二参与节点发送数据标签存储请求,以便与第二参与节点竞争确定一个参与节点作为存储节点,由该存储节点存储上述数据标签并提供各参与节点共享;第二参与节点所参与事件与目标事件相关联。在数据存储过程中,由相关联的多个参与节点共同协商选举出一个参与节点来记录已建立的数据标签,这样能够使得各参与节点都参与数据的存储竞争与选举,形成了有效的监督机制,能够提高存储的数据的可信度,进而从源头上保证存储的所有数据的真实性和有效性。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本发明一实施例所提供的一种数据存储方法的流程示意图;

图2示出了本发明一实施例所提供的数据存储方法的实现原理示意图;

图3示出了本发明另一实施例所提供的数据存储方法的第一种流程示意图;

图4示出了本发明另一实施例所提供的数据存储方法的第二种流程示意图;

图5示出了本发明另一实施例所提供的数据标签的存储过程的实现原理示意图;

图6示出了本发明又一实施例所提供的一种数据存储方法的流程示意图;

图7示出了本发明实施例所提供的网购过程对应的数据存储方法的实现原理示意图;

图8示出了本发明实施例所提供的员工入职过程对应的数据存储方法的实现原理示意图;

图9示出了本发明实施例所提供的一种数据存储设备之一的结构示意图;

图10示出了本发明实施例所提供的一种数据存储系统的结构示意图;

图11示出了本发明实施例所提供的一种数据存储设备之二的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

考虑到相关技术中数据的创建者同时也是该数据的存储者,由于缺乏有效的监督机制,导致存储的数据的可信度较低。基于此,本发明实施例提供了一种数据存储方法、系统及设备,下面通过实施例进行描述。

本发明一实施例提供了一种数据存储方法,如图1所示,该方法包括如下步骤:

s101、第一参与节点确定目标事件发生后,为该目标事件生成数据标签,该数据标签中包含上述目标事件发生后产生数据的属性信息。

其中,该属性信息可以包括目标事件的参与者信息、数据产生时间或产生数据的格式等中的一种或多种。

s102、第一参与节点向第二参与节点发送数据标签存储请求,以便与第二参与节点竞争确定一个参与节点作为存储节点,由该存储节点存储上述数据标签并提供各参与节点共享。

其中,该第二参与节点所参与事件与上述目标事件相关联。

具体的,上述数据标签存储请求中可以包含数据标签,也可以不包含数据标签,当不包含数据标签时,在确定出存储节点后,再将数据标签发送给确定为存储节点的参与节点,由该参与节点将数据标签存储至预设区域。

进一步的,考虑到不同的数据标签所指向的数据的受众范围可能不同,该受众范围是由该数据标签所指向的数据的公开、共享或私密的需求决定的,可以采用如下过程确定上述第二参与节点:第一参与节点确定生成的数据标签所面向的受众类型,选取与该受众类型对应的至少一个参与节点作为上述第二参与节点,其中,上述受众类型包括:全社会、合作者、企业内部或部门内部。当采用区块链技术实施本方案时,各受众类型可以分别对应于区块链技术中的公有区块链、联盟区块链、私有区块链。

进一步地,存储节点可以将数据标签存储于本地,并提供每个参与节点按照存储节点在其本地存储的版本将数据标签获取到各自的存储设备中实现共享;存储节点也可以将数据标签存储于共享区域,参与竞争的每个参与节点均能够从该共享区域访问该数据标签,并根据该数据标签获得相应的数据。

在本发明提供的实施例中,在数据存储过程中,在数据产生的同时由相关联的多个参与节点共同协商选举出一个参与节点来记录已建立的数据标签,这样能够使得各参与节点都参与数据的存储竞争与选举,形成了有效的监督机制,能够提高存储的数据的可信度,进而从源头上保证存储的所有数据的真实性和有效性;另外,无论后续任意一个参与节点需要使用该目标事件发生后产生数据,均可以直接根据数据标签获得可信度高的数据,无需再单独对获取的数据进行真实性和有效性验证。

具体的,如图2所示的数据存储方法的实现原理示意图,在图2中显示有四个参与节点,四个参与节点分别为:事件参与者a、事件参与者b、事件参与者c、事件参与者d。

某一事件参与者在确定自身的目标事件发生后,为该目标事件生成数据标签(该数据标签中可以包含但不限于事件参与者信息、数据产生时间、产生数据的格式);由事件参与者a、事件参与者b、事件参与者c、事件参与者d共同竞争选举出一个存储节点。

每个事件参与者均可能作为自身生成的数据标签的存储节点,也可能作为其他事件参与者生成的数据标签的存储节点。

以事件参与者a为例,在图2中细箭头表示:针对上述某一事件参与者生成的数据标签,事件参与者a被选举为存储节点后,对该数据标签进行存储,从而提供其他事件参与者共享;粗箭头表示:事件参与者a对已存储的数据标签进行读取,从而获得所需的数据标签。

其中,由存储节点存储数据标签的技术方案,采用区块链技术实施时可以具体实施为:由存储节点将数据标签存储至区块链相应的区块中;每存储一个数据标签该区块链中增加一个区块,可见,该区块链由多个数据存储区块组成,且每个数据存储区块均记录了一个参与节点建立的数据标签。这样记录了完整证明相关联的多个事件发生或存在的所有数据,使得记录下来的数据标签所指向的数据是不可纂改、不可伪造、去中介自动化的。

另外,为了提高各参与节点竞争获取数据标签存储权的积极性,可以对被为存储节点的参与节点采取奖励措施:针对确定出的参与节点为第一参与节点的情况,可以具体实施为:接收数据处理系统依据区块链技术中的奖励机制对被选为存储节点的参与节点下发的存储奖励,其中,该存储奖励可以来源于各参与节点共同运营的基金项目。

本发明另一实施例提供一种数据存储方法,在该数据存储方法中,第一参与节点参与的目标事件发生,由第一参与节点生成数据标签,并发起对该数据标签的存储竞争。如图3所示,包括如下步骤:

s301、第一参与节点确定目标事件发生后,为该目标事件生成数据标签,该数据标签中包含上述目标事件发生后产生数据的属性信息,其中,该数据标签中携带有关联标识,该关联标识用于标识与目标事件相关联的关联事件。

本步骤中,为了保证已存储的数据标签的完整性和连续性,进而保证相关联的多个事件对应的多个关联数据的完整性和连续性,上述数据标签中携带有关联标识,该关联标识用于标识与上述目标事件相关联的关联事件。

s302、第一参与节点以关联标识为检索条件在已存储的数据标签中进行检索,确定前提事件对应的数据标签已经生成,其中,该前提事件为关联事件中发生在目标事件之前的事件。

进一步地,也可以在第一参与节点确定目标事件发生之后,且为该目标事件生成数据标签之前,执行上述步骤s302,这样第一参与节点在生成数据标签前,就验证前提事件对应的数据标签是否已生成,如果验证结果为前提事件对应的数据标签未全部生成,则可以停止执行为该目标事件生成数据标签的步骤,即在验证不通过的情况时,第一参与节点无需建立数据标签。针对所参与目标事件不具有前提事件的参与节点,也可以不执行步骤s302。

在本发明提供的另一实施例中,通过在数据标签中添加用于标识与目标事件相关联的关联事件的关联标识,并且以该关联标识为检索条件进行检索,确定目标事件之前的所有事件对应的数据标签均已存储后,再向其他参与节点发送数据标签存储请求,也就是说,只有确定在目标事件之前的前提事件均已完成,并且前提事件对应的数据标签均已存储,才触发第二参与节点共同竞争确定一个参与节点作为存储节点,这样能够保证数据的完整性和连续性;同时,由于每个参与节点接收到的目标事件执行请求可能存在真实度低、可靠性差的问题,如果目标事件之前已有完成的至少一个前提事件,说明在存储数据标签的区块链中已存在至少一个包含关联标识的数据标签的数据存储区块,此时,参与节点可以以该关联标识为检索条件进行检索,确定目标事件之前的所有前提事件对应的数据标签均已存储,进而验证接收到的目标事件执行请求的真实性和可靠性,从而确保其自身执行的目标事件的真实性和可靠性。

s303、向第二参与节点发送数据标签存储请求。

具体的,在进行上述数据标签存储请求的传输(本实施例中为发送操作)之后,可以采用步骤s304~至步骤s307确定存储节点:

s304、对预设数学难题进行求解。

s305、若s304中第一参与节点求解出预设数学难题,则将求解结果发送给上述第二参与节点。

s306、接收解出上述预设数学难题的第二参与节点得到的求解结果。

其中,步骤s304~步骤s305和步骤s306的执行没有严格的先后顺序。

s307、根据上述第一参与节点以及上述第二参与节点的求解结果确定上述存储节点。

在本发明提供的另一实施例中,各参与节点可以预先进行约定,对于发起数据标签存储的参与节点(这里为第一参与节点),可以在发送数据标签存储请求之后触发对预设数学难题进行求解,对于其他参与节点(这里为第二参与节点),可以在接收到数据标签存储请求后触发对该预设数学难题进行求解。通过使所有参与节点同时求解一个预设数据难题,根据每个参与节点求解结果来由大家共同选举出最终的存储节点。

本步骤中,可以将求解结果正确的参与节点确定为存储节点。其中,求解结果的正确性可以由第三方进行判断,也可以认为只要解出该预设数学难题得到的求解结果就是正确的,具体实施方式可以根据实际情况进行确定,这里并不限定。

如果存在多个求解结果正确的参与节点,则可以根据每个参与节点的求解完成时间来选举出最终的存储节点,将求解最快的且通过其他参与节点验证通过的参与节点作为最终的存储节点,基于此,如图4所示,步骤s307可以具体实施为步骤s3071~步骤s3075:

s3071、针对每个第二参与节点发送的求解结果,确定该求解结果中包含的时间戳与该求解结果的接收时间之间的时间差,其中,该求解结果包含求解完成的时间戳。

s3072、响应于确定的时间差小于预设时间差阈值,确定该第二参与节点通过时间戳验证。

本步骤中,若确定的时间差不小于预设时间差阈值,则确定该第二参与节点未通过时间戳验证。未通过时间戳验证的第二参与节点不能够被选为存储节点。

进一步地,设置时间差阈值时,可以考虑到网络传输延迟将时间差阈值设置的较大,在网络安全性要求较高的环境,也可以不考虑网络传输延迟将时间差阈值设置的较小,具体实施时可以根据实际情况进行确定,这里并不限制。

s3073、从上述第一参与节点以及通过时间戳验证的第二参与节点中,确定对应时间戳所表征时间最早的参与节点。

其中,确定出的对应时间戳所表征时间最早的参与节点可能是第一参与节点,也可能是第二参与节点,即:

s3074、针对确定出的参与节点为上述第一参与节点的情况,接收第二参与节点发送的确定结果,该确定结果用于指示上述第一参与节点被第二参与节点确定为上述存储节点。

本步骤中,说明与第二参与节点相比,第一参与节点对预设数学难题进行求解所用时间最短,且通过了第二参与节点对第一参与节点的时间戳验证;以及,

s3075、针对确定出的参与节点为任一第二参与节点的情况,向确定出的该任一第二参与节点发送确定结果,以指示该第二参与节点被确定为存储节点。

本步骤中,说明与第一参与节点和除确定出的第二参与节点以外的其他第二参与节点相比,该确定出的第二参与节点对预设数学难题进行求解所用时间最短,且通过了第一参与节点和除确定出的第二参与节点中预设数量的参与节点对该确定出的第二参与节点的时间戳验证。

进一步的,为了缩短由第一参与节点和第二参与节点共同确定存储节点的时间,提高存储效率,可以预先设置接收时间段,即在发送数据标签存储请求之后的预设时间段内接收第二参与节点发送的求解结果,并对该求解结果中包含的时间戳进行验证,而在预设时间段外接收的第二参与节点发送的求解结果不再考虑将其作为存储节点;也可以预先设置接收数量,即针对在发送数据标签存储请求之后接收到的前预设数量的第二参与节点发送的求解结果,对该求解结果中包含的时间戳进行验证,而在前预设数量之后接收的第二参与节点发送的求解结果不再考虑将其作为存储节点。

在本发明提供的另一实施例中,参与节点只对开始接收求解结果起预设时间内接收到的求解结果或按照由先至后的接收顺序在先接收到的预设数量的求解结果进行时间戳验证,再从时间戳验证通过的参与节点中选取最早求解完成的参与节点作为存储节点,而并非是对接收到的所有求解结果均进行时间戳验证,从而缩短了由第一参与节点和第二参与节点共同确定存储节点的时间,进而提高了数据标签的存储效率。

进一步地,考虑到求解结果中包含的求解完成的时间戳可能被人为篡改后,再发送至第二参与节点,为了使第一参与节点也能够验证自身发送的求解结果中的时间戳是否被人为篡改,从而达到自我监督的目的,保证自身发出的求解结果中包含的时间戳的准确性,基于此,在上述步骤s305将求解结果发送给上述第二参与节点之后,还包括如下步骤:

步骤一、获取预设数量的第二参与节点发送的接收反馈信息,其中,上述接收反馈信息中包含上述求解结果对应的时间戳、对应第二参与节点接收到上述求解结果的接收时间中的至少一种。

步骤一中,该接收反馈信息中包含的时间戳为第二参与节点接收到的第一参与节点发送的求解结果中的时间戳。

步骤二、根据获取到的上述接收反馈信息确定求解结果中的时间戳是否被篡改。

在本发明提供的另一实施例中,第一参与节点可以根据接收到的其他参与节点的接收反馈信息来确定自身的求解结果是否被人为篡改,从而达到自我监督的目的,保证自身发出的求解结果中包含的时间戳的准确性,提高了第二参与节点对第一参与节点发送的求解结果的信任度。

具体实施时,第一参与节点可以预先与预设数量的第二参与节点进行约定,使得预设数量的第二参与节点在接收到求解结果后,自动向第一参与节点发送的接收反馈信息;或者,

第一参与节点在需要时向预设数量的第二参与节点发送反馈信息获取请求,使得预设数量的第二参与节点在接收到反馈信息获取请求后向第一参与节点发送接收反馈信息。

具体的,上述接收反馈信息中可以只包含求解结果对应的时间戳,也可以只包含对应第二参与节点接收到求解结果的接收时间,还可以同时包含求解结果对应的时间戳和对应第二参与节点接收到求解结果的接收时间,因此,上述步骤二根据获取到的上述接收反馈信息确定求解结果中的时间戳是否被篡改,具体包括:

(1)针对包含求解结果对应的时间戳的接收反馈信息,若该接收反馈信息中包含的时间戳与第一参与节点自身对预设数学难题进行求解的求解完成时间一致,则确定第一参与节点自身的时间戳未被篡改。

(2)针对包含求解结果对应的接收时间的接收反馈信息,若该接收反馈信息中包含的接收时间与第一参与节点自身对预设数学难题进行求解的求解完成时间之间的时间差在预设时间范围内,则确定第一参与节点自身的时间戳未被篡改。

(3)针对包含求解结果对应的时间戳和接收时间的接收反馈信息,若该接收反馈信息中包含的时间戳与第一参与节点自身对预设数学难题进行求解的求解完成时间一致,以及该接收反馈信息中包含的接收时间与第一参与节点自身对预设数学难题进行求解的求解完成时间之间的时间差在预设时间范围内,则确定第一参与节点自身的时间戳未被篡改。

在本发明提供的另一实施例中,无论是第一参与节点还是第二参与节点,均可以根据其他参与节点返回的求解结果对应的时间戳或对应其他参与节点接收到上述求解结果的接收时间来验证自身的时间戳是否被篡改,即一种是验证接收反馈信息中包含的时间戳与自身对预设数学难题进行求解的求解完成时间是否一致,另一种是验证接收反馈信息中包含的接收时间与第一参与节点自身对预设数学难题进行求解的求解完成时间之间的时间差是否在预设时间范围内。以上两种方式都能够实现验证自身的时间戳是否被篡改,而如果同时采用这两种方式,则能够提高验证结果的准确度。另外,本领域技术人员能够想到也可以采用其他方式来验证自身的时间戳是否被篡改的方式不影响本发明的技术效果。上述方式的等同变化或替换,均应涵盖在本发明的保护范围之内。

进一步的,考虑如下场景:一个企业或一个部门所记录的数据,不能反映事物的全貌,而能够反映事物全貌的数据,往往分散在不同的企业或部门中,此时,为了保证多个关联事件的相关数据的完整性,需要将分布在不同企业或部门中的零散的数据规整为企业可以使用的合一数据,然而,后续进行数据关联的过程中存在关联难度大、耗费成本高、数据遗漏的问题,基于此,在后续的数据查询过程中,上述方法还包括:

步骤一、第一参与节点接收到用户输入的数据关联请求后,在预设的数据标签存储区域中查找包含该关联标识的数据标签。

步骤二、将查找到的数据标签所指示的数据展示给用户,以便用户获取所需的关联数据。

在本发明提供的另一实施例中,由于在数据存储过程中,为每个数据标签添加一个关联标识,在后续的数据关联过程中,各参与节点能够根据该关联标识获取到所有相关数据,从而完成多源数据的整合,简化了后续数据关联过程的复杂度,降低了数据关联难度和关联成本,同时,还能够确保目标事件与该目标事件的关联事件之间的可追溯性。

具体的,如图5所示的数据标签的存储过程的实现原理示意图,在图5中,具体包括:

1.目标事件的数据标签的创建过程:在此过程中,事件s作为参与主体a的目标事件,参与主体a在确定事件s发生后,为该事件s生成数据标签x1。

2.数据标签通过通信网络(如点对点(p2p,pointtopoint)网络)的传播过程:在此过程中,数据标签x1被携带于数据标签存储请求,参与主体a通过网络将数据标签x1发送给其他参与主体(此时参与主体a至参与主体n均拥有该数据标签x1),以便参与主体a至参与主体n共同竞争选举出一个存储节点。

3.数据标签的验证过程:在此过程中,参与主体a至参与主体n均求解一道数学难题,将各自的求解结果广播给其他参与主体,参与主体a至参与主体n均根据自身的求解结果和其他参与主体的求解结果确定存储节点,生成用于指示确定为存储节点的验证结果(即确定结果)。

4.验证结果通过通信网络(如点对点(p2p,pointtopoint)网络)的传播过程:在此过程中,参与主体a至参与主体n将各自确定出的验证结果广播给其他参与主体,以告知被确定为存储节点的参与主体。

5.数据标签的存储过程:在此过程中,由参与主体a至参与主体n共同协商选举出作为存储节点的参与主体将数据标签x1进行存储。

本发明又一实施例提供了一种数据存储方法,在该数据存储方法中,由于第一参与节点可以是数据标签存储请求的发起方,也可以是数据标签存储请求的接收方,即在第二参与节点为其自身参与的目标事件生成数据标签后,第二参与节点向其他参与节点发送数据标签存储请求,此时第一参与节点作为数据标签存储请求的接收方,当任一第二参与节点确定其自身参与的目标事件发生后,为该目标事件生成数据标签;向第一参与节点和其他第二参与节点发送数据标签存储请求,如图6所示,包括如下步骤:

s601、第一参与节点确定目标事件发生后,为该目标事件生成数据标签,数据标签中包含该目标事件发生后产生数据的属性信息。

s602、向第二参与节点发送数据标签存储请求,以便与第二参与节点竞争确定一个参与节点作为存储节点,由该存储节点存储所述数据标签并提供各参与节点共享;其中,第二参与节点所参与事件与所述目标事件相关联。

s603、接收任一第二参与节点在为其自身参与的目标事件生成数据标签后所发送的数据标签存储请求,以便与各第二参与节点竞争确定一个参与节点作为存储节点,由该存储节点将上述数据标签存储并提供各参与节点共享。

步骤601~步骤s602和步骤s603的执行没有严格的先后顺序。

具体的,在进行上述数据标签存储请求的传输(本实施例中为接收操作)之后,可以采用步骤s604~至步骤s607确定存储节点:

s604、对预设数学难题进行求解。

s605、若s604中第一参与节点求解出预设数学难题,则将求解结果发送给上述第二参与节点。

s606、接收解出上述预设数学难题的第二参与节点得到的求解结果。

步骤s604~步骤s605和步骤s606的执行没有严格的先后顺序。

s607、根据上述第一参与节点以及上述第二参与节点的求解结果确定存储节点,由该存储节点将上述数据标签存储并提供各参与节点共享。

如果存在多个求解结果正确的参与节点,则可以根据每个参与节点的求解完成时间来选举出最终的存储节点,将求解最快的且通过其他参与节点验证通过的参与节点作为最终的存储节点,基于此,步骤s607可以具体实施为步骤s3071~步骤s3075,这里不再赘述。

进一步的,为了保证已存储的数据标签的完整性和连续性,进而保证相关联的多个事件对应的多个关联数据的完整性和连续性,还可以在接收到数据标签存储请求后,先验证所有前提事件对应的数据标签是否均已存储,只有在全部存储完成的情况下,再与其他参与节点竞争选举出一个存储节点,基于此,在上述步骤s603接收任一第二参与节点发送的数据标签存储请求之后,且在参与竞争确定一个参与节点作为存储节点之前,还包括:以上述关联标识为检索条件在已存储的数据标签中进行检索,确定前提事件对应的数据标签已经生成,其中,该前提事件为关联事件中发生在目标事件之前的事件。

进一步的,为了使接收到数据标签存储请求的参与节点能够快速地识别出下发该存储请求的参与节点的真实身份,基于此,上述数据标签存储请求中携带有第二参与节点自身的数字签名,该数字签名用于指示发送数据标签的参与节点的身份信息,上述方法还包括:第一参与节点根据上述数字签名验证第二参与节点的身份信息是否正确,其中,每个参与节点预先获得各参与节点与数字签名之间的映射关系。

在本发明提供的又一实施例中,在数据存储过程中,在数据产生的同时由相关联的多个参与节点共同协商选举出一个参与节点来记录已建立的数据标签,这样能够使得各参与节点都参与数据的存储竞争与选举,形成了有效的监督机制,能够提高存储的数据的可信度,进而从源头上保证存储的所有数据的真实性和有效性;另外,无论后续任意一个参与节点需要使用该目标事件发生后产生数据,均可以直接根据数据标签获得可信度高的数据,无需再单独对获取的数据进行真实性和有效性验证。

接下来,结合具体的应用场景对上述数据存储方法的具体实施方式对应的技术方案进行详细说明。

例如,以网购过程为例,如图7所示的网购过程对应的数据存储方法的实现原理示意图,该网购过程中的参与节点包括:购物平台、支付平台和物流平台。

某一参与节点在确定自身的目标事件发生后,为该目标事件生成数据标签(该数据标签中包含参与节点信息、数据产生时间、产生数据的格式等);由购物平台、支付平台和物流平台共同竞争选举出一个存储节点。

每个参与节点均可能作为自身生成的数据标签的存储节点,也可能作为其他参与节点生成的数据标签的存储节点。

以购物平台为例,在图7中细箭头表示:针对上述某一参与节点生成的数据标签,购物平台被选举为存储节点后,对该数据标签进行存储,从而提供其他参与节点共享;粗箭头表示:购物平台对已存储的数据标签进行读取,从而获得所需的数据标签;细箭头表示若购物平台被选为存储节点则可以记录数据标签。

具体的,a、数据标签存储的过程,具体为:

当购物平台确定购买事件发生后,为该购买事件建立数据标签,该数据标签中包含该购买事件发生后产生数据的属性信息;

向支付平台和物流平台发送数据标签存储请求,以便与该支付平台和物流平台竞争确定一个参与平台作为存储平台,由该存储平台存储上述数据标签并提供各参与平台共享;

在上述过程中,上述购物平台相当于第一参与节点,上述支付平台和物流平台均相当于第二参与节点,上述购买事件相当于目标事件;

同样的,当支付平台确定支付事件发生后,为该支付事件建立数据标签,该数据标签中包含该支付事件发生后产生数据的属性信息;

向购物平台和物流平台发送数据标签存储请求,以便与该购物平台和物流平台竞争确定一个参与平台作为存储平台,由该存储平台存储上述数据标签并提供各参与平台共享;

在上述过程中,上述支付平台相当于第一参与节点,上述购物平台和物流平台均相当于第二参与节点,上述支付事件相当于目标事件;

同样的,对物流平台建立的数据标签的存储过程与上述存储过程类似,在此不再赘述。

b、验证目标事件的前提事件对应的数据标签是否已存储的过程,具体为:

针对于上述网购过程,所涉及的所有数据标签中携带的关联标识可以是订单序列号,对于购物平台而言,在其之前不具有前提事件,自动默认前提事件对应的数据标签已生成;

以对支付平台建立的数据标签进行存储的过程为例,此时购买事件为前提事件,该购买事件为关联事件中发生在支付事件之前的事件;其中,可以由第一参与节点来验证前提事件对应的数据标签是否已存储,也可以由第二参与节点来验证前提事件对应的数据标签是否已存储,具体为:

(1)由第一参与节点来验证前提事件对应的数据标签是否已存储,此时第一参与节点为支付平台,当购买事件完成后,在支付平台确定支付事件发生之后,且为该支付事件建立数据标签之前,还包括:

支付平台以订单序列号为检索条件在已存储的数据标签中进行检索,确定购买事件对应的数据标签已经生成;

(2)由第二参与节点来验证前提事件对应的数据标签是否已存储,此时第二参与节点为购物平台和物流平台,在购物平台和物流平台接收到数据标签存储请求之后,且参与竞争确定一个参与节点作为存储节点之前,还包括:

购物平台和/或物流平台以订单序列号为检索条件在已存储的数据标签中进行检索,确定购买事件对应的数据标签已经生成。

c、关联数据查询的过程,具体为:

在后续的数据查询过程中,参与节点以订单序列号为检索条件在已存储的数据标签中进行检索,可以获取购买事件对应的数据标签、支付事件对应的数据标签、以及物流事件对应的数据标签,进而获得购物数据、付款数据和送货数据。

又如,以员工入职过程为例,如图8所示的员工入职过程对应的数据存储方法的实现原理示意图,该员工入职过程中的参与节点包括:人事部门、财务部门、员工本人和业务部门。

人事部门确定员工入职事件发生后,为该员工入职事件生成数据标签(该数据标签中包含事件参与者信息、数据产生时间、产生数据的格式);由人事部门、财务部门、员工本人和业务部门共同竞争选举出一个存储节点。

以业务部门为例,在图8中细箭头表示:针对上述人事部门生成的数据标签,业务部门被选举为存储节点后,对该数据标签进行存储,从而提供其他参与节点共享;粗箭头表示:业务部门对已存储的数据标签进行读取,从而获得所需的数据标签。

具体的,当人事部门确定员工入职事件发生后,为该员工入职事件建立数据标签,该数据标签中包含该员工入职事件发生后产生数据的属性信息;

向财务部门、员工本人和业务部门发送数据标签存储请求,以便与该财务部门、员工本人和业务部门竞争确定一个参与部门作为存储部门,由该存储部门存储上述数据标签并提供各参与部门共享;

在上述过程中,上述人事部门相当于第一参与节点,上述财务部门、员工本人和业务部门均相当于第二参与节点,上述员工入职事件相当于目标事件;

在员工入职的具体应用场景中,在员工入职信息产生的同时由人事部门、财务部门、员工本人和业务部门共同协商选举出一个部门来记录已建立的数据标签,这样能够使得各参与者都参与数据的存储竞争与选举,形成了有效的监督机制,能够提高存储的数据的可信度,进而从源头上保证存储的所有数据的真实性和有效性。

针对于该员工入职过程,所涉及的所有数据标签中携带的关联标识可以是员工工牌号,此时公司在治理员工数据过程中,以员工工牌号为检索条件在已存储的数据标签中进行检索,可以获取该员工入职事件对应的所有相关数据,提高了数据关联速度,保证了数据的可追溯性。

在本发明实施例提供的数据存储方法中,在数据存储过程中,由相关联的多个参与节点共同协商选举出一个参与节点来记录已建立的数据标签,这样能够使得各参与节点都参与数据的存储竞争与选举,形成了有效的监督机制,能够提高存储的数据的可信度,进而从源头上保证存储的所有数据的真实性和有效性;另外,无论后续任意一个参与节点需要使用该目标事件发生后产生数据,均可以直接根据数据标签获得可信度高的数据,无需再单独对获取的数据进行真实性和有效性验证。

基于同一发明构思,本发明实施例还提供了一种数据存储系统和设备,由于这些系统和设备所解决问题的原理与前述数据存储方法相似,因此该系统和设备的实施可以参见前述方法的实施,重复之处不再赘述。

本发明实施例提供一种数据存储设备之一,如图9所示,该设备包括:

数据标签生成模块901,用于在确定目标事件发生后,为该目标事件生成数据标签,该数据标签中包含目标事件发生后产生数据的属性信息。

存储请求发送模块902,用于向第二参与节点发送数据标签存储请求,以便与第二参与节点竞争确定一个参与节点作为存储节点,由该存储节点存储上述数据标签并提供各参与节点共享;其中,上述第二参与节点所参与事件与上述目标事件相关联。

同样的,上述第二参与节点也设置有上述数据存储设备,在此不再赘述。

进一步的,为了保证已存储的数据标签的完整性和连续性,进而保证多个目标事件对应的多个关联数据的完整性和连续性,基于此,上述数据标签中携带有关联标识,该关联标识用于标识与上述目标事件相关联的关联事件;上述设备还包括:

数据标签检索模块903,用于在上述第一参与节点发送数据标签存储请求之前,以上述关联标识为检索条件在已存储的数据标签中进行检索,确定前提事件对应的数据标签已经生成;其中,上述前提事件为上述关联事件中发生在上述目标事件之前的事件。

进一步的,由于第一参与节点可以是数据标签存储请求的发起方,也可以是数据标签存储请求的接收方,即在第二参与节点为其自身参与的目标事件生成数据标签后,第二参与节点向其他参与节点发送数据标签存储请求,此时第一参与节点作为数据标签存储请求的接收方,基于此,上述设备还包括:

存储请求接收模块904,用于接收任一第二参与节点在为其自身参与的目标事件生成数据标签后所发送的数据标签存储请求,以便与各第二参与节点竞争确定一个参与节点作为存储节点,由该存储节点将上述数据标签存储并提供各参与节点共享。

需要说明的是,存储请求发送模块902和存储请求接收模块904之间的位置关系没有严格的先后顺序。

进一步的,上述设备还包括:

存储节点确定模块905,用于对预设数学难题进行求解;若上述第一参与节点求解出预设数学难题,则将求解结果发送给上述第二参与节点;以及,接收解出上述预设数学难题的第二参与节点得到的求解结果;根据上述第一参与节点以及上述第二参与节点的求解结果确定上述存储节点。

进一步的,考虑到可以根据每个参与节点的求解完成时间来选举出最终的存储节点,将求解最快的且通过其他参与节点验证通过的参与节点作为最终的存储节点,基于此,上述求解结果包含求解完成的时间戳;上述存储节点确定模块905,具体用于:

针对每个第二参与节点发送的求解结果,确定该求解结果中包含的时间戳与该求解结果的接收时间之间的时间差;

响应于确定的时间差小于预设时间差阈值,确定该第二参与节点通过时间戳验证;

从上述第一参与节点以及通过时间戳验证的第二参与节点中,确定对应时间戳所表征时间最早的参与节点;

针对确定出的参与节点为上述第一参与节点的情况,接收第二参与节点发送的确定结果,该确定结果用于指示上述第一参与节点被第二参与节点确定为上述存储节点;或者,

针对确定出的参与节点为任一第二参与节点的情况,向确定出的该任一第二参与节点发送确定结果,以指示该第二参与节点被确定为上述存储节点。

进一步的,考虑到求解结果中包含的求解完成的时间戳可能被人为篡改后,再发送至第二参与节点,为了使第一参与节点能够验证自身发送的求解结果中的时间戳是否被人为篡改,从而达到自我监督的目的,保证自身发出的求解结果中包含的时间戳的准确性,基于此,上述设备还包括:

反馈信息获取模块906,用于在将求解结果发送给上述第二参与节点之后,获取预设数量的第二参与节点发送的接收反馈信息,该接收反馈信息中包含上述求解结果对应的时间戳、对应第二参与节点接收到上述求解结果的接收时间中的至少一种;

时间戳验证模块907,用于针对包含上述求解结果对应的时间戳的接收反馈信息,若该接收反馈信息中包含的时间戳与第一参与节点自身对预设数学难题进行求解的求解完成时间一致,则确定上述时间戳未被篡改;或者,针对包含上述求解结果对应的接收时间的接收反馈信息,若该接收反馈信息中包含的接收时间与第一参与节点自身对预设数学难题进行求解的求解完成时间之间的时间差在预设时间范围内,则确定上述时间戳未被篡改;或者,针对包含所述求解结果对应的时间戳和对应的接收时间的接收反馈信息,若该接收反馈信息中包含的时间戳与所述第一参与节点自身对预设数学难题进行求解的求解完成时间一致,且该接收反馈信息中包含的接收时间与第一参与节点自身对预设数学难题进行求解的求解完成时间之间的时间差在预设时间范围内,则确定所述时间戳未被篡改。

在本发明实施例提供的数据存储设备中,在数据存储过程中,由相关联的多个参与节点共同协商选举出一个参与节点来记录已建立的数据标签,这样能够使得各参与节点都参与数据的存储竞争与选举,形成了有效的监督机制,能够提高存储的数据的可信度,进而从源头上保证存储的所有数据的真实性和有效性;另外,无论后续任意一个参与节点需要使用该目标事件发生后产生数据,均可以直接根据数据标签获得可信度高的数据,无需再单独对获取的数据进行真实性和有效性验证。

上述各单元的功能可对应于图1至图8所示流程中的相应处理步骤,在此不再赘述。

本发明实施例还提供了一种数据存储系统,如图10所示,该系统包括:第一参与节点10和至少一个第二参与节点20;

上述第一参与节点10确定目标事件发生后,为该目标事件生成数据标签,该数据标签中包含上述目标事件发生后产生数据的属性信息;并向第二参与节点20发送数据标签存储请求;

各第二参与节点20接收上述数据标签存储请求,并与上述第一参与节点10竞争确定一个参与节点作为存储节点,由该存储节点存储上述数据标签并提供各参与节点共享;

其中,上述第二参与节点20所参与事件与上述目标事件相关联。

在本发明实施例提供的数据存储系统中,在数据存储过程中,由相关联的多个参与节点共同协商选举出一个参与节点来记录已建立的数据标签,这样能够使得各参与节点都参与数据的存储竞争与选举,形成了有效的监督机制,能够提高存储的数据的可信度,进而从源头上保证存储的所有数据的真实性和有效性;另外,无论后续任意一个参与节点需要使用该目标事件发生后产生数据,均可以直接根据数据标签获得可信度高的数据,无需再单独对获取的数据进行真实性和有效性验证。

对应于图1中的数据存储方法,本发明实施例还提供了一种数据存储设备之二,如图11所示,该设备包括存储器1000、处理器2000及存储在该存储器1000上并可在该处理器2000上运行的计算机程序,其中,上述处理器2000执行上述计算机程序时实现上述数据存储方法的步骤。

具体地,上述存储器1000和处理器2000能够为通用的存储器和处理器,这里不做具体限定,当处理器2000运行存储器1000存储的计算机程序时,能够执行上述数据存储方法,从而解决相关技术中数据的创建者同时也是该数据的存储者,由于缺乏有效的监督机制,导致存储的数据的可信度较低的问题,进而提高存储的数据的可信度,从源头上保证存储的所有数据的真实性和有效性。

对应于图1中的数据存储方法,本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述数据存储方法的步骤。

具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该存储介质上的计算机程序被运行时,能够执行上述数据存储方法,从而解决相关技术中数据的创建者同时也是该数据的存储者,由于缺乏有效的监督机制,导致存储的数据的可信度较低的问题,进而提高存储的数据的可信度,从源头上保证存储的所有数据的真实性和有效性。

本发明实施例所提供的数据存储设备可以为设备上的特定硬件或者安装于设备上的软件或固件等。本发明实施例所提供的数据存储设备,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,设备实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、设备和模块的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。

在本发明所提供的实施例中,应该理解到,所揭露设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,设备或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

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