CN110457398A - 区块数据存储方法及装置 - Google Patents

区块数据存储方法及装置 Download PDF

Info

Publication number
CN110457398A
CN110457398A CN201910757151.4A CN201910757151A CN110457398A CN 110457398 A CN110457398 A CN 110457398A CN 201910757151 A CN201910757151 A CN 201910757151A CN 110457398 A CN110457398 A CN 110457398A
Authority
CN
China
Prior art keywords
data
block
nontransaction
transaction
stored
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
Application number
CN201910757151.4A
Other languages
English (en)
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.)
Guangzhou Ant Bit Block Chain Technology Co Ltd
Original Assignee
Guangzhou Ant Bit Block Chain Technology 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 Guangzhou Ant Bit Block Chain Technology Co Ltd filed Critical Guangzhou Ant Bit Block Chain Technology Co Ltd
Priority to CN201910757151.4A priority Critical patent/CN110457398A/zh
Publication of CN110457398A publication Critical patent/CN110457398A/zh
Pending legal-status Critical Current

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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange

Abstract

本申请提供一种区块数据存储方法及装置,涉及区块链技术领域。该方法包括:获取区块数据;识别所述区块数据中的区块头数据和区块体数据,并识别所述区块体数据中的交易数据和非交易数据;分别将所述区块头数据、所述交易数据和所述非交易数据存储在各自对应的数据库或同一数据库的不同表中。该区块数据存储方法通过识别出区块数据中的区块头数据、交易数据和非交易数据,并对上述三种数据分数据库进行存储,提高了数据存储及数据查询的效率。

Description

区块数据存储方法及装置
技术领域
本申请涉及区块链技术领域,具体而言,涉及一种区块数据存储方法及装置。
背景技术
如今区块链技术的发展越来越快,区块链技术也迅速被应用到各个领域,在基于区块链实现交易记录、产品溯源等时都需要将大量的数据存储在区块中。通常的区块链在打包数据时,通常是将一个区块的所有信息放在一个区块中,且将区块作为一个整体存储到一个数据库中,区块具有不可分割性,因而,在数据存储或数据查询时存在效率低的问题。
发明内容
有鉴于此,本申请实施例的目的在于提供一种区块数据存储方法及装置,以改善现有技术中区块数据在进行数据存储或数据查询存在效率低的问题。
本申请实施例提供了一种区块数据存储方法,所述区块数据存储方法包括:获取区块数据;识别所述区块数据中的区块头数据和区块体数据,并识别所述区块体数据中的交易数据和非交易数据;分别将所述区块头数据、所述交易数据和所述非交易数据存储在各自对应的数据库或同一数据库的不同表中。
在上述实现过程中,通过识别区块头数据、交易数据和非交易数据,并将区块头数据、所述交易数据和所述非交易数据分别存储在对应的数据库中,实现了交易数据和其他数据的分离,避免在查询某一类数据时在统一的数据库中加载出其他类数据,使得分别查询每一类数据都更加便捷,降低了系统资源的占用,相较于传统区块链技术将三类数据整合存储,将三者拆分存储便于对每一类数据的单独操作,也提高了节点数据同步的效率。
可选地,所述识别所述区块体数据中的交易数据和非交易数据,包括:确定所述区块体数据中包含交易数据标识的数据为交易数据,包含非交易数据标识的数据为非交易数据;其中,所述交易数据标识在所述交易数据生成时被添加在所述交易数据中,所述非交易数据标识在所述非交易数据生成时被添加在所述非交易数据中。
在上述实现过程中,基于预先添加的交易数据标识和非交易数据标识区分交易数据和非交易数据,能够基于标识进行识别区块体数据中的交易数据和非交易数据,提高了识别效率。
可选地,所述分别将所述区块头数据、所述交易数据和所述非交易数据存储在各自对应的数据库或同一数据库的不同表中,包括:将所述交易数据对应的交易数据库中的目标区块划分为多个物理分片;基于预设规则将所述交易数据划分为多个逻辑分片;将每个逻辑分片存储在用于存储对应大小逻辑分片的物理分片中。
在上述实现过程中,在存储交易数据时,采用数据分片方式对其进行分片存储,细化了各部分交易数据的存储区域,从而进一步提高了交易数据查询时的效率。
可选地,所述分别将所述区块头数据、所述交易数据和所述非交易数据存储在各自对应的不同数据库中,包括:将所述非交易数据对应的非交易数据库中的目标区块划分为多个物理分片;基于预设规则将所述非交易数据划分为多个逻辑分片;将每个逻辑分片存储在用于存储对应大小逻辑分片的物理分片中。
在上述实现过程中,在存储非交易数据时,采用数据分片方式对其进行分片存储,细化了各部分非交易数据的存储区域,从而进一步提高了非交易数据查询时的效率。
可选地,在所述将每个逻辑分片存储在用于存储对应大小逻辑分片的物理分片中之前,所述方法还包括:基于图数据结构链接每个逻辑分片。
在上述实现过程中,基于数据的图结构对每个逻辑分片进行链接后存储,使数据打包时能够多线同时进行,从而提高了数据存储效率。
可选地,在所述分别将所述区块头数据、所述交易数据和所述非交易数据存储在各自对应的不同数据库中之前,所述方法还包括:将所述区块数据中的区块索引链接到所述区块头数据,所述区块头数据连接到所述区块体数据,以使所述区块体数据依次逐级关联。
在上述实现过程中,将区块索引、区块头数据和区块体数据逐级链接,形成存储位置关系,方便在进行数据查询时在数据库中对目标数据进行精确的查询定位,从而提高了区块数据的查询效率和准确度。
本申请实施例还提供了一种区块数据存储装置,所述区块数据存储装置包括:获取模块,用于获取区块数据;分类模块,用于识别所述区块数据中的区块头数据和区块体数据,并识别所述区块体数据中的交易数据和非交易数据;存储模块,用于分别将所述区块头数据、所述交易数据和所述非交易数据存储在各自对应的数据库或同一数据库的不同表中。
在上述实现过程中,通过识别区块头数据、交易数据和非交易数据,并将区块头数据、交易数据和非交易数据分别存储在对应的数据库中,实现了交易数据和其他数据的分离,避免在查询某一类数据时在统一的数据库中加载出其他类数据,使得分别查询每一类数据都更加便捷,降低了系统资源的占用,相较于传统区块链技术将三类数据整合存储,将三者拆分存储便于对每一类数据的单独操作,也提高了节点数据同步的效率。
可选地,所述分类模块用于确定所述区块体数据中包含交易数据标识的数据为交易数据,包含非交易数据标识的数据为非交易数据;其中,所述交易数据标识在所述交易数据生成时被添加在所述交易数据中,所述非交易数据标识在所述非交易数据生成时被添加在所述非交易数据中。
在上述实现过程中,基于预先添加的交易数据标识和非交易数据标识区分交易数据和非交易数据,能够基于标识进行识别区块体数据中的交易数据和非交易数据,提高了识别效率。
可选地,所述存储模块包括:物理分片单元,用于将所述交易数据对应的交易数据库中的目标区块划分为多个物理分片;逻辑分片单元,用于基于预设规则将所述交易数据划分为多个逻辑分片;分片存储单元,用于将每个逻辑分片存储在用于存储对应大小逻辑分片的物理分片中。
在上述实现过程中,在存储交易数据时,采用数据分片方式对其进行分片存储,细化了各部分交易数据的存储区域,从而进一步提高了交易数据查询时的效率。
可选地,所述物理分片单元还用于将所述非交易数据对应的非交易数据库中的目标区块划分为多个物理分片;所述逻辑分片单元还用于基于预设规则将所述非交易数据划分为多个逻辑分片;所述分片存储单元还用于将每个逻辑分片存储在用于存储对应大小逻辑分片的物理分片中。
在上述实现过程中,在存储非交易数据时,采用数据分片方式对其进行分片存储,细化了各部分非交易数据的存储区域,从而进一步提高了非交易数据查询时的效率。
可选地,所述存储模块还包括分片链接单元,用于基于图数据结构链接每个逻辑分片。
在上述实现过程中,基于数据的图结构对每个逻辑分片进行链接后存储,使数据打包时能够多线同时进行,从而提高了数据存储效率。
可选地,所述存储模块还包括逐级关联单元,用于将所述区块数据中的区块索引链接到所述区块头数据,所述区块头数据连接到所述区块体数据,以使所述区块体数据依次逐级关联。
在上述实现过程中,将区块索引、区块头数据和区块体数据逐级链接,形成存储位置关系,方便在进行数据查询时在数据库中对目标数据进行精确的查询定位,从而提高了区块数据的查询效率和准确度。
本申请实施例还提供了一种电子设备,所述电子设备包括存储器和处理器,所述存储器中存储有程序指令,所述处理器读取并运行所述程序指令时,执行任一项所述方法中的步骤。
本申请实施例还提供了一种可读取存储介质,所述可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行任一项所述方法中的步骤。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种区块数据存储方法的流程示意图;
图2为本申请实施例提供的一种交易数据分片存储步骤的流程图;
图3为本申请实施例提供的一种非交易数据分片存储步骤的流程图;
图4为本申请实施例提供的一种区块数据存储装置的结构框图。
图标:20-区块数据存储装置;21-获取模块;22-分类模块;23-存储模块。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
经本申请人研究发现,现有的区块链技术中区块链节点在对区块数据进行存储时,通常是将一个区块的所有信息放在一个区块中,且将区块作为一个整体存储到一个数据库中。此种算法的缺点是不便于查询同类数据,例如,当需要检索出链上的交易信息时,必须通过检索区块,因而,会额外加载出区块信息和非交易信息,此种做法会浪费大量的内存,造成数据存储及检索的效率低下。
为了解决上述问题,本申请实施例提供了一种区块数据存储方法。请参考图1,图1为本申请实施例提供的一种区块数据存储方法的流程示意图。该区块数据存储方法的具体步骤可以如下:
步骤S12:获取区块数据。
区块链是一种按照时间顺序将区块以顺序相连的方式组合成的一种链式数据结构,每个区块分为区块头(Block Header)和区块体(Block)。区块头通常包括区块版本号(version)、前一区块哈希值(prevBlockHash)、根节点哈希值(hashMerkleRoot Merkle)、时间戳(time)、当前目标哈希值(bits)、随机数(Nonce)等数据中的至少一种。区块体(Block)用于记录一定时间内所生成的详细数据,包括当前区块经过验证的、区块创建过程中生成的所有交易记录或是其他信息,可以理解为账本的一种表现形式,其主要包含交易数据(transactions),以及交易数量占用字节(numTransactionsBytes)、交易数量(numTransactions)以及自定义数据等非交易数据。
步骤S14:识别所述区块数据中的区块头数据和区块体数据,并识别所述区块体数据中的交易数据和非交易数据。
在本步骤中可以通过区块头数据、交易数据和非交易数据的字段特征或预设标识对三者进行区分。
可选地,本实施例中的交易数据主要包括交易输入(inputs)和交易输出(outputs),还可以包括交易参考版本号(version)、输入数量(numInputs)、输出数量(numOutputs)、交易锁定时间(lockTime)等数据。非交易数据可以包括与交易相关联的相关数据,例如交易数据与石油相关时,非交易数据可以是与石油相关联的石油类型数据、石油运输数据等相关数据。应当理解的是,非交易数据还可以是自定义的与交易相关联的任意类型的数据。
步骤S16:分别将所述区块头数据、所述交易数据和所述非交易数据存储在各自对应的数据库或同一数据库的不同表中。
区块头数据通常用于向调用者提供关于区块的属性的操作,交易数据是具体关于交易的具体账单信息,非交易数据是与交易数据相关的属性信息或自定义上链信息,由于上述三种类型的数据类型和作用的不同,调用者在单次操作中通常基于某一目的只对其中一种类型的数据进行调用,从而本实施例通过上述方式采用不同的数据库对区块体数据、交易数据和非交易数据进行分别存储。
在上述实施例中,在进行区块数据的存储时识别区块头数据、交易数据和非交易数据,并将区块头数据、交易数据和非交易数据分别存储在对应的数据库中,实现了区块头数据、交易数据和非交易数据的物理性存储分离,避免在查询某一类数据时在统一的数据库中加载出其他类数据、对其他类型的数据进行操作,使得分别查询每一类数据都更加便捷,降低了系统资源的占用,相较于传统区块链技术将三类数据整合存储,将三者拆分存储便于对每一类数据的单独操作,也提高了节点数据同步的效率。
针对步骤S14,在识别区块头数据和区块体数据时,可以是基于区块头数据的预设字段大小对区块头数据和区块体数据进行划分。例如,区块头数据包括区块版本号(4字节)、前一区块哈希值(32字节)、根节点哈希值(32字节)、时间戳(4字节)、当前目标哈希(4字节)值、随机数(4字节)时,其预设字段大小可以是区块头数据的总大小80字节,在读取区块数据时,将前80字节大小的数据划分为区块头数据,将后续数据划分为区块体数据。
可选地,步骤S14中“识别所述区块体数据中的交易数据和非交易数据”可以具体包括:确定所述区块体数据中包含交易数据标识的数据为交易数据,包含非交易数据标识的数据为非交易数据。
其中,所述交易数据标识在所述交易数据生成时被添加在所述交易数据中,所述非交易数据标识在所述非交易数据生成时被添加在所述非交易数据中。应当理解的是,交易数据标识和非交易数据标识可以是自定义字符段。具体地,可以采用具体数据类型的英文名称、英文名称缩写作为交易数据标识和非交易数据标识,还可以是采用不同的特定字符作为交易标识和非交易标识,例如用字符“0”标识交易数据、字符“1”标识非交易数据。
作为一种可选的实施方式,本实施例在步骤S16之前可以包括数据库建立步骤,对应区块头数据、交易数据和非交易数据分别建立对应的区块头数据库、交易数据库和非交易数据库。应当理解的是,区块头数据库、交易数据库和非交易数据库可以分别属于不同物理节点,也可以是同属一个物理节点。
本实施例中的区块数据的数据量较大时,在进行数据存储或查询时需要加载的数据量较大,效率较低。因此针对步骤S16,本实施例可以采用数据分片方式改善上述问题。分片(Sharding)将一个数据分成两个或多个较小的块,称为逻辑分片(logical shards)。然后,逻辑分片(logical shards)分布在单独的数据库节点上,称为物理分片(physicalshards)。物理分片(physical shards)可以容纳多个逻辑分片(logical shards)。尽管如此,所有分片中保存的数据,共同代表整个逻辑数据集。数据库分片(Database shards)是无共享架构的一个例子。这意味着分片是自治的:分片间不共享任何相同的数据或服务器资源,因此通过分片,更有利于对区块头数据、交易数据和非交易数据中的某部分进行单独的操作,从而提高数据查询效率。
应当理解的是,除了将区块头数据、交易数据和非交易数据分别存储到不同的数据库,还可以是将区块头数据、交易数据和非交易数据分别存储在同一数据库的不同表中。同时,不同数据库的划分可以是基于数据库的物理特性进行划分,还可以是基于存储路径的不同进行虚拟区域划分,因此本实施例中也包含了同一数据库的不同表的情况。
请参考图2,图2为本申请实施例提供的一种交易数据分片存储步骤的流程图,具体步骤可以如下:
步骤S16.1:将所述交易数据对应的交易数据库中的目标区块划分为多个物理分片。
上述步骤中的目标区块可以是交易数据库中的任意存储空间,且物理分片的数量可以根据存储交易数据的具体需要进行灵活调整。
步骤S16.2:基于预设规则将所述交易数据划分为多个逻辑分片。
在对交易数据进行逻辑分片时,该预设规则可以是将交易数据中的每个单项交易划分为一个逻辑分片,也可以是从交易数据头部开始依次切分预设固定大小的部分数据作为逻辑分片。应当理解的是,逻辑分片的数量可以根据存储交易数据的具体需要进行灵活调整。
步骤S16.3:将每个逻辑分片存储在用于存储对应大小逻辑分片的物理分片中。
本实施例中的物理分片的存储量大小可以不同,例如,将交易数据库划分为0~1MB、1~5MB、5MB以上几个存储大小的物理分片,每个存储大小的物理分片数量可以根据需要进行调整,则在交易数据切分出的第一逻辑分片大小为300KB时将其存入0~1MB的物理分片,第二逻辑分片大小为2.3MB时将其存入1~5MB的物理分片,第三逻辑分片大小为5.6MB时将其存入5MB以上的物理分片,直至将所有逻辑分片存入对应大小的物理分片中。
在上述实施例中,在存储交易数据时,采用数据分片方式对其进行分片存储,将交易数据库进行物理分片,将交易数据进行逻辑分片,并基于物理分片和逻辑分片的大小对应存储,细化了各部分交易数据的存储区域,从而进一步提高了交易数据查询时的效率。
请参考图3,图3为本申请实施例提供的一种非交易数据分片存储步骤的流程图,具体步骤可以如下:
步骤S16.4:将所述非交易数据对应的交易数据库中的目标区块划分为多个物理分片。
上述步骤中的目标区块可以是非交易数据库中的任意存储空间,且物理分片的数量可以根据存储非交易数据的具体需要进行灵活调整。
步骤S16.5:基于预设规则将所述非交易数据划分为多个逻辑分片。
在对非交易数据进行逻辑分片时,该预设规则可以是将非交易数据中的每个单项数据划分为一个逻辑分片,也可以是从非交易数据头部开始依次切分预设固定大小的部分数据作为逻辑分片。应当理解的是,逻辑分片的数量可以根据存储费交易数据的具体需要进行灵活调整。
步骤S16.6:将每个逻辑分片存储在用于存储对应大小逻辑分片的物理分片中。
本实施例中的物理分片的存储量大小可以不同,例如,将非交易数据库划分为0~1MB、1~5MB、5MB以上几个存储大小的物理分片,每个存储大小的物理分片数量可以根据需要进行调整,则在非交易数据切分出的第一逻辑分片大小为300KB时将其存入0~1MB的物理分片,第二逻辑分片大小为2.3MB时将其存入1~5MB的物理分片,第三逻辑分片大小为5.6MB时将其存入5MB以上的物理分片,直至将所有逻辑分片存入对应大小的物理分片中。应当理解的是,非交易数据中可能包含有用户自定义或自主上传的与交易相关的其他数据,该类数据的大小可能较大,因此在进行物理分片或逻辑分片时可以据此增加如5MB以上的分片的大存储量分片的数量。
在上述实施例中,在存储非交易数据时,采用数据分片方式对其进行分片存储,将非交易数据库进行物理分片,将非交易数据进行逻辑分片,并基于物理分片和逻辑分片的大小对应存储,细化了各部分非交易数据的存储区域,从而进一步提高了非交易数据查询时的效率。
对交易数据和非交易数据进行分片存储时,在分片量较大时存在数据分散、割裂的问题,若一部分有关联的数据被划分为多个逻辑分片存储到多个物理分片中,则在进行查询操作加载该数据时无法迅速获取完整的相关数据。图(Graph)是由顶点和连接顶点的边构成的离散结构。在计算机科学中,图是最灵活的数据结构之一,图结构是指由若干个图形数据元素按一定关系所组成的有序集,一般称为表。如果这些数据元素之间具有邻接关系,成为线性表,否则称为非线性表。线性表是由若干个节点组成的有序组合。图结构中的数据关联可以是通过关系的链接实现,其是指图形数据中的每一个数据项的存放是无规则的,其间的连接是通过数据元素中指示连接单元的指针来实现,可以通过指针将各个物理分片关联起来。因此,作为一种可选的实施方式,在根据上述步骤对交易数据和非交易数据进行分片存储时,还可以基于图数据结构链接每个逻辑分片,通过图结构将每个逻辑分片进行关联,在对数据进行查询时通过图结构的关联对被查询数据的相关逻辑分片进行迅速、完整的获取,以便于更加方便、快捷地对数据进行查询。
应当理解的是,在通过图结构进行交易数据和非交易数据的分片存储时,区块头中默克尔树根可以基于图结构的连接关系生成。
作为一种可选的实施方式,步骤S16中还可以通过数据逐级关联的方式对区块数据进行分层存储。本实施例可以将区块数据中的区块索引链接到区块头数据,区块头数据连接到区块体数据,以使区块体数据依次逐级关联。
在进行数据查询时,确定具体数据所述的区块,找到该区块的区块索引,通过区块索引找到其区块头数据,然后根据区块头数据找到区块体数据中需要的具体数据,从而提高了查询效率。
本申请实施例还提供了一种区块数据存储装置20,该装置用于运行上述区块数据存储方法。请参考图4,图4为本申请实施例提供的一种区块数据存储装置的结构框图。
区块数据存储装置20包括获取模块21、分类模块22和存储模块23。
获取模块21,用于获取区块数据。
分类模块22,用于识别所述区块数据中的区块头数据和区块体数据,并识别所述区块体数据中的交易数据和非交易数据。
存储模块23,用于分别将所述区块头数据、所述交易数据和所述非交易数据存储在各自对应的数据库或同一数据库的不同表中。
其中,分类模块22还用于确定所述区块体数据中包含交易数据标识的数据为交易数据,包含非交易数据标识的数据为非交易数据。其中,所述交易数据标识在所述交易数据生成时被添加在所述交易数据中,所述非交易数据标识在所述非交易数据生成时被添加在所述非交易数据中。
可选地,存储模块23包括物理分片单元、逻辑分片单元和分片存储单元。
物理分片单元,用于将所述交易数据对应的交易数据库中的目标区块划分为多个物理分片。
逻辑分片单元,用于基于预设规则将所述交易数据划分为多个逻辑分片。
分片存储单元,用于将每个逻辑分片存储在用于存储对应大小逻辑分片的物理分片中。
进一步地,物理分片单元还用于将所述非交易数据对应的非交易数据库中的目标区块划分为多个物理分片。逻辑分片单元还用于基于预设规则将所述非交易数据划分为多个逻辑分片。分片存储单元还用于将每个逻辑分片存储在用于存储对应大小逻辑分片的物理分片中。
可选地,存储模块23还包括分片链接单元,其用于基于图数据结构链接每个逻辑分片。
除了分片链接单元的数据关联方式,本实施例中存储模块23还可以通过逐级关联单元进行数据链接,其用于将所述区块数据中的区块索引链接到所述区块头数据,所述区块头数据连接到所述区块体数据,以使所述区块体数据依次逐级关联。
为了更好地配合本实施例中的区块数据存储方法,本实施例还提供了一种电子设备,该电子设备包括存储器和处理器,所述存储器中存储有程序指令,所述处理器读取并运行所述程序指令时,执行区块数据存储方法中任一项所述方法中的步骤。
应当理解是,该电子设备可以是个人电脑(personal computer,PC)、平板电脑、智能手机、个人数字助理(personal digital assistant,PDA)等具有逻辑计算功能的电子设备。
综上所述,本申请实施例提供了一种区块数据存储方法及装置,所述区块数据存储方法包括:获取区块数据;识别所述区块数据中的区块头数据和区块体数据,并识别所述区块体数据中的交易数据和非交易数据;分别将所述区块头数据、所述交易数据和所述非交易数据存储在各自对应的数据库或同一数据库的不同表中。
在上述实现过程中,通过识别区块头数据、交易数据和非交易数据,并将区块头数据、所述交易数据和所述非交易数据分别存储在对应的数据库中,实现了交易数据和其他数据的分离,避免在查询某一类数据时在统一的数据库中加载出其他类数据,使得分别查询每一类数据都更加便捷,降低了系统资源的占用,相较于传统区块链技术将三类数据整合存储,将三者拆分存储便于对每一类数据的单独操作,也提高了节点数据同步的效率。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的框图显示了根据本申请的多个实施例的设备的可能实现的体系架构、功能和操作。在这点上,框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图中的每个方框、以及框图的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。因此本实施例还提供了一种可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行区块数据存储方法中任一项所述方法中的步骤。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RanDOm Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (9)

1.一种区块数据存储方法,其特征在于,所述方法包括:
获取区块数据;
识别所述区块数据中的区块头数据和区块体数据,并识别所述区块体数据中的交易数据和非交易数据;
分别将所述区块头数据、所述交易数据和所述非交易数据存储在各自对应的数据库或同一数据库的不同表中。
2.根据权利要求1所述的区块数据存储方法,其特征在于,所述识别所述区块体数据中的交易数据和非交易数据,包括:
确定所述区块体数据中包含交易数据标识的数据为交易数据,包含非交易数据标识的数据为非交易数据;
其中,所述交易数据标识在所述交易数据生成时被添加在所述交易数据中,所述非交易数据标识在所述非交易数据生成时被添加在所述非交易数据中。
3.根据权利要求1所述的区块数据存储方法,其特征在于,所述分别将所述区块头数据、所述交易数据和所述非交易数据存储在各自对应的数据库或同一数据库的不同表中,包括:
将所述交易数据对应的交易数据库中的目标区块划分为多个物理分片;
基于预设规则将所述交易数据划分为多个逻辑分片;
将每个逻辑分片存储在用于存储对应大小逻辑分片的物理分片中。
4.根据权利要求1所述的区块数据存储方法,其特征在于,所述分别将所述区块头数据、所述交易数据和所述非交易数据存储在各自对应的不同数据库中,包括:
将所述非交易数据对应的非交易数据库中的目标区块划分为多个物理分片;
基于预设规则将所述非交易数据划分为多个逻辑分片;
将每个逻辑分片存储在用于存储对应大小逻辑分片的物理分片中。
5.根据权利要求3或4所述的区块数据存储方法,其特征在于,在所述将每个逻辑分片存储在用于存储对应大小逻辑分片的物理分片中之前,所述方法还包括:
基于图数据结构链接每个逻辑分片。
6.根据权利要求1所述的区块数据存储方法,其特征在于,在所述分别将所述区块头数据、所述交易数据和所述非交易数据存储在各自对应的不同数据库中之前,所述方法还包括:
将所述区块数据中的区块索引链接到所述区块头数据,所述区块头数据连接到所述区块体数据,以使所述区块体数据依次逐级关联。
7.一种区块数据存储装置,其特征在于,所述装置包括:
获取模块,用于获取区块数据;
分类模块,用于识别所述区块数据中的区块头数据和区块体数据,并识别所述区块体数据中的交易数据和非交易数据;
存储模块,用于分别将所述区块头数据、所述交易数据和所述非交易数据存储在各自对应的数据库或同一数据库的不同表中。
8.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器中存储有程序指令,所述处理器读取并运行所述程序指令时,执行权利要求1-6任一项所述方法中的步骤。
9.一种可读取存储介质,其特征在于,所述可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行权利要求1-6任一项所述方法中的步骤。
CN201910757151.4A 2019-08-15 2019-08-15 区块数据存储方法及装置 Pending CN110457398A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910757151.4A CN110457398A (zh) 2019-08-15 2019-08-15 区块数据存储方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910757151.4A CN110457398A (zh) 2019-08-15 2019-08-15 区块数据存储方法及装置

Publications (1)

Publication Number Publication Date
CN110457398A true CN110457398A (zh) 2019-11-15

Family

ID=68487151

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910757151.4A Pending CN110457398A (zh) 2019-08-15 2019-08-15 区块数据存储方法及装置

Country Status (1)

Country Link
CN (1) CN110457398A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111177202A (zh) * 2019-12-13 2020-05-19 浙商银行股份有限公司 一种基于区块链的供应链金融系统数据查询优化方法及平台
CN112597153A (zh) * 2020-12-09 2021-04-02 杭州趣链科技有限公司 一种基于区块链的数据存储方法、装置及存储介质
US20210157792A1 (en) * 2019-11-22 2021-05-27 TmaxBI Co., Ltd. Technique for managing data in a blockchain network

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101122885A (zh) * 2007-09-11 2008-02-13 腾讯科技(深圳)有限公司 一种数据缓存处理方法、系统及数据缓存装置
CN102184260A (zh) * 2011-06-09 2011-09-14 中国人民解放军国防科学技术大学 一种云计算环境下的海量数据存取方法
CN106886560A (zh) * 2016-12-29 2017-06-23 北京瑞卓喜投科技发展有限公司 树形区块链的生成方法及系统
CN107239479A (zh) * 2017-03-28 2017-10-10 阿里巴巴集团控股有限公司 一种基于区块链的数据存储以及查询的方法及装置
CN109003184A (zh) * 2018-06-22 2018-12-14 中链科技有限公司 区块链资产管理方法及装置
CN109165221A (zh) * 2018-08-16 2019-01-08 北京京东尚科信息技术有限公司 区块链的数据存储方法、装置、区块链节点及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101122885A (zh) * 2007-09-11 2008-02-13 腾讯科技(深圳)有限公司 一种数据缓存处理方法、系统及数据缓存装置
CN102184260A (zh) * 2011-06-09 2011-09-14 中国人民解放军国防科学技术大学 一种云计算环境下的海量数据存取方法
CN106886560A (zh) * 2016-12-29 2017-06-23 北京瑞卓喜投科技发展有限公司 树形区块链的生成方法及系统
CN107239479A (zh) * 2017-03-28 2017-10-10 阿里巴巴集团控股有限公司 一种基于区块链的数据存储以及查询的方法及装置
CN109003184A (zh) * 2018-06-22 2018-12-14 中链科技有限公司 区块链资产管理方法及装置
CN109165221A (zh) * 2018-08-16 2019-01-08 北京京东尚科信息技术有限公司 区块链的数据存储方法、装置、区块链节点及存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210157792A1 (en) * 2019-11-22 2021-05-27 TmaxBI Co., Ltd. Technique for managing data in a blockchain network
CN111177202A (zh) * 2019-12-13 2020-05-19 浙商银行股份有限公司 一种基于区块链的供应链金融系统数据查询优化方法及平台
CN112597153A (zh) * 2020-12-09 2021-04-02 杭州趣链科技有限公司 一种基于区块链的数据存储方法、装置及存储介质
CN112597153B (zh) * 2020-12-09 2023-07-25 杭州趣链科技有限公司 一种基于区块链的数据存储方法、装置及存储介质

Similar Documents

Publication Publication Date Title
CN106844507B (zh) 一种数据批处理的方法及设备
CN104866434B (zh) 面向多应用的数据存储系统和数据存储、调用方法
US9858303B2 (en) In-memory latch-free index structure
Enríquez et al. Entity reconciliation in big data sources: A systematic mapping study
CN110457398A (zh) 区块数据存储方法及装置
CN106528579A (zh) 一种基于分库分表结构数据库的查询方法、装置及系统
CN102893281A (zh) 信息搜索设备、信息搜索方法、计算机程序和数据结构
JP2009110513A (ja) ワードの類似性を用いたオントロジーの自動生成
CN105677904B (zh) 基于分布式文件系统的小文件存储方法及装置
Li et al. ASLM: Adaptive single layer model for learned index
US20220019567A1 (en) Data storage using vectors of vectors
EP3940572A1 (en) Data generalization device, data generalization method, and program
CN111045994B (zh) 一种基于kv数据库的文件分类检索方法及系统
Ravichandran Big Data processing with Hadoop: a review
Silva et al. An experimental survey of MapReduce-based similarity joins
Hartveld et al. An LSH-based model-words-driven product duplicate detection method
JP2007048318A (ja) リレーショナルデータベースの処理方法およびリレーショナルデータベース処理装置
JP2015162042A (ja) インデックス管理装置
Sumrall et al. Investigations on path indexing for graph databases
US7162505B2 (en) Classification of data for insertion into a database
JP2009187211A (ja) 情報検索システム、情報検索方法およびプログラム
CN104834664A (zh) 面向光盘库的全文检索系统
EP3940571A1 (en) Data substitution device, data substitution method, and program
Davidson et al. Boolean Logical Operator Driven Selective Data Filtering For Large Datasets
Peschel et al. Algebra for complex analysis of data

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20191115