CN107992492A - 一种数据区块的存储方法、读取方法、其装置及区块链 - Google Patents

一种数据区块的存储方法、读取方法、其装置及区块链 Download PDF

Info

Publication number
CN107992492A
CN107992492A CN201610950305.8A CN201610950305A CN107992492A CN 107992492 A CN107992492 A CN 107992492A CN 201610950305 A CN201610950305 A CN 201610950305A CN 107992492 A CN107992492 A CN 107992492A
Authority
CN
China
Prior art keywords
array structure
transaction record
storage
data
block
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.)
Granted
Application number
CN201610950305.8A
Other languages
English (en)
Other versions
CN107992492B (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.)
China Mobile Communications Group Co Ltd
China Mobile Communications Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Communications Co 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 China Mobile Communications Group Co Ltd, China Mobile Communications Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN201610950305.8A priority Critical patent/CN107992492B/zh
Publication of CN107992492A publication Critical patent/CN107992492A/zh
Application granted granted Critical
Publication of CN107992492B publication Critical patent/CN107992492B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2474Sequence data queries, e.g. querying versioned data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/221Column-oriented storage; Management thereof

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Fuzzy Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据区块的存储方法、读取方法、其装置及区块链,该存储方法包括在区块链中写入新数据区块前,对新数据区块的交易记录结构中的各行交易记录数据进行转换为按列结构存储的处理;在按列结构存储后的新数据区块中创建列结构存储识别信息;将具有列结构存储识别信息的新数据区块存储到区块链中。由于各交易记录行数据按列式结构进行存储,且创建了列结构存储识别信息,因此,在查询交易记录数据时,只需根据识别信息查询对应列的交易记录数据,无需查询全部交易记录数据,从而大量减少了系统IO操作,进而可以支持大容量、高并发的查询要求,有利于数据的高效处理。此外,通过扩展列式存储结构,可应对未来交易记录细节信息的变化。

Description

一种数据区块的存储方法、读取方法、其装置及区块链
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据区块的存储方法、读取方法、其装置及区块链。
背景技术
区块链是一个分布式账本,一种通过去中心化、去信任的方式集体维护一个可靠数据库的技术方案。简单来说,区块链是一种把区块以链的方式组合在一起的数据结构,它适合存储简单的、有先后顺序的、能在系统内验证的数据,用密码学保证了数据的不可篡改和不可伪造。它能够使参与者对全网交易记录的事件顺序和当前状态建立共识。
在区块链技术方案中,数据以电子记录的形式被永久储存下来,存放这些电子记录的文件我们就称之为“区块”。区块是按时间顺序一个一个先后生成的,每一个区块记录下它在被创建期间发生的所有交易记录,所有区块汇总起来形成一个记录合集。
区块包括头部结构和交易记录结构两部分,如表1所示。头部结构用于链接到前面的区块,并且为区块链数据库提供完整性的保证;交易记录结构则包含了经过验证的、区块创建过程中发生的所有交易记录。
表1
区块头结构(包括区块存储空间、交易计数、前一区块记录、Merkel树的值、时间戳等)
交易记录一
交易记录二
交易记录三
……
交易记录N
例如表2所示的交易记录结构由每一笔交易记录按照行进行存储。
表2
生成时间 引用交易哈希值 支出地址 支出地址数量 接收地址 接收地址数量
time1 hash1 address10 num10 address11 num11
time2 hash2 address20 num20 address21 num21
time3 hash3 address30 num30 address31 num31
time4 hash4 address40 num40 address41 num41
time5 hash5 address50 num50 address51 num51
按行结构存储的交易记录结构主要有如下缺点:
(1)查询交易记录时,交易记录的所有细节信息都会被查询到,大量使用输入/输出(Input/Output,IO)操作,造成资源浪费。
(2)面对大量的查询需求时,无法满足高并发的查询要求。
(3)每个交易记录行中包含各种数据类型的数据,比如日期时间类型的交易时间数据、数值类型的接收/支出数量数据、交易的数字签名信息数据等,不利于数据的高效处理等。
(4)在增加新的交易明细属性等交易记录细节信息时,现有的行式存储结构无法应对。
因此,亟需提供一种存储区块的新方法,可以降低系统的IO操作,满足高并发查询需求,支持数据的高效处理,并支持未来可能变化的交易记录结构。
发明内容
有鉴于此,本发明实施例提供一种数据区块的存储方法、读取方法、其装置及区块链,用以解决现有技术中存在的系统的IO操作量大,不能满足高并发查询需求,不支持数据的高效处理,且不支持未来可能变化的交易记录结构的问题。
因此,本发明实施例提供了一种数据区块的存储方法,包括:
可以在区块链中写入新数据区块之前,对新数据区块的交易记录结构中的各行交易记录数据进行转换为按列结构存储的处理;
在按列结构存储后的所述新数据区块中创建列结构存储识别信息;
将具有所述列结构存储识别信息的所述新数据区块存储到所述区块链中。
在一种可能的实现方式中,在本发明实施例提供的上述存储方法中,所述对所述新数据区块的交易记录结构中的各行交易记录数据进行转换为按列结构存储的处理,具体包括:
根据所述新数据区块的交易记录结构中的各行交易记录数据的属性信息,将属性信息相同的交易记录数据存储在同一列中。
在一种可能的实现方式中,在本发明实施例提供的上述存储方法中,所述列结构存储识别信息,具体包括:
列结构存储标识信息;
按列结构存储前的各行交易记录数据的存储空间信息;
按列结构存储后各列交易记录数据的属性信息。
在一种可能的实现方式中,在本发明实施例提供的上述存储方法中,所述在按列结构存储后的所述新数据区块中创建列结构存储识别信息,具体包括:
在按列结构存储后的所述新数据区块的头部结构中创建所述列结构存储识别信息。
本发明实施例还提供了一种数据区块的读取方法,包括:
在确定需要读取的区块链存储的数据区块中是否存在列结构存储识别信息时,读取所述区块链存储的数据区块中的列结构存储识别信息;
根据读取到的所述列结构存储识别信息,在所述数据区块的交易记录结构中读取对应列的交易记录数据。
在一种可能的实现方式中,在本发明实施例提供的上述读取方法中,所述读取所述区块链存储的数据区块中的列结构存储识别信息,具体包括:
在所述区块链存储的数据区块的头部结构中读取所述列结构存储识别信息。
在一种可能的实现方式中,在本发明实施例提供的上述读取方法中,所述列结构存储识别信息,具体包括:列结构存储标识信息,按列结构存储前的各行交易记录数据的存储空间信息,按列结构存储后各列交易记录数据的属性信息;
根据读取到的所述列结构存储识别信息,在所述数据区块的交易记录结构中读取对应列的交易记录数据,具体包括:
根据所述各列交易记录数据的属性信息,在所述数据区块的交易记录结构中读取对应列的交易记录数据。
本发明实施例还提供了一种区块链,包括:多个数据区块;其中,至少部分所述数据区块的交易记录结构中的各交易记录数据按列结构存储。
在一种可能的实现方式中,在本发明实施例提供的上述区块链中,在同一按列结构存储的数据区块中,各列结构所占行数相同;
各按列结构存储的数据区块中,存在列结构行数或列结构列数与其他数据区块不同的数据区块。
本发明实施例还提供了一种数据区块的存储装置,包括;
处理模块,可以用于在区块链中写入新数据区块之前对新数据区块的交易记录结构中的各行交易记录数据进行转换为按列结构存储的处理;
创建模块,用于在按列结构存储后的所述新数据区块中创建列结构存储识别信息;
存储模块,用于将具有所述列结构存储识别信息的所述新数据区块存储到所述区块链中。
在一种可能的实现方式中,在本发明实施例提供的上述存储装置中,所述处理模块,具体用于根据所述新数据区块的交易记录结构中的各行交易记录数据的属性信息,将属性信息相同的交易记录数据存储在同一列中。
在一种可能的实现方式中,在本发明实施例提供的上述存储装置中,所述创建模块创建的所述列结构存储识别信息,具体包括:
列结构存储标识信息;
按列结构存储前的各行交易记录数据的存储空间信息;
按列结构存储后各列交易记录数据的属性信息。
在一种可能的实现方式中,在本发明实施例提供的上述存储装置中,所述创建模块,具体用于在按列结构存储后的所述新数据区块的头部结构中创建所述列结构存储识别信息。
本发明实施例还提供了一种区块数据的读取装置,包括:
确定模块,用于确定需要读取的区块链存储的数据区块中是否存在列结构存储识别信息;
第一读取模块,用于在确定所述区块链存储的数据区块中存在列结构存储识别信息时,读取所述区块链存储的数据区块中的列结构存储识别信息;
第二读取模块,用于根据读取到的所述列结构存储识别信息,在所述数据区块的交易记录结构中读取对应列的交易记录数据。
在一种可能的实现方式中,在本发明实施例提供的上述读取装置中,所述第一读取模块,具体用于在确定需要读取的区块链存储的数据区块中存在列结构存储识别信息时,在所述区块链存储的数据区块的头部结构中读取所述列结构存储识别信息。
在一种可能的实现方式中,在本发明实施例提供的上述读取装置中,所述列结构存储识别信息,具体包括:列结构存储标识信息,按列结构存储前的各行交易记录数据的存储空间信息,按列结构存储后各列交易记录数据的属性信息;
所述第二读取模块,具体用于根据所述各列交易记录数据的属性信息,在所述数据区块的交易记录结构中读取对应列的交易记录数据。
本发明有益效果如下:
本发明实施例提供的一种数据区块的存储方法、读取方法、其装置及区块链,该存储方法包括在区块链中写入新数据区块之前,对新数据区块的交易记录结构中的各行交易记录数据进行转换为按列结构存储的处理;在按列结构存储后的新数据区块中创建列结构存储识别信息;将具有列结构存储识别信息的新数据区块存储到区块链中。由于各交易记录行数据转换成了交易记录列数据,并且在区块中创建了列结构存储识别信息,因此,在查询交易记录数据时,只需根据列结构存储识别信息查询对应列的交易记录数据,无需查询全部交易记录数据,从而大量减少了系统IO操作,避免了资源浪费,进而可以支持大容量、高并发的查询要求,有利于数据的高效处理。此外,可通过对列式存储结构进行扩展,来应对未来交易记录细节信息发生的变化。
附图说明
图1为本发明实施例提供的数据区块的存储方法的流程图;
图2为本发明实施例提供的数据区块的存储装置的结构示意图;
图3为本发明实施例提供的数据区块的读取方法的流程图;
图4为本发明实施例提供的数据区块的读取装置的结构示意图。
具体实施方式
下面结合附图,对本发明实施例提供的一种数据区块的存储方法、读取方法、其装置及区块链的具体实施方式进行详细地说明。
本发明实施例提供了一种数据区块的存储方法,如图1所示,包括以下步骤:
S101、在区块链中写入新数据区块之前,对新数据区块的交易记录结构中的各行交易记录数据进行转换为按列结构存储的处理;
S102、在按列结构存储后的新数据区块中创建列结构存储识别信息;
S103、将具有列结构存储识别信息的新数据区块存储到区块链中。
具体地,在本发明实施例提供的上述数据区块的存储方法中,由于各交易记录行数据转换成了交易记录列数据,并且在区块中创建了列结构存储识别信息,因此,在查询交易记录数据时,只需根据列结构存储识别信息查询对应列的交易记录数据,无需查询全部交易记录数据,从而大量减少了系统IO操作,避免了资源浪费,进而可以支持大容量、高并发的查询要求,有利于数据的高效处理。此外,可通过对列式存储结构进行扩展,来应对未来交易记录细节信息发生的变化。
在具体实施时,在本发明实施例提供的数据区块的存储方法的步骤S101中对新数据区块的交易记录结构中的各行交易记录数据进行转换为按列结构存储的处理的实施方式可以有多种,较佳地,可以通过以下方式实现:
根据新数据区块的交易记录结构中的各行交易记录数据的属性信息,将属性信息相同的交易记录数据存储在同一列中。
具体地,在本发明实施例提供的数据区块的存储方法的步骤S101中,以对表2中的交易记录结构中的各行交易记录数据进行转换为按列结构存储的处理为例,可以根据各行交易记录数据的属性信息,将属性信息相同的交易记录数据存储在同一列中。如表3所示,为表2中各行交易记录数据进行按列格式化处理后的交易记录数据,由左至右,依次是交易记录生成时间列数据、交易记录引用哈希值列数据、交易记录支出地址列数据、交易记录支出地址数量列数据、交易记录接收地址列数据、以及交易记录接收地址数量列数据,存储时按照每个列的数据分别储存。
表3
在具体实施时,在本发明实施例提供的数据区块的存储方法中,列结构存储识别信息,具体可以包括:按列结构存储前的各行交易记录数据的存储空间信息;列结构存储标识信息;按列结构存储后各列交易记录数据的属性信息。一方面,这些识别信息用于读取按列结构存储的数据区块中的交易记录数据;另一方面,创建识别信息后,将按列结构存储的数据区块保存在区块链中,从而保证数据区块中交易记录数据的可靠性。
具体地,在本发明实施例提供的数据区块的存储方法中,根据上述按列结构存储前的各行交易记录数据的存储空间信息,可以将按列结构存储的交易记录数据还原为按行结构存储的交易记录数据,从而可以不改变区块间的链接方式,进而实现按列结构存储交易记录数据的区块在区块链中的存储,保证了数据区块中交易激励数据的可靠性。根据上述列结构存储标识信息,可以在需要读取区块链存储的某数据区块的交易记录数据时,快速确定出该数据区块中的交易记录数据是按行结构进行存储的,还是按列结构进行存储的。如果该数据区块中有列结构存储标识,则该数据区块中的交易记录数据是按列结构进行存储的,否则,是按行结构进行存储的。根据上述按列结构存储后各列交易记录数据的属性信息,可以只读取想要查询的交易记录数据的相关内容。以查询表3中交易记录的生成时间为例,只需根据交易记录数据的时间属性信息,读取交易记录生成时间列数据,不需要读取交易记录数据的全部内容。即上述按列结构存储后各列交易记录数据的属性信息,有利于用户精确读取所需信息,降低了系统的IO操作,避免了资源浪费。
在具体实施时,由于区块的数据记录结构中只存储交易记录数据,因此,在本发明实施例提供的数据区块的存储方法的步骤S102在按列结构存储后的新数据区块中创建列结构存储识别信息中,具体可以通过以下方式实现:
在按列结构存储后的新数据区块的头部结构中创建列结构存储识别信息。
为了更好地理解本发明的技术方案,本发明实施例提供了数据区块按列结构存储的详细过程,具体如下:
启动并允许区块链客户端程序;
在区块链客户端程序运行过程中有新数据区块写入区块链时,对该区块的交易记录数据进行按列结构存储处理。具体来说,就是在客户端程序存储区块的方法中内嵌上述存储方法将数据区块中的各行交易记录数据转换成按列格式化处理的交易记录数据,即在存储区块方法中添加如下内容:
{
…//省略,原来的代码
将各行交易记录数据转换成按列格式化处理的交易记录数据,将按列处理后的交易记录数据作为交易记录结构放到区块中
在按列结构存储后的数据区块中创建列结构存储识别信息
将列结构存储识别信息放到区块头部结构中
…//省略,原来的代码
}
这样就实现了数据区块的按列结构存储。
基于同一发明构思,本发明实施例还提供了一种数据区块的存储装置,由于该数据区块的存储装置解决问题的原理与上述数据区块的存储方法相似,因此,该数据区块的存储置的实施可以参见数据区块的存储方法的实施,重复之处不再赘述。
本发明实施例提供的一种数据区块的存储装置,如图2所示,包括:
处理模块201,用于在区块链中写入新数据区块之前,对新数据区块的交易记录结构中的各行交易记录数据进行转换为按列结构存储的处理;
创建模块202,用于在按列结构存储后的新数据区块中创建列结构存储识别信息;
存储模块203,用于将具有列结构存储识别信息的新数据区块存储到区块链中。
在具体实施时,在本发明实施例还提供的数据区块的存储装置中,处理模块201,具体可以用于根据新数据区块的交易记录结构中的各行交易记录数据的属性信息,将属性信息相同的交易记录数据存储在同一列中。
在具体实施时,在本发明实施例还提供的数据区块的存储装置中,创建模块202创建的列结构存储识别信息,具体可以包括:
列结构存储标识信息;
按列结构存储前的各行交易记录数据的存储空间信息;
按列结构存储后各列交易记录数据的属性信息。
在具体实施时,在本发明实施例还提供的数据区块的存储装置中,创建模块202,具体可以用于在按列结构存储后的新数据区块的头部结构中创建列结构存储识别信息。
相应地,本发明实施例还提供了一种数据区块的读取方法,如图3所示,包括以下步骤:
S301、在确定需要读取的区块链存储的数据区块中是否存在列结构存储识别信息时,读取区块链存储的数据区块中的列结构存储识别信息;
S302、根据读取到的列结构存储识别信息,在数据区块的交易记录结构中读取对应列的交易记录数据。
具体地,在本发明实施例提供的数据区块的读取方法的步骤S301中在确定需要读取的区块链存储的数据区块中是否存在列结构存储识别信息时,具体可以包括以下步骤:
确定需要读取的区块链存储的数据区块中是否存在列结构存储识别信息;
确定需要读取的区块链存储的数据区块中存在列结构存储识别信息。
在具体实施时,由于列结构存储识别信息存储在数据区块的头部结构中,因此,在本发明实施例提供的数据区块的读取方法的步骤S301中读取区块链存储的数据区块中的列结构存储识别信息,具体可以通过以下方式实现:
在区块链存储的数据区块的头部结构中读取列结构存储识别信息。
具体地,在本发明实施例提供的数据区块的读取方法中读取的列结构存储识别信息,具体可以包括:列结构存储标识信息,按列结构存储前的各行交易记录数据的存储空间信息,按列结构存储后各列交易记录数据的属性信息。
进一步地,这些信息可以用来读取按列结构存储的数据区块中的交易记录数据,基于此,在本发明实施例提供的数据区块的读取方法的步骤S302根据读取到的列结构存储识别信息,在数据区块的交易记录结构中读取对应列的交易记录数据中,具体可以通过以下方式实现:
根据各列交易记录数据的属性信息,在数据区块的交易记录结构中读取对应列的交易记录数据。
为了更好地理解本发明的技术方案,本发明实施例提供了数据区块按列读取的详细过程,具体如下:
在区块链客户端程序读取数据区块的方法中内嵌上述读取方法,根据识别信息动态读取按列结构存储的数据区块中对应列的交易记录数据。即在读取数据区块方法中添加如下内容:
{
…//省略,原来的代码
读取区块头部结构中的列结构存储识别信息
根据列结构存储识别信息分析要读取的交易记录列信息,按照交易记录列读取区块中对应的交易记录列数据并进行处理
…//省略,原来的代码
}
从而实现了对按列结构存储的数据区块的交易记录数据的精确读取。
基于同一发明构思,本发明实施例还提供了一种数据区块的读取装置,由于该数据区块的读取装置解决问题的原理与上述数据区块的读取方法相似,因此,该数据区块的读取置的实施可以参见数据区块的读取方法的实施,重复之处不再赘述。
本发明实施例提供的一种数据区块的读取装置,如图4所示,包括:
确定模块401,用于确定需要读取的区块链存储的数据区块中是否存在列结构存储识别信息;
第一读取模块402,用于在确定区块链存储的数据区块中存在列结构存储识别信息时,读取区块链存储的数据区块中的列结构存储识别信息;
第二读取模块403,用于根据读取到的列结构存储识别信息,在数据区块的交易记录结构中读取对应列的交易记录数据。
在具体实施时,在本发明实施例提供的数据区块的读取装置中,第一读取模块402,具体可以用于在确定需要读取的区块链存储的数据区块中存在列结构存储识别信息时,在区块链存储的数据区块的头部结构中读取列结构存储识别信息。
在具体实施时,在本发明实施例提供的数据区块的读取装置中,列结构存储识别信息,具体可以包括:列结构存储标识信息,按列结构存储前的各行交易记录数据的存储空间信息,按列结构存储后各列交易记录数据的属性信息;
第二读取模块403,具体可以用于根据各列交易记录数据的属性信息,在数据区块的交易记录结构中读取对应列的交易记录数据。
相应地,本发明实施例还提供了一种区块链,包括:多个数据区块;其中,至少部分数据区块的交易记录结构中的各交易记录数据按列结构存储。即区块链中部分数据区块的交易记录结构中的各交易记录数据按列结构存储,其余数据区块的交易记录结构中的各交易记录数据按行结构存储;或者,全部数据区块的交易记录结构中的各交易记录数据按列结构存储。
在具体实施时,在本发明实施例提供的区块链中,在同一按列结构存储的数据区块中,各列结构所占行数相同;
各按列结构存储的数据区块中,存在列结构行数或列结构列数与其他数据区块不同的数据区块。
具体地,在本发明实施例提供的区块链中,如表3所示,在同一按列结构存储的数据区块中,各列结构所占行数均为5。在各按列结构存储的数据区块中,各列结构可以是统一完备的格式,例如可以是如表3所示的存储格式,各列结构均为5行6列;当然,各列结构也可以是不同的格式,例如,A数据区块和B数据区块是同一区块链中任意两个按列结构存储的数据区块,其中,A数据区块的列结构可以是3行4列,B数据区块的列式结构可以是7行2列。这样设置,使得在未来交易记录数据细节信息发生变化时,比如增加了新的交易明细属性信息,可以通过扩展列来应对。
较佳地,在本发明实施例提供的区块链中,可以根据交易记录数据的全部属性信息进行设置列结构,将交易属性信息的数量设为列结构的列数,将交易属性信息的行数设为列结构的行数。例如,某一数据区块的交易记录数据具有3个属性信息,分别为生成时间信息、支出数量信息、交易的数字签名信息;且3个属性信息的行数是5。于是,该数据区块的列结构可以是5行3列。可以看出,当未来该数据区块的交易记录数据细节信息发生变化时,比如增加了新的交易明细属性信息,可以通过扩展列来应对。
本发明实施例提供的上述数据区块的存储方法、读取方法、装置及区块链,该存储方法包括在区块链中写入新数据区块之前,对新数据区块的交易记录结构中的各行交易记录数据进行转换为按列结构存储的处理;在按列结构存储后的新数据区块中创建列结构存储识别信息;将具有列结构存储识别信息的新数据区块存储到区块链中。由于各交易记录行数据转换成了交易记录列数据,并且在区块中创建了列结构存储识别信息,因此,在查询交易记录数据时,只需根据列结构存储识别信息查询对应列的交易记录数据,无需查询全部交易记录数据,从而大量减少了系统IO操作,避免了资源浪费,进而可以支持大容量、高并发的查询要求,有利于数据的高效处理。此外,可通过对列式存储结构进行扩展,来应对未来交易记录细节信息发生的变化。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (16)

1.一种数据区块的存储方法,其特征在于,包括:
对新数据区块的交易记录结构中的各行交易记录数据进行转换为按列结构存储的处理;
在按列结构存储后的所述新数据区块中创建列结构存储识别信息;
将具有所述列结构存储识别信息的所述新数据区块存储到所述区块链中。
2.如权利要求1所述的存储方法,其特征在于,所述对所述新数据区块的交易记录结构中的各行交易记录数据进行转换为按列结构存储的处理,具体包括:
根据所述新数据区块的交易记录结构中的各行交易记录数据的属性信息,将属性信息相同的交易记录数据存储在同一列中。
3.如权利要求2所述的存储方法,其特征在于,所述列结构存储识别信息,具体包括:
列结构存储标识信息;
按列结构存储前的各行交易记录数据的存储空间信息;
按列结构存储后各列交易记录数据的属性信息。
4.如权利要求1-3任一项所述的存储方法,其特征在于,所述在按列结构存储后的所述新数据区块中创建列结构存储识别信息,具体包括:
在按列结构存储后的所述新数据区块的头部结构中创建所述列结构存储识别信息。
5.一种数据区块的读取方法,其特征在于,包括:
在确定需要读取的区块链存储的数据区块中是否存在列结构存储识别信息时,读取所述区块链存储的数据区块中的列结构存储识别信息;
根据读取到的所述列结构存储识别信息,在所述数据区块的交易记录结构中读取对应列的交易记录数据。
6.如权利要求5所述的读取方法,其特征在于,所述读取所述区块链存储的数据区块中的列结构存储识别信息,具体包括:
在所述区块链存储的数据区块的头部结构中读取所述列结构存储识别信息。
7.如权利要求5或6所述的读取方法,其特征在于,所述列结构存储识别信息,具体包括:列结构存储标识信息,按列结构存储前的各行交易记录数据的存储空间信息,按列结构存储后各列交易记录数据的属性信息;
根据读取到的所述列结构存储识别信息,在所述数据区块的交易记录结构中读取对应列的交易记录数据,具体包括:
根据所述各列交易记录数据的属性信息,在所述数据区块的交易记录结构中读取对应列的交易记录数据。
8.一种区块链,其特征在于,包括:多个数据区块;其中,至少部分所述数据区块的交易记录结构中的各交易记录数据按列结构存储。
9.如权利要求8所述的区块链,其特征在于,在同一按列结构存储的数据区块中,各列结构所占行数相同;
各按列结构存储的数据区块中,存在列结构行数或列结构列数与其他数据区块不同的数据区块。
10.一种数据区块的存储装置,其特征在于,包括;
处理模块,用于对新数据区块的交易记录结构中的各行交易记录数据进行转换为按列结构存储的处理;
创建模块,用于在按列结构存储后的所述新数据区块中创建列结构存储识别信息;
存储模块,用于将具有所述列结构存储识别信息的所述新数据区块存储到所述区块链中。
11.如权利要求10所述的存储装置,其特征在于,所述处理模块,具体用于根据所述新数据区块的交易记录结构中的各行交易记录数据的属性信息,将属性信息相同的交易记录数据存储在同一列中。
12.如权利要求10所述的存储装置,其特征在于,所述创建模块创建的所述列结构存储识别信息,具体包括:
列结构存储标识信息;
按列结构存储前的各行交易记录数据的存储空间信息;
按列结构存储后各列交易记录数据的属性信息。
13.如权利要求10-12任一项所述的存储装置,其特征在于,
所述创建模块,具体用于在按列结构存储后的所述新数据区块的头部结构中创建所述列结构存储识别信息。
14.一种数据区块的读取装置,其特征在于,包括:
确定模块,用于确定需要读取的区块链存储的数据区块中是否存在列结构存储识别信息;
第一读取模块,用于在确定所述区块链存储的数据区块中存在列结构存储识别信息时,读取所述区块链存储的数据区块中的列结构存储识别信息;
第二读取模块,用于根据读取到的所述列结构存储识别信息,在所述数据区块的交易记录结构中读取对应列的交易记录数据。
15.如权利要求14所述的读取装置,其特征在于,所述第一读取模块,具体用于在确定需要读取的区块链存储的数据区块中存在列结构存储识别信息时,在所述区块链存储的数据区块的头部结构中读取所述列结构存储识别信息。
16.如权利要求14或15所述的读取装置,其特征在于,所述列结构存储识别信息,具体包括:列结构存储标识信息,按列结构存储前的各行交易记录数据的存储空间信息,按列结构存储后各列交易记录数据的属性信息;
所述第二读取模块,具体用于根据所述各列交易记录数据的属性信息,在所述数据区块的交易记录结构中读取对应列的交易记录数据。
CN201610950305.8A 2016-10-26 2016-10-26 一种数据区块的存储方法、读取方法、其装置及区块链 Active CN107992492B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610950305.8A CN107992492B (zh) 2016-10-26 2016-10-26 一种数据区块的存储方法、读取方法、其装置及区块链

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610950305.8A CN107992492B (zh) 2016-10-26 2016-10-26 一种数据区块的存储方法、读取方法、其装置及区块链

Publications (2)

Publication Number Publication Date
CN107992492A true CN107992492A (zh) 2018-05-04
CN107992492B CN107992492B (zh) 2020-06-30

Family

ID=62029422

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610950305.8A Active CN107992492B (zh) 2016-10-26 2016-10-26 一种数据区块的存储方法、读取方法、其装置及区块链

Country Status (1)

Country Link
CN (1) CN107992492B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109714398A (zh) * 2018-12-11 2019-05-03 新华三技术有限公司 数据存储方法和装置
CN109741192A (zh) * 2018-11-15 2019-05-10 深圳壹账通智能科技有限公司 基于区块链的数据存储方法、装置、设备及可读存储介质
CN109815226A (zh) * 2018-12-13 2019-05-28 平安科技(深圳)有限公司 基于区块链的数据存储方法、装置、设备和存储介质
CN110543526A (zh) * 2019-10-31 2019-12-06 成都四方伟业软件股份有限公司 一种基于区块链的优化储存方法及系统
CN111291037A (zh) * 2018-11-22 2020-06-16 中国移动通信集团重庆有限公司 一种数据存储和查询方法、装置、设备及计算机存储介质
WO2020098843A3 (en) * 2019-11-08 2020-08-20 Alipay (Hangzhou) Information Technology Co., Ltd. System and method for blockchain-based data synchronization
US11086621B2 (en) 2019-11-08 2021-08-10 Alipay (Hangzhou) Information Technology Co., Ltd. System and method for blockchain-based decentralized application development

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040205387A1 (en) * 2002-03-21 2004-10-14 Kleiman Steven R. Method for writing contiguous arrays of stripes in a RAID storage system
US20140074805A1 (en) * 2009-04-30 2014-03-13 Oracle International Corportion Storing compression units in relational tables
CN105741095A (zh) * 2016-01-29 2016-07-06 彭军红 一种区块链动态压缩存取方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040205387A1 (en) * 2002-03-21 2004-10-14 Kleiman Steven R. Method for writing contiguous arrays of stripes in a RAID storage system
US20140074805A1 (en) * 2009-04-30 2014-03-13 Oracle International Corportion Storing compression units in relational tables
CN105741095A (zh) * 2016-01-29 2016-07-06 彭军红 一种区块链动态压缩存取方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DIMITRA PAPADOPOULOU: ""Blockchain: Any experiences with NoSQL? Any suggestions for alternatives?"", 《HTTPS://WWW.RESEARCHGATE.NET/POST/BLOCKCHAIN_ANY_EXPERIENCES_WITH_NOSQL_ANY_SUGGESTIONS_FOR_ALTERNATIVES》 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109741192A (zh) * 2018-11-15 2019-05-10 深圳壹账通智能科技有限公司 基于区块链的数据存储方法、装置、设备及可读存储介质
CN111291037A (zh) * 2018-11-22 2020-06-16 中国移动通信集团重庆有限公司 一种数据存储和查询方法、装置、设备及计算机存储介质
CN109714398A (zh) * 2018-12-11 2019-05-03 新华三技术有限公司 数据存储方法和装置
CN109714398B (zh) * 2018-12-11 2021-09-21 新华三技术有限公司 数据存储方法和装置
CN109815226A (zh) * 2018-12-13 2019-05-28 平安科技(深圳)有限公司 基于区块链的数据存储方法、装置、设备和存储介质
CN109815226B (zh) * 2018-12-13 2023-10-31 平安科技(深圳)有限公司 基于区块链的数据存储方法、装置、设备和存储介质
CN110543526A (zh) * 2019-10-31 2019-12-06 成都四方伟业软件股份有限公司 一种基于区块链的优化储存方法及系统
CN110543526B (zh) * 2019-10-31 2020-05-19 成都四方伟业软件股份有限公司 一种基于区块链的优化储存方法及系统
WO2020098843A3 (en) * 2019-11-08 2020-08-20 Alipay (Hangzhou) Information Technology Co., Ltd. System and method for blockchain-based data synchronization
US11086621B2 (en) 2019-11-08 2021-08-10 Alipay (Hangzhou) Information Technology Co., Ltd. System and method for blockchain-based decentralized application development
US11163775B2 (en) 2019-11-08 2021-11-02 Alipay (Hangzhou) Information Technology Co., Ltd. System and method for implementing a blockchain-based decentralized application
US11429617B2 (en) 2019-11-08 2022-08-30 Alipay (Hangzhou) Information Technology Co., Ltd. System and method for blockchain-based data synchronization

Also Published As

Publication number Publication date
CN107992492B (zh) 2020-06-30

Similar Documents

Publication Publication Date Title
CN107992492A (zh) 一种数据区块的存储方法、读取方法、其装置及区块链
CN111177302B (zh) 业务单据处理方法、装置、计算机设备和存储介质
CN102867071B (zh) 一种网管海量历史数据管理方法
CN109189785A (zh) 数据存储方法、装置、计算机设备及存储介质
US20100161565A1 (en) Cluster data management system and method for data restoration using shared redo log in cluster data management system
CN110162526A (zh) 一种块链式账本中数据记录的查询方法、装置及设备
CN106156070B (zh) 一种查询方法、文件合并方法与相关装置
CN104281717B (zh) 一种建立海量id映射关系的方法
JP2021518021A (ja) データ処理方法、装置及びコンピュータ読み取り可能な記憶媒体
CN107402950A (zh) 基于分库分表的文件处理方法和装置
CN111352935A (zh) 一种块链式账本中的索引创建方法、装置及设备
WO2019100853A1 (zh) 分页查询方法及装置和电子设备
CN105630934A (zh) 一种数据统计方法及系统
CN110222042A (zh) 用于确定已核对业务数据的方法、装置、设备及系统架构
CN108269131A (zh) 一种基于ascii码的用户信息签到方法及装置
CN108268216A (zh) 数据处理方法、装置及服务器
CN108399175B (zh) 一种数据存储、查询方法及其装置
CN100410945C (zh) 一种实现论坛的方法及系统
CN110460686A (zh) 一种区块链地址注册方法和装置
CN103077214A (zh) 文件存储方法及装置
CN112906064B (zh) 生成描述信息的方法及装置
CN106570005A (zh) 清理数据库的方法和装置
CN114244905B (zh) 数据转发方法、装置、计算机设备和存储介质
CN113360095B (zh) 硬盘数据管理方法、装置、设备及介质
CN107861956B (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