基于数据压缩的区块链存储方法、装置、设备和存储介质制造方法及图纸

技术编号:21036542 阅读:24 留言:0更新日期:2019-05-04 06:13
本发明专利技术涉及区块链技术领域,尤其涉及一种基于数据压缩的区块链存储方法、装置、设备和存储介质。该方法包括:获取交易数据及对应的交易关键字,将交易数据进行压缩,得到压缩数据;将压缩数据和交易关键字一起生成数据区块,并将数据区块在区块链网络中进行上链;将已上链的数据区块广播至区块链网络中的其他节点;接收区块链网络中的其他节点广播的其他数据区块,将其他数据区块同步到自身节点中。本发明专利技术将压缩技术应用于区块链存储中,在对交易数据生成区块前,将交易数据进行压缩后,生成区块并上链,大大降低了数据的膨胀率,进而降低了存储成本。

Block Chain Storage Method, Device, Equipment and Storage Media Based on Data Compression

【技术实现步骤摘要】
基于数据压缩的区块链存储方法、装置、设备和存储介质
本专利技术涉及区块链
,尤其涉及一种基于数据压缩的区块链存储方法、装置、设备和存储介质。
技术介绍
区块链网络是一种基于区块链技术的系统,也被称为分布式账本技术,是一种互联网数据库技术。其特点是去中心化、公开透明,让每个用户均可参与维护数据库记录。区块链网络是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链网络主要包括网络层、共识层和数据层等。由于区块链网络的去中心化特定,其已被应用于各个领域。但是,区块链网络中,其底层的区块链技术存储分布式账本的数据膨胀率很高,最终存储到区块链分布式账本上的数据会根据交易的数据本身越大,膨胀的越大,增加了存储成本,降低了节点之间数据同步效率。
技术实现思路
有鉴于此,有必要针对存储到区块链分布式账本上的数据膨胀率很高,增加了存储成本,降低了节点之间数据同步效率的问题,提供一种基于数据压缩的区块链存储方法、装置、设备和存储介质。一种基于数据压缩的区块链存储方法,包括:获取交易数据及对应的交易关键字,将所述交易数据进行压缩,得到压缩数据;将所述压缩数据和所述交易关键字一起生成数据区块,并将所述数据区块在区块链网络中进行上链;将已上链的所述数据区块广播至所述区块链网络中的其他节点;接收所述区块链网络中的其他节点广播的其他数据区块,将所述其他数据区块同步到自身节点中。在其中一个实施例中,所述获取交易数据及对应的交易关键字,将所述交易数据进行压缩,得到压缩数据,包括:通过预设的交易界面接收用户的上链请求,获取所述用户在所述交易界面输入的交易数据和交易关键字;调用预设的压缩脚本,对所述交易数据进行压缩,得到压缩数据。在其中一个实施例中,所述将所述压缩数据和所述交易关键字一起生成数据区块,并将所述数据区块在区块链网络中进行上链,包括:创建数据区块,所述数据区块中包含区块头和区块体,所述区块头中包含索引、前一区块的哈希值变量、当前区块的哈希值变量、时间戳变量,所述区块体中包含交易数据变量;将所述压缩数据通过哈希函数计算生成哈希值,将计算生成的哈希值赋值给所述当前区块的哈希值变量,将所述交易关键字赋值给所述索引,将当前时间赋值给所述时间戳变量,将所述压缩数据赋值给所述交易数据变量;从预设的区块链列表中获取链尾区块的哈希值,将所述链尾区块的哈希值赋值给所述前一区块的哈希值变量,生成一项数据区块;将计算生成的所述哈希值和所述索引添加到所述区块链列表中,将生成的所述数据区块定义为所述链尾区块;将所述数据区块进行存储,并将所述数据区块与所述索引进行映射。在其中一个实施例中,所述将已上链的所述数据区块广播至所述区块链网络中的其他节点,包括:启动共识orderer节点,通过所述orderer节点与多个对等网络peer节点建立连接,将所述数据区块广播至所述peer节点,并将所述数据区块存储在所述peer节点中。在其中一个实施例中,所述接收所述区块链网络中的其他节点广播的其他数据区块,将所述其他数据区块同步到自身节点中,包括:通过peer节点接收所述区块链网络中的其他节点广播的其他数据区块;判断所述其他数据区块是否存在于自身节点中,若不存在,则将所述其他数据区块同步到自身节点中,保持数据的一致性;若存在,则将所述其他数据区块继续广播至其他节点的peer节点。在其中一个实施例中,所述判断所述其他数据区块是否存在于自身节点中,若不存在,则将所述其他数据区块同步到自身节点中,保持数据的一致性,包括:读取所述其他数据区块中的前一区块的哈希值、当前区块的哈希值,与自身节点中的区块链列表进行比较,当所述区块链列表的链尾是前一区块的哈希值时,判断为不存在,则将当前区块的哈希值和索引添加入区块链列表中,将所述其他数据区块定义为所述链尾区块,将所述其他数据区块存储在自身节点中,并将所述其他数据区块与所述索引进行映射。在其中一个实施例中,还包括:接收用户发送的查询请求,所述查询请求中包含有查询字段;将所述查询字段与所述区块链列表中的索引进行匹配,若匹配,则获取所述索引对应的数据区块,从所述数据区块中读取所述压缩数据;调用预设的解压脚本,对所述压缩数据进行解压,得到交易数据;将所述交易数据进行展示,供用户查看。一种基于数据压缩的区块链存储装置,包括:压缩模块,设置为获取交易数据及对应的交易关键字,将所述交易数据进行压缩,得到压缩数据;生成数据区块模块,设置为将所述压缩数据和所述交易关键字一起生成数据区块,并将所述数据区块在区块链网络中进行上链;广播模块,设置为将已上链的所述数据区块广播至所述区块链网络中的其他节点;同步数据模块,设置为接收所述区块链网络中的其他节点广播的其他数据区块,将所述其他数据区块同步到自身节点中。一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行上述基于数据压缩的区块链存储方法的步骤。一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述基于数据压缩的区块链存储方法的步骤。上述基于数据压缩的区块链存储方法、装置、计算机设备和存储介质,包括获取交易数据及对应的交易关键字,将所述交易数据进行压缩,得到压缩数据;将所述压缩数据和所述交易关键字一起生成数据区块,并将所述数据区块在区块链网络中进行上链;将已上链的所述数据区块广播至所述区块链网络中的其他节点;接收所述区块链网络中的其他节点广播的其他数据区块,将所述其他数据区块同步到自身节点中。本专利技术将压缩技术应用于区块链存储中,在对交易数据生成区块前,将交易数据进行压缩后,生成区块并上链,大大降低了数据的膨胀率,进而降低了存储成本。由于压缩后的数据大小减少了,在进行数据同步时,也加快了区块链网络中各节点之间的数据同步效率。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。图1为本专利技术一个实施例中的基于数据压缩的区块链存储方法的流程图;图2为一个实施例中步骤S1的一种流程图;图3为一个实施例中步骤S2的一种流程图;图4为一个实施例中步骤S4的一种流程图;图5为本专利技术一个实施例中基于数据压缩的区块链存储装置的结构图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。本
技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本专利技术的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。图1为本专利技术一个实施例中的基于数据压缩的区块链存储方法的流程图,如图1所示,一种基于数据压缩的区块链存储方法,包括以下步骤:步骤S1,压缩交易数据:获取交易数据及对应的交易关键字,将交易数据进行压缩,得到压缩数据。本步骤对获取的交易数据进行压本文档来自技高网
...

【技术保护点】
1.一种基于数据压缩的区块链存储方法,其特征在于,包括:获取交易数据及对应的交易关键字,将所述交易数据进行压缩,得到压缩数据;将所述压缩数据和所述交易关键字一起生成数据区块,并将所述数据区块在区块链网络中进行上链;将已上链的所述数据区块广播至所述区块链网络中的其他节点;接收所述区块链网络中的其他节点广播的其他数据区块,将所述其他数据区块同步到自身节点中。

【技术特征摘要】
1.一种基于数据压缩的区块链存储方法,其特征在于,包括:获取交易数据及对应的交易关键字,将所述交易数据进行压缩,得到压缩数据;将所述压缩数据和所述交易关键字一起生成数据区块,并将所述数据区块在区块链网络中进行上链;将已上链的所述数据区块广播至所述区块链网络中的其他节点;接收所述区块链网络中的其他节点广播的其他数据区块,将所述其他数据区块同步到自身节点中。2.根据权利要求1所述的基于数据压缩的区块链存储方法,其特征在于,所述获取交易数据及对应的交易关键字,将所述交易数据进行压缩,得到压缩数据,包括:通过预设的交易界面接收用户的上链请求,获取所述用户在所述交易界面输入的交易数据和交易关键字;调用预设的压缩脚本,对所述交易数据进行压缩,得到压缩数据。3.根据权利要求1所述的基于数据压缩的区块链存储方法,其特征在于,所述将所述压缩数据和所述交易关键字一起生成数据区块,并将所述数据区块在区块链网络中进行上链,包括:创建数据区块,所述数据区块中包含区块头和区块体,所述区块头中包含索引、前一区块的哈希值变量、当前区块的哈希值变量、时间戳变量,所述区块体中包含交易数据变量;将所述压缩数据通过哈希函数计算生成哈希值,将计算生成的哈希值赋值给所述当前区块的哈希值变量,将所述交易关键字赋值给所述索引,将当前时间赋值给所述时间戳变量,将所述压缩数据赋值给所述交易数据变量;从预设的区块链列表中获取链尾区块的哈希值,将所述链尾区块的哈希值赋值给所述前一区块的哈希值变量,生成一项数据区块;将计算生成的所述哈希值和所述索引添加到所述区块链列表中,将生成的所述数据区块定义为所述链尾区块;将所述数据区块进行存储,并将所述数据区块与所述索引进行映射。4.根据权利要求1所述的基于数据压缩的区块链存储方法,其特征在于,所述将已上链的所述数据区块广播至所述区块链网络中的其他节点,包括:启动共识orderer节点,通过所述orderer节点与多个对等网络peer节点建立连接,将所述数据区块广播至所述peer节点,并将所述数据区块存储在所述peer节点中。5.根据权利要求1所述的基于数据压缩的区块链存储方法,其特征在于,所述接收所述区块链网络中的其他节点广播的其他数据区块,将所述其他数据区块同步到自身节点中,...

【专利技术属性】
技术研发人员:杨天鹏
申请(专利权)人:平安科技深圳有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1