一种块链式账本中的数据验证方法、系统、装置及设备与流程

文档序号:18475373发布日期:2019-08-20 20:57阅读:306来源:国知局
一种块链式账本中的数据验证方法、系统、装置及设备与流程

本说明书实施例涉及信息技术领域,尤其涉及一种块链式账本中的数据验证方法、系统、装置及设备。



背景技术:

在中心化的数据库服务端以块链式账本存储数据时,用户经常会对服务端发起各种验证。而在进行验证时,基于用户的需求,有些验证需要在客户端完成,有些验证需要在服务端完成,而同时,用户在进行验证时的范围也常常不同。

基于此,需要一种在块链式账本中可以灵活进行数据验证的方案。



技术实现要素:

本申请实施例的目的是提供一种块链式账本中进行数据验证的方案。

为解决上述技术问题,本申请实施例是这样实现的:

一种块链式账本中的数据验证方法,应用于包括数据库服务端和客户端的系统中,所述数据库服务端以中心化的方式通过块链式账本存储数据,所述方法包括:

客户端,发送包含验证方式参数和验证范围参数的指令至数据库服务端,其中,所述验证方式参数用于指示在数据库服务端进行验证,或者在客户端进行验证;所述验证范围参数包括块高或者哈希值,用于确定账本中待验证的数据块的范围或者数据记录;

数据库服务端根据所述验证范围参数确定待验证数据,所述待验证数据包括数据记录、数据块、部分账本或者全量账本中的一种;

当所述验证方式参数指示在数据库服务端进行验证时,数据库服务端验证所述待验证数据的完整性,并返回验证结果至客户端;

当所述验证方式参数指示在客户端进行验证时,数据库服务端返回所述待验证数据至客户端,客户端验证所述待验证数据的完整性,生成验证结果。

对应的,本说明书实施例还提供一种块链式账本中的数据验证系统,包括数据库服务端和客户端,所述数据库服务端以中心化的方式通过块链式账本存储数据,在所述系统中,

客户端,发送包含验证方式参数和验证范围参数的指令至数据库服务端,其中,所述验证方式参数用于指示在数据库服务端进行验证,或者在客户端进行验证;所述验证范围参数包括块高或者哈希值,用于确定账本中待验证的数据块的范围或者数据记录;

数据库服务端,根据所述验证范围参数确定待验证数据,所述待验证数据包括数据记录、数据块、部分账本或者全量账本中的一种;

当所述验证方式参数指示在数据库服务端进行验证时,数据库服务端验证所述待验证数据的完整性,并返回验证结果至客户端;

当所述验证方式参数指示在客户端进行验证时,数据库服务端返回所述待验证数据至客户端,客户端验证所述待验证数据的完整性,生成验证结果。

对应的,本说明书实施例还提供一种链式账本中的数据验证方法,应用于以中心化的方式通过块链式账本存储数据的数据库服务端中,所述方法包括:

接收包含验证方式参数和验证范围参数的指令,其中,所述验证方式参数用于指示在数据库服务端进行验证,或者在客户端进行验证;所述验证范围参数包括块高或者哈希值,用于确定账本中待验证的数据块的范围或者数据记录;

根据所述验证范围参数确定待验证数据,所述待验证数据包括数据记录、数据块、部分账本或者全量账本中的一种;

当所述验证方式参数指示在数据库服务端进行验证时,数据库服务端验证所述待验证数据的完整性,并返回验证结果至客户端;

当所述验证方式参数指示在客户端进行验证时,数据库服务端返回所述待验证数据至客户端,以便客户端验证所述待验证数据的完整性。

对应的,本说明书实施例还提供一种链式账本中的数据验证装置,应用于以中心化的方式通过块链式账本存储数据的数据库服务端中,所述装置包括:

接收模块,接收包含验证方式参数和验证范围参数的指令,其中,所述验证方式参数用于指示在数据库服务端进行验证,或者在客户端进行验证;所述验证范围参数包括块高或者哈希值,用于确定账本中待验证的数据块的范围或者数据记录;

确定模块,根据所述验证范围参数确定待验证数据,所述待验证数据包括数据记录、数据块、部分账本或者全量账本中的一种;

验证模块,当所述验证方式参数指示在数据库服务端进行验证时,数据库服务端验证所述待验证数据的完整性,并返回验证结果至客户端;

发送模块,当所述验证方式参数指示在客户端进行验证时,数据库服务端返回所述待验证数据至客户端,以便客户端验证所述待验证数据的完整性。

通过本说明书实施例所提供的方案,用户在发起验证请求时,在请求中携带相关的验证方式参数和验证范围参数,从而服务端可以基于该验证方式参数确定出在服务端进行验证还是在客户端进行验证,以及基于验证范围参数确定验证范围的大小,进而执行相应的验证方式。本实施例可以灵活的在块链式账本中实现数据验证。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书实施例。

此外,本说明书实施例中的任一实施例并不需要达到上述的全部效果。

附图说明

为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。

图1为本说明书实施例所提供的块链式账本中生成数据块的流程示意图;

图2是本说明书实施例提供的一种块链式账本中的数据验证方法;

图3为本说明书实施例所提供的数据库服务端方面的数据验证方法的流程示意图;

图4是本说明书实施例提供的数据库服务端方面的一种块链式账本中的数据验证装置的结构示意图;

图5是用于配置本说明书实施例方法的一种设备的结构示意图。

具体实施方式

为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于保护的范围。

首先对本说明书中所涉及的中心化的块链式的账本进行说明。

在本说明书实施例所涉及中心化的数据库服务提供方中,一个账本包括含多个数据块,数据块通过如下方式预先生成,如图1所示,图1为本说明书实施例所提供的块链式账本中生成数据块的流程示意图,包括:

s101,接收待存储的数据记录,确定各数据记录的哈希值。此处的待存储的数据记录,可以是客户端个人用户的各种消费记录,也可以是应用服务器基于用户的指令,在执行业务逻辑时产生的业务结果、中间状态以及操作记录等等。具体的业务场景可以包括消费记录、审计日志、供应链条、政府监管记录、医疗记录等等。

s103,当达到预设的成块条件时,确定待写入数据块中的各数据记录,生成包含数据块的哈希值和数据记录的第n个数据块。

所述预设的成块条件包括:待存储的数据记录数量达到数量阈值,例如,每接收到一千条数据记录时,生成一个新数据块,将一千条数据记录写入块中;或者,距离上一次成块时刻的时间间隔达到时间阈值,例如,每隔5分钟,生成一个新数据块,将在这5分钟内接收到的数据记录写入块中。

此处的n指的是数据块的序号,换言之,在本说明书实施例中,数据块是以块链的形式,基于成块时间的顺序先后排列,具有很强的时序特征。其中,数据块的块高基于成块时间的先后顺序单调递增。块高可以是序号,此时第n个数据块的块高即为n;块高也可以其它方式生成。

当n=1时,即此时的数据块为为初始数据块。初始数据块的哈希值和块高基于预设方式给定。例如,初始数据块中不包含数据记录,哈希值则为任一给定的哈希值,块高blknum=0;又例如,初始数据块的生成触发条件与其它数据块的触发条件一致,但是初始数据块的哈希值由对初始数据块中的所有内容取哈希确定。

当n>1时,由于前一数据块的内容和哈希值已经确定,则此时,可以基于前一数据块(即第n-1个数据块)的哈希值生成当前数据块(第n个数据块)的哈希值,例如,一种可行的方式为,确定每一条将要写入第n个块中的数据记录的哈希值,按照在块中的排列顺序,生成一个默克尔树,将默克尔树的根哈希值和前一数据块的哈希值拼接在一起,再次采用哈希算法,生成当前块的哈希值。又例如,还可以按照块中数据记录的顺序进行拼接并取哈希得到整体数据记录的哈希值,拼接前一数据块的哈希值和整体数据记录的哈希值,并对拼接得到的字串进行哈希运算,生成数据块的哈希值。

在服务端生成一个数据块并写入账本时,即可以将数据块的哈希值以及数据块中各数据记录的哈希值返回给客户端。

通过前述的数据块的生成方式,每一个数据块通过哈希值确定,数据块的哈希值由数据块中的数据记录的内容、顺序以及前一数据块的哈希值决定。用户可以随时基于数据块的哈希值发起验证,对于数据块中任何内容(包括对于数据块中数据记录内容或者顺序的修改)的修改都会造成在验证时计算得到的数据块的哈希值和数据块生成时的哈希值不一致,而导致验证失败,从而实现了中心化下的不可篡改。

具体而言,对于数据记录的完整性的验证方式即为获取所述数据记录,确定所述记录的哈希,以及数据记录所处的数据块中的其它数据记录的哈希值,形成默克尔树,验证能否重新生成该默克尔树的根哈希。对于数据块的验证方式即为根据前一数据块的哈希值以及自身数据记录,重新计算自身数据块的哈希值,验证与之前计算得到的哈希值是否一致。以及,还可以直接将哈希值所对应的数据记录返回给用户,以便用户直接对数据记录进行哈希运算验证完整性。

如前所述,在用户的数据被存储至账本中之后,用户可以向服务端发起验证。需要说明的是,在本说明书实施例中,块链式账本虽然类似于区块链,但是本说明书实施例中,数据库服务端是以中心化的形式进行对外服务的,这与区块链有着本质区别。

在区块链系统中,由于是去中心化的服务,因此,客户端可以向任一有权限执行验证的节点发起数据验证,区块链系统可以保证各节点返回的数据的一致性,用户可以相信节点所返回的结果,换言之,客户端没有必要在本地执行数据验证。

但是,在本说明书实施例中,由于数据库服务端是中心化的方式,因此,对于用户而言,数据存储和数据验证如果都在服务端完成,那么结果就不一定是可信的,因此,对于某些用户而言,其希望在客户端完成相应的数据验证。

同时,在块链式账本中,有些验证资源消耗较小,例如,验证一条数据记录是否存在账本中;而有些验证资源消耗则较大,例如,验证整个账本的数据完整性,对于某些客户端设备而言,需要消耗的资源可能难以承受。

基于此,本说明书实施例提供一种可以在块链式账本中进行灵活的数据验证的方案。

以下结合附图,详细说明本说明书各实施例提供的技术方案。如2所示,图2是本说明书实施例提供的一种块链式账本中的数据验证方法,应用于包括数据库服务端和客户端的系统中,所述数据库服务端以中心化的方式通过块链式账本存储数据,该流程具体包括如下步骤:

s201,客户端,发送包含验证方式参数和验证范围参数的指令至数据库服务端。

具体而言,用户可以通过客户端发起验证指令,验证指令中通过验证范围参数指定需要对哪些数据块发起验证。验证范围参数可以是块高或者哈希值。

例如,可以通过哈希值指定一个数据块,确定对该数据块发起验证;或者,还加入一个数值,用于指定对该数据块之前或者之后的多个数据块发起是否正确的验证;或者,通过哈希值指定一个数据记录,验证一个数据记录是否存在数据库中。

同时,在验证指令中还可以包括验证方式参数,验证方式参数用以表明用户的需求,指示本次验证在数据库服务端进行验证,或者在客户端进行验证。需要说明的是,在验证指令中可以只包含验证范围参数,验证方式参数可以缺省,此时,默认的验证方式将在服务端进行。

以下示例性的给出了本说明书实施例所提供的几种验证指令的形式,其中,验证方式都进行了缺省。

第一种,指令中包含验证范围参数哈希值,哈希值对应于数据记录或者某个数据块,服务端对该数据块执行验证,得到验证结果,具体的,可以由验证指令verify(‘khash’,&v)实现。其中,“khash”为用户输入的哈希值,“&v”为本次验证的返回结果,在验证结束后由服务端给“&v”进行赋值。

第二种,指令中包含验证范围参数哈希值,哈希值用于确定一个对应的数据块,或者,用于确定哈希值对应的数据记录所处的数据块。该验证指令用于,从确定的数据块开始往前验证直至初始数据块,具体的,可以通过验证指令verify(‘khash’,&v,-1)实现,一般而言,初始块高为“0”或者“1”,因此,其中的-1也可以是其它小于初始块高的值,从而服务方可以知道,这个参数不是一个特别小的块高值,意味着需要一直验证至初始数据块。

第三种,指令中包含验证范围参数哈希值,哈希值用于确定对应的数据块,从确定的数据块开始往前验证指定个数的数据块,具体的,可以通过验证指令verify(‘khash’,&v,blknum)实现,其中,khash即为用户输入的哈希值,“blknum”为由用户指定的待验证的数据块的数量。

第四种,指令中包含验证范围参数块高,由块高对应的数据块开始往前验证指定数量的连续多个数据块,具体的,可以通过验证指令verify(blkh,&v,blknum)实现,其中,“blkh”即为用户输入的哈希值,“blknum”为由用户指定的待验证的数据块的数量,blknum可以是1或者缺省,此时即只验证一个数据块;blknum也可以是一个大数,如果blknum的值超过账本中的账本数量,此时则说明本次验证需要执行全量账本验证。

第五种,指令中包含验证范围参数两个块高值,具体的,可以通过验证指令verify(blkh1,blkh2,&v)实现。blkh1和blkh2用于确定本次验证数据块的块高区间。

进一步地,在验证指令中,可以加入验证方式参数,用以明确在服务端执行,或者在客户端执行验证。

例如,对于前述的第一种验证指令,加入验证方式参数后,即为verify(remote,‘khash’,&v),或者,verify(client,‘khash’,&v)。其中,“remote”表明本次验证在服务端进行,“client”表明本次验证在客户端进行。

又例如,对于前述的第四种指令,可以在其中加入验证方式参数,其形式为verify(client,blkh,&v,1),从而表明本次对于某个块高的数据块的验证在客户端完成。

s203,数据库服务端根据所述验证范围参数确定待验证数据,所述待验证数据包括数据记录、数据块、部分账本或者全量账本中的一种。

在块链式账本中,哈希值可以唯一的表征一个数据记录或者一个数据块,而块高也可以唯一的标识一个数据块。因此,基于验证范围参数,总是可以确定出本次指令所对应的待验证数据。

本说明书实施例中的“对应”指的是数据记录或者数据块进行哈希运算可以得到一个哈希值,则该哈希值和该数据记录或者数据块存在对应关系。

具体而言,数据库服务端在接收到验证指令后,即可以解析指令并得到相应的验证范围参数哈希值或者块高。进而,数据库服务端可以进行遍历查询以验证该哈希是否对应某个数据记录,或者对应于某个数据块;或者,从索引表中查询获取该哈希值所对应的块高和偏移量,然后根据读取得到的块高和偏移量获取得到对应的数据记录。

例如,对于包含哈希值的第一种验证指令而言,verify(remote,‘khash’,&v),服务端获取其中的哈希值,从预先建立的关于(数据记录哈希值,块高,块高中的偏移量)的数据记录索引表中对哈希值进行匹配查询,得到该数据记录所处的数据块的块高和偏移量,进而确定该哈希值所对应的数据记录,将该数据记录确定为待验证数据。

需要说明的是,在该指令中无需用户指定“khash”是数据记录的哈希值还是数据块的哈希值,服务端可以采用遍历的方式从账本中查询获取该哈希值对应的对象,或者从预先建立的数据记录哈希索引/数据块哈希索引(包含数据块哈希值和数据块块高的对应关系)中查询得到该哈希值对应的对象。

又例如,对于包含数据块块高的第五种指令而言,verify(client,100,300,&v)。数据库服务端可以基于块高100和300,即可以确定块高区间[100,300],将块高落入该区间的数据块所对应的部分账本确定为待验证数据。

s205,验证待验证数据的完整性。

具体而言,当所述验证方式参数指示在数据库服务端进行验证时,数据库服务端验证所述待验证数据的完整性,并返回验证结果至客户端。验证结果可以通过对验证指令中的“&v”赋值实现展示。

当所述验证方式参数指示在客户端进行验证时,数据库服务端返回所述待验证数据至客户端,客户端验证所述待验证数据的完整性,生成验证结果。具体数据记录或者账本完整性的验证方法在前文已经进行了说明,此处不再赘述。

通过本说明书实施例所提供的方案,用户在发起验证请求时,在请求中携带相关的验证方式参数和验证范围参数,从而服务端可以基于该验证方式参数确定出在服务端进行验证还是在客户端进行验证,以及基于验证范围参数确定验证范围的大小,进而执行相应的验证方式。本实施例可以灵活的在块链式账本中实现数据验证。

在一种实施例中,还可以在验证方式参数中加入进一步的指示性的前缀或者后缀字段,以便服务端可以更有效的解析该指令。

例如,在验证方式中加入前缀tx,用以指明本次验证是对数据记录在客户端进行验证,验证指令的形式从而成为,verify(txclient,khash,&v),从而服务端可以直接查询该khash所对应的数据记录。

在一种实施例中,当验证方式参数指示在客户端进行验证时,而同时在客户端中如果有相关用于验证的数据时,服务端只需要发送待验证数据即可。

在一种实施例中,数据库服务端在确定待验证数据时,还可以根据操作指令确定进行验证时所需要的其它辅助验证数据,并发送至客户端

例如,当用户发起第四种验证指令,验证指定的数据块,verify(client,blkh,&v,1),表明需要在客户端,对由块高blkh所指定的数据块进行验证。数据库服务端可以根据块高blkh匹配得到对应的数据块作为待验证数据。同时,在对于数据块的验证过程中,需要使用到该数据块的前一数据块的哈希值,因此,数据库服务端还可以获取“前一数据块的哈希值”作为辅助验证数据,直接发送至客户端。

又例如,当用户发起第一种验证指令,verify(client,‘khash’,&v),在客户端中验证指定的数据记录是否存在账本中。而在执行该验证时,需要首先确定由数据块中各数据记录所构成的默克尔树,进而确定出该数据记录在默克尔树中的默克尔路径,换言之,需要使用到默克尔路径上其它数据记录的哈希值和默克尔树的根哈希。此时数据库服务端即可以将默克尔路径上其它数据记录的哈希值和默克尔树的根哈希作为辅助验证数据发送给客户端,或者,直接将整个数据块的内容作为富足验证数据发送给客户端(一般而言,在发起验证的用户方有权访问所有内容是才会这么实现)。

在实际应用中,客户端在资源不够的时候,可以随机的对账本中的数据块发起抽查,例如,随机的指定数据块块高,在客户端进行验证;或者,挑选若干哈希值,对哈希值所对应的数据记录在客户端进行存在性验证。在上述抽查验证都通过的时候,再发起在服务端的部分账本验证或者全账本验证;当然,在资源足够的时候,也可以要求服务端将数据下发,在本地进行全量账本验证。实现在中心化的场景下,满足用户对于账本完整性的要求,对中心化的账本实现灵活的验证。

对应的,本说明书实施例还提供一种块链式账本中的数据验证系统,包括数据库服务端和客户端,所述数据库服务端以中心化的方式通过块链式账本存储数据,在所述系统中,

客户端,发送包含验证方式参数和验证范围参数的指令至数据库服务端,其中,所述验证方式参数用于指示在数据库服务端进行验证,或者在客户端进行验证;所述验证范围参数包括块高或者哈希值,用于确定账本中待验证的数据块的范围或者数据记录;

数据库服务端,根据所述验证范围参数确定待验证数据,所述待验证数据包括数据记录、数据块、部分账本或者全量账本中的一种;

当所述验证方式参数指示在数据库服务端进行验证时,数据库服务端验证所述待验证数据的完整性,并返回验证结果至客户端;

当所述验证方式参数指示在客户端进行验证时,数据库服务端返回所述待验证数据至客户端,客户端验证所述待验证数据的完整性,生成验证结果。

进一步地,在所述系统中,当所述验证范围参数为哈希值时,数据库服务端,查询获取哈希值所对应的数据记录,将所述数据记录和/或所述数据记录所处的数据块确定为待验证数据;或者,数据库服务端,查询获取哈希值所对应的数据块,将所述数据块确定为待验证数据。

进一步地,在所述系统中,当所述验证范围参数为块高时,数据库服务端,确定块高值所对应的数据块,将所述数据块确定为待验证数据;或者,数据库服务端,确定两个块高构成的区间所对应的部分/全量账本,将所述部分/全量账本确定为待验证数据。

进一步地,在所述系统中,当所述验证方式参数指示在客户端进行验证时,数据库服务端,确定客户端对待验证数据进行验证时所需要的其它辅助验证数据,发送所述待验证数据和其它辅助验证数据至客户端。

进一步地,在所述在中心化的数据库服务端,数据块通过如下方式预先生成:接收待存储的数据记录,确定各数据记录的哈希值,其中,数据记录中包含指定标识字段;当达到预设的成块条件时,确定待写入数据块中的各数据记录,生成包含数据块的哈希值和数据记录的第n个数据块,具体包括:

当n=1时,初始数据块的哈希值和块高基于预设方式给定;

当n>1时,根据待写入数据块中的各数据记录和第n-1个数据块的哈希值确定第n个数据块的哈希值,生成包含第n个数据块的哈希值和各数据记录的第n个数据块,其中,数据块的块高基于成块时间的先后顺序单调递增。

进一步地,在所述系统中,所述预设的成块条件包括:待存储的数据记录数量达到数量阈值;或者,距离上一次成块时刻的时间间隔达到时间阈值。

对应的,本说明书实施例还提供一种块链式账本中的数据验证方法,应用于以中心化的方式通过块链式账本存储数据的数据库服务端中,如图3所示,图3为本说明书实施例所提供的数据库服务端方面的数据验证方法的流程示意图,包括:

s301,接收包含验证方式参数和验证范围参数的指令,其中,所述验证方式参数用于指示在数据库服务端进行验证,或者在客户端进行验证;所述验证范围参数包括块高或者哈希值,用于确定账本中待验证的数据块的范围或者数据记录;

s303,根据所述验证范围参数确定待验证数据,所述待验证数据包括数据记录、数据块、部分账本或者全量账本中的一种;

s305,当所述验证方式参数指示在数据库服务端进行验证时,数据库服务端验证所述待验证数据的完整性,并返回验证结果至客户端;

s307,当所述验证方式参数指示在客户端进行验证时,数据库服务端返回所述待验证数据至客户端,以便客户端验证所述待验证数据的完整性。

对应的,本说明书实施例还提供一种块链式账本中的数据验证装置,如图4所示,图4是本说明书实施例提供的数据库服务端方面的一种块链式账本中的数据验证装置的结构示意图,包括:

接收模块401,接收包含验证方式参数和验证范围参数的指令,其中,所述验证方式参数用于指示在数据库服务端进行验证,或者在客户端进行验证;所述验证范围参数包括块高或者哈希值,用于确定账本中待验证的数据块的范围或者数据记录;

确定模块403,根据所述验证范围参数确定待验证数据,所述待验证数据包括数据记录、数据块、部分账本或者全量账本中的一种;

验证模块405,当所述验证方式参数指示在数据库服务端进行验证时,数据库服务端验证所述待验证数据的完整性,并返回验证结果至客户端;

发送模块407,当所述验证方式参数指示在客户端进行验证时,数据库服务端返回所述待验证数据至客户端,以便客户端验证所述待验证数据的完整性。

本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现2所示的块链式账本中的数据验证控方法。

图5示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。

处理器1010可以采用通用的cpu(centralprocessingunit,中央处理器)、微处理器、应用专用集成电路(applicationspecificintegratedcircuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。

存储器1020可以采用rom(readonlymemory,只读存储器)、ram(randomaccessmemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。

输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。

通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。

总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。

需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。

本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现图2所示的块链式账本中的数据验证方法。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。

上述实施例阐明的系统、方法、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的方法实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。

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