具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
区块链是一个分布式账本,一种通过去中心化、去信任的方式集体维护一个可靠数据库的技术方案。从数据的角度来看,区块链是一种几乎不可能被更改的分布式数据库。这里的“分布式”不仅体现为数据的分布式存储,也体现为数据的分布式记录(即由系统参与者共同维护)。从技术的角度来看,区块链并不是一种单一的技术,而是多种技术整合的结果。这些技术以新的结构组合在一起,形成了一种新的数据记录、存储和表达的方式。
区块链的特性有开放、共识、去中心、去信任、透明、双方匿名、不可篡改以及可追溯。其中,开放与透明意为任何人都可以参与到区块链网络,每一台设备都能作为一个节点,每个节点都允许获得一份完整的数据库拷贝。节点基于一套共识机制,通过竞争计算共同维护整个区块链。任一节点失效,其余节点仍能正常工作。其中,去中心化与去信任意为区块链由众多节点共同组成一个端到端的网络,不存在中心化的设备和管理机构。节点之间数据交换通过数字签名技术进行验证,无需互相信任,只要按照系统既定的规则进行,节点之间不能也无法欺骗其他节点。其中,透明与双方匿名意为区块链的运行规则是公开的,所有的数据信息也是公开的,因此每一笔交易都对所有节点可见。由于节点与节点之间是去信任的,因此节点之间无需公开身份,每个参与的节点都是匿名的。其中,不可篡改和可追溯意为每个甚至多个节点对数据库的修改无法影响其他节点的数据库,除非能控制整个网络中超过51%的节点同时修改,这是几乎不可能发生的。区块链中的,每一笔交易都通过密码学方法与相邻两个区块串联,因此可以追溯到任何一笔交易的前世今生。
需要说明的是,在区块链技术中区块是一种记录数据的数据结构。在一种区块结构中,区块由区块头和区块主体组成,区块主体即数据部分只负责记录前一段时间内存储的数据信息,区块链的大部分功能都由区块头实现。其中,区块链是由多个区块按时间轴连接而成,区块链之所以称之为链是因为区块具有连续性。在区块链技术中,连续性是指,前一个区块的区块头的数据经过哈希(hash)运算产生一个哈希值,然后将其写入后一个区块的区块头中。从创世区块开始,每个区块都进行如此操作,所以区块具有连续性,同时也在一个方面说明区块的不可篡改与可追溯的特性。如图1A所示,是区块链技术中一种区块的结构图,它包括区块头以及区块主体两个部分,其中,两个部分又可以再对其内容进行更加细地划分。进一步地,对于区块结构的分解,可能不是只有区块头与区块主体的一种形式。可能将其分的更多,可能还包括区块大小(Blocksize)以及魔法数(Magic No.)等。但本发明实施例的主体思想是在保证连续性的情况下,依据区块的特性生成新区块并记录在新区块链中,所以在实施例具体说明中请依据主体思想来进行理解。
参见图1,图1是本发明实施例提供的一种数据处理方法的示意流程图,如图1所示方法可包括:
S101:接收由终端提交的按照预设格式记录的原始数据。
本发明实施例主要应用于区块链节点服务器,而作为区块链节点服务器的类型有很多,可以是传统服务器、大型存储系统、台式电脑、笔记本电脑、平板电脑、掌上电脑、智能手机、便携式数字播放器、智能手表以及智能手环等等。其中,所述区块链节点服务器为根据共识机制确定的区块链网络中的其中一个服务器。应理解,由于区块链是一个去中心化的分布式数据库,所以每次处理数据都需要选出区块链网络中的其中一个服务器作为执行者来处理数据。而每次选取服务器的规则便是共识机制,本发明实施例中共识机制可以是工作量证明机制(Proof of Work,POW)、股权证明机制(Proof of Stake,POS)、瑞波共识机制(Ripple Consensus)以及授权股权证明机制(Delegated Proof of Stake,DPOS)等,在此不作限定。本发明实施例中,终端包括但不限于带通讯功能的设备、智能手机、平板电脑、笔记本电脑、台式电脑、便携式数字播放器、智能手环以及智能手表等。
本发明实施例中,原始数据为终端上传到区块链节点服务器进行存储的数据。其中,原始数据为终端按照预设格式进行记录的,应理解,数据的内容包括时间、地点、类型等特性。终端可以根据预设格式将数据的这些特性进行记录,从而生成发给区块链节点服务器的原始数据。
本发明实施例中,在接收由终端提交的按照预设格式记录的区块数据之前,还可以包括接收终端的注册信息,其中,所述注册信息包括根据终端的注册请求分配的终端标识以及生成的终端密钥,所述密钥用于验证终端提交的数据的真实性。
S102:将所述原始数据按照第一规则生成第一区块数据,将所述第一区块数据记录在第一区块链中。
本发明实施例中,第一区块链可以理解为总区块链,它直接存储各种类别特性的原始数据转换而成的区块数据。而第二区块链可以理解为特性区块链,它是将总区块链中具有某种特性的区块数据进行存储,而非特性区块数据只保留区块数据的连续性。
本发明实施例中,将所述原始数据按照第一规则生成第一区块数据,可以是根据所述区块链节点服务器记录的第一区块链中的上一个区块数据以及所述原始数据生成第一区块数据。可以理解的是,区块的构成主要在于与前一区块的连续性以及对原始数据的存储。将第一区块数据的上一个区块数据进行处理,得到上一个区块的特征信息,将该特征信息作为第一区块数据与前一区块数据的联系设置在第一区块数据中。而原始数据经过格式上的处理同样存储在第一区块数据中,从而生成第一区块数据。
本发明实施例中,将所述原始数据按照第一规则生成第一区块数据,还可以是利用单向不可逆函数对所述区块链节点服务器记录的第一区块链中的上一个区块数据进行计算,得到第一特征值;根据所述第一特征值以及所述原始数据生成第一区块数据。可以理解的是,单向不可逆函数为将数据A进行计算得到函数值,其中,数据A唯一对应一个函数值,数据A改变则函数值必改变即一个函数值不可能对应多个数据,并且在只知道函数值的情况下不可能推算出数据A。将上一个区块的第一特征值与原始数据按照一定的规则生成第一区块数据,并记录与第一区块链中。其中,第一区块数据的结构可以参考图1A所示的区块结构,其中,第一特征值为上一区块数据的区块头经过哈希计算产生的哈希值。
S103:根据第一区块数据的特性生成第二区块数据并记录在第二区块链中。
本发明实施例中,根据第一区块数据的特性生成第二区块数据并记录在第二区块链中,可以是判断所述第一区块数据是否具有特定特性标识,再根据是否具有特定特性标识进行存储处理。其中,所述特定特性标识根据第二区块链的数据需求共识确定,可以理解的是,第二区块链中的各个区块数据为同一特定特性标识的区块数据,在生成第二区块链的时候就规定了其数据需求。进一步地,同类第二区块链可以有多个,举例来说,根据数据需求A确定特定特征标识A进而生成特定特征标识A的第二区块链,还可以根据数据需求B确定特定特征标识B进而生成特定特征标识B的第二区块链。
其中,所述特定特性标识用于匹配第一区块数据中的数据部分的信息。进一步地,第一区块数据中可以存在预设比特位,所述预设比特位用于与特定特性标识进行匹配,所述预设比特位可以是一个或多个比特,也可以是一个或多个字节,不作限定。例如,第一区块数据的第n个字节用于指示数据部分的信息的时间,当表示指定时间的特定特性标识与第一区块数据的第n个字节进行匹配后,便可以判断所述第一区块数据是否具有特定特性标识。可以理解的是,这类预设比特位可以有多个,例如第一区块数据的第n个字节用于指示数据部分的信息的时间,第m个字节用于指示数据部分的信息的地理位置,第k个字节用于指示数据部分的信息的种类等等。
优选地,第一区块数据可以存在第一预设比特位,所述第一预设比特位用于指示区块数据是否存在特征,若第一预设比特位指示存在特征则第二预设比特位用于表示特征以及用于与特定特性标识进行匹配。举例来说,第一预设比特位为“0”时,代表第一区块数据没有特征,第一预设比特位为“1”时,代表第一区块数据存在特征。当第一预设比特位为“1”时,第二比特位有效,且代表属于某种特征,如第二比特位是一个字节,可以表示256种特征。在这个例子中,当判断所述第一区块数据是否具有特定特性标识时,首先判断第一预设比特位是否为“1”,若否则直接认定该第一区块数据不具有特定特性标识,若是则将特定特性标识与第二比特位进行匹配,相同则认定该第一区块数据具有特定特性标识。需要说明的是,预设比特位可以在第一区块数据的区块头中,也可以在第一区块数据的数据部分。应理解,上述例子都是作为一种举例,不是作为具体的限定。
进一步地,可以对第一区块数据的数据部分的信息进行分类,将分类结果与特定特性标识进行匹配。该方法主要针对第一区块数据没有预先进行特性处理的情况,可以在生成第二区块数据的过程中进行特性处理。对第一区块数据的数据部分的信息进行分类的方式可以是提取关键词的方式,具体地,可以是根据特定特性标识表征的词对数据部分的信息进行提取相应的词,若未提取到相应的词则认定所述第一区块数据不具有特定特性标识。例如,特定特性标识表征“晴天”,则对第一区块数据的数据部分的信息进行查找,从而确定该第一区块数据是否含有“晴天”。进一步地,对第一区块数据的数据部分的信息进行分类的方式也可以是文本分类的方式,具体地,可以是将数据部分的信息进行文本分类,然后将分类后的标识与特定特性标识进行匹配,若匹配未成功则认定所述第一区块数据不具有特定特性标识。举例来说,对第一区块数据的数据部分的信息进行文本分类,分类结果为“大学”“学区”“房价”等,将分类结果的标识与表示“房价”的特定特性标识匹配,得出匹配结果为相同,从而该第一区块数据具有特定特性标识。优选地,文本分类的方法可以使用Fasttext、CNN(Convolutional Neural Network)以及LSTM(Long Short-Term Memory)等。
上述内容阐述了如何判断所述第一区块数据是否具有特定特性标识,接下来将对判断之后的生成第二区块数据进行说明。
若第一区块数据具有特定特性标识,则将第一区块数据作为第二区块数据记录在第二区块链中。应理解,当第一区块数据具有特定特性标识时,表明该第一区块数据中的数据内容为第二区块链需要进行记录的,所以将第一区块数据作为第二区块数据记录在第二区块链中,不仅保证了区块之间的连续性,且记录特定特性标识的数据内容。
作为第一种实施方式,若第一区块数据不具有特定特性标识,可以将所述第一区块数据的区块头数据作为第二区块数据记录在第二区块链中。应理解,区块头数据包含用于连接上一区块的数据,且区块头数据相较于第一区块数据来说比较小,在数据量较大时甚至可以忽略不计,所述可以将所述第一区块数据的区块头数据作为第二区块数据记录在第二区块链中。
作为第二种实施方式,若第一区块数据不具有特定特性标识,也可以利用单向不可逆函数对所述第一区块数据进行计算,得到第二特征值,将所述第二特征值与所述第一特征值作为第二区块数据记录在第二区块链中。应理解,第一特征值为第一区块链中上一区块数据的特征值,第二特征值为该第一区块数据的特征值。将这两个特征值作为第二区块数据,即保证了与前一个区块数据的连续性,又保留了与后一区块数据进行连接的第二特征值。相比于上一实施方式,更加节省存储空间。
接下来将以上述第一种实施方式的结构结合图1A-图1E进行说明,图中,“P”为特定特性标识。
如图1A所示,图1A为一种区块数据的结构,包括区块头与区块主体,其中,区块主体也可称为数据部分。根据本发明实施例的方法,第一区块链的结构如图1B所示,第二区块链的结构如图1C所示。将两张图进行对比可以清晰直观的看出,本发明实施例中的步骤S103的执行过程。
优选地,本发明实施例还提供一种生成第二区块数据的实施方式,在第一区块数据中可能存储多个数据,数据之间的特征可能不同,即数据的特性标识不同,所以一个区块无法进行一个特定特性标识的判定。请参见图1D与图1E,是使用本发明实施例的思想对单个区块中多个数据进行的处理示意图。其中,特征标识为P。在第一区块数据中,判断其中的每个数据是否具有特定特性标识,然后将具有特定特性标识的数据与区块头一起生成第二区块数据,并记录于第二区块链中。
进一步地,若第一区块链中存在连续多个区块数据不具有所述特定特性标识,可以对所述连续多个区块的区块头进行压缩处理,得到压缩数据,再将所述压缩数据记录于第二区块链中。可以理解的是,当第一区块链中有大量的连续区块不具有特定特性标识时,若只将其区块头存储于第二区块链中,则相对于有用的数据部分,区块头占用的存储资源变得较多,不利于合理利用存储空间。而且,当查看数据时,还要对这些区块头进行遍历,区块头太多,导致降低时效性。若将这些区块头打包进行处理,则可以解决上述问题。例如,当在第一区块链中检测到连续多个区块数据不具有特定特性标识时,将它们的区块头打包压缩为一个区块的数据部分。区块头定义为特殊区块模式,用于说明该区块仅用于存储区块头数据。为了保证区块之间的连续性,该区块中存储两个哈希值,一个哈希值为所述不具有特定特性标识的连续区块的前一区块的区块头计算出来的哈希值,用于连接上一个区块;一个哈希值为所述不具有特定特性标识的连续区块的最后一个区块的区块头计算出来的哈希值,用于连接下一个区块。需要说明的是,当要查看确切的连接关系时,可以将该区块解压缩,从而得到所述不具有特定特性标识的连续区块的区块头。应理解,以上例子都是作为一种举例,不是作为具体的限定。
请参考图1F,为更清楚地理解,接下来将对上述以第一种实施方式的结构说明的部分内容,再结合第二种实施方式进行阐述。
如图1F所示,第一区块链中的区块之间的结构上存在是否具有特定特性标识的差别,而第二区块链中的区块相对于第一区块链的区块发生了显著变化。其中,第一区块链中具有特定特性标识的区块在第二区块链中记录后没有发生变化,而第一区块链中没有具有特定特性标识的区块在第二区块链中记录后变为了只记录上一区块的特征值与本区块的特征值。可以看出,这样的处理更大程度的节约了存储资源,且生成了只具有特定特性标识的区块链。
进一步地,本实施例在第一区块链中存在大量连续区块数据不具有特定特性标识色情况下,可以对这些大量连续区块数据压缩处理。即通过单向不可逆函数得到大量连续区块数据前一区块的特征值和大量连续区块数据中最后一个区块的特征值,然后将这两个特征值作为一个区块记录于第二区块链中。可以理解的是,前一区块的特征值用于连接上一个区块;最后一个区块的特征值用于连接下一个区块。
本发明实施例通过将终端提交的按照预设格式记录的原始数据进行多级处理并记录于不同的区块链中,其中,前一区块链中的数据为直接由原始数据生成的区块所组成,后一区块链中的数据为将前一区块链的对应区块依据其特性而生成,从而形成了多级区块链。本实施例在考虑到区块链的相关特征的情况下可以通过原区块链中的具有特性的区块组成下一级区块链,能有效建立具有特性的数据集,方便用户使用。
参见图2,图2是本发明实施例提供的另一种数据处理的方法的示意流程图,如图所示方法可包括:
S201:接收终端的注册信息。
S202:接收由终端提交的按照预设格式记录的原始数据。
S203:利用哈希函数对区块链节点服务器记录的第一区块链中的上一个区块数据进行计算,得到第一哈希值,根据第一哈希值以及原始数据生成第一区块数据。
S204:将所述第一区块数据记录在第一区块链中。
S205:判断所述第一区块数据是否具有特定特性标识。
S206:若是,则将第一区块数据作为第二区块数据记录在第二区块链中。
S207:若否,则利用哈希函数对第一区块数据进行计算,得到第二哈希值,将第二哈希值与第一哈希值作为第二区块数据记录在第二区块链中。
需要说明的是,图2所示的方法的其中部分步骤的具体实现过程可参见上一方法实施例所述的具体实现过程,在此不再赘述。
本发明实施例还提供一种服务器,该服务器用于执行前述任一项所述的方法的单元。具体地,参见图3,是本发明实施例提供的一种服务器的示意框图。本实施例的服务器包括:接收单元301、第一记录单元302以及第二记录单元303。
接收单元301,用于接收由终端提交的按照预设格式记录的原始数据。
本发明实施例主要应用于区块链节点服务器,而作为区块链节点服务器的类型有很多,可以是传统服务器、大型存储系统、台式电脑、笔记本电脑、平板电脑、掌上电脑、智能手机、便携式数字播放器、智能手表以及智能手环等等。其中,所述区块链节点服务器为根据共识机制确定的区块链网络中的其中一个服务器。应理解,由于区块链是一个去中心化的分布式数据库,所以每次处理数据都需要选出区块链网络中的其中一个服务器作为执行者来处理数据。而每次选取服务器的规则便是共识机制,本发明实施例中共识机制可以是工作量证明机制(Proof of Work,POW)、股权证明机制(Proof of Stake,POS)、瑞波共识机制(Ripple Consensus)以及授权股权证明机制(Delegated Proof of Stake,DPOS)等,在此不作限定。本发明实施例中,终端包括但不限于带通讯功能的设备、智能手机、平板电脑、笔记本电脑、台式电脑、便携式数字播放器、智能手环以及智能手表等。
本发明实施例中,原始数据为终端上传到区块链节点服务器进行存储的数据。其中,原始数据为终端按照预设格式进行记录的,应理解,数据的内容包括时间、地点、类型等特性。终端可以根据预设格式将数据的这些特性进行记录,从而生成发给区块链节点服务器的原始数据。
本发明实施例中,所述接收单元还可以用于:接收终端的注册信息,其中,所述注册信息包括根据终端的注册请求分配的终端标识以及生成的终端密钥,所述密钥用于验证终端提交的数据的真实性。
第一记录单元302,用于将所述原始数据按照第一规则生成第一区块数据,将所述第一区块数据记录在第一区块链中。
本发明实施例中,第一区块链可以理解为总区块链,它直接存储各种类别特性的原始数据转换而成的区块数据。而第二区块链可以理解为特性区块链,它是将总区块链中具有某种特性的区块数据进行存储,而非特性区块数据只保留区块数据的连续性。
本发明实施例中,第一记录单元302,可以具体用于根据所述区块链节点服务器记录的第一区块链中的上一个区块数据以及所述原始数据生成第一区块数据。可以理解的是,区块的构成主要在于与前一区块的连续性以及对原始数据的存储。将第一区块数据的上一个区块数据进行处理,得到上一个区块的特征信息,将该特征信息作为第一区块数据与前一区块数据的联系设置在第一区块数据中。而原始数据经过格式上的处理同样存储在第一区块数据中,从而生成第一区块数据。
本发明实施例中,第一记录单元302,还可以具体用于利用单向不可逆函数对所述区块链节点服务器记录的第一区块链中的上一个区块数据进行计算,得到第一特征值;根据所述第一特征值以及所述原始数据生成第一区块数据。可以理解的是,单向不可逆函数为将数据A进行计算得到函数值,其中,数据A唯一对应一个函数值,数据A改变则函数值必改变即一个函数值不可能对应多个数据,并且在只知道函数值的情况下不可能推算出数据A。将上一个区块的第一特征值与原始数据按照一定的规则生成第一区块数据,并记录与第一区块链中。其中,第一区块数据的结构可以参考图1A所示的区块结构,其中,第一特征值为上一区块数据的区块头经过哈希计算产生的哈希值。
第二记录单元303,用于根据第一区块数据的特性生成第二区块数据并记录在第二区块链中。
本发明实施例中,第二记录单元303,可以具体用于判断所述第一区块数据是否具有特定特性标识,再根据是否具有特定特性标识进行存储处理。其中,所述特定特性标识根据第二区块链的数据需求共识确定,可以理解的是,第二区块链中的各个区块数据为同一特定特性标识的区块数据,在生成第二区块链的时候就规定了其数据需求。进一步地,同类第二区块链可以有多个,举例来说,根据数据需求A确定特定特征标识A进而生成特定特征标识A的第二区块链,还可以根据数据需求B确定特定特征标识B进而生成特定特征标识B的第二区块链。
其中,所述特定特性标识用于匹配第一区块数据中的数据部分的信息。进一步地,第一区块数据中可以存在预设比特位,所述预设比特位用于与特定特性标识进行匹配,所述预设比特位可以是一个或多个比特,也可以是一个或多个字节,不作限定。例如,第一区块数据的第n个字节用于指示数据部分的信息的时间,当表示指定时间的特定特性标识与第一区块数据的第n个字节进行匹配后,便可以判断所述第一区块数据是否具有特定特性标识。可以理解的是,这类预设比特位可以有多个,例如第一区块数据的第n个字节用于指示数据部分的信息的时间,第m个字节用于指示数据部分的信息的地理位置,第k个字节用于指示数据部分的信息的种类等等。
优选地,第一区块数据可以存在第一预设比特位,所述第一预设比特位用于指示区块数据是否存在特征,若第一预设比特位指示存在特征则第二预设比特位用于表示特征以及用于与特定特性标识进行匹配。举例来说,第一预设比特位为“0”时,代表第一区块数据没有特征,第一预设比特位为“1”时,代表第一区块数据存在特征。当第一预设比特位为“1”时,第二比特位有效,且代表属于某种特征,如第二比特位是一个字节,可以表示256种特征。在这个例子中,当判断所述第一区块数据是否具有特定特性标识时,首先判断第一预设比特位是否为“1”,若否则直接认定该第一区块数据不具有特定特性标识,若是则将特定特性标识与第二比特位进行匹配,相同则认定该第一区块数据具有特定特性标识。需要说明的是,预设比特位可以在第一区块数据的区块头中,也可以在第一区块数据的数据部分。应理解,上述例子都是作为一种举例,不是作为具体的限定。
进一步地,可以对第一区块数据的数据部分的信息进行分类,将分类结果与特定特性标识进行匹配。该方法主要针对第一区块数据没有预先进行特性处理的情况,可以在生成第二区块数据的过程中进行特性处理。对第一区块数据的数据部分的信息进行分类的方式可以是提取关键词的方式,具体地,可以是根据特定特性标识表征的词对数据部分的信息进行提取相应的词,若未提取到相应的词则认定所述第一区块数据不具有特定特性标识。例如,特定特性标识表征“晴天”,则对第一区块数据的数据部分的信息进行查找,从而确定该第一区块数据是否含有“晴天”。进一步地,对第一区块数据的数据部分的信息进行分类的方式也可以是文本分类的方式,具体地,可以是将数据部分的信息进行文本分类,然后将分类后的标识与特定特性标识进行匹配,若匹配未成功则认定所述第一区块数据不具有特定特性标识。举例来说,对第一区块数据的数据部分的信息进行文本分类,分类结果为“大学”“学区”“房价”等,将分类结果的标识与表示“房价”的特定特性标识匹配,得出匹配结果为相同,从而该第一区块数据具有特定特性标识。优选地,文本分类的方法可以使用Fasttext、CNN(Convolutional Neural Network)以及LSTM(Long Short-Term Memory)等。
上述内容阐述了如何判断所述第一区块数据是否具有特定特性标识,接下来将对判断之后的生成第二区块数据进行说明。
若第一区块数据具有特定特性标识,则将第一区块数据作为第二区块数据记录在第二区块链中。应理解,当第一区块数据具有特定特性标识时,表明该第一区块数据中的数据内容为第二区块链需要进行记录的,所以将第一区块数据作为第二区块数据记录在第二区块链中,不仅保证了区块之间的连续性,且记录特定特性标识的数据内容。
作为第一种实施方式,若第一区块数据不具有特定特性标识,可以将所述第一区块数据的区块头数据作为第二区块数据记录在第二区块链中。应理解,区块头数据包含用于连接上一区块的数据,且区块头数据相较于第一区块数据来说比较小,在数据量较大时甚至可以忽略不计,所述可以将所述第一区块数据的区块头数据作为第二区块数据记录在第二区块链中。
作为第二种实施方式,若第一区块数据不具有特定特性标识,也可以利用单向不可逆函数对所述第一区块数据进行计算,得到第二特征值,将所述第二特征值与所述第一特征值作为第二区块数据记录在第二区块链中。应理解,第一特征值为第一区块链中上一区块数据的特征值,第二特征值为该第一区块数据的特征值。将这两个特征值作为第二区块数据,即保证了与前一个区块数据的连续性,又保留了与后一区块数据进行连接的第二特征值。相比于上一实施方式,更加节省存储空间。
接下来将以上述第一种实施方式的结构结合图1A-图1E进行说明,图中,“P”为特定特性标识。
如图1A所示,图1A为一种区块数据的结构,包括区块头与区块主体,其中,区块主体也可称为数据部分。根据本发明实施例的方法,第一区块链的结构如图1B所示,第二区块链的结构如图1C所示。将两张图进行对比可以清晰直观的看出,本发明实施例中的步骤S103的执行过程。
优选地,本发明实施例还提供一种生成第二区块数据的实施方式,在第一区块数据中可能存储多个数据,数据之间的特征可能不同,即数据的特性标识不同,所以一个区块无法进行一个特定特性标识的判定。请参见图1D与图1E,是使用本发明实施例的思想对单个区块中多个数据进行的处理示意图。其中,特征标识为P。在第一区块数据中,判断其中的每个数据是否具有特定特性标识,然后将具有特定特性标识的数据与区块头一起生成第二区块数据,并记录于第二区块链中。
进一步地,若第一区块链中存在连续多个区块数据不具有所述特定特性标识,可以对所述连续多个区块的区块头进行压缩处理,得到压缩数据,再将所述压缩数据记录于第二区块链中。可以理解的是,当第一区块链中有大量的连续区块不具有特定特性标识时,若只将其区块头存储于第二区块链中,则相对于有用的数据部分,区块头占用的存储资源变得较多,不利于合理利用存储空间。而且,当查看数据时,还要对这些区块头进行遍历,区块头太多,导致降低时效性。若将这些区块头打包进行处理,则可以解决上述问题。例如,当在第一区块链中检测到连续多个区块数据不具有特定特性标识时,将它们的区块头打包压缩为一个区块的数据部分。区块头定义为特殊区块模式,用于说明该区块仅用于存储区块头数据。为了保证区块之间的连续性,该区块中存储两个哈希值,一个哈希值为所述不具有特定特性标识的连续区块的前一区块的区块头计算出来的哈希值,用于连接上一个区块;一个哈希值为所述不具有特定特性标识的连续区块的最后一个区块的区块头计算出来的哈希值,用于连接下一个区块。需要说明的是,当要查看确切的连接关系时,可以将该区块解压缩,从而得到所述不具有特定特性标识的连续区块的区块头。应理解,以上例子都是作为一种举例,不是作为具体的限定。
请参考图1F,为更清楚地理解,接下来将对上述以第一种实施方式的结构说明的部分内容,再结合第二种实施方式进行阐述。
如图1F所示,第一区块链中的区块之间的结构上存在是否具有特定特性标识的差别,而第二区块链中的区块相对于第一区块链的区块发生了显著变化。其中,第一区块链中具有特定特性标识的区块在第二区块链中记录后没有发生变化,而第一区块链中没有具有特定特性标识的区块在第二区块链中记录后变为了只记录上一区块的特征值与本区块的特征值。可以看出,这样的处理更大程度的节约了存储资源,且生成了只具有特定特性标识的区块链。
进一步地,本实施例在第一区块链中存在大量连续区块数据不具有特定特性标识色情况下,可以对这些大量连续区块数据压缩处理。即通过单向不可逆函数得到大量连续区块数据前一区块的特征值和大量连续区块数据中最后一个区块的特征值,然后将这两个特征值作为一个区块记录于第二区块链中。可以理解的是,前一区块的特征值用于连接上一个区块;最后一个区块的特征值用于连接下一个区块。
参见图4,是本发明另一实施例提供的一种服务器示意框图。如图所示的本实施例中的服务器可以包括:一个或多个处理器401;一个或多个输入设备402,一个或多个输出设备403和存储器404。上述处理器401、输入设备402、输出设备403和存储器404通过总线405连接。存储器402用于存储计算机程序,所述计算机程序包括程序指令,处理器401用于执行存储器402存储的程序指令。其中,处理器401被配置用于调用所述程序指令执行:
接收由终端提交的按照预设格式记录的原始数据;
将所述原始数据按照第一规则生成第一区块数据;
将所述第一区块数据记录在第一区块链中;
根据第一区块数据的特性生成第二区块数据并记录在第二区块链中。
一个实施例中,处理器401可以调用存储在存储器404中的应用程序,用于执行以下操作:根据所述区块链节点服务器记录的第一区块链中的上一个区块数据以及所述原始数据生成第一区块数据;或者,利用单向不可逆函数对所述区块链节点服务器记录的第一区块链中的上一个区块数据进行计算,得到第一特征值;根据所述第一特征值以及所述原始数据生成第一区块数据。
一个实施例中,处理器401可以调用存储在存储器404中的应用程序,用于执行以下操作:判断所述第一区块数据是否具有特定特性标识;若是,则将所述第一区块数据作为第二区块数据记录在第二区块链中;若否,则将所述第一区块数据的区块头数据作为第二区块数据记录在第二区块链中,或者,则利用单向不可逆函数对所述第一区块数据进行计算,得到第二特征值,将所述第二特征值与所述第一特征值作为第二区块数据记录在第二区块链中。
其中,所述特定特性标识根据第二区块链的数据需求共识确定。
一个实施例中,处理器401可以调用存储在存储器404中的应用程序,用于执行以下操作:接收终端的注册信息,其中,所述注册信息包括根据终端的注册请求分配的终端标识以及生成的终端密钥,所述密钥用于验证终端提交的数据的真实性。
应当理解,在本发明实施例中,所称处理器401可以是中央处理单元(CentralProcessing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
输入设备402可以包括触控板、指纹采传感器(用于采集用户的指纹信息和指纹的方向信息)、麦克风等,输出设备403可以包括显示器(LCD等)、扬声器等。
该存储器404可以包括只读存储器和随机存取存储器,并向处理器401提供指令和数据。存储器404的一部分还可以包括非易失性随机存取存储器。例如,存储器404还可以存储设备类型的信息。
具体实现中,本发明实施例中所描述的处理器401、输入设备402、输出设备403可执行本发明实施例提供的数据处理的方法的第一实施例和第二实施例中所描述的实现方式,也可执行本发明实施例所描述的终端的实现方式,在此不再赘述。
在本发明的另一实施例中提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时实现:
接收由终端提交的按照预设格式记录的原始数据;
将所述原始数据按照第一规则生成第一区块数据;
将所述第一区块数据记录在第一区块链中;
根据第一区块数据的特性生成第二区块数据并记录在第二区块链中。
可以理解的是,本发明实施例所述程序指令被处理器执行时实现的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例中的相关描述,此处不再赘述。
所述计算机可读存储介质可以是前述任一实施例所述的服务器的内部存储单元,例如服务器的硬盘或内存。所述计算机可读存储介质也可以是所述服务器的外部存储设备,例如所述服务器上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述计算机可读存储介质还可以既包括所述服务器的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述服务器所需的其他程序和数据。所述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置、服务器和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的单元、服务器和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。