CN109711839A - 基于数据压缩的区块链存储方法、装置、设备和存储介质 - Google Patents
基于数据压缩的区块链存储方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN109711839A CN109711839A CN201811522697.3A CN201811522697A CN109711839A CN 109711839 A CN109711839 A CN 109711839A CN 201811522697 A CN201811522697 A CN 201811522697A CN 109711839 A CN109711839 A CN 109711839A
- Authority
- CN
- China
- Prior art keywords
- data
- block
- transaction
- block chain
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000013144 data compression Methods 0.000 title claims abstract description 28
- 230000001360 synchronised effect Effects 0.000 claims abstract description 16
- 230000006835 compression Effects 0.000 claims description 19
- 238000007906 compression Methods 0.000 claims description 18
- 230000006870 function Effects 0.000 claims description 6
- 230000006837 decompression Effects 0.000 claims description 5
- 238000005516 engineering process Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012917 library technology Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及区块链技术领域,尤其涉及一种基于数据压缩的区块链存储方法、装置、设备和存储介质。该方法包括:获取交易数据及对应的交易关键字,将交易数据进行压缩,得到压缩数据;将压缩数据和交易关键字一起生成数据区块,并将数据区块在区块链网络中进行上链;将已上链的数据区块广播至区块链网络中的其他节点;接收区块链网络中的其他节点广播的其他数据区块,将其他数据区块同步到自身节点中。本发明将压缩技术应用于区块链存储中,在对交易数据生成区块前,将交易数据进行压缩后,生成区块并上链,大大降低了数据的膨胀率,进而降低了存储成本。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种基于数据压缩的区块链存储方法、装置、设备和存储介质。
背景技术
区块链网络是一种基于区块链技术的系统,也被称为分布式账本技术,是一种互联网数据库技术。其特点是去中心化、公开透明,让每个用户均可参与维护数据库记录。区块链网络是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链网络主要包括网络层、共识层和数据层等。由于区块链网络的去中心化特定,其已被应用于各个领域。
但是,区块链网络中,其底层的区块链技术存储分布式账本的数据膨胀率很高,最终存储到区块链分布式账本上的数据会根据交易的数据本身越大,膨胀的越大,增加了存储成本,降低了节点之间数据同步效率。
发明内容
有鉴于此,有必要针对存储到区块链分布式账本上的数据膨胀率很高,增加了存储成本,降低了节点之间数据同步效率的问题,提供一种基于数据压缩的区块链存储方法、装置、设备和存储介质。
一种基于数据压缩的区块链存储方法,包括:
获取交易数据及对应的交易关键字,将所述交易数据进行压缩,得到压缩数据;
将所述压缩数据和所述交易关键字一起生成数据区块,并将所述数据区块在区块链网络中进行上链;
将已上链的所述数据区块广播至所述区块链网络中的其他节点;
接收所述区块链网络中的其他节点广播的其他数据区块,将所述其他数据区块同步到自身节点中。
在其中一个实施例中,所述获取交易数据及对应的交易关键字,将所述交易数据进行压缩,得到压缩数据,包括:
通过预设的交易界面接收用户的上链请求,获取所述用户在所述交易界面输入的交易数据和交易关键字;
调用预设的压缩脚本,对所述交易数据进行压缩,得到压缩数据。
在其中一个实施例中,所述将所述压缩数据和所述交易关键字一起生成数据区块,并将所述数据区块在区块链网络中进行上链,包括:
创建数据区块,所述数据区块中包含区块头和区块体,所述区块头中包含索引、前一区块的哈希值变量、当前区块的哈希值变量、时间戳变量,所述区块体中包含交易数据变量;
将所述压缩数据通过哈希函数计算生成哈希值,将计算生成的哈希值赋值给所述当前区块的哈希值变量,将所述交易关键字赋值给所述索引,将当前时间赋值给所述时间戳变量,将所述压缩数据赋值给所述交易数据变量;
从预设的区块链列表中获取链尾区块的哈希值,将所述链尾区块的哈希值赋值给所述前一区块的哈希值变量,生成一项数据区块;
将计算生成的所述哈希值和所述索引添加到所述区块链列表中,将生成的所述数据区块定义为所述链尾区块;
将所述数据区块进行存储,并将所述数据区块与所述索引进行映射。
在其中一个实施例中,所述将已上链的所述数据区块广播至所述区块链网络中的其他节点,包括:
启动共识orderer节点,通过所述orderer节点与多个对等网络peer节点建立连接,将所述数据区块广播至所述peer节点,并将所述数据区块存储在所述peer节点中。
在其中一个实施例中,所述接收所述区块链网络中的其他节点广播的其他数据区块,将所述其他数据区块同步到自身节点中,包括:
通过peer节点接收所述区块链网络中的其他节点广播的其他数据区块;
判断所述其他数据区块是否存在于自身节点中,若不存在,则将所述其他数据区块同步到自身节点中,保持数据的一致性;
若存在,则将所述其他数据区块继续广播至其他节点的peer节点。
在其中一个实施例中,所述判断所述其他数据区块是否存在于自身节点中,若不存在,则将所述其他数据区块同步到自身节点中,保持数据的一致性,包括:
读取所述其他数据区块中的前一区块的哈希值、当前区块的哈希值,与自身节点中的区块链列表进行比较,当所述区块链列表的链尾是前一区块的哈希值时,判断为不存在,则将当前区块的哈希值和索引添加入区块链列表中,将所述其他数据区块定义为所述链尾区块,将所述其他数据区块存储在自身节点中,并将所述其他数据区块与所述索引进行映射。
在其中一个实施例中,还包括:
接收用户发送的查询请求,所述查询请求中包含有查询字段;
将所述查询字段与所述区块链列表中的索引进行匹配,若匹配,则获取所述索引对应的数据区块,从所述数据区块中读取所述压缩数据;
调用预设的解压脚本,对所述压缩数据进行解压,得到交易数据;
将所述交易数据进行展示,供用户查看。
一种基于数据压缩的区块链存储装置,包括:
压缩模块,设置为获取交易数据及对应的交易关键字,将所述交易数据进行压缩,得到压缩数据;
生成数据区块模块,设置为将所述压缩数据和所述交易关键字一起生成数据区块,并将所述数据区块在区块链网络中进行上链;
广播模块,设置为将已上链的所述数据区块广播至所述区块链网络中的其他节点;
同步数据模块,设置为接收所述区块链网络中的其他节点广播的其他数据区块,将所述其他数据区块同步到自身节点中。
一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行上述基于数据压缩的区块链存储方法的步骤。
一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述基于数据压缩的区块链存储方法的步骤。
上述基于数据压缩的区块链存储方法、装置、计算机设备和存储介质,包括获取交易数据及对应的交易关键字,将所述交易数据进行压缩,得到压缩数据;将所述压缩数据和所述交易关键字一起生成数据区块,并将所述数据区块在区块链网络中进行上链;将已上链的所述数据区块广播至所述区块链网络中的其他节点;接收所述区块链网络中的其他节点广播的其他数据区块,将所述其他数据区块同步到自身节点中。本发明将压缩技术应用于区块链存储中,在对交易数据生成区块前,将交易数据进行压缩后,生成区块并上链,大大降低了数据的膨胀率,进而降低了存储成本。由于压缩后的数据大小减少了,在进行数据同步时,也加快了区块链网络中各节点之间的数据同步效率。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。
图1为本发明一个实施例中的基于数据压缩的区块链存储方法的流程图;
图2为一个实施例中步骤S1的一种流程图;
图3为一个实施例中步骤S2的一种流程图;
图4为一个实施例中步骤S4的一种流程图;
图5为本发明一个实施例中基于数据压缩的区块链存储装置的结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。
图1为本发明一个实施例中的基于数据压缩的区块链存储方法的流程图,如图1所示,一种基于数据压缩的区块链存储方法,包括以下步骤:
步骤S1,压缩交易数据:获取交易数据及对应的交易关键字,将交易数据进行压缩,得到压缩数据。
本步骤对获取的交易数据进行压缩,压缩后能减少交易数据的大小,不仅可以减少存储空间,而且在通过网络传输文件时,可以减少传输的时间。由于本步骤需要将交易数据进行压缩,因此本步骤不仅获取了交易数据,还获取交易数据对应的交易关键字,以便于后续根据交易关键字查询对应的压缩数据。
在一个实施例中,步骤S1,如图2所示,包括:
步骤S101,获取交易数据:通过预设的交易界面接收用户的上链请求,获取用户在交易界面输入的交易数据和交易关键字。
区块链网络是一种基于区块链技术的系统,也被称为分布式账本技术,是一种互联网数据库技术。其特点是去中心化、公开透明,让每个用户均可参与维护数据库记录。区块链网络是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链网络主要包括数据层、智能合约层等,其中,数据层封装了底层数据区块以及相关的数据加密和时间戳等基础数据和基本算法,而底层数据区块以链式结构呈现,即区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。
本步骤的主体可以是客户端节点,此客户端节点可以为多个,任一在区块链网络中注册的终端都可以设置为客户端节点。用户可以通过任一客户端节点的交易界面发送上链请求,并通过交易界面提供交易数据和交易关键字。节点通过交易界面获取交易数据和交易关键字。
步骤S102,压缩交易数据:调用预设的压缩脚本,对交易数据进行压缩,得到压缩数据。
本步骤在对交易数据进行压缩前,在区块链网络中的每个节点中预先封装压缩脚本,在压缩交易数据时,通过调用压缩脚本对交易数据进行压缩。压缩脚本可以是gzip的压缩代码。gzip是GNUzip(解压缩)的缩写,是一个GNU自由软件的文件压缩程序。gzip的压缩效率非常高,压缩比能达到1:3。
本实施例通过预设的交易界面接收用户输入的交易数据和交易关键字,通过压缩脚本对交易数据进行压缩,大大减少了区块链账本上存储的交易数据大小,降低了数据膨胀率,也降低了存储成本。
步骤S2,生成数据区块:将压缩数据和交易关键字一起生成数据区块,并将数据区块在区块链网络中进行上链。
本步骤将压缩后的压缩数据和交易关键字生成数据区块,便于区块链网络中的其他节点共享交易数据,实现多方节点共同参与,共同维护交易数据,且交易数据不可篡改、可追溯的目的。
在一个实施例中,步骤S2,如图3所示,包括:
步骤S201,创建数据区块:数据区块中包含区块头和区块体,区块头中包含索引、前一区块的哈希值变量、当前区块的哈希值变量、时间戳变量,区块体中包含交易数据变量。
在创建数据区块时,客户端节点通过预设的Blockchain类中的new_block方法进行创建。通过Blockchain类创建新的区块时,若客户端节点第一次创建区块,则还创建一个空的区块链列表,用于存储已上链的区块的信息。若客户端节点已含有区块链列表,则无需创建空的区块链列表。
步骤S202,赋值:将压缩数据通过哈希函数计算生成哈希值,将计算生成的哈希值赋值给当前区块的哈希值变量,将交易关键字赋值给索引,将当前时间赋值给时间戳变量,将压缩数据赋值给交易数据变量。
哈希函数基于哈希算法,是信息技术领域非常基础也非常重要的技术,它能将任意长度的二进制值(明文)映射为较短的固定长度的二进制值(hash值),并且不同的明文很难映射为相同的hash值。常用的哈希函数包括MD4(Message Digest消息摘要)、MD5(MD4的改进版)、SHA-1等。在采用哈希函数对压缩数据计算生成哈希值,保存数据的完整性。本步骤将当前时间赋值给时间戳变量,作为时间证据,确保交易数据的安全。本步骤还将交易关键字赋值给索引,作为后续通过交易关键字可以方便的查找对应的数据区块。
步骤S203,生成数据区块:从预设的区块链列表中获取链尾区块的哈希值,将链尾区块的哈希值赋值给前一区块的哈希值变量,生成一项数据区块。
由于区块链网络的特点,每个区块必须包含前一区块的哈希值,因此本步骤从自身节点的区块链列表中获取链尾区块的哈希值作为前一区块的哈希值。其中,链尾区块为最新添加入区块链网络中的区块。
在区块链网络中的任一节点都预设有区块链列表,且任一节点的区块链列表都应相同且数据同步,区块链列表可以如下表1所示:
索引 | 前一区块的哈希值 | 当前区块的哈希值 |
关键字1 | 哈希值X | 哈希值1 |
关键字2 | 哈希值1 | 哈希值2 |
表1
如上表1所示,本步骤中的链尾区块的哈希值即为哈希值2,将哈希值2赋值给前一区块的哈希值变量。
步骤S204,更新数据:将计算生成的哈希值和索引添加到区块链列表中,将生成的数据区块定义为链尾区块。
为了保证每次上链的区块中前一区块的哈希值都是最新添加入区块链网络中的区块,在对每个区块上链完成后,都将刚上链的数据区块对应的信息更新至区块链列表中。具体的,若步骤S202中计算生成的的哈希值为哈希值3,赋值给索引的交易关键字为关键字3,则将上表1进行更新后,如下表2所示:
索引 | 前一区块的哈希值 | 当前区块的哈希值 |
关键字1 | 哈希值X | 哈希值1 |
关键字2 | 哈希值1 | 哈希值2 |
关键字3 | 哈希值2 | 哈希值3 |
表2
步骤S205,存储数据区块:将数据区块进行存储,并将数据区块与索引进行映射。
本步骤将区块链列表作为索引表,将数据区块的存储位置与索引实现映射,当通过关键字对交易数据发起查询请求时,可以通过索引直接查询数据区块的存储位置,大大加快了交易数据的查询速度。
本实施例通过预设的Blockchain类中的new_block方法创建数据区块,并将数据区块进行上链,在上链完成后,还对区块链列表进行更新,保证了区块链网络中数据的完整性。本实施例还对数据区块的存储进行了索引,便于后续查询使用。
步骤S3,广播:将已上链的数据区块广播至区块链网络中的其他节点。
客户端节点在对新生成的数据区块上链完成后,还将新生成的数据区块广播给区块链网络中的其他节点,供其他节点同步交易数据:
在一个实施例中,步骤S3,包括:启动共识orderer节点,通过orderer节点与多个对等网络peer节点建立连接,将数据区块广播至peer节点,并将数据区块存储在peer节点中。
在区块链网络中通常包含有orderer节点和peer节点,orderer节点提供了一种多通道服务机制,提供了包含交易数据的消息广播服务。客户端节点和peer节点可以连接到一个给定的共享通信通道,客户端节点可以通过此通道向所有的节点广播消息,并向连接到此通道的所有节点投递消息。区块链网络中的其他节点可以通过peer节点接收包含交易数据的数据区块。orderer节点在进行启动时,通过orderer节点中的main()方法实现,进一步调用orderer/common/server包中的Main()方法,对gRPC(开源的PRC框架)服务结构进行初始化,orderer节点通过gRPC服务结构与peer节点建立连接。
本实施例通过orderer节点广播和共享数据区块,基于orderer节点的多通道特点,将客户端节点和peer节点建立独立的共享通信通道,实现了交易数据的隔离和保密。
步骤S4,同步数据:接收区块链网络中的其他节点广播的其他数据区块,将其他数据区块同步到自身节点中。
在一个实施例中,步骤S4,如图4所示,包括:
步骤S401,接收广播消息:通过peer节点接收区块链网络中的其他节点广播的其他数据区块。
在接收时,可能存在两种通信方式,一种是客户端节点通过peer节点的peer nodestart命令启动gossip服务,采用gossip服务连接区块链网络中的orderer结点,并启动循环接收的线程,进而接收其他节点广播的其他数据区块。另一种是客户端节点通过TCP协议与其他peer节点建立连接,接收其他peer节点广播的数据区块。
步骤S402,判断:判断其他数据区块是否存在于自身节点中,若不存在,则将其他数据区块同步到自身节点中,保持数据的一致性。
在判断时,读取其他数据区块中的前一区块的哈希值、当前区块的哈希值,与自身节点中的区块链列表进行比较,当区块链列表的链尾是前一区块的哈希值时,判断为不存在,则将当前区块的哈希值和索引添加入区块链列表中,将其他数据区块定义为链尾区块,将其他数据区块存储在自身节点中,并将其他数据区块与索引进行映射。
步骤S403,继续广播:若存在,则将其他数据区块继续广播至其他节点的peer节点。
在对其他节点进行广播时,通过peer节点之间进行通信,采用基于TCP协议的应用层协议建立连接和通信,将接收到的数据区块广播给与自身节点连接的其他节点。
本实施例不仅将已上链的数据区块广播至区块链网络中的其他节点,还接收来自其他节点广播的其他数据区块,在接收数据时,根据不同的广播来源,采用过不同的接收方式,实现区块链网络中数据的实时同步目的。
如下表3所示,是采用本实施例基于数据压缩的区块链存储方法对交易数据进行压缩后的压缩数据、与压缩前的交易数据大小对比:
表3
由上表3可知,当交易数据大小为0.8KB时,10W条交易数据大小约为79M,真正区块链存储的数据时的数据大小为690M,这中间的数据差即是数据膨胀率。通过上表3也可知,当原交易数据的越大,压缩率就越高,所需的存储就越少。而区块链网络中具有海量的交易数据,因此极其适用于区块链网络中。
在一个实施例中,还包括步骤S5,包括:接收用户发送的查询请求,查询请求中包含有查询字段;将查询字段与区块链列表中的索引进行匹配,若匹配,则获取索引对应的数据区块,从数据区块中读取压缩数据;调用预设的解压脚本,对压缩数据进行解压,得到交易数据;将交易数据进行展示,供用户查看。
在客户端节点上预设有查询界面,在查询界面上设置有输入框,用户在输入框输入查询字段,客户端节点可以通过查询界面接收用户发送的查询请求,并获取查询字段,查询字段用于查询是否含有对应已上链的数据区块。在对交易数据进行展示时,可以通过预设的查询界面进行展示。
在查询时,通过与节点自身保存的区块链列表中的索引进行匹配,若某一索引与查询字段相同,则定义为匹配。在匹配时,可以采用精确匹配或模糊匹配的方式,将查询字段与索引进行匹配。精确匹配是指只有整个查询字段与索引相同才匹配。在本实施例中,当查询字段和索引完全一致,才认为匹配。模糊匹配是指无论字段的位置怎样只要出现该字段即可。在本实施例中,将查询字段中的内容拆分为单个字符的单元概念,并进行逻辑与运算,根据预设的逻辑与运算认为匹配成功时,获取索引对应的数据区块。逻辑与运算可以根据实际实施时的具体情况,运用“and”、“or”、“not”关系。本实施例可以采用精确匹配和模糊匹配相结合的方式,以满足不同用户的查询习惯。
在对压缩数据进行解压前,在区块链网络中的每个节点中预先封装解压脚本,解压脚本应与步骤S1中的压缩脚本相对应,解压脚本应能解压压缩脚本压缩的压缩数据。
本实施例在区块链网络中的所有节点均设有查询界面和解压脚本,用户可以通过任一节点,输入查询字段,就可以查看对应的交易数据。
本发明实施例基于数据压缩的区块链存储方法,通过对交易数据进行压缩后,降低数据膨胀率,减少了数据存储的压力。由于数据大小减少了,在相同带宽速度下,数据量越小,数据同步的速度越快,因此也加快了区块链网络中个节点之间的数据同步效率。
在一个实施例中,提出了一种基于数据压缩的区块链存储装置,如图5所示,包括如下模块:
压缩模块,设置为获取交易数据及对应的交易关键字,将所述交易数据进行压缩,得到压缩数据;
生成数据区块模块,设置为将所述压缩数据和所述交易关键字一起生成数据区块,并将所述数据区块在区块链网络中进行上链;
广播模块,设置为将已上链的所述数据区块广播至所述区块链网络中的其他节点;
同步数据模块,设置为接收所述区块链网络中的其他节点广播的其他数据区块,将所述其他数据区块同步到自身节点中。
在一个实施例中,提出了一种计算机设备,包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行计算机可读指令时实现上述各实施例的基于数据压缩的区块链存储方法中的步骤。
在一个实施例中,提出了一种存储有计算机可读指令的存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述各实施例的基于数据压缩的区块链存储方法中的步骤。其中,存储介质可以为非易失性存储介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁盘或光盘等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明一些示例性实施例,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于数据压缩的区块链存储方法,其特征在于,包括:
获取交易数据及对应的交易关键字,将所述交易数据进行压缩,得到压缩数据;
将所述压缩数据和所述交易关键字一起生成数据区块,并将所述数据区块在区块链网络中进行上链;
将已上链的所述数据区块广播至所述区块链网络中的其他节点;
接收所述区块链网络中的其他节点广播的其他数据区块,将所述其他数据区块同步到自身节点中。
2.根据权利要求1所述的基于数据压缩的区块链存储方法,其特征在于,所述获取交易数据及对应的交易关键字,将所述交易数据进行压缩,得到压缩数据,包括:
通过预设的交易界面接收用户的上链请求,获取所述用户在所述交易界面输入的交易数据和交易关键字;
调用预设的压缩脚本,对所述交易数据进行压缩,得到压缩数据。
3.根据权利要求1所述的基于数据压缩的区块链存储方法,其特征在于,所述将所述压缩数据和所述交易关键字一起生成数据区块,并将所述数据区块在区块链网络中进行上链,包括:
创建数据区块,所述数据区块中包含区块头和区块体,所述区块头中包含索引、前一区块的哈希值变量、当前区块的哈希值变量、时间戳变量,所述区块体中包含交易数据变量;
将所述压缩数据通过哈希函数计算生成哈希值,将计算生成的哈希值赋值给所述当前区块的哈希值变量,将所述交易关键字赋值给所述索引,将当前时间赋值给所述时间戳变量,将所述压缩数据赋值给所述交易数据变量;
从预设的区块链列表中获取链尾区块的哈希值,将所述链尾区块的哈希值赋值给所述前一区块的哈希值变量,生成一项数据区块;
将计算生成的所述哈希值和所述索引添加到所述区块链列表中,将生成的所述数据区块定义为所述链尾区块;
将所述数据区块进行存储,并将所述数据区块与所述索引进行映射。
4.根据权利要求1所述的基于数据压缩的区块链存储方法,其特征在于,所述将已上链的所述数据区块广播至所述区块链网络中的其他节点,包括:
启动共识orderer节点,通过所述orderer节点与多个对等网络peer节点建立连接,将所述数据区块广播至所述peer节点,并将所述数据区块存储在所述peer节点中。
5.根据权利要求1所述的基于数据压缩的区块链存储方法,其特征在于,所述接收所述区块链网络中的其他节点广播的其他数据区块,将所述其他数据区块同步到自身节点中,包括:
通过peer节点接收所述区块链网络中的其他节点广播的其他数据区块;
判断所述其他数据区块是否存在于自身节点中,若不存在,则将所述其他数据区块同步到自身节点中,保持数据的一致性;
若存在,则将所述其他数据区块继续广播至其他节点的peer节点。
6.根据权利要求5所述的基于数据压缩的区块链存储方法,其特征在于,所述判断所述其他数据区块是否存在于自身节点中,若不存在,则将所述其他数据区块同步到自身节点中,保持数据的一致性,包括:
读取所述其他数据区块中的前一区块的哈希值、当前区块的哈希值,与自身节点中的区块链列表进行比较,当所述区块链列表的链尾是前一区块的哈希值时,判断为不存在,则将当前区块的哈希值和索引添加入区块链列表中,将所述其他数据区块定义为所述链尾区块,将所述其他数据区块存储在自身节点中,并将所述其他数据区块与所述索引进行映射。
7.根据权利要求1所述的基于数据压缩的区块链存储方法,其特征在于,还包括:
接收用户发送的查询请求,所述查询请求中包含有查询字段;
将所述查询字段与所述区块链列表中的索引进行匹配,若匹配,则获取所述索引对应的数据区块,从所述数据区块中读取所述压缩数据;
调用预设的解压脚本,对所述压缩数据进行解压,得到交易数据;
将所述交易数据进行展示,供用户查看。
8.一种基于数据压缩的区块链存储装置,其特征在于,包括:
压缩模块,设置为获取交易数据及对应的交易关键字,将所述交易数据进行压缩,得到压缩数据;
生成数据区块模块,设置为将所述压缩数据和所述交易关键字一起生成数据区块,并将所述数据区块在区块链网络中进行上链;
广播模块,设置为将已上链的所述数据区块广播至所述区块链网络中的其他节点;
同步数据模块,设置为接收所述区块链网络中的其他节点广播的其他数据区块,将所述其他数据区块同步到自身节点中。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项权利要求所述基于数据压缩的区块链存储方法的步骤。
10.一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至7中任一项权利要求所述基于数据压缩的区块链存储方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811522697.3A CN109711839A (zh) | 2018-12-13 | 2018-12-13 | 基于数据压缩的区块链存储方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811522697.3A CN109711839A (zh) | 2018-12-13 | 2018-12-13 | 基于数据压缩的区块链存储方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109711839A true CN109711839A (zh) | 2019-05-03 |
Family
ID=66256270
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811522697.3A Pending CN109711839A (zh) | 2018-12-13 | 2018-12-13 | 基于数据压缩的区块链存储方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109711839A (zh) |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110147202A (zh) * | 2019-05-15 | 2019-08-20 | 杭州云象网络技术有限公司 | 一种减少区块链智能合约代码存储体积的方法 |
CN110288477A (zh) * | 2019-06-26 | 2019-09-27 | 深圳市元征科技股份有限公司 | 一种区块链交易数据处理方法及相关设备 |
CN110442456A (zh) * | 2019-08-06 | 2019-11-12 | 上海浦东发展银行股份有限公司信用卡中心 | 一种基于Hyperledger-fabric的多通道的负载均衡方法 |
CN110457929A (zh) * | 2019-08-16 | 2019-11-15 | 重庆华医康道科技有限公司 | 异构his大数据实时加解密压缩上链的共享方法及系统 |
CN110543510A (zh) * | 2019-09-05 | 2019-12-06 | 腾讯科技(深圳)有限公司 | 票据数据处理方法、装置、存储介质和计算机设备 |
CN110753103A (zh) * | 2019-10-16 | 2020-02-04 | 长春银彩通信息科技有限公司 | 一种数据分布式高效封存的方法以及系统 |
CN111031041A (zh) * | 2019-12-13 | 2020-04-17 | 山东众阳健康科技集团有限公司 | 一种基于区块链的数据上链存储方法、系统、介质及设备 |
CN111241205A (zh) * | 2020-04-26 | 2020-06-05 | 北京启迪区块链科技发展有限公司 | 基于联盟区块链底层可信数据同步方法、网络结构及服务器 |
CN111262921A (zh) * | 2020-01-13 | 2020-06-09 | 北京百度网讯科技有限公司 | 基于区块链网络的应用请求处理方法、装置、设备和介质 |
CN111404958A (zh) * | 2020-03-26 | 2020-07-10 | 国金公用通链(海南)信息科技有限公司 | 一种通用区块链区块压缩技术 |
CN111459895A (zh) * | 2020-03-31 | 2020-07-28 | 杭州云象网络技术有限公司 | 一种区块链数据分级压缩与存储方法及系统 |
CN111708825A (zh) * | 2020-06-11 | 2020-09-25 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
CN111858520A (zh) * | 2020-07-21 | 2020-10-30 | 杭州溪塔科技有限公司 | 一种区块链节点数据分离存储的方法和装置 |
CN111901350A (zh) * | 2020-07-30 | 2020-11-06 | 平安科技(深圳)有限公司 | 区块链系统、数据处理方法、计算机设备及存储介质 |
CN111984612A (zh) * | 2020-08-04 | 2020-11-24 | 中国人民银行数字货币研究所 | 一种共享文件的方法、装置和系统 |
CN112241005A (zh) * | 2019-07-19 | 2021-01-19 | 杭州海康威视数字技术股份有限公司 | 雷达探测数据的压缩方法、装置及存储介质 |
CN112287391A (zh) * | 2020-11-18 | 2021-01-29 | 广东新禾道信息科技有限公司 | 基于区块链的数据安全存储方法及系统 |
CN112637239A (zh) * | 2020-12-31 | 2021-04-09 | 河南信大网御科技有限公司 | 一种快速裁决系统及方法 |
CN113064901A (zh) * | 2021-04-06 | 2021-07-02 | 北京瑞卓喜投科技发展有限公司 | 在链上合约中形成数据微型索引的方法、装置和电子设备 |
CN113282662A (zh) * | 2021-06-03 | 2021-08-20 | 广东辰宜信息科技有限公司 | 区块信息处理方法、装置、设备及介质 |
CN113535855A (zh) * | 2021-07-28 | 2021-10-22 | 卫宁健康科技集团股份有限公司 | 基于区块链的主数据管理方法、系统、计算机设备及介质 |
CN113590636A (zh) * | 2021-09-29 | 2021-11-02 | 昆山炫生活信息技术股份有限公司 | 一种基于区块链的在线交易系统和方法 |
WO2021233049A1 (zh) * | 2020-05-20 | 2021-11-25 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
CN114070887A (zh) * | 2021-11-17 | 2022-02-18 | 安徽中科晶格技术有限公司 | 一种基于图式结构的游走压缩系统及压缩方法 |
WO2022148390A1 (zh) * | 2020-06-05 | 2022-07-14 | 支付宝(杭州)信息技术有限公司 | 一种在区块链中部署、更新、调用智能合约的方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080059507A1 (en) * | 2006-08-29 | 2008-03-06 | Microsoft Corporation | Changing number of machines running distributed hyperlink database |
CN105741095A (zh) * | 2016-01-29 | 2016-07-06 | 彭军红 | 一种区块链动态压缩存取方法 |
JP2017204707A (ja) * | 2016-05-10 | 2017-11-16 | 日本電信電話株式会社 | コンテンツ流通システム、コンテンツ流通方法、コンテンツ生成装置及びコンテンツ生成プログラム |
CN107728941A (zh) * | 2017-09-28 | 2018-02-23 | 中国银行股份有限公司 | 一种区块链数据压缩方法及系统 |
CN108563796A (zh) * | 2018-05-04 | 2018-09-21 | 蔷薇信息技术有限公司 | 区块链的数据压缩处理方法、装置及电子设备 |
WO2018194379A1 (ko) * | 2017-04-18 | 2018-10-25 | 주식회사 코인플러그 | 블록체인 및 이와 연동되는 머클 트리 구조 기반의 토큰 아이디를 이용하여 카드 사용을 승인하는 방법 및 이를 이용한 서버 |
-
2018
- 2018-12-13 CN CN201811522697.3A patent/CN109711839A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080059507A1 (en) * | 2006-08-29 | 2008-03-06 | Microsoft Corporation | Changing number of machines running distributed hyperlink database |
CN105741095A (zh) * | 2016-01-29 | 2016-07-06 | 彭军红 | 一种区块链动态压缩存取方法 |
JP2017204707A (ja) * | 2016-05-10 | 2017-11-16 | 日本電信電話株式会社 | コンテンツ流通システム、コンテンツ流通方法、コンテンツ生成装置及びコンテンツ生成プログラム |
WO2018194379A1 (ko) * | 2017-04-18 | 2018-10-25 | 주식회사 코인플러그 | 블록체인 및 이와 연동되는 머클 트리 구조 기반의 토큰 아이디를 이용하여 카드 사용을 승인하는 방법 및 이를 이용한 서버 |
CN107728941A (zh) * | 2017-09-28 | 2018-02-23 | 中国银行股份有限公司 | 一种区块链数据压缩方法及系统 |
CN108563796A (zh) * | 2018-05-04 | 2018-09-21 | 蔷薇信息技术有限公司 | 区块链的数据压缩处理方法、装置及电子设备 |
Non-Patent Citations (1)
Title |
---|
姚前: "《数字货币初探》", vol. 978, 中国金融出版社, pages: 131 - 133 * |
Cited By (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110147202A (zh) * | 2019-05-15 | 2019-08-20 | 杭州云象网络技术有限公司 | 一种减少区块链智能合约代码存储体积的方法 |
CN110288477A (zh) * | 2019-06-26 | 2019-09-27 | 深圳市元征科技股份有限公司 | 一种区块链交易数据处理方法及相关设备 |
CN112241005A (zh) * | 2019-07-19 | 2021-01-19 | 杭州海康威视数字技术股份有限公司 | 雷达探测数据的压缩方法、装置及存储介质 |
CN110442456A (zh) * | 2019-08-06 | 2019-11-12 | 上海浦东发展银行股份有限公司信用卡中心 | 一种基于Hyperledger-fabric的多通道的负载均衡方法 |
CN110442456B (zh) * | 2019-08-06 | 2023-02-28 | 上海浦东发展银行股份有限公司信用卡中心 | 一种基于Hyperledger-fabric的多通道的负载均衡方法 |
CN110457929B (zh) * | 2019-08-16 | 2021-01-19 | 重庆华医康道科技有限公司 | 异构his大数据实时加解密压缩上链的共享方法及系统 |
CN110457929A (zh) * | 2019-08-16 | 2019-11-15 | 重庆华医康道科技有限公司 | 异构his大数据实时加解密压缩上链的共享方法及系统 |
CN110543510A (zh) * | 2019-09-05 | 2019-12-06 | 腾讯科技(深圳)有限公司 | 票据数据处理方法、装置、存储介质和计算机设备 |
CN110543510B (zh) * | 2019-09-05 | 2024-04-09 | 腾讯科技(深圳)有限公司 | 票据数据处理方法、装置、存储介质和计算机设备 |
CN110753103A (zh) * | 2019-10-16 | 2020-02-04 | 长春银彩通信息科技有限公司 | 一种数据分布式高效封存的方法以及系统 |
CN111031041A (zh) * | 2019-12-13 | 2020-04-17 | 山东众阳健康科技集团有限公司 | 一种基于区块链的数据上链存储方法、系统、介质及设备 |
CN111262921A (zh) * | 2020-01-13 | 2020-06-09 | 北京百度网讯科技有限公司 | 基于区块链网络的应用请求处理方法、装置、设备和介质 |
CN111404958A (zh) * | 2020-03-26 | 2020-07-10 | 国金公用通链(海南)信息科技有限公司 | 一种通用区块链区块压缩技术 |
CN111459895A (zh) * | 2020-03-31 | 2020-07-28 | 杭州云象网络技术有限公司 | 一种区块链数据分级压缩与存储方法及系统 |
CN111459895B (zh) * | 2020-03-31 | 2023-09-29 | 杭州云象网络技术有限公司 | 一种区块链数据分级压缩与存储方法及系统 |
CN111241205A (zh) * | 2020-04-26 | 2020-06-05 | 北京启迪区块链科技发展有限公司 | 基于联盟区块链底层可信数据同步方法、网络结构及服务器 |
CN111241205B (zh) * | 2020-04-26 | 2021-03-09 | 北京启迪区块链科技发展有限公司 | 基于联盟区块链底层可信数据同步方法、网络结构及服务器 |
WO2021233049A1 (zh) * | 2020-05-20 | 2021-11-25 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
WO2022148390A1 (zh) * | 2020-06-05 | 2022-07-14 | 支付宝(杭州)信息技术有限公司 | 一种在区块链中部署、更新、调用智能合约的方法 |
CN111708825A (zh) * | 2020-06-11 | 2020-09-25 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
CN111858520B (zh) * | 2020-07-21 | 2024-03-22 | 杭州溪塔科技有限公司 | 一种区块链节点数据分离存储的方法和装置 |
CN111858520A (zh) * | 2020-07-21 | 2020-10-30 | 杭州溪塔科技有限公司 | 一种区块链节点数据分离存储的方法和装置 |
CN111901350A (zh) * | 2020-07-30 | 2020-11-06 | 平安科技(深圳)有限公司 | 区块链系统、数据处理方法、计算机设备及存储介质 |
CN111984612B (zh) * | 2020-08-04 | 2024-03-22 | 中国人民银行数字货币研究所 | 一种共享文件的方法、装置和系统 |
CN111984612A (zh) * | 2020-08-04 | 2020-11-24 | 中国人民银行数字货币研究所 | 一种共享文件的方法、装置和系统 |
CN112287391A (zh) * | 2020-11-18 | 2021-01-29 | 广东新禾道信息科技有限公司 | 基于区块链的数据安全存储方法及系统 |
CN112637239A (zh) * | 2020-12-31 | 2021-04-09 | 河南信大网御科技有限公司 | 一种快速裁决系统及方法 |
CN113064901A (zh) * | 2021-04-06 | 2021-07-02 | 北京瑞卓喜投科技发展有限公司 | 在链上合约中形成数据微型索引的方法、装置和电子设备 |
CN113282662B (zh) * | 2021-06-03 | 2023-11-03 | 广东辰宜信息科技有限公司 | 区块信息处理方法、装置、设备及介质 |
CN113282662A (zh) * | 2021-06-03 | 2021-08-20 | 广东辰宜信息科技有限公司 | 区块信息处理方法、装置、设备及介质 |
CN113535855A (zh) * | 2021-07-28 | 2021-10-22 | 卫宁健康科技集团股份有限公司 | 基于区块链的主数据管理方法、系统、计算机设备及介质 |
CN113535855B (zh) * | 2021-07-28 | 2024-01-26 | 卫宁健康科技集团股份有限公司 | 基于区块链的主数据管理方法、系统、计算机设备及介质 |
CN113590636A (zh) * | 2021-09-29 | 2021-11-02 | 昆山炫生活信息技术股份有限公司 | 一种基于区块链的在线交易系统和方法 |
CN114070887A (zh) * | 2021-11-17 | 2022-02-18 | 安徽中科晶格技术有限公司 | 一种基于图式结构的游走压缩系统及压缩方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109711839A (zh) | 基于数据压缩的区块链存储方法、装置、设备和存储介质 | |
CN109379397B (zh) | 基于区块链的交易共识处理方法及装置、电子设备 | |
CN109587253B (zh) | 一种基于区块链对文件实现分布式存储的方法 | |
CN107332876B (zh) | 区块链状态的同步方法及装置 | |
CN106991607B (zh) | 一种基于区块链账户模型的无序交易控制方法 | |
US6009176A (en) | How to sign digital streams | |
CN111625593A (zh) | 基于区块链的数据处理方法、装置、计算机设备 | |
TW202101332A (zh) | 跨鏈發送可認證訊息的方法和裝置 | |
CN101150410B (zh) | 一种在网络电视直播室中共享资源的方法及系统 | |
CN111522874B (zh) | 区块链共识方法、装置、计算机设备和存储介质 | |
CN111885133A (zh) | 基于区块链的数据处理方法、装置及计算机存储介质 | |
CN104980489A (zh) | 使用匹配的网络名称的安全集合同步 | |
CN113342838B (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN109814913A (zh) | 一种应用包拆分重组和运行的方法和装置 | |
CN106790204A (zh) | 一种流数据的封装协议的转换方法和装置 | |
CN108696899A (zh) | Sip消息传输与接收方法及传输与接收装置 | |
CN112307504A (zh) | 一种安全多方计算方法、装置、电子设备及存储介质 | |
EP2533499B1 (en) | Method and system for service message transmission based on matching rule | |
CN110944052A (zh) | 文件传输方法、装置、系统、电子设备及存储介质 | |
CN113114465B (zh) | 归属权限的处理方法及装置、存储介质、电子装置 | |
CN112422525B (zh) | 一种故障数据传输方法、装置、设备及存储介质 | |
CN112417843A (zh) | 一种IDcode标识解析系统及其实现方法 | |
CN102098339A (zh) | 一种音频文件传输方法及其系统 | |
CN116723239B (zh) | 区块链数据的传输方法、装置、电子设备和可读介质 | |
CN107231347B (zh) | 一种数据流传输服务的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |