基于区块链的数据处理方法、装置、设备以及存储介质与流程

文档序号:21037998发布日期:2020-06-09 20:31阅读:249来源:国知局
基于区块链的数据处理方法、装置、设备以及存储介质与流程

本申请涉及计算机技术领域,尤其涉及一种基于区块链的数据处理方法、装置、设备以及存储介质。



背景技术:

区块链也被称为分布式账本技术,是一种互联网数据库技术。其特点是去中心化、公开透明,让每个用户均可参与维护数据库记录。区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。随着区块链技术在各行各业的应用越来越广泛,区块链节点提交的交易数据的数据量也越来越大,进而带来交易数据传输速率较慢,占用较多的传输资源。

因此,如何提升交易数据在区块链中的传输速率成为亟需解决的问题。



技术实现要素:

本申请实施例提供一种基于区块链的数据处理方法、装置、设备以及存储介质,可提升交易数据传输速率,提升交易数据处理效率。

第一方面,本申请实施例提供一种基于区块链的数据处理方法,该方法包括:

交易提交节点从交易池获取目标交易数据,并将上述目标交易数据进行压缩得到压缩交易数据;

上述交易提交节点将上述压缩交易数据在区块链中进行广播,以使上述区块链中的其他节点对上述压缩交易数据进行解压缩得到上述目标交易数据;

上述交易提交节点确定上述目标交易数据的交易数据哈希,并将上述目标交易数据的交易数据哈希打包至区块;

上述交易提交节点将上述区块进行压缩得到压缩区块,并将上述压缩区块发送至共识节点,以使上述共识节点对上述区块进行验证并在验证通过后将上述区块添加至上述区块链。

结合第一方面,在一种可能的实施方式中,上述将上述目标交易数据进行压缩得到压缩交易数据包括:

上述交易提交节点确定当前待编码字符是否与预设滑动窗口内的已编码字符相匹配,其中,当前待编码字符为上述目标交易数据的第一个待编码字符;

若匹配,上述交易提交节点在上述第一个待编码字符之后继续查找最长的匹配字符串,并输出三元符号组(off,len,c),其中off表示上述匹配字符串相对滑动窗的窗口左边界的偏移量,len表示上述匹配字符串的长度,c为与上述匹配字符串相邻的下一个待编码字符;

如果未匹配,上述交易提交节点则输出三元符号组(off,len,d),其中d表示上述当前待编码字符;

上述交易提交节点将上述预设滑动窗向后移动len+1个字符,继续执行上述确定当前待编码字符是否与预设滑动窗口内的已编码字符相匹配的步骤,直至得到上述目标交易数据对应的多个三元符号组;

上述交易提交节点基于哈夫曼编码算法对上述多个三元符号组进行编码得到压缩交易数据。

结合第一方面,在一种可能的实施方式中,上述交易提交节点从交易池获取目标交易数据包括:

上述交易提交节点每隔预设时间间隔确定交易池中的交易数据数量;

当上述交易池中的交易数据数量超过预设数量阈值时,上述交易提交节点从上述交易池中获取与上述预设数量阈值相等的交易数据,并将上述与上述预设数量阈值数量相等的交易数据确定为目标交易数据。

第二方面,本申请实施例提供一种基于区块链的数据处理方法,该方法包括:

共识节点接收交易提交节点发送的压缩交易数据,上述压缩交易数据由上述交易提交节点对目标交易数据进行压缩后得到;

上述共识节点对上述压缩交易数据进行解压缩得到上述目标交易数据;

当接收到上述交易提交节点发送的压缩区块时,上述共识节点对上述压缩区块进行解压缩得到区块;

上述共识节点确定上述区块中是否存在上述目标交易数据的交易数据哈希;

若上述区块中存在上述目标交易数据的交易数据哈希,上述共识节点对上述区块进行验证,并在验证通过后将上述区块添加至区块链。

结合第二方面,在一种可能的实施方式中,上述压缩交易数据携带压缩方式标识;上述共识节点对上述压缩交易数据进行解压缩得到目标交易数据包括:

上述共识节点根据上述压缩方式标识确定上述压缩交易数据对应的压缩方式;

上述交易节点根据上述压缩方式对应的解压缩方式对上述压缩交易数据进行解压缩得到上述目标交易数据。

结合第二方面,在一种可能的实施方式中,上述压缩交易数据携带数据校验信息;上述方法还包括:

上述共识节点根据上述数据校验信息验证上述目标交易数据是否为完整交易数据;

若上述目标交易数据为完整交易数据,上述共识节点则将上述目标交易数据进行存储;

若上述目标交易数据为不完整交易数据,上述共识节点则向上述交易提交节点发送第一重传信息以使上述交易提交节点发送第一压缩交易数据。

结合第二方面,在一种可能的实施方式中,上述方法还包括:

上述共识节点确定上述压缩交易数据是否携带压缩标识,上述压缩标识由上述交易提交节点对上述目标交易数据进行压缩时生成;

若确定上述压缩交易数据携带上述压缩标识,上述共识节点则执行上述对上述压缩区块进行解压缩得到区块的步骤,若确定上述压缩交易数据未携带上述压缩标识,上述共识节点则向上述交易提交节点发送第二重传信息以使上述交易提交节点发送第二压缩交易数据。

第三方面,本申请实施例提供了一种基于区块链的数据处理装置,该装置包括:

第一处理模块,用于从交易池获取目标交易数据,并将上述目标交易数据进行压缩得到压缩交易数据;

第一发送模块,用于将上述压缩交易数据在区块链中进行广播,以使上述区块链中的其他节点对上述压缩交易数据进行解压缩得到上述目标交易数据;

第二处理模块,用于确定上述目标交易数据的交易数据哈希,并将上述目标交易数据的交易数据哈希打包至区块;

第二发送模块,用于将上述区块进行压缩得到压缩区块,并将上述压缩区块发送至共识节点,以使上述共识节点对上述区块进行验证并在验证通过后将上述区块添加至上述区块链。

结合第三方面,在一种可能的实施方式中,上述第一处理模块包括:

第一确定单元,用于确定当前待编码字符是否与预设滑动窗口内的已编码字符相匹配,其中,当前待编码字符为上述目标交易数据的第一个待编码字符;

第一查找单元,用于当匹配时在上述第一个待编码字符之后继续查找最长的匹配字符串,并输出三元符号组(off,len,c),其中off表示上述匹配字符串相对滑动窗的窗口左边界的偏移量,len表示上述匹配字符串的长度,c为与上述匹配字符串相邻的下一个待编码字符;

输出单元,用于当未匹配时输出三元符号组(off,len,d),其中d表示上述当前待编码字符;

第二查找单元,用于将上述预设滑动窗向后移动len+1个字符,继续执行上述确定当前待编码字符是否与预设滑动窗口内的已编码字符相匹配的步骤,直至得到上述目标交易数据对应的多个三元符号组;

第一处理单元,用于基于哈夫曼编码算法对上述多个三元符号组进行编码得到压缩交易数据。

结合第三方面,在一种可能的实施方式中,上述第一处理模块包括:

第二确定单元,用于每隔预设时间间隔确定交易池中的交易数据数量;

获取单元,用于当上述交易池中的交易数据数量超过预设数量阈值时,从上述交易池中获取与上述预设数量阈值相等的交易数据,并将上述与上述预设数量阈值数量相等的交易数据确定为目标交易数据。

第四方面,本申请实施例提供了一种基于区块链的数据处理装置,该装置包括:

接收模块,用于接收交易提交节点发送的压缩交易数据,上述压缩交易数据由上述交易提交节点对目标交易数据进行压缩后得到;

第三处理模块,用于对上述压缩交易数据进行解压缩得到上述目标交易数据;

第四处理模块,用于当接收到上述交易提交节点发送的压缩区块时,对上述压缩区块进行解压缩得到区块;

第一确定模块,用于确定上述区块中是否存在上述目标交易数据的交易数据哈希;

第五处理模块,用于若上述区块中存在上述目标交易数据的交易数据哈希,对上述区块进行验证,并在验证通过后将上述区块添加至区块链。

结合第四方面,在一种可能的实施方式中,上述压缩交易数据携带压缩方式标识;上述第三处理模块包括:

第三确定单元,用于根据上述压缩方式标识确定上述压缩交易数据对应的压缩方式;

第二处理单元,用于根据上述压缩方式对应的解压缩方式对上述压缩交易数据进行解压缩得到上述目标交易数据。

结合第四方面,在一种可能的实施方式中,上述压缩交易数据携带数据校验信息;上述装置包括:

验证模块,还用于根据上述数据校验信息验证上述目标交易数据是否为完整交易数据;

存储模块,还用于若上述目标交易数据为完整交易数据,将上述目标交易数据进行存储;

第三发送模块,还用于若上述目标交易数据为不完整交易数据,向上述交易提交节点发送第一重传信息以使上述交易提交节点发送第一压缩交易数据。

结合第四方面,在一种可能的实施方式中,上述装置还包括:

第二确定模块,还用于确定上述压缩交易数据是否携带压缩标识,上述压缩标识由上述交易提交节点对上述目标交易数据进行压缩时生成;

第六处理模块,还用于若确定上述压缩交易数据携带上述压缩标识,执行上述对上述压缩区块进行解压缩得到区块的步骤,若确定上述压缩交易数据未携带上述压缩标识,向上述交易提交节点发送第二重传信息以使上述交易提交节点发送第二压缩交易数据。

第五方面,本申请实施例提供了一种设备,该设备包括处理器和存储器,该处理器和存储器相互连接。该存储器用于存储支持该终端设备执行上述第一方面和/或第一方面任一种可能的实现方式提供的方法的计算机程序,该计算机程序包括程序指令,该处理器被配置用于调用上述程序指令,执行上述第一方面和/或第一方面任一种可能的实施方式所提供的方法。

第六方面,本申请实施例提供了一种设备,该设备包括处理器和存储器,该处理器和存储器相互连接。该存储器用于存储支持该终端设备执行上述第二方面和/或第二方面任一种可能的实现方式提供的方法的计算机程序,该计算机程序包括程序指令,该处理器被配置用于调用上述程序指令,执行上述第二方面和/或第二方面任一种可能的实施方式所提供的方法。

第七方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行以实现上述第一方面和/或第二方面中任一种可能的实施方式所提供的方法。

在本申请实施例中,交易提交节点通过对交易数据进行压缩传输,可减少交易数据的数据量进而提升交易数据的传输速率。另一方面,交易提交节点在打包区块时只将交易数据的交易数据哈希打包至区块,可减少区块的数据容量,并通过对区块进行压缩可进一步提升区块的传输效率。与此同时,共识节点通过验证区块中的交易数据哈希与本地存储的交易数据是否对应,在一致的情况下可直接对本地交易数据进行存储并将区块添加至区块链,适用性高。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的基于区块链的数据处理方法的原理示意图;

图2是本申请实施例提供的基于区块链的数据处理方法的流程示意图;

图3是本申请实施例提供的对目标交易数据进行压缩的场景示意图;

图4是本申请实施例提供的对压缩交易数据进行解压缩的场景示意图;

图5是本申请实施例提供的压缩交易数据的编码格式的场景示意图;

图6是本申请实施例提供的基于区块链的数据处理装置的一结构示意图;

图7是本申请实施例提供的基于区块链的数据处理装置的另一结构示意图;

图8是本申请实施例提供的设备的一结构示意图;

图9是本申请实施例提供的设备的另一结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

请参见图1,图1是本申请实施例提供的基于区块链的数据处理方法的原理示意图。在图1中,节点10a、节点10b、节点10c以及节点10d分别为区块链中20中的部分节点,其中任一节点可向其他节点广播交易数据。以图1中为例,节点10a为区块链20中的交易提交节点,节点10d为区块链20中的一个共识节点。当节点10a从其相对应的交易池30中选取目标交易数据40之后,可将目标交易数据40进行压缩得到压缩交易数据50,并进一步将压缩交易数据50在区块链20中进行全网广播以使区块链20中除节点10a外的其他节点可确定此时区块链20中存在目标交易数据40(或者压缩交易数据50),同时区块链20中除节点10a外的其他节点(如节点10d)可对压缩交易数据50进行解压缩得到目标交易数据40并将目标交易数据40进行本地存储。其中,节点10a通过全网广播压缩交易数据50可减少传输资源消耗,提升广播效率。

进一步地,节点10a在将压缩交易数据50进行全网广播之后,可确定出目标交易数据40的交易数据哈希,从而可将交易数据哈希打包至区块60并将区块进行全网广播以使节点10d对区块60进行验证。可选的,节点10a可将区块60进行压缩的得到压缩区块70,进而将压缩区块70进行全网广播以进一步减少传输资源的消耗以及提升传输效率。当节点10d将目标交易数据40进行存储且接收到节点10a发送的区块60(或者接收到压缩区块70并对压缩区块70进行解压缩之后得到区块60)时,节点10d可确定区块60中是否包括其本地存储的目标交易数据40的交易数据哈希。即节点10d可确定其本地存储的目标交易数据40的交易数据哈希以将其与区块60中存储的交易数据哈希进行比较,若两者一致则说明区块60中包含目标交易数据40,此时节点10d可对区块60进行合法性验证并在验证通过后将区块60添加至区块链20中的主链80。此外,任何人、任何企业都可以架设服务器以加入区块链网络成为一个节点。所以,区块链可以理解为一个可以在多个站点、不同地理位置或者多个机构组成的区块链里进行数据处理、分享的数据库。

参见图2,图2是本申请实施例提供的基于区块链的数据处理方法的流程示意图。图2所示的基于区块链的数据处理方法可包括如下步骤s201至s207。

s201、从交易池获取目标交易数据,并将目标交易数据进行压缩得到压缩交易数据。

在一些可行的实施方式中,交易提交节点可从交易池中获取任意一条交易数据作为目标交易数据,并对交易出具进行压缩。可选的,交易提交节点可每隔预设时间间隔确定交易池中的交易数据数量,当交易池中的交易数据数量超过预设数量阈值时,交易节点可从交易池中获取与上述预设数量阈值相等的交易数据作为目标交易数据。例如,交易提交接节点每隔20秒确定一次交易池中的交易数据数量,此时假设预设数量阈值为20,交易提交节点可在交易池中的交易数据数量超过20条时,从交易池中获取20条交易数据作为目标交易数据。

可选的,由于区块链中的每一个区块具有一定的数据容量限制,因此交易提交节点可每个预设时间间隔确定交易池中所有交易数据的总数据量,并在交易池中所有交易数据的总数据量超多预设数据量阈值且小于区块数据容量时,交易提交节点可获取交易池中所有的交易数据并将所获取的交易数据作为目标交易数据。其中,上述预设数据量阈值为远大于0且略微小于区块数据容量的任意一个数据量阈值,具体可根据实际应用场景确定,在此不做限制。例如,假设区块容量为2m,此时可将上述预设数据量阈值确定为1.7m,此时当交易池中的交易数据的总数据量超过1.7m时且还未超过2m时,交易提交节点可获取交易池中的所有交易数据以作为目标交易数据。

在一些可行的实施方式中,交易提交节点在获取到目标交易数据之后,为提升目标交易数据的传输速率,减少传输资源的消耗,交易提交节点可对目标交易数据进行压缩以减少目标交易数据的数据量。其中,在交易提交节点对目标交易数据进行压缩时所采用的压缩方式包括但不限于lzw压缩方式、哈夫曼编码方式、游程编码方式、lz77压缩方式以及数据压缩工具等,或者可采用上述多种压缩方式进行组合,具体可根据实际应用场景确定,在此不做限制。

以lz77压缩方式为例,在对目标交易数据进行压缩时,交易提交节点可确定当前待编码字符是否与预设滑动窗口内的已编码字符相匹配,其中,当前待编码字符为目标交易数据的第一个待编码字符。如果当前待编码字符与预设滑动窗口内的已编码字符相匹配,交易提交节点在第一个待编码字符之后在前向缓冲区内继续查找最长的匹配字符串,并输出三元符号组(off,len,c),其中,off表示匹配字符串相对滑动窗的窗口左边界的偏移量,len表示匹配字符串的长度,c为与匹配字符串相邻的下一个待编码字符。如果当前编码制度与预设滑动窗口内的已编码字符不匹配,交易提交节点则输出三元符号组(off,len,d),其中d表示当前待编码字符。在输出三元符号组(off,len,c)或者(off,len,d)之后,交易提交节点可将预设滑动窗向后移动len+1个字符,继续执行确定当前待编码字符是否与预设滑动窗口内的已编码字符相匹配的步骤,直至目标交易数据中不存在待编码字符,从而得到目标交易数据对应的多个三元符号组。此时,交易提交节点完成对目标交易数据的压缩得到压缩交易数据。其中,上述前向缓冲区为待编码字符的一部分,上述预设滑动窗口的大小(如4kb)和前向缓冲区(如32b)的大小可根据实际应用场景确定,在此不做限制。

如图3所示,图3是本申请实施例提供的对目标交易数据进行压缩的场景示意图。在图3中,假设字符串“ababcbababcad”为目标交易数据,从目标交易数据的第一个待编码字符开始,在前向缓冲区内依次考察未编码的字符。如在第一步中预设滑动窗口对于前向缓冲区“abab”中未找到匹配的字符串,则输出三元符号组(0,0,a),其中0可省略。即a为与预设滑动窗口不匹配的第一个字符。此时将预设滑动窗口向后滑动1个字符,继续再前向缓冲区内查找最长的匹配字符串。如第二步在预设滑动窗帘中从前向缓冲区“babc”中未找到匹配字符串,此时输出三元符号组(0,0,b),其中0可省略。进一步地,将预设滑动窗口向后滑动2个字符,此时在预设滑动窗口偏移量为6的位置找到“ab”,此时可输出三元符号组(6,2,c),其中c为前向缓冲区中已匹配的字符串“ab”的下一个字符。以此类推,在第五步时可在预设滑动窗口偏移量为2的位置找到“bc”并输出三元符号组(2,2,a)。根据上述实现方式,可将目标交易数据(字符串“ababcbababcad”)进行压缩得到压缩交易数据。

可选的,交易提交节点在对目标交易数据采用lz77压缩方式进行压缩后,可基于哈夫曼编码算法对得到的多个三元符号组再次进行编码得到压缩交易数据,以进一步减小目标交易数据的数据量。需要特别说明的是,上述压缩方式仅为示例,具体对目标交易数据的压缩方式可根据实际应用场景确定,在此不做限制。

s202、将压缩交易数据在区块链中进行广播。

在一些可行的实施方式中,交易提交节点可将压缩交易数据在区块链中进行广播,以使区块链中其他节点获知区块链对目标交易数据正在进行处理。对于区块链中的其他交易提交节点来说,其他交易提交节点在接收到压缩交易数据之后,可对压缩交易数据进行解压得到目标交易数据,并将目标交易数据与其相对应的交易池中的交易数据进行比较。若某一交易提交节点的交易池中存在与目标交易数据相同的交易数据,还交易提交节点可删除交易池中的目标交易数据,以免目标交易数据由其他交易提交节点重复处理。

可选的,由于上述对目标交易数据进行压缩的主要目的是为了减少传输资源消耗并提升交易数据传输速率,但是当目标交易数据自身的数据量较小时,对目标交易数据进行压缩反而会由于压缩时间而延长目标交易数据的传输时间。因此交易提交节点可将数据量小于压缩数据量阈值的目标交易数据直接在区块链中进行广播,将数据量大于或者等于预缩数据量阈值的目标交易数据进行压缩,将压缩后得到的压缩交易数据在区块链中进行广播以合理利用传输资源,最大限度地提升目标交易数据的传输速率。

s203、对压缩交易数据进行解压缩得到目标交易数据。

在一些可行的实施方式中,当共识节点接收到交易提交节点发送的压缩交易数据时,由于交易提交节点也可能向共识节点发送未经过压缩的交易数据,因此共识节点可确定交易提交节点发送的数据是否携带压缩标识。若交易提交节点发送的数据位未携带压缩标识,则交易提交节点可能未成功对目标交易数据进行压缩,此时共识节点可能无法成功对压缩交易数据成功解压缩。此时,共识节点可向交易提交节点发送重传信息以使交易提交节点重新对目标交易数据进行压缩以及重新发送新的压缩交易数据。其中,上述压缩标识可以为任意标记压缩交易数据的信息,如压缩交易数据的数据包的某一标志位,或者随同压缩交易数据一同进行广播的其他信息,具体可根据实际应用场景确定,在此不做限制。

在一些可行的实施方式中,共识节点在对压缩交易数据进行解压缩时,可获取压缩交易数据携带的压缩方式标识以根据压缩方式标识确定出业务提交节点在对目标交易数据进行压缩时所采用的压缩方式。其中,上述压缩方式标识可以使任意标记压缩方式的信息,如存在与压缩交易数据的数据包中的任一标志位,也可以是随同压缩交易数据一起被交易提交节点发送的其他信息,具体可根据实际应用场景确定,在此不做限制。进一步地,共识节点可采用交易提交节点所采用的压缩方式对应的解压缩方式对压缩交易数据进行解压,从而得到目标交易数据。需要特别说明的是,上述对压缩交易数据进行解压缩时也可采用解压缩工具,具体可根据实际应用场景确定,在此不做限制。

如图4所示,图4是本申请实施例提供的对压缩交易数据进行解压缩的场景示意图。在图4中,假设交易提交节点对目标交易数据进行压缩(采用lz77压缩方式)之后得到的压缩交易数据为ab(6,2,c)(4,3,a)(2,2,a)d,此时共识节点可按照lz77压缩方式的相反顺序依次对压缩交易数据中的三元符号组进行解码。对于三元符号组a和b依次解码可得到字符串“ab”。进一步可对(6,2,c)进行解码之后可得到字符串“ababc”,对(4,3,a)进行解码之后可得到字符串“ababcbaba”,以此类推直至对d进行解码后得到最终的字符串为“ababcbababcad”。此时最终的字符串即为对压缩交易数据仅解压缩之后的目标交易数据。

在一些可行的实施方式中,共识节点在将压缩交易数据进行解压缩得到目标交易数据之后,共识节点可根据压缩交易数据所携带的数据校验信息验证其得到的目标交易数据是否为完整交易数据。其中,上述数据校验信息可以是压缩交易数据的数据包中的校验和,也可以是目标交易信息的交易哈希,具体可根据实际应用场景确定,在此不做限制。例如,当上述数据校验信息为目标交易信息的交易哈希时,共识节点可对解压缩得到的目标交易数据进行哈希计算得到解压缩得到的目标交易数据的交易哈希,并进一步将其与上述数据校验信息进行比较,若两者一致则可说明压缩交易数据在广播过程中未遭到篡改,或者在交易提交节点对目标交易数据进行压缩的过程中未丢失数据,此时共识节点则可将解压缩后得到的目标交易数据进行存储。若根据上述数据校验信息确定上述解压缩后得到的目标交易数据为不完整交易数据,共识节点则可向交易提交节点发送重传信息以使交易提交节点重新为目标交易数据进行压缩并发送新的压缩交易数据。

在一些可行的实施方式中,当多个共识节点在对压缩交易数据进行解压缩得到目标交易数据之后,可对分别对目标交易数据进行验证以确定目标交易数据是否为合法的交易数据在验证通过后生产验证结果。当各个共识节点的验证结果满足预设的共识策略时,可确定目标交易数据为合法交易数据,此时可向交易提交节点发送确认消息以使交易提交节点将目标交易数据打包至区块。

在一些可行的实施方式中,上述压缩交易数据可同时携带压缩标识、压缩方式标识以及数据校验信息等,具体可在对目标交易数据进行压缩时在压缩编码格式中进行提现。参见图5,图5是本申请实施例提供的压缩交易数据的编码格式的场景示意图。在图5中,第一个标志位可用于表示压缩标识,在第2至第4个标志位可用于标识压缩方式标识,在第5至第8个标志位可用于表示目标交易数据的数量,在最后4个标志位可用于表示压缩交易数据的数据校验信息,其他位置可用于填充目标交易数据的压缩交易数据。其中,上述任一标志位所表示的内容以及压缩标识、压缩方式标识、目标交易数据数量、目标交易数据以及数据校验信息所对应的标志位的个数均可根据实际应用场景确定,在此不做限制。

s204、确定目标交易数据的交易数据哈希,并将交易数据哈希打包至区块,将区块进行压缩得到压缩区块。

在一些可行的实施方式中,交易提交节点在将目标交易数据打包至区块时,为了减少区块数据量,交易提交节点可确定出目标交易数据的交易数据哈希,并将交易数据哈希打包至区块以将包含交易数据哈希的区块发送至共识节点。可选的,为了进一步提升传输速率,交易提交节点可进一步对区块进行压缩,具体压缩方式参见步骤s201所示的实现方式,在此不再赘述。可选的,当区块中包含数据量较大的交易数据哈希时,交易提交节点可将区块进行分段发送以使每段区块数据可快速发送至共识节点。其中,上述包含交易数据哈希的区块的具体发送方式可根据实际应用场景确定,在此不做限制。

s205、发送压缩区块。

s206、对压缩区块进行解压缩得到区块,确定区块中存在目标交易数据的交易数据哈希。

在一些可行的实施方式中,共识节点在接收到交易提交节点发送的分段区块数据之后,可按照接收顺序将分段区块数据进行恢复得到完成的区块。可选的,共识节点在接收到交易提交节点发送的压缩区块之后,可对压缩区块进行解压缩得到包含交易哈希的区块,其中对压缩区块进行解压缩的具体实现方式可参见步骤s203所示的实现方式,在此不再赘述。进一步地,共识节点得到包含交易数据哈希的区块之后,由于区块中并不包含具体的交易数据,因此共识节点需确认区块中是否存在共识节点所存储的目标交易数据的交易哈希。也就是说,共识节点需要确认区块中所包含的交易数据哈希是否为其所存储的目标交易数据的交易数据哈希。具体的,共识节点可对其所存储的目标交易数进行哈希计算得到目标交易数据的交易数据哈希,并将其与区块中包含的交易数据哈希进行比较。若两者一致则可说明交易提交节点在打包区块的过程中未发生数据错误,或者交易提交节点未选取错误交易数据的交易哈希进行打包,此时共识节点可确定区块中存在目标交易数据的交易数据哈希。若两者不一致,则说明交易提交节点在打包区块的过程中发送数据错误,或者交易提交节点选取错误交易数据的交易哈希进行打包,此时共识节点可向交易提交节点发送重传信息以使交易提交节点重新对目标交易数据的交易数据哈希进行打包并发送新的区块。

s207、对区块进行验证,并在验证通过后将区块添加至区块链。

在一些可行的实施方式中,共识节点可对区块的合法性进行验证以确定是否将区块添加至区块链。具体的,共识节点可根据目标交易数据的交易哈希确定出一个默克尔树根,并将该默克尔树根与区块的区块头中的默克尔树根进行比较,若两者一致则可确定区块为合法区块。可选的,共识节点对目标交易数据进行验证以确定目标交易数据是否产生双花、目标交易数据发生更新或者目标交易数据对应的账户发生账户状态更新。若目标交易数据未产生双花、目标交易数据未发生更新且目标交易数据对应的账户也未发生账户状态更新,则可确定上述区块为合法区块。可选的,共识节点可验证该区块的难度值是否正确,若该区块的难度值正确,则可确定该区块为合法区块。可选的,共识节点可获取区块中的智能合约并重新执行智能合约,以根据执行结果确定是否与目标交易数据相匹配,若执行结果与目标交易数据匹配则可确定该区块为合法区块。

需要特别说明的是,上述所示的多种验证方式可同时进行也可只进行其中任意一种或多种,如区块通过上述所有验证之后,共识节点可确定上述区块为合法区块,具体验证方式可根据实际应用场景确定,在此不做限制。

在一些可行的实施方式中,共识节点在将区块添加至区块链之前,共识节点还对该区块进行共识验证,并在共识结果满足预设共识策略时将区块添加至区块链。其中,上述预设共识策略包括但不限于工作量证明机制(proofofwork,pow)、权益证明机制(proofofstake,pos)、股份授权证明机制(delegatedproofofstake,dpos)实用拜占庭机制(practicalbyzantinefaulttolerance,pbft)以及ripple共识算法等,具体可基于实际应用场景确定,在此不做限制。

在本申请实施例中,交易提交节点通过对交易数据进行压缩传输,可减少交易数据的数据量进而提升交易数据的传输速率。另一方面,交易提交节点在打包区块时只将交易数据的交易数据哈希打包至区块,可减少区块的数据容量,并通过对区块进行压缩可进一步提升区块的传输效率。与此同时,共识节点通过验证区块中的交易数据哈希与本地存储的交易数据是否对应,在一致的情况下可直接对本地交易数据进行存储并将区块添加至区块链,适用性高。

参见图6,图6是本申请实施例提供的基于区块链的数据处理装置的一结构示意图。本申请实施例提供的装置1包括:

第一处理模块11,用于从交易池获取目标交易数据,并将上述目标交易数据进行压缩得到压缩交易数据;

第一发送模块12,用于将上述压缩交易数据在区块链中进行广播,以使上述区块链中的其他节点对上述压缩交易数据进行解压缩得到上述目标交易数据;

第二处理模块13,用于确定上述目标交易数据的交易数据哈希,并将上述目标交易数据的交易数据哈希打包至区块;

第二发送模块14,用于将上述区块进行压缩得到压缩区块,并将上述压缩区块发送至共识节点,以使上述共识节点对上述区块进行验证并在验证通过后将上述区块添加至上述区块链。

在一些可行的实施方式中,上述第一处理模块11包括:

第一确定单元111,用于确定当前待编码字符是否与预设滑动窗口内的已编码字符相匹配,其中,当前待编码字符为上述目标交易数据的第一个待编码字符;

第一查找单元112,用于当匹配时在上述第一个待编码字符之后继续查找最长的匹配字符串,并输出三元符号组(off,len,c),其中off表示上述匹配字符串相对滑动窗的窗口左边界的偏移量,len表示上述匹配字符串的长度,c为与上述匹配字符串相邻的下一个待编码字符;

输出单元113,用于当未匹配时输出三元符号组(off,len,d),其中d表示上述当前待编码字符;

第二查找单元114,用于将上述预设滑动窗向后移动len+1个字符,继续执行上述确定当前待编码字符是否与预设滑动窗口内的已编码字符相匹配的步骤,直至得到上述目标交易数据对应的多个三元符号组;

第一处理单元115,用于基于哈夫曼编码算法对上述多个三元符号组进行编码得到压缩交易数据。

在一些可行的实施方式中,上述第一处理模块11包括:

第二确定单元116,用于每隔预设时间间隔确定交易池中的交易数据数量;

获取单元117,用于当上述交易池中的交易数据数量超过预设数量阈值时,从上述交易池中获取与上述预设数量阈值相等的交易数据,并将上述与上述预设数量阈值数量相等的交易数据确定为目标交易数据。

具体实现中,上述装置1可通过其内置的各个功能模块执行如上述图2中各个步骤所提供的实现方式,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。

参见图7,图7是本申请实施例提供的基于区块链的数据处理装置的另一结构示意图。本申请实施例提供的装置2包括:

接收模块20,用于接收交易提交节点发送的压缩交易数据,上述压缩交易数据由上述交易提交节点对目标交易数据进行压缩后得到;

第三处理模块21,用于对上述压缩交易数据进行解压缩得到上述目标交易数据;

第四处理模块22,用于当接收到上述交易提交节点发送的压缩区块时,对上述压缩区块进行解压缩得到区块;

第一确定模块23,用于确定上述区块中是否存在上述目标交易数据的交易数据哈希;

第五处理模块24,用于若上述区块中存在上述目标交易数据的交易数据哈希,对上述区块进行验证,并在验证通过后将上述区块添加至区块链。

在一些可行的实施方式中,上述压缩交易数据携带压缩方式标识;上述第三处理模块21包括:

第三确定单元211,用于根据上述压缩方式标识确定上述压缩交易数据对应的压缩方式;

第二处理单元212,用于根据上述压缩方式对应的解压缩方式对上述压缩交易数据进行解压缩得到上述目标交易数据。

在一些可行的实施方式中,上述压缩交易数据携带数据校验信息;上述装置2包括:

验证模块25,还用于根据上述数据校验信息验证上述目标交易数据是否为完整交易数据;

存储模块26,还用于若上述目标交易数据为完整交易数据,将上述目标交易数据进行存储;

第三发送模块27,还用于若上述目标交易数据为不完整交易数据,向上述交易提交节点发送第一重传信息以使上述交易提交节点发送第一压缩交易数据。

在一些可行的实施方式中,上述装置2还包括:

第二确定模块28,还用于确定上述压缩交易数据是否携带压缩标识,上述压缩标识由上述交易提交节点对上述目标交易数据进行压缩时生成;

第六处理模块29,还用于若确定上述压缩交易数据携带上述压缩标识,执行上述对上述压缩区块进行解压缩得到区块的步骤,若确定上述压缩交易数据未携带上述压缩标识,向上述交易提交节点发送第二重传信息以使上述交易提交节点发送第二压缩交易数据。

具体实现中,上述装置2可通过其内置的各个功能模块执行如上述图2中各个步骤所提供的实现方式,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。

在本申请实施例中,交易提交节点通过对交易数据进行压缩传输,可减少交易数据的数据量进而提升交易数据的传输速率。另一方面,交易提交节点在打包区块时只将交易数据的交易数据哈希打包至区块,可减少区块的数据容量,并通过对区块进行压缩可进一步提升区块的传输效率。与此同时,共识节点通过验证区块中的交易数据哈希与本地存储的交易数据是否对应,在一致的情况下可直接对本地交易数据进行存储并将区块添加至区块链,适用性高。

参见图8,图8是本申请实施例提供的设备的一结构示意图。如图8所示,本实施例中的设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,上述设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(display)、键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1004可以是高速ram存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图8所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。

在图8所示的设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:

从交易池获取目标交易数据,并将上述目标交易数据进行压缩得到压缩交易数据;

将上述压缩交易数据在区块链中进行广播,以使上述区块链中的其他节点对上述压缩交易数据进行解压缩得到上述目标交易数据;

确定上述目标交易数据的交易数据哈希,并将上述目标交易数据的交易数据哈希打包至区块;

将上述区块进行压缩得到压缩区块,并将上述压缩区块发送至共识节点,以使上述共识节点对上述区块进行验证并在验证通过后将上述区块添加至上述区块链。

在一些可行的实施方式中,上述处理器1001用于:

确定当前待编码字符是否与预设滑动窗口内的已编码字符相匹配,其中,当前待编码字符为上述目标交易数据的第一个待编码字符;

若匹配,在上述第一个待编码字符之后继续查找最长的匹配字符串,并输出三元符号组(off,len,c),其中off表示上述匹配字符串相对滑动窗的窗口左边界的偏移量,len表示上述匹配字符串的长度,c为与上述匹配字符串相邻的下一个待编码字符;

如果未匹配,则输出三元符号组(off,len,d),其中d表示上述当前待编码字符;

将上述预设滑动窗向后移动len+1个字符,继续执行上述确定当前待编码字符是否与预设滑动窗口内的已编码字符相匹配的步骤,直至得到上述目标交易数据对应的多个三元符号组;

基于哈夫曼编码算法对上述多个三元符号组进行编码得到压缩交易数据。

在一些可行的实施方式中,上述处理器1001用于:

每隔预设时间间隔确定交易池中的交易数据数量;

当上述交易池中的交易数据数量超过预设数量阈值时,从上述交易池中获取与上述预设数量阈值相等的交易数据,并将上述与上述预设数量阈值数量相等的交易数据确定为目标交易数据。

应当理解,在一些可行的实施方式中,上述处理器1001可以是中央处理单元(centralprocessingunit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。该存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。

具体实现中,上述设备1000可通过其内置的各个功能模块执行如上述图2中各个步骤所提供的实现方式,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。

参见图9,图9是本申请实施例提供的设备的另一结构示意图。如图9所示,本实施例中的设备1100可以包括:处理器1101,网络接口1104和存储器1105,此外,上述设备1100还可以包括:用户接口1103,和至少一个通信总线1102。其中,通信总线1102用于实现这些组件之间的连接通信。其中,用户接口1103可以包括显示屏(display)、键盘(keyboard),可选用户接口1103还可以包括标准的有线接口、无线接口。网络接口1104可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1104可以是高速ram存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器1105可选的还可以是至少一个位于远离前述处理器1101的存储装置。如图9所示,作为一种计算机可读存储介质的存储器1105中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。

在图9所示的设备1100中,网络接口1104可提供网络通讯功能;而用户接口1103主要用于为用户提供输入的接口;而处理器1101可以用于调用存储器1105中存储的设备控制应用程序,以实现:

接收交易提交节点发送的压缩交易数据,上述压缩交易数据由上述交易提交节点对目标交易数据进行压缩后得到;

对上述压缩交易数据进行解压缩得到上述目标交易数据;

当接收到上述交易提交节点发送的压缩区块时,对上述压缩区块进行解压缩得到区块;

确定上述区块中是否存在上述目标交易数据的交易数据哈希;

若上述区块中存在上述目标交易数据的交易数据哈希,对上述区块进行验证,并在验证通过后将上述区块添加至区块链。

在一些可行的实施方式中,上述压缩交易数据携带压缩方式标识;上述处理器1101用于:

根据上述压缩方式标识确定上述压缩交易数据对应的压缩方式;

根据上述压缩方式对应的解压缩方式对上述压缩交易数据进行解压缩得到上述目标交易数据。

在一些可行的实施方式中,上述压缩交易数据携带数据校验信息;上述处理器1101还用于:

根据上述数据校验信息验证上述目标交易数据是否为完整交易数据;

若上述目标交易数据为完整交易数据,则将上述目标交易数据进行存储;

若上述目标交易数据为不完整交易数据,则向上述交易提交节点发送第一重传信息以使上述交易提交节点发送第一压缩交易数据。

在一些可行的实施方式中,上述处理器1101还用于:

确定上述压缩交易数据是否携带压缩标识,上述压缩标识由上述交易提交节点对上述目标交易数据进行压缩时生成;

若确定上述压缩交易数据携带上述压缩标识,则执行上述对上述压缩区块进行解压缩得到区块的步骤,若确定上述压缩交易数据未携带上述压缩标识,则向上述交易提交节点发送第二重传信息以使上述交易提交节点发送第二压缩交易数据。

应当理解,在一些可行的实施方式中,上述处理器1101可以是中央处理单元(centralprocessingunit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。该存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。

具体实现中,上述设备1100可通过其内置的各个功能模块执行如上述图2中各个步骤所提供的实现方式,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。

在本申请实施例中,交易提交节点通过对交易数据进行压缩传输,可减少交易数据的数据量进而提升交易数据的传输速率。另一方面,交易提交节点在打包区块时只将交易数据的交易数据哈希打包至区块,可减少区块的数据容量,并通过对区块进行压缩可进一步提升区块的传输效率。与此同时,共识节点通过验证区块中的交易数据哈希与本地存储的交易数据是否对应,在一致的情况下可直接对本地交易数据进行存储并将区块添加至区块链,适用性高。

本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,被处理器执行以实现图2中各个步骤所提供的方法,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。

上述计算机可读存储介质可以是前述任一实施例提供的任务处理装置的内部存储单元,例如电子设备的硬盘或内存。该计算机可读存储介质也可以是该电子设备的外部存储设备,例如该电子设备上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。上述计算机可读存储介质还可以包括磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。进一步地,该计算机可读存储介质还可以既包括该电子设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该电子设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。

本申请的权利要求书和说明书及附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置展示该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

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