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

基于区块链的数据管理方法、装置和系统与流程

2022-02-25 18:30:10 来源:中国专利 TAG:


1.本技术涉及数据管理技术领域,更具体地,涉及一种基于区块链的数据管理方法、装置和系统。


背景技术:

2.随着物联网的发展,越来越多的设备接入到物联网系统中。目前通用的物联网系统框架如图1所示,传感器等能力受限的物联网设备通过物联网网关接入到物联网平台,全功能物联网设备可以直接连接物联网平台或者通过物联网网关连接物联网平台。物联网平台集中管理各类设备,并且为上层的物联网应用提供接口。物联网应用通过物联网平台访问设备的数据,以及对设备进行控制。
3.以物联网的应用领域之一智能制造为例,大量的工业设备直接或者通过物联网网关连接到工业互联网平台上,实时上报数据以及接收平台发送的指令。制造业是典型的重资产型企业,需要购买大量的设备,对于企业的资金要求较高。
4.随着智能制造的发展,未来企业的发展模式也将发生改变,制造商不需要购买大量的设备,可以通过租赁设备的模式快速投入生产,按照设备的使用情况支付使用费。通过该租赁模式一方面降低企业的前期设备投资,可以快速投入生产,另一方面可以降低企业的设备维护成本。
5.这样,可以构建共享设备平台,平台可以将部分企业的富余铸造产能或生产线(生产设备)“线上共享”,有需求的企业选定后即可在线实现订单生产,从而解决部分铸造企业产能过剩、设备闲置,部分企业产能不足、订单积压的问题,对推动制造企业(制造商)加快资源优化与产业升级具有重要意义。


技术实现要素:

6.根据本公开的一方面,提供了一种基于区块链的数据管理方法,应用在验证节点,所述方法可以包括:获取交易数据,其中所述交易数据包括n条摘要数据,所述n条摘要数据分别基于与所述交易数据相关联的n条数据而生成,n为大于1的整数;从n条摘要数据中选择要用于验证的m条摘要数据,m为小于或等于n且大于或等于1的整数;获取分别与所述m条摘要数据对应的m条存储数据;计算所述m条存储数据各自的摘要,以及在所述m条摘要数据与所述m条存储数据各自的摘要分别相同的情况下,将所述交易数据写入区块链。
7.根据本公开的另一方面,还提供了一种基于区块链的数据管理方法,应用在多个验证节点,所述方法包括:获取交易数据,其中所述交易数据包括n条摘要数据,所述n条摘要数据分别基于与所述交易数据相关联的n条数据而生成条数据,n为大于1的整数;从n条摘要数据中选择要用于验证的m条摘要数据,m为小于或等于n且大于或等于1的整数;其中多个验证节点中的第一类验证节点验证的摘要数据包括基于生成所述m条摘要数据的m条数据中长度最短的一条数据而生成的摘要数据;获取分别与所述m条摘要数据对应的m条存储数据;计算所述m条存储数据各自的摘要,以及在所述m条摘要数据与所述m条存储数据各
自的摘要分别相同的情况下,将所述交易数据写入区块链。
8.根据本公开的另一方面,还提供了一种基于区块链的数据管理方法,应用在使用节点,所述方法可以包括:获取被包括在与特定设备和/或时间段对应的交易数据中的n条摘要数据中的m条摘要数据,其中所述n条摘要数据分别基于与所述交易数据相关联的n条数据而生成,n为大于1的整数,m为小于或等于n且大于或等于1的整数;获取分别与所述m条摘要数据对应的m条存储数据;计算所述m条存储数据各自的摘要;以及在所述m条摘要数据与所述m条存储数据各自的摘要分别相同的情况下,确定与所述交易数据相关联的完整数据未被篡改。
9.根据本公开的另一方面,还提供了一种基于区块链的数据管理方法,应用在中间设备,所述方法可以包括:获取至少一个传感器设备的完整数据;将所述至少一个传感器设备的完整数据分割为p条数据,并基于所述至少一个传感器设备的完整数据生成完整摘要数据和/或分别基于所述p条数据生成p条摘要数据,p为大于1的整数;将所述p条数据和/或所述完整数据存储在数据服务器节点中;以及将p条摘要数据和/或所述完整摘要数据中的n条摘要数据包括在交易数据中并向区块链的验证节点发送,n等于p或p 1;其中,所述区块链中的验证节点在由所述中间设备计算的所述n条摘要数据中的m条摘要数据与由所述验证节点计算的与所述m条摘要数据对应的m条存储数据各自的摘要相同时,将所述交易数据生成区块并写入所述区块链,m为小于n且大于或等于1的整数。
10.根据本公开的又一方面,还提供了一种基于区块链的数据管理装置,包括:处理器,和存储器,其上存储有指令,所述指令在被执行时使得所述处理器执行如上所述的方法。
11.根据本公开的又一方面,还提供了一种基于区块链的数据管理系统,包括:至少一个传感器设备,其被配置为生成完整数据;区块链网络,包括:数据服务器节点,其被配置为存储所述完整数据和/或由所述完整数据划分的p条数据;存储节点,其被配置为存储基于所述完整数据生成的完整摘要数据和/或基于由所述完整数据划分的p条数据中的至少一条数据生成的至少一条摘要数据;验证节点,其被配置为执行如上所述的在验证节点处执行的方法;使用节点,其被配置为执行如上所述的、在使用节点处执行的方法;和中间设备,其被配置为执行如上所述的在中间设备处执行的方法。
附图说明
12.为了解释本公开的原理,将结合附图结合来描述本公开的实施例。应理解,图中所示的要素可能被实现为各种形式的硬件、软件或它们的组合。可选地,在一个或多个适当地编程的通用计算机设备上的硬件和软件的组合中实现这些要素。
13.图1示出了一种物联网系统框架。
14.图2示出了智能制造应用中各主体之间的交互流程。
15.图3a-3b示出了根据本公开实施例的区块链网络。
16.图4a-4b示出了根据本公开实施例的基于区块链的数据管理系统的工作过程。
17.图5a示出了根据本公开实施例的应用于验证节点的、基于区块链的数据管理方法的流程图。
18.图5b示出了根据本公开实施例的应用于验证节点的、另一基于区块链的数据管理
方法的流程图。
19.图6示出了根据本公开实施例的应用于使用节点的、基于区块链的数据管理方法的流程图。
20.图7示出了根据本公开实施例的应用于中间设备的、基于区块链的数据管理方法的流程图。
21.图8示出了根据本公开实施例的应用于验证节点的、基于区块链的数据管理装置的结构框图。
22.图9示出了根据本公开实施例的应用于使用节点的、基于区块链的数据管理装置的结构框图。
23.图10示出了根据本公开实施例的应用于中间设备的、基于区块链的数据管理装置的结构框图。
具体实施方式
24.以下将参照附图更充分地描述本公开实施例,在附图中示出了本公开实施例。然而,可以用很多不同形式来实施本公开,并且本公开不应理解为受限于在此所阐述的实施例。在全文中,使用相似的标号表示相似的元件。
25.在此所使用的术语仅用于描述特定实施例的目的,而并非意欲限制本公开。如在此所使用的那样,单数形式的“一个”、“这个”意欲同样包括复数形式,除非上下文清楚地另有所指。还应当理解,当在此使用时,术语“包括”指定出现所声明的特征、整体、步骤、操作、元件和/或组件,但并不排除出现或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组。
26.除非另外定义,否则在此所使用的术语(包括技术术语和科学术语)具有与本公开所属领域的普通技术人员所共同理解的相同意义。在此所使用的术语应解释为具有与其在该说明书的上下文以及有关领域中的意义一致的意义,而不能以理想化的或过于正式的意义来解释,除非在此特意如此定义。以下参照示出根据本公开实施例的方法、装置(系统)和/或计算机程序产品的框图和/或流程图描述本公开。应理解,可以通过计算机程序指令来实现框图和/或流程图示图的一个方框以及方框的组合。可以将这些计算机程序指令提供给通用计算设备、专用计算设备的处理器和/或其它可编程数据处理装置,使得经由计算设备处理器和/或其它可编程数据处理装置执行的指令创建用于实现框图和/或流程图块中所指定的功能/动作的方法。
27.相应地,还可以用硬件和/或软件(包括固件、驻留软件、微码等)来实施本公开。更进一步地,本公开可以采取计算机可使用或计算机可读存储介质上的计算机程序产品的形式,其具有在介质中实现的计算机可使用或计算机可读程序代码,以由指令执行系统来使用或结合指令执行系统而使用。在本公开上下文中,计算机可使用或计算机可读介质可以是任意介质,其可以包含、存储、通信、传输、或传送程序,以由指令执行系统、装置或设备使用,或结合指令执行系统、装置或设备使用。
28.如前文所述,设备共享的各方(例如设备提供商和制造商)之间存在合作关系,设备提供商根据设备的诸如使用率、使用量、使用时间等的因素的使用情况对使用其设备的制造商进行收费。为了准确计算设备的使用情况,设备提供商负责设备使用情况相关的数
据收集,计算出设备的使用情况后向制造商收费。具体的交互流程如图2所示,设备提供商服务器获取设备上传的数据并计算设备使用情况,制造商服务器通过平台交互的方式获取设备使用情况并支付数据。
29.以智能制造为例,设备的非业务数据(包括使用情况数据)由设备提供商服务器收集并进行计算,制造商服务器根据设备提供商服务器的计算结果支付费用,如果设备提供商服务器存在数据修改的情况,则会导致费用的差别,并且制造商服务器不可知。另外制造商的其他供应链企业也有获取设备使用情况数据的需求,从而根据设备的使用情况可以及时备货。为了提升设备提供商和制造商、以及其他供应链企业之间的互信,需要提供一种新的机制,保证设备的数据准确、不可修改,从而建立合作方之间的互信。
30.区块链技术作为一种新兴的分布式数据存储技术,具有以下优势:
31.一是数据可信化。与传统分布式数据库有所不同,区块链引入了“人人记账”的理念,每个参与主体通过例如客户端应用等加入到区块链,并且都有权记账,大家各自可以保存最新账本和所有历史记录。这种数据高度冗余的存储方式,可提升不互信主体之间的信息透明度,实现账本数据不可篡改和全程留痕,进而促进多方信息共享和协同操作。二是参与主体对等化。区块链的统一分布式账本技术,天然解决了“业务主权”问题,有效实现了每一个参与主体的身份对等、权力对等、责任对等、利益对等,并在所有参与主体之间实现数据的实时同步更新,使合作更加方便快捷,合作方的积极性得以提升。
32.即,区块链能够实现业务数据可信化以及参与主体对等化,能够促进多方信息共享和协同操作,并且能够在各个参与主体之间实现数据的实时同步更新,并保证数据准确、不可修改,从而建立合作方之间的互信。本文提及的参与主体可以是区块链网络中的网络节点,例如通过网络连接的服务器、计算机、电话等,针对不同性质的区块链,成为节点的方式也会有所不同。
33.然而,在目前基于区块链的数据管理方法中,在存储方面,区块链上的各个存储节点需要存储完整的历史交易信息,但是节点的存储量是有限的。并且,区块链中当任何一个参与主体要将新数据写入区块链时会涉及到验证过程,如何提高处理速度并且节省计算资源等也是一个亟待解决的问题。
34.基于此,本公开的实施例提供了一种基于区块链的数据管理方法、装置和系统,用于解决上述技术问题。数据管理包括针对数据的各种操作,包括存储数据以及获取数据等。
35.应注意,在本公开的一些实施例中,以将基于区块链的数据管理技术应用于智能制造行业为例进行了描述,但是,本领域技术人员将理解,可以将本公开实施例提供的基于区块链的数据管理技术应用于其他任何需要增加互信的数据共享场景,本公开对此不做限制。
36.首先介绍本公开的实施例所涉及的区块链网络。图3a-3b示出了根据本公开实施例的区块链网络。
37.如图3a所示,区块链网络是一种去中心化的网络,也可以被视为一个p2p网络(peer-to-peer)网络。区块链网络中不存在中心化的服务和层级结构,基于共识机制的每个节点都是对等的节点,各个节点共同提供网络服务。区块链网络中,根据各个节点所提供的功能不同,可以将节点分为不同的类型。例如,在eos公有链中,21个节点作为验证节点,其余节点为普通节点。而在另外一些区块链中,每个节点都可以作为验证节点。验证节点可
以每隔一段时间而通过竞争投票选出,有权限验证交易并添加区块到区块链上,也可以视为超级节点、全节点中的至少一部分。此外,区块链网络中的普通节点并不会存储账本数据或者不会存储完整账本副本,只提供一般的算力支持。超级节点、全节点是拥有完整账本数据的节点,其需要占用内存同步所有的区块链数据,能够独立验证区块链上的所有交易并实时更新数据,主要负责区块链的交易的广播和验证。
38.此外,区块链中还可以包括存储被写入区块链的任何数据的存储节点(例如,该存储节点也可以选自能够存储位完整账本数据超级节点中的至少一部分),以及从区块链中获取数据的使用节点(该使用节点为普通节点)。
39.作为一种更具体的应用,在智能制造行业中可以采用如图3b所示数据管理系统来进行数据管理。
40.如前文所述,在智能制造行业中,设备的非业务数据(包括使用情况数据)由设备提供商服务器收集并进行计算,制造商服务器根据设备提供商服务器的计算结果支付费用,如果设备提供商服务器存在数据修改的情况,则会导致费用的差别,并且制造商服务器不可知。另外制造商的其他供应链企业也有获取设备使用情况数据的需求,从而根据设备的使用情况可以及时备货。因此,如图3b所示,智能制造行业中涉及的中间设备、设备提供商服务器、制造商服务器以及供应链企业服务器(未示出)等加入区块链,作为区块链节点,更具体地,作为普通节点,并且中间设备还与设备提供商服务器进行通信连接。中间设备可以为区块链网络与设备之间的工业网关,更通用的说法可以是边缘设备(edge),其数量可以为一个或多个,分布在各个设备附近,具备本地计算、存储和联网功能,能快速处理附近数据,而无需将数据返回数据中心和云服务商。此外,如果多个设备的计算处理能力足够,该多个设备可以不经过中间设备而直接接入到区块链中,作为区块链的节点,从而省略中间设备。本公开以使用中间设备的情况为例进行了说明,但是本公开不限于此。在该智能制造行业的应用场景中,设备提供商服务器可以被称为区块链网络中的数据服务器节点,制造商服务器以及供应链企业服务器(未示出)可以视为使用节点。
41.在图3b中,多个设备(例如传感器设备)连接到中间设备以向中间设备上报设备运营完整数据。中间设备通信连接到设备提供商服务器仍采用中心化的架构模式,即多个设备向各自附近的中间设备上报设备运营完整数据,(一个或多个)中间设备进一步向设备提供商服务器上报设备运营完整数据,并且设备与中间设备之间以及中间设备与设备提供商服务器之间传送的是完整的设备运营完整数据。设备提供商服务器、制造商服务器以及供应链企业服务器(未示出)通过区块链以去中心化的架构而在相互之间进行信息传递。设备提供商服务器可以基于设备运营完整数据来计算得到设备的使用情况,并且设备提供商可以基于此向制造商收取费用。设备运营完整数据是与设备的使用情况相关联的数据。
42.此外,如果多个设备的处理能力足够,该多个设备可以不经过中间设备而直接接入到区块链中。
43.如前文所述,需要在设备提供商、制造商、以及其他供应链企业之间基于区块链而共享数据,但是由于设备运营完整数据的数据量十分庞大,如果要全部写入区块链以实现共享,将对区块链网络的节点处的存储容量有很高的要求。
44.此外,区块链中的验证节点有多个,并且对于某些类型的区块链,验证节点数量比较多。如果全部验证节点都用于对要写入的数据进行验证和/或对完整数据进行验证,将会
降低区块链整体的处理速度并增大计算量。
45.基于此,本公开的实施例提供了一种基于区块链的数据管理方法、装置以及系统。在本公开的实施例中,将基于完整数据生成的摘要数据写入区块链中,且将完整数据存储在服务器中,或者更进一步,仅通过至少一部分验证节点对完整数据的完整摘要数据或由完整数据分割的部分分割数据生成的摘要数据进行验证。基于此,一方面降低了对于区块链上的相关节点的服务器的存储容量的要求,且利用区块链的不可修改特性以保存完整数据并确保完整数据未被修改,另一方面提高了验证的准确性并同时减少了计算量和计算资源,且降低了对于区块链的相关节点的服务器的处理速度的要求。
46.以下结合图4a-4b来描述根据本公开的实施例的基于区块链的数据管理系统以及工作过程。如图4a所示,该数据管理系统包括:至少一个传感器设备(以下简称为设备),其被配置为生成完整数据;区块链网络,包括:数据服务器节点,其被配置为存储数据;存储节点,其被配置为在链上存储摘要数据;验证节点;使用节点;和中间设备(如前面所述,在设备计算处理能力足够的情况下,可以将设备直接接入区块链而省略该中间设备)。此外,区块链网络还可以包括任意数量的其他类型的节点。此外,在另外的一些实施例中,数据服务器(例如设备提供商服务器)可以不作为节点包括在区块链网络中,区块链网络中的各个节点可以与该数据服务器进行通信而获取其中存储的数据。
47.以智能制造的具体应用场景为例,数据服务器节点可以为设备提供商服务器节点,使用节点可以为制造商数据服务器节点以及供应链企业数据服务器节点,均为普通节点。验证节点和存储节点可以选自区块链网络中的一部分超级节点,且可以重合(仅这部分节点链上存储了完整账本数据,包括已经过验证的、写入区块链的所有交易数据)。
48.首先,各个节点加入区块链网络(未示出)。例如如前面所述的中间设备、设备提供商服务器、制造商服务器、以及供应链企业服务器加入区块链网络,作为普通节点,其中该区块链网络中还包括存储节点、验证节点(存储节点和验证节点均选自超级节点中的至少一部分)。设备向中间设备发送注册请求,以便设备能向中间设备上传数据,并且中间设备向数据服务器节点发送注册请求,以便中间设备能向数据服务器节点上传数据。在设备生成数据之后,设备向中间设备发送第一信息上报请求,而该第一信息上报请求里可以包括设备运营完整数据(以下可简称完整数据),并且还可以包括设备标识(id)和/或时间信息。可选地,设备标识(id)和/或时间信息与所产生的完整数据相关联,用于指示生成该完整数据的设备的标识以及时间。
49.在一些实施例中,设备按照预定间隔向中间设备发送第一信息上报请求。可以将单个设备上报的数据作为一条完整数据,在这种情况下,上述第一信息上报请求中包括设备标识。或者,可以将每个时间段的单个设备上报的多条数据作为一条时间组合完整数据,在这种情况下,上述第一信息上报请求中包括设备标识,并可选地包括时间信息,这取决于后续的分割完整数据的方式。此外,也可以将每个时间段的多个设备上报的多条数据作为一条设备组合完整数据(例如将下午2点至5点时间段、下午8点到11点时间段的所有设备的初始完整数据进行组合能得到两条设备组合完整数据),在这种情况下,上述第一信息上报请求中包括时间信息,并可选地包括多个设备的每个设备的设备标识,这取决于后续的分割完整数据的方式。除了第一信息上报请求之外,后文详细描述的第二信息上报请求、交易创建请求中基于类似的限定而选择性地携带设备标识和/或时间信息。
50.中间设备从第一信息上报请求提取完整数据以及设备标识和/或时间信息之后,进行以下操作:将该完整数据分割为p条数据(即p条分割数据),并基于该完整数据生成完整摘要数据和/或分别基于所述p条数据生成p条摘要数据,p为大于1的整数;将完整数据和/或p条数据存储在数据服务器节点中,其中,在需要将p条数据存储在数据服务器节点中的情况下,p条数据可以以一条完整数据的形式而被存储,或者可以以分离的形式而作为多条存储数据(2至p条存储数据)存储,并且在将p条数据以一条完整数据的形式或者少于p的数量的存储数据的形式存储时,中间设备在向数据服务器节点发送p条数据时,还向该数据服务器节点发送p条数据的分割信息,以使得在数据服务器节点处能对存储数据进行相同分割而得到相同的p条数据(该完整数据和/或p条数据可能会在数据服务器节点处被篡改,但是完整摘要数据和/或p条摘要数据是基于未被篡改的数据而生成的),然后将p条摘要数据和/或所述完整数据的完整摘要数据中的n条摘要数据包括在交易数据中并向区块链的验证节点发送,n等于p或p 1。
51.更具体地,将完整数据和/或p条数据存储在数据服务器节点中的操作包括:向数据服务器节点发送第二信息上报请求;该第二信息上报请求中包括完整数据、p条数据以及产生该完整数据的设备对应的设备标识和/或该完整数据对应的时间信息;从数据服务器节点接收信息上报响应,该信息上报响应至少包括数据服务器节点的地址、p条数据中的每条数据在该数据服务器节点中的存储位置。此外,将n条摘要数据包括在交易数据中并向区块链的验证节点发送的操作包括:向区块链网络中的验证节点发送(例如,将交易相关的数据打包成区块并通过广播的方式)交易创建请求,该交易创建请求中携带交易数据,该交易数据中包括该完整数据的完整摘要数据和/或p条摘要数据中的n条摘要数据(即n条摘要数据被包括在交易数据中,且n等于p或p 1,并且基于其生成n条摘要数据的完整数据和/或p条数据中的至少一部分数据也被表达为n条数据),并且该交易数据中还可以包括n条数据的位置信息(存储该n条数据的数据服务器节点的位置信息以及该n条数据中的每条数据在所述数据服务器节点中的位置信息)、该n条数据对应的设备标识,和/或该n条数据对应的时间信息。
52.在一些实施例中,中间设备可以按照按顺序的预设比例来对完整数据进行分割。例如,可以按照20%,20%,20%,20%和20%的顺序或者按照40%,25%,20%,10%和5%的顺序将完整数据分割为5份分割数据,并且可以将该按顺序的预设比例的相关信息与交易数据一起被携带于交易创建请求中而通知(例如通过广播)到区块链中的各个节点。
53.在一些实施例中,中间设备可以针对每个设备的一条时间组合完整数据(如前面所述)按照上述按顺序的预设比例进行分割(即按数据量),或者也可以基于时间信息按照时间来进行分割。此外,设备运营完整数据可以是每个时间段的多个设备的一条设备组合完整数据,因此也可以按照上述按顺序的预设比例进行分割(即按数据量)进行分割,基于设备标识来按照设备进行分割,或者基于时间信息按照时间段来进行分割。
54.在一些实施例中,生成数据的摘要的方式可以包括哈希运算,即可以包括对数据进行哈希运算得到哈希值,并将该哈希值作为该数据的摘要,使得只要数据有微小的改变,其对应的哈希值就会完全不同,因此该数据的摘要就会完全不同。显然,其他生成数据的摘要的方法也是可行的,只要摘要数据能够随着数据的微小改变而显著改变。此外,为了增强安全性,在生成数据的摘要的过程中还可以引入加密过程,这可以采用现有的加密技术,因
此此处不再详细描述。
55.表一给出了在一条完整数据被分割为2份数据的情况下与中间设备相关的数据处理过程的示意性描述,主要包括将接收到的完整数据分割为第一数据和第二数据,生成完整数据的完整摘要数据以及与第一数据相对应的第一摘要数据、与第二数据相对应的第二摘要数据,并向区块链网络中发送包括完整数据的完整摘要数据、第一摘要数据、以及第二摘要数据中的至少一部分的交易数据(如下面情况一-情况四所示)。此外,完整数据和/或所分割的第一数据和第二数据也被发送到数据服务器节点中,并且如前文所述,完整数据、第一数据和第二数据在数据服务器节点处可能会被篡改,从而可能与先前作为中间设备处的计算基础的所述完整数据、第一数据和第二数据不再相同。
[0056][0057]
验证节点在从交易创建请求中提取出交易数据之后,从交易数据包括的n条摘要数据当中选择要用于验证的m条摘要数据,m为小于n且大于或等于1的整数(例如,基于从中间设备接收的按顺序的预设比例的分割信息,例如选择第4条和第5条分割数据对应的2条摘要数据),其中,如前面所述,中间设备基于完整数据和由完整数据分割得到的p条数据生成多条摘要数据,并将该多条摘要数据当中的n条摘要数据包括在交易数据中被验证节点所接收,而基于其生成该n条摘要数据的n条数据被表达为与所述交易数据相关联。验证节点然后获取分别与所述m条摘要数据对应的m条存储数据;计算所述m条存储数据各自的摘要,以及在m条摘要数据中的每一条与m条存储数据各自的摘要分别相同的情况下,将所述交易数据写入区块链。更具体地,基于生成m条摘要数据的m条数据的位置信息,向数据服务器节点发送数据获取请求,数据获取请求中包括该位置信息,从存储了与m条摘要数据相对应的m条存储数据(m条存储数据的位置与m条数据的位置相同,且如果数据未被篡改,m条存储数据与m条数据是相同的,因此在本文中,m/p条存储数据有时可以与m/p条数据互换)的数据服务器节点获取m条存储数据,并且按照与中间设备相同的方式计算这m条存储数据的摘要,在m条摘要数据中的每一条与m条存储数据各自的摘要分别相同的情况下,则确定验证通过,并将所述交易数据写入区块链。
[0058]
在一些实施例中,n条数据为1条完整数据和该完整数据的n-1条分割数据,且基于其而生成m条摘要数据的m条数据为1条完整数据和完整数据的m-1条分割数据,或m条数据为完整数据的m条分割数据;或者n条数据为1条完整数据的n条分割数据,且m条数据为完整数据的m条分割数据。
[0059]
当m条数据为包括完整数据的m条分割数据时或m-1条分割数据,验证节点只需要获取分割数据,不需要获取完整数据,验证节点获取的数据体积较少,从而减少了验证节点和数据服务器之间的网络带宽,同时也降低了验证节点和数据服务器的工作负荷和计算量。
[0060]
此外,如前面描述的,中间设备从完整数据分割的p条数据的长度可以不相等。因此,为了进一步减小计算量以及节省计算资源,可以将n条摘要数据当中最短的一条摘要数据作为m条摘要数据用于验证。验证过程与前面描述的将m条摘要数据用于验证的过程类似,这里不再详细描述。
[0061]
验证节点通常包括多个,当大部分验证节点验证通过时交易内容被接收,例如柚子区块链系统中规定2/3验证节点验证通过则交易内容写入区块链。对于比特币区块链网络,由于所有全功能节点均可以参与验证,但是由于全功能节点的范围分布较广,无法在短时间内达成全网验证节点验证通过,因此只要一定比例的验证节点通过验证即可。验证节点验证通过的比例由区块链系统设置,管理员可以设置该比例以调整验证通过的速度。
[0062]
因此,在另一实施例中,还可以采用如下方式来进行验证。
[0063]
首先,多个验证节点均获取交易数据,其中所述交易数据包括n条摘要数据,所述n条摘要数据分别基于与所述交易数据相关联的n条数据而生成,n为大于1的整数。该过程与先前描述的过程类似,这里不再详细描述。可选地,多个验证节点可以包括第一类验证节点和第二类验证节点。
[0064]
然后,多个验证节点从n条摘要数据中选择要用于验证的m条摘要数据,m为小于或等于n且大于或等于1的整数,其中多个验证节点中的第一类验证节点验证的摘要数据包括基于生成所述m条摘要数据的m条数据中长度最短的一条数据而生成的摘要数据。例如,从n条摘要数据中选择了两条摘要数据用于验证,其中这两条摘要数据基于两条数据而生成,第一类验证节点验证基于该两条数据中较短的一条数据而生成的摘要数据。
[0065]
接着,多个验证节点获取分别与所述m条摘要数据对应的m条存储数据,然后计算所述m条存储数据各自的摘要,并且在所述m条摘要数据与所述m条存储数据各自的摘要分别相同的情况下,将所述交易数据写入区块链。
[0066]
上述获取存储数据、计算存储数据的摘要的方式与先前描述的类似,这里也不再详细描述。
[0067]
此外,m条数据可以包括1条完整数据和所述完整数据的m-1条分割数据,因此多个节点中的第二类验证节点验证基于所述完整数据生成的摘要数据。或者,m条数据包括1条完整数据的m条分割数据,多个节点中的第二类验证节点验证所述第一类验证节点未验证的摘要数据。
[0068]
可选地,第一类验证节点的数量大于第二类验证节点的数量。
[0069]
也就是说,可以仅使用一部分验证节点对由完整数据的分割数据生成的摘要数据进行验证,另外一部分验证节点对完整摘要数据进行验证,并且前者的数量更大。例如使用
80%的验证节点来进行分割数据生成的摘要数据的验证,20%的验证节点来进行完整摘要数据的验证。例如,使用80%的验证节点来进行最短的分割数据生成的摘要数据的验证,而20%的验证节点来进行剩余m-1条摘要数据的验证。
[0070]
这样,不必所有验证节点都验证完整数据,但是仍能保证验证完需要被验证的所有m条摘要数据,从而提高验证的准确性,同时也可以减少计算量以及节省计算资源并提高处理速度。
[0071]
在使用节点希望从区块链获取交易数据,并确定设备的完整数据是否被篡改的情况下,在使用节点处可以进行如下操作。
[0072]
在存储节点为区块链网络中的一部分超级节点,在该超级节点处存储了完整账本数据,即所有交易数据,并且使用节点没有存储完整账本数据从而不具有其期望获取的交易数据或者没有存储任何账本数据的情况下,使用节点需要从存储节点(超级节点)获取交易数据来进一步检查设备的完整数据是否被篡改。图4b中示出了对应的示意流程图。
[0073]
数据获取的过程可以包括:获取被包括在与特定设备和/或时间段对应的交易数据中的n条摘要数据中的m条摘要数据,其中n条摘要数据分别基于与交易数据相关联的n条数据而生成,n为大于1的整数,m为小于或等于n且大于或等于1的整数;获取分别与m条摘要数据对应的m条存储数据;计算m条存储数据各自的摘要;以及在m条摘要数据与m条存储数据各自的摘要分别相同的情况下,确定与交易数据相关联的完整数据未被篡改,并可选地从区块链中的存储节点获取交易数据,并从存储与交易数据相关联的n条数据的数据服务器节点获取与交易数据相关联的n条数据。该特定设备和/或时间段是期望获取其数据的设备和/或时间段。
[0074]
更具体地,如图4b中所示,由使用节点向区块链中的存储节点(例如,超级节点)发送摘要数据获取请求,该摘要数据获取请求至少包括与该特定设备和/或时间段对应的设备标识和/或时间信息,并且从所述存储节点接收摘要数据获取响应,所述摘要数据获取响应至少包括所述n条摘要数据中的m条摘要数据。如前面所述的,存储节点中存储的每条交易数据除了包括n条摘要数据之外,还可以包括生成n条摘要数据的n条数据的位置信息(存储该n条数据的数据服务器节点的位置信息以及该n条数据中的每条数据在所述数据服务器节点中的位置信息)、该n条数据对应的设备标识,和/或该n条数据对应的时间信息。
[0075]
此外,该摘要数据获取响应还包括存储该n条数据的数据服务器节点的地址、所述m条存储数据在所述数据服务器节点中的存储位置,因此使用节点基于数据获取响应中包括的上述信息,来从所述数据服务器节点获取所述m条存储数据。然后,计算所述m条存储数据各自的摘要,并且在所述m条摘要数据与所述m条存储数据各自的摘要分别相同的情况下,可以确定与交易数据相关联的完整数据未被篡改。
[0076]
与前面类似的,n条数据为1条完整数据和完整数据的n-1条分割数据,且基于其生成m条摘要数据的m条数据为1条完整数据和完整数据的m-1条分割数据,或m条数据为完整数据的m条分割数据;或者n条数据为1条完整数据的n条分割数据,且m条数据为完整数据的m条分割数据。
[0077]
当m条数据为包括所述完整数据的m条分割数据或m-1条分割数据,使用节点只需要获取分割数据,不需要获取完整数据,使用节点获取的数据体积较少,从而减少了使用节点和数据服务器之间的网络带宽,同时也降低了使用节点和数据服务器的工作负荷和计算
量。
[0078]
在上述基于区块链的数据管理系统中,通过将基于完整数据生成的摘要数据写入区块链中,且将完整数据(及其分割的p条数据)链下存储在服务器中,或者更进一步,仅通过至少一部分验证节点对完整数据的完整摘要数据或完整数据的一部分数据的摘要进行验证,一方面降低了对于区块链上的相关节点的存储容量的要求,且利用区块链的不可修改特性以保存完整数据并确保完整数据未被修改,另一方面增加了验证的准确性,同时减少了计算量和计算资源,且降低了对于区块链上的相关节点的处理速度的要求。
[0079]
根据本公开的另一方面,提供了一种基于区块链的数据管理方法,应用在验证节点。图5a-5b示出了根据本公开实施例的基于区块链的数据管理方法500a和500b。该方法500a和500b用于验证要写入区块链的数据,可以在验证节点中的至少一部分验证节点处执行,并包括以下步骤。
[0080]
在方法500a中,在步骤510,获取交易数据,获取交易数据,其中所述交易数据包括n条摘要数据,所述n条摘要数据分别基于与所述交易数据相关联的n条数据而生成,n为大于1的整数。
[0081]
可选地,所述n条数据为1条完整数据和该完整数据的n-1条分割数据,或者所述n条数据为完整数据的n条分割数据。
[0082]
可选地,在上述智能制造的具体应用中,该n条数据可以通过将设备上传的数据作为完整数据进行分割而得到。
[0083]
在步骤520,从n条摘要数据中选择要用于验证的m条摘要数据,m为小于或等于n且大于或等于1的整数。
[0084]
在步骤530,获取分别与所述m条摘要数据对应的m条存储数据。
[0085]
可选地,m条数据为1条完整数据和完整数据的m-1条分割数据,或者,m条数据为完整数据的m条分割数据。
[0086]
可选地,所述n条数据中至少两条数据的长度不同,所述m条摘要数据包括基于所述n条数据中长度最短的一条数据生成的摘要数据。或者,更进一步,m=1。
[0087]
可选地,交易数据还包括n条数据的位置信息,其中,可以根据m条存储数据的位置信息分别获取m条数据。
[0088]
可选地,交易数据还包括n条数据对应的设备标识,和/或n条数据对应的时间信息,并且其中,n条数据的位置信息包括:存储n条数据的数据服务器节点的位置信息以及n条数据中的每条数据在数据服务器节点中的位置信息。
[0089]
在步骤540,计算m条存储数据各自的摘要。
[0090]
在步骤550,在m条摘要数据与m条存储数据各自的摘要相同的情况下,将交易数据写入区块链。
[0091]
可选地,在所有验证节点或者一部分验证节点(例如超过半数,例如80%)处均确定m条摘要数据与n条数据当中用于验证的m条数据的摘要相同的情况下,将交易数据写入区块链。
[0092]
此外,多个验证节点在对要写入区块链的数据进行验证时,所采用的操作如方法500b的各个步骤所述。
[0093]
在步骤5100,获取交易数据,其中所述交易数据包括n条摘要数据,所述n条摘要数
据分别基于与所述交易数据相关联的n条数据而生成,n为大于1的整数。
[0094]
在步骤5200,从n条摘要数据中选择要用于验证的m条摘要数据,m为小于或等于n且大于或等于1的整数;其中多个验证节点中的第一类验证节点验证的摘要数据包括基于生成所述m条摘要数据的m条数据中长度最短的一条数据而生成的摘要数据。
[0095]
可选地,所述m条数据包括1条完整数据和所述完整数据的m-1条分割数据,所述多个节点中的第二类验证节点验证基于所述完整数据生成的摘要数据。或者,所述m条数据包括1条完整数据的m条分割数据,所述多个节点中的第二类验证节点验证所述第一类验证节点未验证的摘要数据。
[0096]
可选地,所述第一类验证节点数量大于所述第二类验证节点数量。
[0097]
在步骤5300,获取分别与所述m条摘要数据对应的m条存储数据。
[0098]
在步骤5400,计算所述m条存储数据各自的摘要。
[0099]
在步骤5500,在所述m条摘要数据与所述m条存储数据各自的摘要分别相同的情况下,将所述交易数据写入区块链。在方法500b中,获取摘要数据、获取存储数据以及计算摘要的各个步骤与前面描述的内容类似,因此这里不再详细描述。
[0100]
根据本公开的另一方面,提供了一种基于区块链的数据管理方法,应用在使用节点。图6示出了根据本公开实施例的一种基于区块链的数据管理方法600。该方法600用于从区块链获取数据,并包括以下步骤。
[0101]
在步骤s610,获取被包括在与特定设备和/或时间段对应的交易数据中的n条摘要数据中的m条摘要数据,其中所述n条摘要数据分别基于与所述交易数据相关联的n条数据而生成,n为大于1的整数,m为小于或等于n且大于或等于1的整数。
[0102]
可选地,所述n条数据为1条完整数据和该完整数据的n-1条分割数据,或者所述n条数据为完整数据的n条分割数据。m条数据为1条完整数据和完整数据的m-1条分割数据,或者,m条数据为完整数据的m条分割数据。
[0103]
可选地,所述n条数据中至少两条数据的长度不同,所述m条摘要数据包括基于所述n条数据中长度最短的一条数据生成的摘要数据。或者,更进一步,m=1。
[0104]
可选地,获取m条摘要数据的操作可以包括:由使用节点向区块链中的存储节点发送摘要数据获取请求,所述摘要数据获取请求至少包括与所述特定设备和/或时间段对应的设备标识和/或时间信息,从所述存储节点接收数据获取响应,所述数据获取响应可以包括所述n条摘要数据中的m条摘要数据,还可以进一步包括存储n条数据的所述数据服务器节点的地址、所述m条存储数据在所述数据服务器节点中的存储位置。
[0105]
在步骤620,获取分别与所述m条摘要数据对应的m条存储数据。
[0106]
可选地,获取m条存储数据的操作可以包括:基于所述数据服务器节点的地址、所述m条存储数据在所述数据服务器节点中的存储位置,来从所述数据服务器节点获取所述m条存储数据。
[0107]
在步骤630,计算所述m条存储数据各自的摘要。
[0108]
在步骤640,在所述m条摘要数据与所述m条存储数据各自的摘要分别相同的情况下,确定与交易数据相关联的完整数据未被篡改。
[0109]
根据本公开的另一方面,提供了一种基于区块链的数据管理方法,应用在使用节点。图7示出了根据本公开实施例的一种基于区块链的数据管理方法700。该方法700用于从
区块链获取数据,并包括以下步骤。
[0110]
在步骤710,获取至少一个传感器设备的完整数据。
[0111]
可选地,至少一个传感器设备上传的数据除了所述完整数据之外,还包括设备标识,和/或时间信息。
[0112]
在步骤720,将所述至少一个传感器设备的完整数据分割为p条数据,并基于所述至少一个传感器设备的完整数据生成完整摘要数据和/或分别基于所述p条数据生成p条摘要数据,p为大于1的整数。
[0113]
可选地,可以将单个传感器设备上传的完整数据作为一条完整数据;可以将每个时间段的单个传感器设备上传的多条数据进行组合作为一条时间组合完整数据;或者可以将每个时间段的多个传感器设备上传的多条初始完整数据进行组合作为一条设备组合完整数据。
[0114]
可选地,将至少一个传感器设备的完整数据分割为p条数据的操作可以包括:将完整数据、时间组合完整数据或设备组合完整数据按照按顺序的预设比例进行分割,或者基于时间信息按照时间来对时间组合完整数据进行分割;或者基于设备标识以传感器设备为单位或基于时间信息以时间段为单位来对设备组合完整数据进行分割。
[0115]
在步骤730,将所述p条数据和/或所述完整数据存储在数据服务器节点中。
[0116]
可选地,在步骤s730中,向所述数据服务器节点发送信息上报请求,所述信息上报请求至少包括所述完整数据和/或所述p条数据以及产生所述p条数据的设备对应的设备标识和/或所述p条数据对应的时间信息,并且从所述数据服务器节点接收信息上报响应,所述信息上报响应至少包括所述数据服务器节点的地址、p条数据(也即p条存储数据)中的每条数据在所述数据服务器节点中的存储位置。
[0117]
在步骤740,将p条摘要数据和/或完整数据的完整摘要数据中的n条摘要数据包括在交易数据中并向区块链的验证节点发送,n等于p或p 1。其中,区块链中的验证节点在由中间设备计算的n条摘要数据中的m条摘要数据与由验证节点计算的与m条摘要数据对应的m条存储数据各自的摘要相同时,将交易数据生成区块并写入区块链,m为小于n且大于或等于1的整数。
[0118]
可选地,所述m条数据为所述完整数据和所述完整数据的m-1条分割数据;或,所述m条数据为所述完整数据的m条分割数据。
[0119]
可选地,所述p条数据中至少两条数据的长度不同,所述m条摘要数据包括基于所述p条数据中长度最短的一条数据生成的摘要数据。可选地,m等于1。
[0120]
可选地,将所述p条存储数据的位置信息、所述p条数据对应的设备标识,和/或所述p条数据对应的时间信息连同所述完整数据的摘要和/或所述n条摘要数据一起包括在交易数据中并向区块链的所有验证节点或一部分验证节点(例如,超过半数,例如80%的验证节点)发送。
[0121]
在上述基于区块链的数据管理方法中,通过将基于完整数据生成的摘要数据写入区块链中,且将完整数据(及其分割的p条数据)存储在服务器中,或者更进一步,仅通过至少一部分验证节点对完整数据的完整摘要数据或完整数据的一部分数据的摘要进行验证,一方面降低了对于区块链上的相关节点的服务器的存储容量的要求,且利用区块链的不可修改特性以保存完整数据并确保完整数据未被修改,另一方面提高了验证准确性并同时减
少了计算量和计算资源,且降低了对于区块链上的相关节点的服务器的处理速度的要求。
[0122]
根据本公开的又一方面,还提供了基于区块链的数据管理装置。
[0123]
图8示出了根据本公开实施例的基于区块链的数据管理装置800,应用于验证节点处。该装置800可以包括处理器801和存储器802。处理器801和存储器802可以通过总线803相连。
[0124]
处理器801可以根据存储在存储器802中的指令执行各种动作和处理。在存储器中的指令被执行时,可以使得处理器执行根据本公开的实施例中的参考图5a-5b所描述的用于验证节点的、基于区块链的数据管理方法的各步骤。
[0125]
具体地,处理器801可以是一种集成电路芯片,具有信号的处理能力。上述处理器可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,可以是x87架构或arm架构的。
[0126]
存储器802可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(rom)、可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)或闪存。易失性存储器可以是随机存储存储器(ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存储存储器(sram)、动态随机存储存储器(dram)、同步动态随机存储存储器(sdram)、双倍数据速率同步动态随机存储存储器ddrsdram)、增强型同步动态随机存储存储器(esdram)、同步连接动态随机存储存储器(sldram)和直接内存总线随机存储存储器(dr ram)。应注意,本公开描述的方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
[0127]
图9示出了根据本公开实施例的基于区块链的数据管理装置900,应用于使用节点处。该装置900可以包括处理器901和存储器902。处理器901和存储器902可以通过总线903相连。
[0128]
处理器901、存储器802以及总线903可以采用与图8中的类似的布置,当存储器902上存储的指令被执行时,使得处理器901执行本公开的实施例中的参考图6所描述的用于使用节点的、基于区块链的数据管理方法的各步骤。
[0129]
图10示出了根据本公开实施例的基于区块链的数据管理装置1000,应用于使用节点处。该装置1000可以包括处理器1001和存储器1002。处理器1001和存储器1002可以通过总线1003相连。
[0130]
处理器1001、存储器1002以及总线1003可以采用与图8中的类似的布置,当存储器1002上存储的指令被执行时,使得处理器1001执行本公开的实施例中的参考图7所描述的用于中间设备的、基于区块链的数据管理方法的各步骤。
[0131]
在上述基于区块链的数据管理装置中,通过将基于完整数据生成的摘要数据写入区块链中,且将完整数据(及其分割的p条数据)链下存储在服务器中,或者更进一步,仅通过至少一部分验证节点对完整数据的完整摘要数据或完整数据的一部分数据的摘要进行验证,一方面降低了对于区块链上的相关节点的服务器的存储容量的要求,且利用区块链的不可修改特性以保存完整数据并确保完整数据未被修改,另一方面减少了计算量和计算
资源,且降低了对于区块链上的相关节点的服务器的处理速度的要求。
[0132]
虽然已经针对本公开的各种具体示例实施例详细描述了本公开,但是每个示例通过解释而不是限制本公开来提供。本领域技术人员在得到对上述内容的理解后,可以容易地做出这样的实施例的变更、变化和等同物。因此,本发明并不排除包括将对本领域普通技术人员显而易见的对本公开的这样的修改、变化和/或添加。例如,作为一个实施例的一部分图示或描述的特征可以与另一实施例一起使用,以产生又一实施例。因此,意图是本公开覆盖这样的变更、变化和等同物。
[0133]
具体地,尽管本公开的附图出于图示和讨论的目的分别描述了以特定顺序执行的步骤,但是本公开的方法不限于特定图示的顺序或布置。在不偏离本公开的范围的情况下,上述方法的各个步骤可以以各种方式省略、重新布置、组合和/或调整。
[0134]
本领域技术人员可以理解,本技术的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本技术的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本技术的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
[0135]
除非另有定义,这里使用的所有术语(包括技术和科学术语)具有与本公开所属领域的普通技术人员共同理解的相同含义。还应当理解,诸如在通常字典里定义的那些术语应当被解释为具有与它们在相关技术的上下文中的含义相一致的含义,而不应用理想化或极度形式化的意义来解释,除非这里明确地这样定义。
[0136]
以上是对本公开的说明,而不应被认为是对其的限制。尽管描述了本公开的若干示例性实施例,但本领域技术人员将容易地理解,在不背离本公开的新颖教学和优点的前提下可以对示例性实施例进行许多修改。因此,所有这些修改都意图包含在权利要求书所限定的本公开范围内。应当理解,上面是对本公开的说明,而不应被认为是限于所公开的特定实施例,并且对所公开的实施例以及其他实施例的修改意图包含在所附权利要求书的范围内。本公开由权利要求书及其等效物限定。
再多了解一些

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

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

相关文献