发明内容
本发明实施例所要解决的技术问题在于,提供一种数据处理方法,可实现对数据的可靠存储,并为数据使用方提供真实可靠的数据信息。
为了解决上述技术问题,本发明实施例提供了一种数据处理方法,包括:
接收目标节点上传的目标数据,该目标数据携带目标节点的数字签名;将该目标数据发送给数据处理系统中除目标节点外的其他节点,使上述其他节点对该目标数据进行验证;若目标数据通过验证,则生成包含目标数据的目标区块;将目标区块写入区块链。
其中,将目标数据发送给数据处理系统中除目标节点外的其他节点,使其他节点对目标数据进行验证的具体实施方式为:将目标数据附上指示消息后,发送给数据处理系统中除目标节点外的其他节点;该指示消息用于指示其他节点根据数字签名对目标节点进行身份验证;若身份验证成功,则从区块链上查找与目标数据具备相同数据标识的关联数据;采用关联数据对目标数据的真实性进行验证;若真实性验证通过,则确认目标数据通过验证。
其中,在生成包含目标数据的目标区块之后,还包括:按照预设共识算法生成与该目标数据相对应的索引,该索引用于快速查找该目标数据;将索引发送至数据处理系统中的目标节点和除目标节点外的其他节点。
作为一种可能的实施方式,本发明提供的数据处理方法还包括:当接收到数据使用方对目标数据的查询请求时,检测是否满足智能合约的条件;若满足智能合约的条件,采用索引查找到目标数据,并将该目标数据反馈给数据使用方。
其中,上述满足智能合约的条件,包括:所述数据使用方的身份通过合法性验证,以及所述查询请求中包含满足所述智能合约的交易条件。
作为一种可能的实施方式,若目标数据为物流信息,物流信息的数据标识为快递单号,则上述对目标数据进行验证的具体实施方式包括:利用目标节点的公钥对目标节点的私钥签名进行解密,对目标节点的身份进行验证;若通过身份验证,则通过物流信息中的快递单号和索引查找区块链上与快递单号关联的目标物流信息,并根据目标物流信息验证上述物流信息的真实性。
相应地,本发明实施例还提供了一种数据处理服务器,包括:接收模块,用于接收目标节点上传的目标数据,该目标数据携带目标节点的数字签名;发送模块,用于将目标数据发送给数据处理系统中除目标节点外的其他节点,使其他节点对目标数据进行验证;生成模块,用于若目标数据通过验证,则生成包含目标数据的目标区块;写入模块,用于将该目标区块写入区块链。
作为一种可能的实施方式,上述发送模块,具体用于将所述目标数据附上指示消息后,发送给数据处理系统中除目标节点外的其他节点;该指示消息用于指示其他节点根据数字签名对目标节点进行身份验证;本发明实施例提供的数据处理服务器,还包括查找模块,用于若目标节点的身份验证成功,则从区块链上查找与目标数据具备相同数据标识的关联数据;验证模块,用于采用上述关联数据对目标数据的真实性进行验证;若真实性验证通过,则确认该目标数据通过验证。
其中,上述生成模块,还用于按照预设共识算法生成与目标数据相对应的索引,该索引用于快速查找目标数据;上述发送模块,还用于将索引发送至所述数据处理系统中的目标节点和除目标节点外的其他节点。
作为一种可能的实施方式,本发明提供的数据处理服务器,还包括:检测模块,用于当接收到数据使用方对目标数据的查询请求时,检测是否满足智能合约的条件;反馈模块,用于若满足智能合约的条件,采用索引查找到该目标数据,并将目标数据反馈给数据使用方。
其中,上述满足智能合约的条件包括:上述数据使用方的身份通过合法性验证,以及查询请求中包含满足智能合约的交易条件。
相应地,本发明实施例还提供了一种数据处理服务器,该数据处理服务器包括:处理器,适于实现一条或一条以上指令;以及,计算机存储介质,所述计算机存储介质存储有一条或一条以上指令,所述一条或一条以上指令适于由所述处理器加载并执行如下步骤:
接收目标节点上传的目标数据,该目标数据携带目标节点的数字签名;将该目标数据发送给数据处理系统中除目标节点外的其他节点,使上述其他节点对该目标数据进行验证;若目标数据通过验证,则生成包含目标数据的目标区块;将目标区块写入区块链。
其中,将目标数据发送给数据处理系统中除目标节点外的其他节点,使其他节点对目标数据进行验证的具体实施方式为:将目标数据附上指示消息后,发送给数据处理系统中除目标节点外的其他节点;该指示消息用于指示其他节点根据数字签名对目标节点进行身份验证;若身份验证成功,则从区块链上查找与目标数据具备相同数据标识的关联数据;采用关联数据对目标数据的真实性进行验证;若真实性验证通过,则确认目标数据通过验证。
其中,在生成包含目标数据的目标区块之后,还包括:按照预设共识算法生成与该目标数据相对应的索引,该索引用于快速查找该目标数据;将索引发送至数据处理系统中的目标节点和除目标节点外的其他节点。
作为一种可能的实施方式,本发明提供的数据处理方法还包括:当接收到数据使用方对目标数据的查询请求时,检测是否满足智能合约的条件;若满足智能合约的条件,采用索引查找到目标数据,并将该目标数据反馈给数据使用方。
其中,上述满足智能合约的条件,包括:上述数据使用方的身份通过合法性验证,以及查询请求中包含满足智能合约的交易条件。
作为一种可能的实施方式,若目标数据为物流信息,物流信息的数据标识为快递单号,则上述对目标数据进行验证的具体实施方式包括:利用目标节点的公钥对目标节点的私钥签名进行解密,对目标节点的身份进行验证;若通过身份验证,则通过物流信息中的快递单号和索引查找区块链上与快递单号关联的目标物流信息,并根据目标物流信息验证上述物流信息的真实性。
实施本发明实施例,具有如下有益效果:通过将目标节点上传的目标数据写入区块链,利用区块链采用的加密算法和各区块的前后连接关系确保上传的数据不被非法篡改;通过验证不可伪造的数字签名可以验证目标节点的身份,使得目标数据可朔源,可追踪;另一方面,数据处理系统中的其他节点利用具有相同数据标识的关联数据,对目标数据的真实性进行验证,可防止目标节点上传虚假的数据。综上所述,本发明实施例可以对上传者的身份进行验证,并能利用数据处理系统中的关联数据对上传的目标数据进行真实性验证,进一步的,可确保上传后的数据不被非法篡改,并在数据使用方请求查找目标数据时,为其提供真实可靠的数据信息。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了更好地理解本发明提供的实施例,下面对本发明实施例可应用于区块链的数据处理系统进行说明。
图1是本发明实施例提供的一种数据处理系统的示意图。如图1所示,以对物流数据的处理为例,应用于区块链的该数据处理系统包括提供物流数据的各数据提供方(如物流公司、快递员、电商卖家和收货客户)和物流数据处理服务器,其中数据提供端和物流数据处理服务器均为数据处理系统中的节点,该节点是具备联网功能的终端设备或服务器。上述终端设备可以指接入终端、用户设备(user equipment,UE)、用户单元、用户站、移动站、移动台、远方站、远程终端、移动终端、用户终端、终端、无线通信设备、用户代理或用户装置。接入终端可以是蜂窝电话、无绳电话、会话发起协议(session initiationprotocol,SIP)电话、无线本地环路(wireless local loop,WLL)站、个人数字处理(personal digital assistant,PDA)、具有无线通信功能的手持设备、计算设备或连接到无线调制解调器的其它处理设备、可穿戴设备、物联网中的终端设备、虚拟现实设备、未来5G网络中的终端设备或者未来演进的公共陆地移动网络(public land mobile network,PLMN)中的终端设备等。
其中,在物流数据处理系统中,数据提供方可以是物流公司、快递员、电商卖家或收货客户。数据提供方需要事先提供可联网的终端设备作为自己的数据提供端,并在数据处理系统中的数据处理服务器上注册,获得数据提供端的私钥,并存储。物流数据处理服务器接收各数据提供端上传的物流信息,并在该物流信息通过验证后生成目标区块,并将该目标区块写入区块链。在接收到数据使用方对物流信息的查询时,满足相应的条件后,向数据使用方提供物流信息。
进一步的,为了更好地理解本发明提供的实施例,下面对本发明实施例中涉及到的区块链技术及相关的密码学概念进行说明。
区块链具备三个性质:区块链是一个放在非安全环境中的分布式数据库系统;采用密码学的方式来保证已有数据不被篡改;采用共识算法对于新增数据达成共识。本发明实施例主要涉及防篡改和节点间达成共识两种性质,即对目标数据通过共识算法达成共识后存储到区块链上,并采用密码学的方式确保存储到区块链上的目标数据不被篡改。
共识算法的目的,是让所有节点对新增区块或新上传的数据达成共识,也就是所有节点都要认可新增区块或新上传的数据,所有节点认可后的数据才能写入区块链。在具体实现共识算法的过程中,只需要一定数目的节点达成共识后,即可认为是全网节点达成了共识。
区块链上的数据采用密码学的方法来保证已有数据不被篡改,这是区块链十分重要的一个特性,涉及到两个密码学概念:哈希函数和非对称加密算法。
哈希函数有如下性质,设X通过哈希运算后,得到Y,即Y=H(X),则:已知X,容易得出Y,而已知Y,无法得出X;具体而言,不存在另一个X',使得H(X')=Y。区块链上的每个区块上的数据都将其进行哈希运算后得出的哈希值一并进行存储,若要查看或使用某区块上的数据,可对该数据进行验证。首先对该数据进行哈希运算,通过比对运算得出的哈希值和该区块上存储的哈希值,就可判断该数据是否被篡改过。需要说明的是,进行数据验证时采用的哈希函数和生成区块上存储的哈希值时所使用的哈希函数为同一哈希函数。
非对称加密算法包括公开密钥(publickey,公钥)和私有密钥(privatekey,私钥),公钥和私钥为一对,即用公钥对数据进行加密,只有用对应的私钥才能解密;如果用私钥对数据进行加密,只有用对应的公钥才能解密。一般来说,非对称密钥中的公钥是公开的,而私钥只有自己拥有。除了对数据进行加密外,非对称加密算法的另一个用途是进行身份验证。举例来说,若用户E用自己的私钥对数据加密后,发送给F,接收到数据后,若F用E的公钥成功解密该数据,则F确认发送该数据的是E,即确认了发送方的身份。
非对称密钥的身份验证功能加上哈希函数的不可逆的特性,即可应用于数字签名。举例来说,在发送数据时,发送方用一个哈希函数根据数据内容生成数据摘要,然后用自己的私钥进行加密,这个加密后的数据摘要将作为数据的数字签名和该数据一起发送给接收方。接收方接收到数据后,首先用与发送方一样的哈希函数从接收数据中生成数据摘要,然后再用发送方的公钥对数据携带的数字签名进行解密,如果解密出的数据摘要和生成的数据摘要相同,则接收方就能确认该数字签名是发送方的。
下面进一步对本发明实施例所提供的一种数据处理方法、数据处理服务器及计算机可读存储介质进行介绍。
请参见图2,图2是本发明实施例提供的一种数据处理方法的流程示意图。如图2所示,该数据处理方法包括步骤201~204的部分,其中:
201、接收目标节点上传的目标数据,该目标数据携带目标节点的数字签名。
需要说明的是,本发明实施例中的目标节点为数据处理系统中的节点,数据处理系统中的各节点都维护一条由各个区块构成的区块链。区块链上的区块由区块头和区块主体构成,其中区块头包含当前区块的哈希值、上一区块的哈希值、时间戳和其他信息,区块主体包含了本区块的数据信息。以存储物流数据为例,如图3所示,区块N和区块N+1的区块结构相同,区块主体中存放的是物流信息记录。
需要进一步说明的是,获得目标数据所携带的数字签名的具体实施方式为:目标节点用一个哈希函数从目标数据中生成摘要信息;目标节点将该摘要信息用其私钥进行加密,加密后的摘要信息即为目标节点的数字签名。本发明实施例中的目标节点若要上传数据到区块链,则需要事先在区块链上注册,获得一对非对称密钥对。将非对称密钥对中的私钥由自己保存,并将非对称密钥对中的公钥作为目标节点在区块链上的地址。
202、将目标数据发送给数据处理系统中除所述目标节点外的其他节点,使其他节点对目标数据进行验证。
其中,对目标数据进行验证的具体实施方式为:利用与生成目标数据的摘要信息时所使用的同一哈希函数,从接收到的目标数据中计算出摘要信息;再利用目标节点的公钥对目标数据携带的数字签名进行解密;判断两个摘要信息是否一致,若一致,则认为该数字签名是目标节点发送的,成功验证了目标节点的身份。
203、若目标数据通过验证,则生成包含目标数据的目标区块。
需要说明的是,数据处理服务器作为数据处理系统中的一个节点,与其他普通节点一样,维护着一条区块链。当上述目标数据通过验证后,会生成一个新的区块,用于存储上传的目标数据。
204、将目标区块写入区块链。
需要说明的是,生成新的区块后,还未与已有的区块链建立联系。上述将目标区块写入区块链的具体实施方式为:将已有的区块链上最末端的区块作为目标区块的上一区块,并将上一区块的哈希值记录在该目标区块的区块头中;记录下当前时间作为该目标区块的时间戳,并在生成下一个新区块时,将目标区块作为新区块的上一区块,新区块的区块头中将会记录该目标区块的哈希值。其中,上述区块链上最末端的区块指的是区块链上的所有区块中时间戳记录的时间距离当前时间最近的区块。
需要进一步说明的是,上述目标区块记录上一区块的哈希值和本区块的哈希值的目的在于,利用区块链上前后相连的链状结构和哈希加密算法的不可逆性来保证目标数据的不可篡改的特性。
举例来说,如图4所示,考虑区块链上的区块1~区块4,区块1上保存有上一区块的哈希值H0、本区块的哈希值H1以及本区块的数据块A,区块2上保存有上一区块的哈希值H1、本区块的哈希值H2以及本区块的数据块B,区块3和区块4以此类推。对每一个区块而言,本区块的哈希值的计算方式是本区块的数据块和上一区块的哈希值合成后的数据进行哈希运算。举例来说,图4中的区块1~区块4的哈希值计算方式为:H1=Hash(A||H0),H2=Hash(B||H1),H3=Hash(C||H2),H4=Hash(D||H3),其中,||表示拼接,Hash表示哈希运算。
可以看出,区块链上的数据通过前后区块的连接关系,若要篡改任意一个区块上的数据块,就要改掉区块链上该区块之后所有区块上的哈希值。例如,若要更改图4中区块1上数据块A的内容,则相应的,也要改掉区块2、区块3和区块4以及区块4后续的区块上的哈希头中的哈希值。显然,这是十分困难的,理论上,要控制区块链上51%及以上的节点,才能够完成对数据的篡改。
通过本发明实施例,可以根据数字签名实现对目标节点的身份验证,并在验证通过后,生成包含目标数据的目标区块并写入区块链。本发明实施例利用了区块链各区块间的前后连接关系和加密特性,保证上传的数据不被篡改。
请参见图5,图5是本发明实施例提供的另一种数据处理方法的流程示意图,如图5所示,该数据处理方法包括步骤501~506的内容,其中:
501、接收目标节点上传的目标数据,该目标数据携带目标节点的数字签名。
其中,目标节点指的是进行数据上传的节点,携带的数字签名用于验证数据上传者的身份。
502、将目标数据发送给数据处理系统中除所述目标节点外的其他节点,使其他节点对目标数据进行验证。
作为一种可能的实施方式,该目标数据包括数据标识,将目标数据发送给数据处理系统中除目标节点外的其他节点,使其他节点对目标数据进行验证的具体实施方式为:将目标数据附上指示消息后,发送给数据处理系统中除目标节点外的其他节点;该指示消息用于指示其他节点根据数字签名对目标节点进行身份验证;若身份验证成功,则从区块链上查找与目标数据具备相同数据标识的关联数据;采用关联数据对目标数据的真实性进行验证;若真实性验证通过,则确认目标数据通过验证。
进一步的,若该目标数据为物流信息,该物流信息的数据标识为快递单号,则对目标数据进行验证的具体实施方式为:利用目标节点的公钥对目标节点的私钥签名进行解密,以对目标节点的身份进行验证;若通过身份验证,则通过物流信息中的快递单号和索引查找区块链上与快递单号关联的目标物流信息,并根据目标物流信息验证物流信息的真实性。
举例来说,目标数据为物流信息,数据标识为快递编号,该物流信息包括以下至少一项:快递单号、提供数据的设备序列号、快递公司、卖家信息、订单编号、买家信息、本站地址、下一站地址、发出时间。目标节点上传的物流信息如下述表1所示,数据处理系统中的其他节点收到该信息后,按照快递编号,在自己的区块链上查找与表1中快递单号相同的物流信息。若在区块W上查找到与之具有相同快递单号的物流信息,如下述表2所示,可以判断出具备相同快递单号的物流信息内容前后不一致,上述快递单号信息在区块W上已经到达目的,等待客户签收,则区块W会判断出目标节点上传的物流信息为无效物流数据。同理,其他节点也存有上述具有相同快递单号的物流信息,也会判断出该物流信息为无效物流数据,则该物流信息将不会通过验证。
表1
表2
快递单号 |
88656651506532797* |
快递公司 |
***速运 |
提供数据的设备序列号 |
86297933656891* |
卖家信息 |
良品铺子***店 |
订单编号 |
9825453662488974* |
买家信息 |
妍***开 |
本站地址 |
**市**街道**部 |
下一站地址 |
等待客户签收 |
发出时间 |
2017-09-15 15:25:50 |
503、若目标数据通过验证,则生成包含目标数据的目标区块。
作为一种可能的实施方式,若目标数据为物流信息,则在生成目标区块之前,还可将区块链上同一快递单号所对应的物流信息,作为目标数据的一部分,一并存入目标区块中。由此,每一个新生成的区块中的物流信息包含了该快递编号所对应物流数据的全部状态信息,便于数据使用方获得某物流数据的全部状态信息。
504、将目标区块写入区块链。
步骤501~504的具体实施方式还可参照实施例2中步骤201~204的内容,此处不再详述。
505、按照预设共识算法生成与目标数据相对应的索引,该索引用于快速查找所述目标数据。
其中,本发明实施例中的共识算法的目的,就是让所有节点对某一事务达成一致。具体来说,此处的预设共识算法是为了按照所有节点都认可的方式生成一个索引,该索引用于快速查找到目标数据。举例来说,若目标数据为物流信息,则可以将物流信息的快递单号作为物流信息的数据标识,生成的索引为快递单号和物流信息所在位置的对应关系,如表3所示,其中区块R、区块S或区块T代表物流信息所在的区块的位置。则数据查找方只需提供物流信息的快递单号,即可快速定位到想要查找的物流信息上。
表3
订单编号 |
物流信息的位置 |
3987083653879* |
区块R |
4261295794138* |
区块S |
60400673278529* |
区块T |
506、将索引发送至数据处理系统中的目标节点和除目标节点外的其他节点。
需要说明的是,将生成的索引发送至数据处理系统中的所有节点,是为了数据查找方快速查找区块链上的数据。
作为一种可能的实施方式,本发明提供的数据处理方法还包括:当接收到数据使用方对目标数据的查询请求时,检测是否满足智能合约的条件;若满足智能合约的条件,采用索引查找到目标数据,并将该目标数据反馈给数据使用方。
其中,满足智能合约的条件的具体实施方式,包括所述数据使用方的身份通过合法性验证,以及所述查询请求中包含满足所述智能合约的交易条件。举例来说,智能合约中的交易条件可为:数据使用方向提供目标数据的目标节点支付费用或转让积分,所述费用或积分的金额或数目由所述目标节点确定,并以智能合约的形式登记到区块链上。
需要说明的是,智能合约是一种以计算机语言取代法律语言去记录条款内容的合约,部署在区块链上的智能合约是一份可以在CPU执行合约代码的数字合同,当满足智能合约的条款内容时,可以自动化的执行预先定义好的规则和条款。本发明实施例中,目标节点共享数据是可以获得奖励的,此处的奖励由目标节点自己定义,并以智能合约的形式写入区块链;当目标节点提供的数据被采纳或被数据使用方请求查看时(数据使用方同意智能合约的条款内容),便触发智能合约的执行,数据使用方向目标节点支付相应代价。
举例来说,若上传物流信息的节点N,在智能合约中约定,若要获取该物流信息,需要向节点N支付20个积分;则数据使用方在查找包含节点N上传的物流信息时,需要向N支付20个积分后,才能获得所需要的物流信息。
通过本发明实施例,可以利用非对称加密算法对上传目标数据的目标节点的身份进行验证,并利用区块链上具有相同数据标识的关联数据对上传的目标数据的真实性进行验证;目标数据通过验证后,将生成用于存储该目标数据的目标区块,可以保证目标数据不被篡改;当接收到目标数据的查询请求时,按照满足智能合约的方式,将目标数据反馈给数据使用方。综上所述,通过本发明的实施方式,可以对目标数据进行验证,并确保写入区块链的数据不被非法篡改,当接收到数据使用方的查询请求时,为数据使用方提供真实可靠的数据。
请参见图6,图6是本发明实施例提供的一种数据处理服务器的示意性框图,该服务器包括如下模块:
接收模块601,用于接收目标节点上传的目标数据,该目标数据携带目标节点的数字签名。
发送模块602,用于将目标数据发送给数据处理系统中除目标节点外的其他节点,使其他节点对目标数据进行验证。
生成模块603,用于若目标数据通过验证,则生成包含目标数据的目标区块。
写入模块604,用于将目标区块写入区块链。
作为一种可能的实施方式,上述发送模块602,具体用于将所述目标数据附上指示消息后,发送给数据处理系统中除目标节点外的其他节点;该指示消息用于指示其他节点根据数字签名对目标节点进行身份验证。
作为一种可能的实施方式,本发明实施例提供的数据处理服务器还包括:
查找模块605,用于若目标节点的身份验证成功,则从区块链上查找与目标数据具备相同数据标识的关联数据;
验证模块606,用于采用上述关联数据对目标数据的真实性进行验证;若真实性验证通过,则确认该目标数据通过验证。
作为一种可能的实施方式,上述生成模块603,还用于按照预设共识算法生成与目标数据相对应的索引,该索引用于快速查找目标数据;发送模块602,还用于将索引发送至数据处理系统中的目标节点和除目标节点外的其他节点。
作为一种可能的实施方式,该数据处理服务器还包括:
检测模块607,用于当接收到数据使用方对目标数据的查询请求时,检测是否满足智能合约的条件;
反馈模块608,用于若满足智能合约的条件,采用索引查找到目标数据,并将目标数据反馈给数据使用方。
其中,上述满足智能合约的条件包括:数据使用方向提供目标数据的目标节点支付费用或转让积分,所述费用或积分的金额或数目由所述目标节点确定,并以智能合约的形式登记到区块链上。
根据本发明实施例的具体实施方式,图5所示的数据处理方法涉及的步骤501~506可以是由图6所示的数据处理服务器中的各个模块来执行的。例如,图5中的步骤501~506可以分别由图6中所示的接收模块601,发送模块602,生成模块603,写入模块604,生成模块603,发送模块602来执行。
参见图7,是本发明另一实施例提供的一种数据处理服务器的示意框图。本实施例中的终端可以包括:一个或多个处理器701;一个或多个输入设备702,一个或多个输出设备703和存储器704。上述处理器701、输入设备702、输出设备703和存储器704通过总线705连接。存储器704用于存储计算机程序,所述计算机程序包括程序指令,处理器701用于执行存储器704存储的程序指令。其中,处理器701被配置用于调用所述程序指令执行:
应当理解,在本发明实施例中,所称处理器701可以是中央处理单元(CentralProcessing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
输入设备702可以包括触控板、指纹采传感器(用于采集用户的指纹信息和指纹的方向信息)、麦克风等,输出设备703可以包括显示器(LCD等)、扬声器等。
该存储器704可以包括只读存储器和随机存取存储器,并向处理器701提供指令和数据。存储器704的一部分还可以包括非易失性随机存取存储器。例如,存储器704还可以存储设备类型的信息。
在本发明实施例中,由处理器701加载并执行计算机存储介质中存放的一条或一条以上指令,以实现上述图2或图5所示方法流程的相应步骤;具体实现中,计算机存储介质中的一条或一条以上指令由处理器701加载并执行如下步骤:
接收目标节点上传的目标数据,该目标数据携带目标节点的数字签名;将该目标数据发送给数据处理系统中除目标节点外的其他节点,使上述其他节点对该目标数据进行验证;若目标数据通过验证,则生成包含目标数据的目标区块;将目标区块写入区块链。
其中,将目标数据发送给数据处理系统中除目标节点外的其他节点,使其他节点对目标数据进行验证的具体实施方式为:将目标数据附上指示消息后,发送给数据处理系统中除目标节点外的其他节点;该指示消息用于指示其他节点根据数字签名对目标节点进行身份验证;若身份验证成功,则从区块链上查找与目标数据具备相同数据标识的关联数据;采用关联数据对目标数据的真实性进行验证;若真实性验证通过,则确认目标数据通过验证。
其中,在生成包含目标数据的目标区块之后,还包括:按照预设共识算法生成与该目标数据相对应的索引,该索引用于快速查找该目标数据;将索引发送至数据处理系统中的目标节点和除目标节点外的其他节点。
作为一种可能的实施方式,本发明提供的数据处理方法还包括:当接收到数据使用方对目标数据的查询请求时,检测是否满足智能合约的条件;若满足智能合约的条件,采用索引查找到目标数据,并将该目标数据反馈给数据使用方。
其中,上述满足智能合约的条件,包括:上述数据使用方的身份通过合法性验证,以及查询请求中包含满足智能合约的交易条件。
作为一种可能的实施方式,若目标数据为物流信息,物流信息的数据标识为快递单号,则上述对目标数据进行验证的具体实施方式包括:利用目标节点的公钥对目标节点的私钥签名进行解密,对目标节点的身份进行验证;若通过身份验证,则通过物流信息中的快递单号和索引查找区块链上与快递单号关联的目标物流信息,并根据目标物流信息验证上述物流信息的真实性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明的部分实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。