CN110597461B - 块链式账本中的数据存储方法、装置及设备 - Google Patents

块链式账本中的数据存储方法、装置及设备 Download PDF

Info

Publication number
CN110597461B
CN110597461B CN201910747305.1A CN201910747305A CN110597461B CN 110597461 B CN110597461 B CN 110597461B CN 201910747305 A CN201910747305 A CN 201910747305A CN 110597461 B CN110597461 B CN 110597461B
Authority
CN
China
Prior art keywords
data
compression
client
service data
hash value
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.)
Active
Application number
CN201910747305.1A
Other languages
English (en)
Other versions
CN110597461A (zh
Inventor
杨新颖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201910747305.1A priority Critical patent/CN110597461B/zh
Publication of CN110597461A publication Critical patent/CN110597461A/zh
Priority to PCT/CN2020/071339 priority patent/WO2021027252A1/zh
Priority to US16/812,036 priority patent/US11249987B2/en
Application granted granted Critical
Publication of CN110597461B publication Critical patent/CN110597461B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

公开了块链式账本中的数据存储方法、装置及设备。通过本说明书实施例所提供的方案,客户端在接收到用户所发送的业务数据时,即通过获取客户端的硬件设备和网络环境参数进行动态评估,以确定对于业务数据进行压缩时是由客户端进行还是由数据库服务端进行,在压缩完成后,数据库服务端将压缩数据写入块链式的账本。

Description

块链式账本中的数据存储方法、装置及设备
技术领域
本说明书实施例涉及信息技术领域,尤其涉及块链式账本中的数据存储方法、装置及设备。
背景技术
在以中心化的块链式账本存储用户的业务数据时,用户经常一次性上传较多的数据作为一个整体进行存储。例如,一张数据量较大的报表;或者多张同一业务的同类型报表;或者,多份视频、图片等构成的一份证据等等。
这个过程中,经常会有用户需要一次性上传多份文件,或者一次性上传一份较大的数据,账本如果将用户上传的原文件写入账本,则效率太低,影响账本的写入速度。
发明内容
本说明书实施例的目的是提供一种块链式账本中提高存储效率的数据存储方法。
为解决上述技术问题,本说明书实施例是这样实现的:
一方面,本说明书提供一种块链式账本中的数据存储方法,应用于客户端中,所述方法包括:
获取用户的业务数据,以及,确定所述用户的压缩临界值,其中,所述压缩临界值用于判断执行数据压缩的目标对象,所述执行数据压缩的目标对象包括客户端或者数据库服务端;
获取客户端所处设备的硬件参数和/或网络环境参数,根据所述硬件参数和/或网络环境参数确定出压缩权值,其中,所述压缩权值与硬件参数正相关,与网络环境参数负相关;
若所述压缩权值大于预设值,则所述客户端中对所述业务数据执行数据压缩,生成对于所述业务数据的压缩数据,并发送压缩数据至数据库服务端;
否则,客户端将所述业务数据发送至数据库服务端,以便所述数据库服务端执行数据压缩,生成对于所述业务数据的压缩数据。
以一方面对应的,本说明书实施例还提供一种一种块链式账本中的数据存储装置,应用于客户端中,所述装置包括:
获取模块,获取用户的业务数据,确定所述用户的压缩临界值,其中,所述压缩临界值用于判断执行数据压缩的目标对象,所述执行数据压缩的目标对象包括客户端或者数据库服务端;
确定模块,获取客户端所处设备的硬件参数和/或网络环境参数,根据所述硬件参数和/或网络环境参数确定出压缩权值,其中,所述压缩权值与硬件参数正相关,与网络环境参数负相关;
压缩模块,若所述压缩权值大于预设值,则所述客户端中对所述业务数据执行数据压缩,生成对于所述业务数据的压缩数据;
发送模块,发送压缩数据至数据库服务端;所述发送模块还用于,若所述压缩权值不大于预设值,将所述业务数据发送至数据库服务端,以便所述数据库服务端执行数据压缩,生成对于所述业务数据的压缩数据。
另一方面,本说明书实施例还提供一种块链式账本中的数据存储方法,应用于数据库服务端中,所述方法包括:
接收客户端所发送的压缩数据,其中,所述压缩数据由客户端对业务数据执行压缩得到;或者,接收客户端所发送的业务数据,对所述业务数据执行压缩,得到压缩数据;
将所述压缩数据确认为待存储的数据记录,确定各数据记录的哈希值;
当达到预设的成块条件时,确定待写入数据块中的各数据记录,生成包含数据块的哈希值和数据记录的第N个数据块,具体包括:
当N=1时,初始数据块的哈希值和块高基于预设方式给定;
当N>1时,根据待写入数据块中的各数据记录和第N-1个数据块的哈希值确定第N个数据块的哈希值,生成包含第N个数据块的哈希值和各数据记录的第N个数据块。
与另一方面对应的,本说明书实施例还提供一种块链式账本中的数据存储装置,应用于客户端中,所述装置包括:
获取模块,获取用户的业务数据,确定所述用户的压缩临界值,其中,所述压缩临界值用于判断执行数据压缩的目标对象,所述执行数据压缩的目标对象包括客户端或者数据库服务端;
确定模块,获取客户端所处设备的硬件参数和/或网络环境参数,根据所述硬件参数和/或网络环境参数确定出压缩权值,其中,所述压缩权值与硬件参数正相关,与网络环境参数负相关;
压缩模块,若所述压缩权值大于预设值,则所述客户端中对所述业务数据执行数据压缩,生成对于所述业务数据的压缩数据;
发送模块,发送压缩数据至数据库服务端;所述发送模块还用于,若所述压缩权值不大于预设值,将所述业务数据发送至数据库服务端,以便所述数据库服务端执行数据压缩,生成对于所述业务数据的压缩数据。
通过本说明书实施例所提供的方案,客户端在接收到用户所发送的业务数据时,即通过获取客户端的硬件设备和网络环境参数进行动态评估,以确定对于业务数据进行压缩时是由客户端进行还是由数据库服务端进行,在压缩完成后,数据库服务端将压缩数据写入块链式的账本,从而可以节省账本的占用空间,提高账本的写入效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书实施例。
此外,本说明书实施例中的任一实施例并不需要达到上述的全部效果。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本说明书实施例所涉及的系统的架构示意图;
图2是本说明书实施例所提供的一种块链式账本中的数据存储方法的流程示意图;
图3为本说明书实施例所提供的另一种块链式账本中的数据存储方法的流程示意图;
图4是本说明书实施例提供的一种块链式账本中的数据存储装置的结构示意图;
图5是本说明书实施例提供的另一种块链式账本中的数据存储装置的结构示意图;
图6是用于配置本说明书实施例方法的一种设备的结构示意图。
具体实施方式
为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于保护的范围。
在本说明书实施例中,数据库服务端以中心化的方式面向客户端提供数据存储服务。客户端的用户可以是机构组织,也可以是个人用户。例如,用户将录制得到的视频或者拍摄得到的图像,作为证据,通过自身设备上传至数据库服务端,或者通过司法机构上传至数据库服务端。如图1所示,图1为本说明书实施例所涉及的系统的架构示意图。
以下结合附图,详细说明本说明书各实施例提供的技术方案,本说明书的一方面,如图2所示,图2是本说明书实施例所提供的一种块链式账本中的数据存储方法的流程示意图,应用于客户端中,该流程具体包括如下步骤:
S201,获取用户的业务数据,以及,确定所述用户的压缩临界值。
所述业务数据,可以是客户端个人用户的各种消费记录,也可以是应用服务器基于用户的指令,在执行业务逻辑时产生的业务结果、中间状态以及操作记录等等。具体的业务场景可以包括消费记录、审计日志、供应链条、政府监管记录、医疗记录等等。例如,在金融监管中,业务数据可以是金融机构需要进行上报的各种报表。
用户的压缩临界值可以是基于用户的硬件参数和/或网络环境参数事先所确定一个常数。例如,压缩临界值=1。通常而言,压缩临界值可以对应于某种常见的设备条件。例如,若临界压缩权值1对应的设备条件为2.2gHz、4CPU、2g内存、宽带上网、8M上传带宽
压缩临界值可以由数据库服务端基于接入的客户端的情形进行统计以及动态调整,并且保存于客户端本地中,客户端可以随时获取。
S203,获取客户端所处设备的硬件参数和/或网络环境参数,根据所述硬件参数和/或网络环境参数确定出压缩权值。
设备的硬件参数可以包括设备的CPU主频、CPU核数、内存大小等等,设备的网络环境参数可以包括设备的网络连接模式、设备的上传带宽等等。每种硬件参数均可以用相应的数值来表征。例如,主频2.2gHz表征为2.2,4CPU表征为4,2g内存表征为2;有线上网表征为4,上传带宽8M/s表征为8等等。通常而言,硬件性能越好,硬件参数值越大;网络环境越好,网络环境参数越大。
通过各参数值综合计算出压缩权值,并与临界压缩权值进行比较。例如,一种计算方式为压缩权值M=k*(主频*核数*内存)/(上网方式*上传带宽),其中k为经验参数,可由用户设置。若压缩权值大于临界压缩权值,则由客户端进行压缩,反之,则由数据库服务端进行压缩。
例如,若临界压缩权值1对应的设备条件为2.2gHz、4CPU、2g内存、宽带上网、8M上传带宽。则可以知道,若设备的硬件条件更差或者网络条件更好时,应该由数据库服务端进行压缩。
动态压缩的本质是基于客户端的设备硬件条件和网络条件,实现更高效的压缩以及传输,若客户端的设备硬件条件更好,网络条件更差,则在客户端执行压缩,反之则在数据库服务端进行压缩,以提高数据传输效率。
S205,若所述压缩权值大于预设值,则所述客户端中对所述业务数据执行数据压缩,生成对于所述业务数据的压缩数据,并发送压缩数据至数据库服务端;
具体的压缩方式包括常规的可逆的无损压缩,在这种压缩方式下可以根据压缩数据完全恢复原始的业务数据。例如,将报表压缩为诸如RAR、ZIP等格式的压缩包。
在本说明书实施例中,还可以进行另一种压缩方式,即确定业务数据的哈希值,将业务数据的哈希值确定为压缩数据,进而将所述哈希值确定为待存储数据。在这种方式下,“压缩数据”无法还原得到对应的业务数据,但是由于哈希值的唯一性,同样可以验证账本中的待存储数据的完整性。
S207,否则,客户端将所述业务数据发送至数据库服务端,以便所述数据库服务端执行数据压缩,生成对于所述业务数据的压缩数据。
具体而言,客户端可以直接将业务数据发送至数据库服务端;或者,在压缩权值不大于预设值时(即此时需要由数据库服务端进行压缩),则此时还可以添加相应的压缩标识,压缩标识用于表征该业务数据需要进行压缩。
在实际应用中,客户端还可以对业务数据进行进一步的区分,例如,某些业务数据较小,不需要压缩,而某些业务数据较大,需要进行压缩。
在一种实施方式中,可以仅对部分业务数据中增加压缩标识,然后在数据库服务端增加解析业务请求并识别该标识位的功能。例如,对占用空间超过一定大小的业务数据添加压缩标识,而对于较小的业务数据不添加压缩标识。
当然,也可以在所有的业务数据中统一增加标识位,通过赋予不同标识位取值的方式来实现对区分,本申请对此并不需要进行限定。
前述部分对于本说明书实施例中的客户端进行了相应说明,在另一方面,本说明书实施例还提供一种块链式账本中的数据存储方法,应用于数据库服务端中,如图3所示,图3为本说明书实施例所提供的另一种块链式账本中数据存储方法的流程示意图,所述方法包括:
S301,接收客户端所发送的压缩数据,其中,所述压缩数据由客户端对业务数据执行压缩得到;或者,接收客户端所发送的业务数据,对所述业务数据执行压缩,得到压缩数据。
如前所述,在本说明书实施例中,需要对于业务数据进行压缩再存储。具体而言,在一种实施方式中,数据库服务端可以根据客户端所发送的业务数据中是否包含有压缩标识进行相应的后续流程。若有,则在数据库服务端进行压缩,没有,则表明客户端已经进行了压缩,接收到的即为压缩数据。
在一种实施方式中,由于用户的硬件条件和网络条件一般比较稳定,因此,还可以保存用户的硬件条件和网络条件,在用户的硬件条件和网络条件没有变化时,采取与上一次相同的压缩方式。即,若前一次由数据库服务端执行压缩,则本次也继续在数据库服务端进行压缩;若前一次没有在数据库服务端进行压缩,则本次也不进行压缩。
S303,将所述压缩数据确认为待存储的数据记录,确定各数据记录的哈希值。
具体而言,数据库服务端可以获取待存储的数据记录(即前述的待存储数据),确定各待存储的数据记录的哈希值,并且将待存储的数据记录的哈希值返回至客户端,以便客户端随时查询。
需要说明的是,如果在压缩时,将业务数据的哈希值确定为压缩数据,则可以直接将业务数据的哈希值确定为待存储的数据记录的哈希值;若压缩时执行的是无损压缩,则是将得到的压缩包的哈希值确定为待存储的数据记录的哈希值。
S305,当达到预设的成块条件时,确定待写入数据块中的各数据记录,生成包含数据块的哈希值和数据记录的第N个数据块。
所述预设的成块条件包括:待存储的数据记录数量达到数量阈值,例如,每接收到一千条数据记录时,生成一个新数据块,将一千条数据记录写入块中;或者,距离上一次成块时刻的时间间隔达到时间阈值,例如,每隔5分钟,生成一个新数据块,将在这5分钟内接收到的数据记录写入块中。
此处的N指的是数据块的序号,换言之,在本说明书实施例中,数据块是以块链的形式,基于成块时间的顺序先后排列,具有很强的时序特征。其中,数据块的块高基于成块时间的先后顺序单调递增。块高可以是序号,此时第N个数据块的块高即为N;块高也可以其它方式生成。
当N=1时,即此时的数据块为为初始数据块。初始数据块的哈希值和块高基于预设方式给定。例如,初始数据块中不包含数据记录,哈希值则为任一给定的哈希值,块高blknum=0;又例如,初始数据块的生成触发条件与其它数据块的触发条件一致,但是初始数据块的哈希值由对初始数据块中的所有内容取哈希确定。
当N>1时,由于前一数据块的内容和哈希值已经确定,则此时,可以基于前一数据块(即第N-1个数据块)的哈希值生成当前数据块(第N个数据块)的哈希值,例如,一种可行的方式为,确定每一条将要写入第N个块中的数据记录的哈希值,按照在块中的排列顺序,生成一个默克尔树,将默克尔树的根哈希值和前一数据块的哈希值拼接在一起,再次采用哈希算法,生成当前块的哈希值。又例如,还可以按照块中数据记录的顺序进行拼接并取哈希得到整体数据记录的哈希值,拼接前一数据块的哈希值和整体数据记录的哈希值,并对拼接得到的字串进行哈希运算,生成数据块的哈希值。
需要说明的是,在这个过程中,基于不同的压缩方式,如果待存储的数据是业务数据的压缩数据,则计算默克尔树的根哈希值时需要计算每个压缩数据的哈希值;如果待存储的数据是业务数据的哈希值,则计算摩尔克数的根哈希值时需要计算每个业务数据的哈希值的哈希值。
用户在上传数据成功后,即可以得到对应的数据记录的哈希值以及所处的数据块的哈希值,并保存,并且可以基于该哈希值发起完整性验证。具体的验证方式包括重新计算数据记录自身的哈希值以及所处的数据块的哈希值,与本地所保存的进行对比。
上述方式生成的数据块,可以包括块头和块体两个部分。块体中可以用于存储拼接数据的明文,或者拼接数据的哈希值等等;块头中可以用于存储有关本数据块的元数据,例如,账本的版本号,前一数据块的哈希值,自身数据块中的拼接数据所组成的默克尔树的根哈希值,自身数据块的哈希值,用于记录拼接数据的被操作状态的状态数组等等。
通过本说明书实施例所提供的方案,客户端在接收到用户所发送的业务数据时,即通过获取客户端的硬件设备和网络环境参数进行动态评估,以确定对于业务数据进行压缩时是由客户端进行还是由数据库服务端进行,在压缩完成后,数据库服务端将压缩数据写入块链式的账本,从而可以节省账本的占用空间,提高账本的写入效率。
在一种实施方式中,数据库服务端在对业务数据进行了压缩之后,还需要将业务数据进行本地存储,并且记录业务数据和业务数据的压缩数据的对应关系,具体而言,可以记录压缩数据的名称和业务数据的名称、存储位置之间的对应关系。若压缩数据为业务数据的哈希值,此时,还可以记录业务数据的存储位置和所述业务数据的哈希值之间的对应关系,以便查询。
在一种实施方式中,客户端还可以基于自身错保存的哈希值发起查询,发送包含哈希值的查询请求至数据库服务端。所述哈希值即可以是压缩包的哈希值,或者,也可以是业务数据的哈希值。
数据库服务端接收到查询请求,即可以基于哈希值查询得到相应的压缩数据:在压缩数据为压缩包时,可以从账本中获取得到哈希值所对应的压缩包,并且返回压缩包至客户端;在哈希值为业务数据的哈希值时,可以基于业务数据的存储位置和所述业务数据的哈希值之间的对应关系查询得到业务数据,并且,并且返回业务数据和业务数据的哈希值至客户端,以便客户端使用业务数据或者验证业务数据的完整性。
与一方面对应的,本说明书实施例还提供一种块链式账本中的数据存储装置,应用于客户端中,如图4所示,图4是本说明书实施例提供的一种块链式账本中的数据存储装置的结构示意图,包括:
获取模块,获取用户的业务数据,确定所述用户的压缩临界值,其中,所述压缩临界值用于判断执行数据压缩的目标对象,所述执行数据压缩的目标对象包括客户端或者数据库服务端;
确定模块401,获取客户端所处设备的硬件参数和/或网络环境参数,根据所述硬件参数和/或网络环境参数确定出压缩权值,其中,所述压缩权值与硬件参数正相关,与网络环境参数负相关;
压缩模块403,若所述压缩权值大于预设值,则所述客户端中对所述业务数据执行数据压缩,生成对于所述业务数据的压缩数据;
发送模块405,发送压缩数据至数据库服务端;所述发送模块还用于,若所述压缩权值不大于预设值,将所述业务数据发送至数据库服务端,以便所述数据库服务端执行数据压缩,生成对于所述业务数据的压缩数据。
进一步地,所述压缩模块403,对所述业务数据执行无损压缩,生成可恢复业务数据的压缩包;或者,确定所述业务数据的哈希值,将所述业务数据的哈希值确定为压缩数据。
进一步地,所述发送模块405,将所述业务数据和压缩标识发送至数据库服务端,所述压缩标识表征该业务数据需要由数据库服务端执行数据压缩。
进一步地,所述发送模块405还用于,发送包含哈希值的查询请求至数据库服务端,以便所述数据库服务端根据所述哈希值查询得到对应的压缩数据;所述装置还包括接收模块407,接收数据库服务端所返回的压缩数据,解压所述压缩数据得到对应的业务数据。
与另一方面对应的,本说明书实施例还提供一种块链式账本中的数据存储装置,应用于数据库服务端中,如图5所示,图5是本说明书实施例提供的另一种块链式账本中的数据存储装置的结构示意图,包括:
接收模块501,接收客户端所发送的压缩数据,其中,所述压缩数据由客户端对业务数据执行压缩得到;或者,接收客户端所发送的业务数据;
压缩模块503,对所述业务数据执行压缩,得到压缩数据;
确定模块505,将所述压缩数据确认为待存储的数据记录,确定各数据记录的哈希值;
数据块生成模块507,当达到预设的成块条件时,确定待写入数据块中的各数据记录,生成包含数据块的哈希值和数据记录的第N个数据块,具体包括:
当N=1时,初始数据块的哈希值和块高基于预设方式给定;当N>1时,根据待写入数据块中的各数据记录和第N-1个数据块的哈希值确定第N个数据块的哈希值,生成包含第N个数据块的哈希值和各数据记录的第N个数据块。
进一步地,所述预设的成块条件包括:待存储的数据记录数量达到数量阈值;或者,距离上一次成块时刻的时间间隔达到时间阈值。
进一步地,所述装置还包括查询模块509,接收客户端所发送的包含哈希值的查询请求;查询获取所述哈希值所对应的压缩数据;发送所述压缩数据至客户端,以便客户端解压所述压缩数据。
进一步地,所述接收模块501还用于,接收客户端所发送的业务数据;检测所述业务数据是否包含有压缩标识,所述压缩标识表征该业务数据需要在数据库服务端进行数据压缩;若包含,对所述业务数据执行压缩,生成压缩数据。
本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现图2所示的块链式账本中的数据存储方法。
本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现图3所示的块链式账本中的数据存储方法。
图6示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现图2所示的块链式账本中的数据存储方法。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现图3所示的块链式账本中的数据存储方法。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的系统、方法、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的方法实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。

Claims (18)

1.一种块链式账本中的数据压缩方法,应用于客户端中,所述方法包括:
获取用户的业务数据,以及,确定所述用户的压缩临界值,其中,所述压缩临界值用于判断执行数据压缩的目标对象,所述执行数据压缩的目标对象包括客户端或者数据库服务端;
获取客户端所处设备的硬件参数和/或网络环境参数,根据所述硬件参数和/或网络环境参数确定出压缩权值,其中,所述压缩权值与硬件参数正相关,与网络环境参数负相关;
若所述压缩权值大于预设值,则所述客户端中对所述业务数据执行数据压缩,生成对于所述业务数据的压缩数据,并发送压缩数据至数据库服务端;
否则,客户端将所述业务数据发送至数据库服务端,以便所述数据库服务端执行数据压缩,生成对于所述业务数据的压缩数据。
2.如权利要求1所述的方法,所述客户端中对所述业务数据执行数据压缩,生成对于所述业务数据的压缩数据,包括:
对所述业务数据执行无损压缩,生成可恢复业务数据的压缩包;或者,
确定所述业务数据的哈希值,将所述业务数据的哈希值确定为压缩数据。
3.如权利要求1所述的方法,将所述业务数据发送至数据库服务端,包括:
将所述业务数据和压缩标识发送至数据库服务端,所述压缩标识表征该业务数据需要由数据库服务端执行数据压缩。
4.如权利要求1所述的方法,还包括:
发送包含哈希值的查询请求至数据库服务端,以便所述数据库服务端根据所述哈希值查询得到对应的压缩数据;
接收数据库服务端所返回的压缩数据,解压所述压缩数据得到对应的业务数据。
5.一种基于权利要求1~4任一项所述的数据压缩方法的数据存储方法,应用于数据库服务端中,所述方法包括:
接收客户端所发送的压缩数据,其中,所述压缩数据由客户端对业务数据执行压缩得到;或者,接收客户端所发送的业务数据,对所述业务数据执行压缩,得到压缩数据;
将所述压缩数据确认为待存储的数据记录,确定各数据记录的哈希值;
当达到预设的成块条件时,确定待写入数据块中的各数据记录,生成包含数据块的哈希值和数据记录的第N个数据块,具体包括:
当N=1时,初始数据块的哈希值和块高基于预设方式给定;
当N>1时,根据待写入数据块中的各数据记录和第N-1个数据块的哈希值确定第N个数据块的哈希值,生成包含第N个数据块的哈希值和各数据记录的第N个数据块。
6.如权利要求5所述的方法,所述预设的成块条件包括:
待存储的数据记录数量达到数量阈值;或者,
距离上一次成块时刻的时间间隔达到时间阈值。
7.如权利要求5所述的方法,所述方法还包括:
接收客户端所发送的包含哈希值的查询请求;
查询获取所述哈希值所对应的压缩数据;
发送所述压缩数据至客户端,以便客户端解压所述压缩数据。
8.如权利要求5所述的方法,接收客户端所发送的业务数据,包括:
接收客户端所发送的业务数据;
检测所述业务数据是否包含有压缩标识,所述压缩标识表征该业务数据需要在数据库服务端进行数据压缩;
若包含,对所述业务数据执行压缩,生成压缩数据。
9.一种块链式账本中的数据压缩装置,应用于客户端中,所述装置包括:
获取模块,获取用户的业务数据,确定所述用户的压缩临界值,其中,所述压缩临界值用于判断执行数据压缩的目标对象,所述执行数据压缩的目标对象包括客户端或者数据库服务端;
确定模块,获取客户端所处设备的硬件参数和/或网络环境参数,根据所述硬件参数和/或网络环境参数确定出压缩权值,其中,所述压缩权值与硬件参数正相关,与网络环境参数负相关;
压缩模块,若所述压缩权值大于预设值,则所述客户端中对所述业务数据执行数据压缩,生成对于所述业务数据的压缩数据;
发送模块,发送压缩数据至数据库服务端;所述发送模块还用于,若所述压缩权值不大于预设值,将所述业务数据发送至数据库服务端,以便所述数据库服务端执行数据压缩,生成对于所述业务数据的压缩数据。
10.如权利要求9所述的装置,所述压缩模块,对所述业务数据执行无损压缩,生成可恢复业务数据的压缩包;或者,确定所述业务数据的哈希值,将所述业务数据的哈希值确定为压缩数据。
11.如权利要求9所述的装置,所述发送模块,将所述业务数据和压缩标识发送至数据库服务端,所述压缩标识表征该业务数据需要由数据库服务端执行数据压缩。
12.如权利要求9所述的装置,所述发送模块还用于,发送包含哈希值的查询请求至数据库服务端,以便所述数据库服务端根据所述哈希值查询得到对应的压缩数据;所述装置还包括接收模块,接收数据库服务端所返回的压缩数据,解压所述压缩数据得到对应的业务数据。
13.一种基于权利要求1~4任一项所述的数据压缩方法的数据存储装置,应用于数据库服务端中,所述装置包括:
接收模块,接收客户端所发送的压缩数据,其中,所述压缩数据由客户端对业务数据执行压缩得到;或者,接收客户端所发送的业务数据;
压缩模块,对所述业务数据执行压缩,得到压缩数据;
确定模块,将所述压缩数据确认为待存储的数据记录,确定各数据记录的哈希值;
数据块生成模块,当达到预设的成块条件时,确定待写入数据块中的各数据记录,生成包含数据块的哈希值和数据记录的第N个数据块,具体包括:
当N=1时,初始数据块的哈希值和块高基于预设方式给定;
当N>1时,根据待写入数据块中的各数据记录和第N-1个数据块的哈希值确定第N个数据块的哈希值,生成包含第N个数据块的哈希值和各数据记录的第N个数据块。
14.如权利要求13所述的装置,所述预设的成块条件包括:
待存储的数据记录数量达到数量阈值;或者,距离上一次成块时刻的时间间隔达到时间阈值。
15.如权利要求13所述的装置,所述装置还包括查询模块,接收客户端所发送的包含哈希值的查询请求;查询获取所述哈希值所对应的压缩数据;发送所述压缩数据至客户端,以便客户端解压所述压缩数据。
16.如权利要求13所述的装置,所述接收模块还用于,接收客户端所发送的业务数据;检测所述业务数据是否包含有压缩标识,所述压缩标识表征该业务数据需要在数据库服务端进行数据压缩;若包含,对所述业务数据执行压缩,生成压缩数据。
17.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求1至4任一项所述的方法。
18.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求5至8任一项所述的方法。
CN201910747305.1A 2019-08-14 2019-08-14 块链式账本中的数据存储方法、装置及设备 Active CN110597461B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201910747305.1A CN110597461B (zh) 2019-08-14 2019-08-14 块链式账本中的数据存储方法、装置及设备
PCT/CN2020/071339 WO2021027252A1 (zh) 2019-08-14 2020-01-10 块链式账本中的数据存储方法、装置及设备
US16/812,036 US11249987B2 (en) 2019-08-14 2020-03-06 Data storage in blockchain-type ledger

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910747305.1A CN110597461B (zh) 2019-08-14 2019-08-14 块链式账本中的数据存储方法、装置及设备

Publications (2)

Publication Number Publication Date
CN110597461A CN110597461A (zh) 2019-12-20
CN110597461B true CN110597461B (zh) 2020-08-18

Family

ID=68854078

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910747305.1A Active CN110597461B (zh) 2019-08-14 2019-08-14 块链式账本中的数据存储方法、装置及设备

Country Status (2)

Country Link
CN (1) CN110597461B (zh)
WO (1) WO2021027252A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110597461B (zh) * 2019-08-14 2020-08-18 阿里巴巴集团控股有限公司 块链式账本中的数据存储方法、装置及设备
US11249987B2 (en) 2019-08-14 2022-02-15 Advanced New Technologies Co., Ltd. Data storage in blockchain-type ledger
CN114125071B (zh) * 2021-11-23 2024-02-09 北京人大金仓信息技术股份有限公司 数据压缩传输方法及装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8156241B1 (en) * 2007-05-17 2012-04-10 Netapp, Inc. System and method for compressing data transferred over a network for storage purposes
CN106484852B (zh) * 2016-09-30 2019-10-18 华为技术有限公司 数据压缩方法、设备与计算设备
CN107728941B (zh) * 2017-09-28 2019-09-24 中国银行股份有限公司 一种区块链数据压缩方法及系统
CN109614043A (zh) * 2018-12-04 2019-04-12 郑州云海信息技术有限公司 一种数据压缩方法、装置、系统及计算机可读存储介质
CN110022315B (zh) * 2019-03-26 2021-06-29 创新先进技术有限公司 一种块链式账本中的权重管理方法、装置及设备
CN110597462A (zh) * 2019-08-14 2019-12-20 阿里巴巴集团控股有限公司 块链式账本中的数据存储方法、系统、装置及设备
CN110597461B (zh) * 2019-08-14 2020-08-18 阿里巴巴集团控股有限公司 块链式账本中的数据存储方法、装置及设备

Also Published As

Publication number Publication date
CN110597461A (zh) 2019-12-20
WO2021027252A1 (zh) 2021-02-18

Similar Documents

Publication Publication Date Title
CN110188096B (zh) 一种数据记录的索引创建方法、装置及设备
US11249987B2 (en) Data storage in blockchain-type ledger
CN110162662B (zh) 一种块链式账本中数据记录的验证方法、装置及设备
CN110597461B (zh) 块链式账本中的数据存储方法、装置及设备
CN110162526B (zh) 一种块链式账本中数据记录的查询方法、装置及设备
CN110825737A (zh) 索引创建和数据查询方法、装置及设备
CN110837502B (zh) 一种块链式账本中的数据存储方法、装置及设备
CN110022315B (zh) 一种块链式账本中的权重管理方法、装置及设备
CN110347679B (zh) 一种基于收据的数据存储方法、装置及设备
CN110147685B (zh) 数据验证方法、系统、装置及设备
CN110879687B (zh) 一种基于磁盘存储的数据读取方法、装置及设备
CN110716965B (zh) 一种块链式账本中的查询方法、装置及设备
CN111046069B (zh) 一种块链式账本中的聚合计算方法、装置及设备
EP3812994A1 (en) Data evidence preservation method and system based on multiple blockchain networks
US20210157801A1 (en) Methods and systems for recording data based on plurality of blockchain networks
US10958440B2 (en) Blockchain ledger compression
CN110362568B (zh) 一种针对块链式账本的压缩方法、装置及设备
CN110597462A (zh) 块链式账本中的数据存储方法、系统、装置及设备
CN110727679A (zh) 法院案卷的协同追踪方法、系统、装置及设备
CN111444194B (zh) 一种块链式账本中索引的清除方法、装置及设备
US11086849B2 (en) Methods and systems for reading data based on plurality of blockchain networks
CN110636042B (zh) 一种服务端已验证块高的更新方法、装置及设备
CN114513469A (zh) 分布式系统的流量整形方法、装置和存储介质
US20200177390A1 (en) Providing data verification in a blockchain ledger
CN113641643A (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
GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40019441

Country of ref document: HK

TR01 Transfer of patent right

Effective date of registration: 20201012

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20201012

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Patentee before: Alibaba Group Holding Ltd.

TR01 Transfer of patent right