一种区块链的数据处理方法、装置及终端设备与流程

文档序号:18191625发布日期:2019-07-17 05:36阅读:176来源:国知局
一种区块链的数据处理方法、装置及终端设备与流程

本发明涉及数据处理技术领域,尤其涉及一种区块链的数据处理方法、装置及终端设备。



背景技术:

目前,区块链中的数据区块的结构通常包括头部结构和交易记录结构,其中交易记录结构由每一笔交易记录按照行进行存储。但是,按行存储的交易记录结构主要有如下缺点:(1)交易记录查询时,交易记录的所有细节信息都会被查询到,大量使用io操作,造成资源浪费;(2)面对大量的查询需求时,无法满足高并发的查询要求;(3)每个交易记录行中包含各种数据类型的数据,比如交易时间(日期时间类型)、接收/支出数量(数值类型)、交易的数字签名信息等,不利于数据的高效处理等;(4)交易记录细节信息发生变化(比如增加新的交易属性)时,现有的行式存储结构无法应对;(5)交易区块数据量非常大,严重占用系统资源。



技术实现要素:

本发明实施例提供一种区块链的数据处理方法、装置及终端设备,以解决现有的按行存储的交易记录结构所造成的资源浪费、无法满足高并发的查询要求以及不利于数据的高效处理的问题。

为了解决上述问题,第一方面,本发明实施例提供了一种区块链的数据处理方法,包括:

获取待写入区块链的区块数据;

对所述区块数据中的交易记录行数据按照交易记录列进行列压缩处理,得到区块列压缩数据;

将所述区块列压缩数据写入所述区块链。

可选的,所述对所述区块数据中的交易记录行数据按照交易记录列进行列压缩处理,得到区块列压缩数据,包括:

根据预设的列压缩格式,对所述区块数据中的交易记录行数据按照交易记录列进行列压缩处理,得到所述区块列压缩数据。

可选的,所述对所述区块数据中的交易记录行数据按照交易记录列进行列压缩处理,得到区块列压缩数据之后,所述将所述区块列压缩数据写入所述区块链之前,所述方法还包括:

创建区块识别信息,其中,所述区块识别信息中包括所述区块列压缩数据的列压缩格式信息;

将所述区块识别信息添加入所述区块列压缩数据的头部结构中;

所述将所述区块列压缩数据写入所述区块链,包括:

将添加所述区块识别信息后的区块列压缩数据写入所述区块链。

可选的,所述区块识别信息中还包括所述区块数据的大小信息,用于识别所述区块列压缩数据的真伪。

第二方面,本发明实施例还提供了一种区块链的数据处理方法,包括:

确定区块链中的待读取的区块列压缩数据;

按照交易记录列读取所述区块列压缩数据中的交易记录列数据并进行解压缩处理。

可选的,所述按照交易记录列读取所述区块列压缩数据中的交易记录列数据并进行解压缩处理,包括:

根据预设的列压缩格式,按照交易记录列读取所述区块列压缩数据中对应的交易记录列数据并进行解压缩处理。

可选的,所述确定区块链中的待读取的区块列压缩数据之后,所述按照交易记录列读取所述区块列压缩数据中的交易记录列数据并进行解压缩处理之前,所述方法还包括:

读取所述区块列压缩数据的头部结构中的区块识别信息,其中,所述区块识别信息中包括所述区块列压缩数据的列压缩格式信息;

所述按照交易记录列读取所述区块列压缩数据中的交易记录列数据并进行解压缩处理,包括:

根据所述列压缩格式信息,按照交易记录列读取所述区块列压缩数据中对应的交易记录列数据并进行解压缩处理。

第三方面,本发明实施例还提供了一种区块链的数据处理装置,包括:

获取模块,用于获取待写入区块链的区块数据;

第一处理模块,用于对所述区块数据中的交易记录行数据按照交易记录列进行列压缩处理,得到区块列压缩数据;

写入模块,用于将所述区块列压缩数据写入所述区块链。

可选的,所述第一处理模块具体用于:

根据预设的列压缩格式,对所述区块数据中的交易记录行数据按照交易记录列进行列压缩处理,得到所述区块列压缩数据。

可选的,所述区块链的数据处理装置还包括:

创建模块,用于创建区块识别信息,其中,所述区块识别信息中包括所述区块列压缩数据的列压缩格式信息;

添加模块,用于将所述区块识别信息添加入所述区块列压缩数据的头部结构中;

所述写入模块具体用于:

将添加所述区块识别信息后的区块列压缩数据写入所述区块链。

可选的,所述区块识别信息中还包括所述区块数据的大小信息,用于识别所述区块列压缩数据的真伪。

第四方面,本发明实施例还提供了一种区块链的数据处理装置,包括:

确定模块,用于确定区块链中的待读取的区块列压缩数据;

第二处理模块,用于按照交易记录列读取所述区块列压缩数据中的交易记录列数据并进行解压缩处理。

可选的,所述第二处理模块具体用于:

根据预设的列压缩格式,按照交易记录列读取所述区块列压缩数据中对应的交易记录列数据并进行解压缩处理。

可选的,所述区块链的数据处理装置还包括:

读取模块,用于读取所述区块列压缩数据的头部结构中的区块识别信息,其中,所述区块识别信息中包括所述区块列压缩数据的列压缩格式信息;

所述第二处理模块具体用于:

根据所述列压缩格式信息,按照交易记录列读取所述区块列压缩数据中对应的交易记录列数据并进行解压缩处理。

第五方面,本发明实施例还提供了一种终端设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述计算机程序被所述处理器执行时实现上述区块链的数据处理方法的步骤。

第六方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现上述区块链的数据处理方法的步骤。

本发明实施例的区块链的数据处理方法,通过改进写入区块链的区块数据的结构,即对待写入区块链的区块数据中的交易记录行数据按照交易记录列进行列压缩处理,将列压缩处理后的区块列压缩数据写入区块链,相比于现有的按行存储的交易记录结构,能够具有如下有益效果中的至少一个:

(1)在查询区块的交易记录时,只需查询交易记录的对应列信息,无需查询交易记录的所有属性信息,从而大量减少系统io操作,避免资源浪费;

(2)列压缩处理后的交易记录数据可支持大容量、高并发的查询要求;

(3)对区块中的交易记录数据进行列压缩处理后,每列的数据类型相同,数据特征相似,有利于数据的高效处理;

(4)交易记录细节信息发生变化(比如增加新的交易明细属性)时,可以方便的对列式存储结构进行扩展。

(5)对区块中的交易记录数据进行列压缩处理后,可极大的减少数据冗余,节省系统资源。

附图说明

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

图1为本发明实施例的一区块链的数据处理方法的流程图;

图2为本发明实施例的另一区块链的数据处理方法的流程图;

图3为本发明实施例的区块链的数据处理装置的结构示意图之一;

图4为本发明实施例的区块链的数据处理装置的结构示意图之二;

图5为本发明实施例的区块链的数据处理装置的结构示意图之三;

图6为本发明实施例的区块链的数据处理装置的结构示意图之四;

图7为本发明实施例的终端设备的结构示意图。

具体实施方式

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

参加图1所示,本发明实施例提供了一种区块链的数据处理方法,应用于终端设备,包括如下步骤:

步骤101:获取待写入区块链的区块数据。

应说明的是,本发明实施例的区块链的数据处理方法可在终端设备的区块链客户端程序中实现,即在现有的区块链客户端程序保存区块数据的方法中内嵌列压缩处理过程,将待写入区块链的区块数据中的交易记录行数据变成按交易记录列压缩的数据以存储。其中,该区块数据可在启动区块链客户端程序后且运行区块链客户端程序过程中获取。该区块数据的结构可包括头部结构和交易记录结构,交易记录结构对应于交易记录数据。

步骤102:对区块数据中的交易记录行数据按照交易记录列进行列压缩处理,得到区块列压缩数据。

其中,在对区块数据中的交易记录行数据按照交易记录列进行列压缩处理时,可根据预设的列压缩格式进行列压缩处理。该预设的列压缩格式具体可为区块列式结构的统一完备的格式。

步骤103:将区块列压缩数据写入区块链。

其中,在得到列压缩处理后的区块列压缩数据后,可将区块列压缩数据写入区块链,以保证区块数据的可靠性。

本发明实施例的区块链的数据处理方法,通过改进写入区块链的区块数据的结构,即对待写入区块链的区块数据中的交易记录行数据按照交易记录列进行列压缩处理,将列压缩处理后的区块列压缩数据写入区块链,相比于现有的按行存储的交易记录结构,能够具有如下有益效果中的至少一个:

(1)在查询区块的交易记录时,只需查询交易记录的对应列信息,无需查询交易记录的所有属性信息,从而大量减少系统io操作,避免资源浪费;

(2)列压缩处理后的交易记录数据可支持大容量、高并发的查询要求;

(3)对区块中的交易记录数据进行列压缩处理后,每列的数据类型相同,数据特征相似,有利于数据的高效处理;

(4)交易记录细节信息发生变化(比如增加新的交易明细属性)时,可以方便的对列式存储结构进行扩展。

(5)对区块中的交易记录数据进行列压缩处理后,可极大的减少数据冗余,节省系统资源。

本发明实施例中,在对区块数据中的交易记录行数据按照交易记录列进行列压缩处理,得到区块列压缩数据之后,且将区块列压缩数据写入区块链之前,所述方法还包括:

创建区块识别信息;

将区块识别信息添加入区块列压缩数据的头部结构中。

对应的,该将区块列压缩数据写入区块链包括:将添加区块识别信息后的区块列压缩数据写入区块链。

其中,该区块识别信息中可包括区块列压缩数据的列压缩格式信息,用于解压缩(解码)对应列的交易记录数据。该列压缩格式信息可包括每个交易记录列对应的压缩格式(也可称为压缩算法),或者同区块不同列的压缩格式组合成的区块压缩格式。例如,若一区块列压缩数据中包括3列交易记录数据,分别为d1、d2和d3,d1对应的列压缩格式为a1,d2对应的列压缩格式为a2,d3对应的列压缩格式为a3,则该区块列压缩数据的列压缩格式信息可为a1、a2和a3;而若列压缩格式a1、a2和a3可组合成压缩格式b,则该区块列压缩数据的列压缩格式信息可为b。

这样,将区块识别信息添加入区块列压缩数据的头部结构中并写入区块链,能够有利于后续精准读取对应列的交易记录数据。

进一步的,该区块识别信息中还可包括交易记录列的名称、压缩前的区块数据的大小信息等。该压缩前的区块数据的大小信息可用于识别压缩后的区块列压缩数据的真伪。

下面,以比特币区块为例对本发明实施例进行说明。

具体的,比特币区块的交易记录结构中具有生成时间、索引编号、支出地址、支出地址数量等属性。而采用本发明实施例的方法对比特币区块数据中的交易记录行数据,例如生成时间、索引编号、支出地址、支出地址数量,进行列压缩处理的过程可为:

对于生成时间,将最早的一条交易记录的生成时间作为整个区块生成时间的基准时间,后续交易记录的生成时间经列压缩处理后的值为,该后续交易记录的生成时间与基准时间或者上一条交易记录的生成时间的差值;

对于索引编号,以首条交易记录的索引编号为初始值,增量为1的递增数列为基准队列,若后续交易记录的索引编号与基准队列匹配,则压缩为0,否则压缩为索引编号与基准队列中的不同部分;

对于支出地址,先将比特币区块的支出地址按字节长度(2/4字节)分片,再根据区块内所有地址片的情况使用现有的哈夫曼编码压缩;

对于支出地址数量,计算出比特币区块内所有交易记录的支出地址数量的平均值(四舍五入取整)作为基准值,此列的支出地址数量的压缩值为与基准值的偏差。

这样,通过上述的列压缩处理过程,可以很好的压缩比特币区块中的交易记录数据,极大的减少数据冗余,节省系统资源。

参见图2所示,本发明实施例还提供了一种区块链的数据处理方法,应用于终端设备,包括如下步骤:

步骤201:确定区块链中的待读取的区块列压缩数据。

应说明的是,本发明实施例的区块链的数据处理方法可在终端设备的区块链客户端程序中实现,即在现有的区块链客户端程序读取区块数据的方法中内嵌按列解压缩处理过程,按照交易记录列读取区块列压缩数据中的交易记录列数据并进行解压缩处理。其中,该区块列压缩数据可在启动区块链客户端程序后且运行区块链客户端程序过程中确定。

步骤202:按照交易记录列读取区块列压缩数据中的交易记录列数据并进行解压缩处理。

其中,在按照交易记录列读取区块列压缩数据中的交易记录列数据并进行解压缩处理时,可根据预设的列压缩格式,按照交易记录列读取区块列压缩数据中对应的交易记录列数据并进行解压缩处理。该预设的列压缩格式具体可为区块列式结构的统一完备的格式。

本发明实施例的区块链的数据处理方法,按照交易记录列读取区块列压缩数据中的交易记录列数据并进行解压缩处理,能够大量减少系统io操作,避免资源浪费。

本发明实施例中,在确定区块链中的待读取的区块列压缩数据之后,且按照交易记录列读取区块列压缩数据中的交易记录列数据并进行解压缩处理之前,所述方法还包括:

读取区块列压缩数据的头部结构中的区块识别信息,其中,该区块识别信息中包括区块列压缩数据的列压缩格式信息。

对应的,该按照交易记录列读取区块列压缩数据中的交易记录列数据并进行解压缩处理包括:

根据列压缩格式信息,按照交易记录列读取区块列压缩数据中对应的交易记录列数据并进行解压缩处理。

其中,该列压缩格式信息可用于分析待读取的交易记录列数据,并解压缩对应列的交易记录数据,可包括每个交易记录列对应的压缩格式,或者同区块不同列的压缩格式组合成的区块压缩格式。

这样,根据列压缩格式信息,按照交易记录列读取区块列压缩数据中对应的交易记录列数据并进行解压缩处理,有利于精准读取对应列的交易记录数据。

上述实施例对本发明的区块链的数据处理方法进行了说明,下面将结合实施例和附图对本发明的区块链的数据处理装置进行说明。

参见图3所示,本发明实施例还提供了一种区块链的数据处理装置,包括:

获取模块31,用于获取待写入区块链的区块数据;

第一处理模块32,用于对所述区块数据中的交易记录行数据按照交易记录列进行列压缩处理,得到区块列压缩数据;

写入模块33,用于将所述区块列压缩数据写入所述区块链。

本发明实施例的区块链的数据处理装置,通过改进写入区块链的区块数据的结构,即对待写入区块链的区块数据中的交易记录行数据按照交易记录列进行列压缩处理,将列压缩处理后的区块列压缩数据写入区块链,相比于现有的按行存储的交易记录结构,能够具有如下有益效果中的至少一个:

(1)在查询区块的交易记录时,只需查询交易记录的对应列信息,无需查询交易记录的所有属性信息,从而大量减少系统io操作,避免资源浪费;

(2)列压缩处理后的交易记录数据可支持大容量、高并发的查询要求;

(3)对区块中的交易记录数据进行列压缩处理后,每列的数据类型相同,数据特征相似,有利于数据的高效处理;

(4)交易记录细节信息发生变化(比如增加新的交易明细属性)时,可以方便的对列式存储结构进行扩展。

(5)对区块中的交易记录数据进行列压缩处理后,可极大的减少数据冗余,节省系统资源。

可选的,所述第一处理模块32具体用于:

根据预设的列压缩格式,对所述区块数据中的交易记录行数据按照交易记录列进行列压缩处理,得到所述区块列压缩数据。

本发明实施例中,参见图4所示,所述区块链的数据处理装置还可包括:

创建模块34,用于创建区块识别信息,其中,所述区块识别信息中包括所述区块列压缩数据的列压缩格式信息;

添加模块35,用于将所述区块识别信息添加入所述区块列压缩数据的头部结构中。

对应的,所述写入模块33具体用于:

将添加所述区块识别信息后的区块列压缩数据写入所述区块链。

可选的,所述区块识别信息中还包括所述区块数据的大小信息,用于识别所述区块列压缩数据的真伪。

参见图5所示,本发明实施例还提供了一种区块链的数据处理装置,包括:

确定模块51,用于确定区块链中的待读取的区块列压缩数据;

第二处理模块52,用于按照交易记录列读取所述区块列压缩数据中的交易记录列数据并进行解压缩处理。

本发明实施例的区块链的数据处理装置,按照交易记录列读取区块列压缩数据中的交易记录列数据并进行解压缩处理,能够大量减少系统io操作,避免资源浪费。

可选的,所述第二处理模块52具体用于:

根据预设的列压缩格式,按照交易记录列读取所述区块列压缩数据中对应的交易记录列数据并进行解压缩处理。

本发明实施例中,参见图6所示,所述区块链的数据处理装置还可包括:

读取模块53,用于读取所述区块列压缩数据的头部结构中的区块识别信息,其中,所述区块识别信息中包括所述区块列压缩数据的列压缩格式信息。

对应的,所述第二处理模块53具体用于:

根据所述列压缩格式信息,按照交易记录列读取所述区块列压缩数据中对应的交易记录列数据并进行解压缩处理。

此外,本发明实施例还提供了一种终端设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述计算机程序被所述处理器执行时可实现上述区块链的数据处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

具体的,参见7所示,本发明实施例还提供了一种终端设备,所述终端设备包括总线71、收发机72、天线73、总线接口74、处理器75和存储器76。

在本发明实施例中,所述终端设备还包括:存储在存储器76上并可在处理器75上运行的计算机程序,可选的,所述计算机程序被处理器75执行时可实现如下步骤:

获取待写入区块链的区块数据;

对所述区块数据中的交易记录行数据按照交易记录列进行列压缩处理,得到区块列压缩数据;

将所述区块列压缩数据写入所述区块链。

可选的,所述计算机程序被处理器75执行时还可实现如下步骤:

确定区块链中的待读取的区块列压缩数据;

按照交易记录列读取所述区块列压缩数据中的交易记录列数据并进行解压缩处理。

在图7中,总线架构(用总线71来代表),总线71可以包括任意数量的互联的总线和桥,总线71将包括由处理器75代表的一个或多个处理器和存储器76代表的存储器的各种电路链接在一起。总线71还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口74在总线71和收发机72之间提供接口。收发机72可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器75处理的数据通过天线73在无线介质上进行传输,进一步,天线73还接收数据并将数据传送给处理器75。

处理器75负责管理总线71和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器76可以被用于存储处理器75在执行操作时所使用的数据。

可选的,处理器75可以是cpu、asic、fpga或cpld。

本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述区块链的数据处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

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

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

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

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

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