CN109165221A - 区块链的数据存储方法、装置、区块链节点及存储介质 - Google Patents

区块链的数据存储方法、装置、区块链节点及存储介质 Download PDF

Info

Publication number
CN109165221A
CN109165221A CN201810937201.2A CN201810937201A CN109165221A CN 109165221 A CN109165221 A CN 109165221A CN 201810937201 A CN201810937201 A CN 201810937201A CN 109165221 A CN109165221 A CN 109165221A
Authority
CN
China
Prior art keywords
data
merkle tree
key
generated
block chain
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
CN201810937201.2A
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.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information 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 Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201810937201.2A priority Critical patent/CN109165221A/zh
Publication of CN109165221A publication Critical patent/CN109165221A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供一种区块链的数据存储方法、装置、区块链节点及存储介质,该方法包括:获取待处理交易数据,所述待处理交易数据对应多种操作类型;根据不同种类的操作类型,生成所述待处理交易数据对应的第一键值数据,并根据所述第一键值数据进行存储。通过将交易数据根据操作类型划分为多个粒度数据,并以键值数据形式进行分布式存储,提高了数据管理的灵活性及数据管理效率。

Description

区块链的数据存储方法、装置、区块链节点及存储介质
技术领域
本申请涉及区块链技术领域,尤其涉及一种区块链的数据存储方法、装置、区块链节点及存储介质。
背景技术
随着科学技术的飞速发展,数据安全性也越来越重要,区块链技术由于其不可篡改不可伪造等特点随之发挥越来越重要的功能。
现有技术中,处于同一区块链网络中的各区块链节点共同维护一条区块链,用于存储交易数据。
但是,现有的区块链技术,是以块数据整体保存,导致存储大小受限,且对数据管理不方便。
发明内容
本申请提供一种区块链的数据存储方法、装置、区块链节点及存储介质,以解决现有技术数据管理效率低等缺陷。
本申请第一个方面提供一种区块链的数据存储方法,包括:
获取待处理交易数据,所述待处理交易数据对应多种操作类型;
根据不同种类的操作类型,生成所述待处理交易数据对应的第一键值数据,并根据所述第一键值数据进行存储。
本申请第二个方面提供一种区块链的数据存储装置,包括:
获取模块,用于获取待处理交易数据,所述待处理交易数据对应多种操作类型;
处理模块,用于根据不同种类的操作类型,生成所述待处理交易数据对应的第一键值数据,并根据所述第一键值数据进行存储。
本申请第三个方面提供一种区块链节点,包括:至少一个处理器和存储器;
所述存储器存储计算机程序;所述至少一个处理器执行所述存储器存储的计算机程序,以实现第一个方面提供的方法。
本申请第四个方面提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,所述计算机程序被执行时实现第一个方面提供的方法。
本申请提供的区块链的数据存储方法、装置、区块链节点及存储介质,通过将交易数据根据操作类型划分为多个粒度数据,并以键值数据形式进行分布式存储,提高了数据管理的灵活性及数据管理效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的区块链系统的结构示意图;
图2为本申请一实施例提供的区块链的数据存储方法的流程示意图;
图3为本申请另一实施例提供的区块链的数据存储方法的流程示意图;
图4为本申请一实施例提供的区块链与merkle树及键值数据的关系示意图;
图5为本申请一实施例提供的区块链的数据存储装置的结构示意图;
图6为本申请一实施例提供的区块链节点的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
首先对本申请所涉及的名词进行解释:
业务类型:是指根据交易数据涉及的内容进行分类,比如交易数据为商品订单数据、商品信息溯源数据、供应链金融数据、商品基础数据、库存数据等等,即业务类型可以包括商品订单数据、商品信息溯源数据、供应链金融数据、商品基础数据、库存数据等等,还可以设置其他的业务类型。具体的业务类型可以根据实际需求进行设置,本申请不做限定。
操作类型:是指交易数据、merkle树、或区块中包含的信息的类型,比如一笔交易数据中包括具体的交易信息、账户信息、验证信息等操作类型,账户信息可以包括区块链地址、公钥、证书、身份等操作类型。merkle树包括根节点、中间节点、叶子节点等操作类型,区块中可以包括区块头信息、区块主体信息等类型,或者区块头信息中包括时间戳信息、随机数信息、对应的merkle树的根节点的哈希值等操作类型,操作类型可以根据实际需求进行设置,具体划分粒度也可以根据实际需求进行设置,本申请不做限定。
merkle树:merkle Tree,通常也被称作Hash Tree,顾名思义,就是存储hash(哈希)值的一棵树。merkle树的叶子(或称叶子节点)是数据块(例如,文件或者文件的集合)的hash值。非叶节点是其对应子节点串联字符串的hash。本申请实施例中,merkle树的叶子节点是细粒度化后的待处理交易数据的每个粒度数据的hash值。
创世区块:是指生成区块链时生成的第一个区块,即区块链最首个区块。
此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。在以下各实施例的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。
下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。
本申请实施例提供的区块链的数据存储方法,适用于以下场景:如图1所示,为本申请实施例提供的区块链系统的结构示意图。该区块链系统可以包括多个区块链节点,各区块链节点共同形成区块链网络。在实际应用中,用户可以通过终端向区块链网络中的区块链节点发起交易请求,提交待处理交易数据,该区块链节点根据待处理交易数据进行相应的数据处理,比如请求其他区块链节点对待处理交易数据进行共识处理、生成新区块、存储数据等等。
实施例一
本实施例提供一种区块链的数据存储方法,用于区块链的数据存储处理。本实施例的执行主体为区块链的数据存储,该装置可以设置在区块链节点中。
如图2所示,为本实施例提供的区块链的数据存储方法的流程示意图,该方法包括:
步骤101,获取待处理交易数据,待处理交易数据对应多种操作类型。
其中,待处理交易数据为用户通过终端提交的需要生成区块链的交易数据。这里的待处理交易数据中可以包括一种业务类型的交易数据也可以包括多种业务类型的交易数据,每种业务类型的交易数据可以包括一笔交易也可以包括多笔交易,本实施例不做限定。
操作类型是指交易数据、merkle树、或区块中包含的信息的类型,比如一笔交易数据中包括具体的交易信息、账户信息、验证信息等类型,账户信息可以包括区块链地址、公钥、证书、身份等信息。merkle树包括根节点、中间节点、叶子节点等类型,区块中可以包括区块头信息、区块主体信息等类型,或者区块头信息中包括时间戳信息、随机数信息、对应的merkle树的根节点的哈希值等等,操作类型可以根据实际需求进行设置,具体划分粒度也可以根据实际需求进行设置,比如还可以将账户信息再细化为区块链地址、公钥、证书、身份等信息,具体细化程度本申请不做限定。
这里对于待处理交易数据,比如商品订单数据,其可以包括具体的交易信息(商品信息、商品数量、客户信息等等)、账户信息(区块链地址、公钥、证书等)、验证信息(身份信息、签名信息)等操作类型,可以根据这些操作类型将待处理交易数据进行细粒度划分,划分成多个粒度数据。
步骤102,将所述待处理交易数据根据不同种类的操作类型进行存储。
具体的,在获取到待处理交易数据后,一方面需要将待处理交易数据进行入链处理,具体的生成区块加入到区块链的操作可以为现有技术,本实施例不做限定。另一方面,还需要将待处理交易数据进行存储,为了更方便地管理待处理交易数据,将待处理交易数据进行细粒度划分,划分成多个粒度数据,按照每个粒度数据进行存储。通过将交易数据划分成多个粒度数据进行存储,提高了数据管理的灵活性,解决了现有技术中以块数据整体保存导致在检索其中某一部分数据时,需要加载不相干的数据,降低处理性能的问题。并且由于太大的块数据总是难以处理,因此现有技术设置了区块大小的上限值导致存储大小受限制。
示例性的,可以将待处理交易数据细粒度划分后的每个粒度数据以键值数据进行存储,即KEY-VALUE数据分布式存储。为每个粒度数据生成一个键KEY,具体的粒度数据作为该KEY对应的VALUE,还可以将每个粒度数据以标识-粒度数据的形式进行存储。只要能够方便地找到每个粒度数据即可,具体形式本实施例不做限定。
步骤102具体可以包括:
步骤1021,根据不同种类的操作类型,生成待处理交易数据对应的第一键值数据。
步骤1022,根据第一键值数据进行存储。
其中,键值数据是指KEY-VALUE分布式存储形式的数据,“第一”只是为了与后续出现的第二键值数据区分,并无具体意义。即将待处理交易数据划分成的多个粒度数据采用键值KEY-VALUE形式进行分布式存储,进一步提高粒度数据管理的灵活性。
待处理交易数据可以包括目标区块链标识,目标区块链标识是指定的区块链的标识信息,用于告知区块链节点该待处理交易数据需要在哪个区块链上进行管理。区块链标识可以是在生成区块链的创世区块时为该区块链确定的。示例性的,可以根据创世区块所包括的区块信息生成的哈希值作为该创世区块对应的区块链的区块链标识。具体的,可以采用任意可实施的哈希算法生成创世区块所包括的区块信息的哈希值。创世区块所包括的区块信息可以包括区块头信息、区块主体信息等信息,其中,区块头信息具体还可以包括初始账户信息、随机数信息以及其他一些安全措施信息等等,本申请实施例不做限定。对于各类信息的具体体现形式,本申请实施例也不做限定,比如可能是经过加密的或经过哈希计算的,都可以根据实际需求进行设置。
本实施例提供的区块链的数据存储方法,通过将交易数据根据操作类型划分为多个粒度数据,并以键值数据形式进行分布式存储,提高了数据管理的灵活性及数据管理效率。
实施例二
本实施例对实施例一提供的方法做进一步补充说明。
如图3所示,为本实施例提供的区块链的数据存储方法的流程示意图。
作为一种可实施的方式,在上述实施例一的基础上,相应的,步骤1021之后,该方法还可以包括:
步骤2011,根据第一键值数据,生成默克尔merkle树,merkle树表征了第一键值数据的索引信息。
步骤2012,根据merkle树的根节点的哈希值,在目标区块链标识对应的区块链上生成新区块。
具体的,在将待处理交易数据按操作类型划分为多个粒度数据后,可以将各粒度数据形成该待处理交易数据对应的第一键值数据,即将粒度数据以键值KEY-VALUE的形式表示。然后,根据第一键值数据生成merkle树,merkle树表征了划分后的粒度数据的索引信息。根据merkle树的根节点的哈希值,在目标区块链标识对应的区块链上生成新区块,即生成的新区块的区块头信息包括了其对应的merkle树的根节点的哈希值。示例性的,根据新区块引用的父区块的哈希值、merkle树的根节点的哈希值、时间戳、随机数等,一起生成一个哈希值作为新区块的区块头信息。当然生成区块头信息的还可以包括其他一些相关信息,比如用于安全措施的信息等等,具体可以根据实际需求进行设置,本申请实施例不做限定。
可选地,第一键值数据至少包括两组第一键值对;步骤2011具体可以包括:
步骤20111,根据各第一键值对生成merkle树的叶子节点。
步骤20112根据merkle树的叶子节点,生成merkle树的根节点。
可选地,根据各第一键值对生成merkle树的叶子节点,具体可以包括:
根据第一键值对的键KEY及值VALUE,生成第一哈希值;根据第一哈希值,生成merkle树的叶子节点。
可选地,在根据merkle树的叶子节点,生成merkle树的根节点之后,方法还包括:
步骤202,将merkle树的各节点以第二键值数据进行存储。
具体的,对于merkle树的每个节点(包括根节点、叶子节点,或者还可能在叶子节点和根节点之间有中间节点),都可以采用键值的形式表示,并以键值数据进行存储,为了与上述第一键值数据区分,这里称为第二键值数据。即也可以将merkle树按照操作类型进行粒度划分,并将划分后的粒度数据按照键值对的形式存储,进一步提高区块链数据管理的灵活性。
每个叶子节点对应的VALUE是根据一个粒度数据(即第一键值数据)的KEY和VALUE的哈希获得的。
可选地,merkle树为二叉树,若第一键值数据包括的第一键值对的数量多于两组,则根据merkle树的叶子节点,生成merkle树的根节点,包括:
根据merkle树的每两个叶子节点的第二键值对,生成第二哈希值;根据第二哈希值,生成merkle树的中间节点;根据merkle树的每两个中间节点的第二键值对,生成第三哈希值;根据第三哈希值,生成merkle树的根节点。
如图4所示,为本实施例提供的区块链与merkle树及键值数据的关系示意图。其中,K表示KEY,V表示VALUE,K可以唯一标识V,即根据一个K可以唯一确定一个V。G0-G3分别表示各区块对应的根节点,Y表示叶子节点,M表示中间节点。V1和V2表示同一粒度数据的两个版本,即对某一粒度数据V1进行更改后变成V2。具体KEY-VALUE关联关系为现有技术,在此不再赘述。每个区块对应一个merkle树的根节点,随着区块的不断增加,前一区块所对应的根节点可能成为其相邻的后一区块的的子节点,因此,merkle树随着区块的增加不断增长,以这种方式维护区块链数据的完整性,并方便地维护区块与待处理交易数据划分后的每个粒度数据的关系,比如,从区块中可以获取其对应的根节点的哈希值、从该根节点的哈希值中可以获取该根节点下两个子节点(可能为中间节点)的哈希值、从子节点的哈希值中可以获取子节点下的二级子节点的哈希值,直至获取到叶子节点的哈希值,从叶子节点的哈希值中则可以获取每个粒度数据的哈希值,比如一个键值对KV的哈希值,从而可以从该键值对的哈希值中获取该键值对,也即可以获取一个粒度数据。因此,也可以称merkle树是表征了粒度数据的索引或路径。
需要说明的是,这里只是示意性的采用二叉树的merkle树,即每个节点下会有两个子节点,实际应用中,也可以采用三叉树、四叉树等等,具体可以根据实际需求设置,本申请实施例不限于采用二叉树。
可选地,该方法还可以包括:
步骤203,将新区块的区块头信息分解为对应的第三键值数据进行存储,区块头信息至少包括时间戳信息、随机数信息及对应的merkle树根节点的哈希值。
具体的,区块头信息可以包括时间戳信息、随机数信息、对应的merkle树的根节点的哈希值、父区块的哈希值以及其他一些安全措施信息等等。这些也可以称为操作类型。将区块头信息也按操作类型进行细粒度划分并存储。具体也可以是将粒度数据以上述键值数据形式进行存储。进一步提高区块链数据管理的灵活性。
采用本申请实施例提供的方法可以存储海量数据,区块增长无限制,单区块大小无限制,账户数量无限制,一个区块的数据量大小没有限制,账本(区块链)数据几乎没有理论上限,海量数据积累下可以快速通过merkle树生成快照,多版本管理可快速追溯每一条记录的历史,多版本管理实现并发读写控制,键值KV结构存储更具有扩展性,并且可以支持更快速的查询。通过merkle树及键值数据在记录级的粒度上实现维护数据的完整性以及存在性证明。
需要说明的是,本实施例中各可实施的方式可以单独实施,也可以在不冲突的情况下以任意组合方式结合实施本申请不做限定。
本实施例提供的区块链的数据存储方法,通过将交易数据根据操作类型划分为多个粒度数据进行存储,提高了数据管理的灵活性,解决了现有技术中以块数据整体保存导致在检索其中某一部分数据时,需要加载不相干的数据,降低处理性能的问题。并且以merkle树的结构形式表征待处理交易数据划分的粒度数据的索引或路径,进一步提高了数据管理的效率及灵活性以及可伸缩性。区块中只需记录merkle树根节点的哈希值而无需记录整个数据块,因此可以不必限制单个区块的大小。采用键值数据存储更具有扩展性,并且可以支持快速查询。
实施例三
本实施例提供一种区块链的数据存储装置,用于执行上述实施例一的方法。
如图5所示,为本实施例提供的区块链的数据存储装置的结构示意图。该区块链的数据存储装置30包括获取模块31和处理模块32。
其中,获取模块31用于获取待处理交易数据,待处理交易数据对应多种操作类型;处理模块32用于将待处理交易数据根据不同种类的操作类型进行存储。
可选地,处理模块,具体用于:
根据不同种类的操作类型,生成待处理交易数据对应的第一键值数据;根据第一键值数据进行存储。
关于本实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
根据本实施例提供的区块链的数据存储装置,通过将交易数据根据操作类型划分为多个粒度数据进行存储,提高了数据管理的灵活性,解决了现有技术中以块数据整体保存导致在检索其中某一部分数据时,需要加载不相干的数据,降低处理性能的问题。
实施例四
本实施例对上述实施例三提供的装置做进一步补充说明。
在上述实施例三的基础上,可选地,待处理交易数据包括目标区块链标识;相应的,处理模块,还用于:
根据第一键值数据,生成默克尔merkle树,merkle树表征了第一键值数据的索引信息;根据merkle树的根节点的哈希值,在目标区块链标识对应的区块链上生成新区块。
可选地,第一键值数据至少包括两组第一键值对;处理模块,具体用于:
根据各第一键值对生成merkle树的叶子节点;根据merkle树的叶子节点,生成merkle树的根节点。
可选地,处理模块,具体用于:
根据第一键值对的键KEY及值VALUE,生成第一哈希值;根据第一哈希值,生成merkle树的叶子节点。
可选地,处理模块,还用于:
将merkle树的各节点以第二键值数据进行存储。
可选地,merkle树为二叉树,若第一键值数据包括的第一键值对的数量多于两组,则处理模块,具体用于:
根据merkle树的每两个叶子节点的第二键值对,生成第二哈希值;根据第二哈希值,生成merkle树的中间节点;根据merkle树的每两个中间节点的第二键值对,生成第三哈希值;根据第三哈希值,生成merkle树的根节点。
可选地,处理模块,还用于:
将新区块的区块头信息分解为对应的第三键值数据进行存储,区块头信息至少包括时间戳信息、随机数信息及对应的merkle树根节点的哈希值。
关于本实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
需要说明的是,本实施例中各可实施的方式可以单独实施,也可以在不冲突的情况下以任意组合方式结合实施本申请不做限定。
根据本实施例的区块链的数据存储装置,通过将交易数据根据操作类型划分为多个粒度数据进行存储,提高了数据管理的灵活性,解决了现有技术中以块数据整体保存导致在检索其中某一部分数据时,需要加载不相干的数据,降低处理性能的问题。并且以merkle树的结构形式表征待处理交易数据划分的粒度数据的索引或路径,进一步提高了数据管理的效率及灵活性以及可伸缩性。区块中只需记录merkle树根节点的哈希值而无需记录整个数据块,因此可以不必限制单个区块的大小。采用键值数据存储更具有扩展性,并且可以支持快速查询。
实施例五
本实施例提供一种区块链节点,用于执行上述实施例提供的方法。
如图6所示,为本实施例提供的区块链节点的结构示意图。该区块链节点50包括:至少一个处理器51和存储器52;
存储器存储计算机程序;至少一个处理器执行存储器存储的计算机程序,以实现上述实施例提供的方法。
根据本实施例的区块链节点,通过将交易数据根据操作类型划分为多个粒度数据进行存储,提高了数据管理的灵活性,解决了现有技术中以块数据整体保存导致在检索其中某一部分数据时,需要加载不相干的数据,降低处理性能的问题。并且以merkle树的结构形式表征待处理交易数据划分的粒度数据的索引或路径,进一步提高了数据管理的效率及灵活性以及可伸缩性。区块中只需记录merkle树根节点的哈希值而无需记录整个数据块,因此可以不必限制单个区块的大小。采用键值数据存储更具有扩展性,并且可以支持快速查询。
实施例六
本实施例提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,计算机程序被执行时实现上述任一实施例提供的方法。
根据本实施例的计算机可读存储介质,通过将交易数据根据操作类型划分为多个粒度数据进行存储,提高了数据管理的灵活性,解决了现有技术中以块数据整体保存导致在检索其中某一部分数据时,需要加载不相干的数据,降低处理性能的问题。并且以merkle树的结构形式表征待处理交易数据划分的粒度数据的索引或路径,进一步提高了数据管理的效率及灵活性以及可伸缩性。区块中只需记录merkle树根节点的哈希值而无需记录整个数据块,因此可以不必限制单个区块的大小。采用键值数据存储更具有扩展性,并且可以支持快速查询。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (16)

1.一种区块链的数据存储方法,其特征在于,包括:
获取待处理交易数据,所述待处理交易数据对应多种操作类型;
根据不同种类的操作类型,生成所述待处理交易数据对应的第一键值数据,并根据所述第一键值数据进行存储。
2.根据权利要求1所述的方法,其特征在于,所述待处理交易数据包括目标区块链标识;
相应的,所述根据不同种类的操作类型,生成所述待处理交易数据对应的第一键值数据之后,所述方法还包括:
根据所述第一键值数据,生成默克尔merkle树,所述merkle树表征了所述第一键值数据的索引信息;
根据所述merkle树的根节点的哈希值,在所述目标区块链标识对应的区块链上生成新区块。
3.根据权利要求2所述的方法,其特征在于,所述第一键值数据至少包括两组第一键值对;所述根据所述第一键值数据,生成默克尔merkle树,包括:
根据各所述第一键值对生成merkle树的叶子节点;
根据merkle树的叶子节点,生成merkle树的根节点。
4.根据权利要求3所述的方法,其特征在于,所述根据各所述第一键值对生成merkle树的叶子节点,包括:
根据所述第一键值对的键KEY及值VALUE,生成第一哈希值;
根据所述第一哈希值,生成所述merkle树的叶子节点。
5.根据权利要求3所述的方法,其特征在于,在所述根据merkle树的叶子节点,生成merkle树的根节点之后,所述方法还包括:
将所述merkle树的各节点以第二键值数据进行存储。
6.根据权利要求5所述的方法,其特征在于,所述merkle树为二叉树,若所述第一键值数据包括的第一键值对的数量多于两组,则所述根据merkle树的叶子节点,生成merkle树的根节点,包括:
根据merkle树的每两个叶子节点的第二键值对,生成第二哈希值;
根据所述第二哈希值,生成merkle树的中间节点;
根据merkle树的每两个中间节点的第二键值对,生成第三哈希值;
根据所述第三哈希值,生成merkle树的根节点。
7.根据权利要求2-6任一项所述的方法,其特征在于,将所述新区块的区块头信息分解为对应的第三键值数据进行存储,所述区块头信息至少包括时间戳信息、随机数信息及对应的merkle树根节点的哈希值。
8.一种区块链的数据存储装置,其特征在于,包括:
获取模块,用于获取待处理交易数据,所述待处理交易数据对应多种操作类型;
处理模块,用于根据不同种类的操作类型,生成所述待处理交易数据对应的第一键值数据,并根据所述第一键值数据进行存储。
9.根据权利要求8所述的装置,其特征在于,所述待处理交易数据包括目标区块链标识;
相应的,所述处理模块,还用于:
根据所述第一键值数据,生成默克尔merkle树,所述merkle树表征了所述第一键值数据的索引信息;
根据所述merkle树的根节点的哈希值,在所述目标区块链标识对应的区块链上生成新区块。
10.根据权利要求9所述的装置,其特征在于,所述第一键值数据至少包括两组第一键值对;所述处理模块,具体用于:
根据各所述第一键值对生成merkle树的叶子节点;
根据merkle树的叶子节点,生成merkle树的根节点。
11.根据权利要求10所述的装置,其特征在于,所述处理模块,具体用于:
根据所述第一键值对的键KEY及值VALUE,生成第一哈希值;
根据所述第一哈希值,生成所述merkle树的叶子节点。
12.根据权利要求10所述的装置,其特征在于,所述处理模块,还用于:
将所述merkle树的各节点以第二键值数据进行存储。
13.根据权利要求12所述的装置,其特征在于,所述merkle树为二叉树,若所述第一键值数据包括的第一键值对的数量多于两组,则所述处理模块,具体用于:
根据merkle树的每两个叶子节点的第二键值对,生成第二哈希值;
根据所述第二哈希值,生成merkle树的中间节点;
根据merkle树的每两个中间节点的第二键值对,生成第三哈希值;
根据所述第三哈希值,生成merkle树的根节点。
14.根据权利要求9-13任一项所述的装置,其特征在于,所述处理模块,还用于:
将所述新区块的区块头信息分解为对应的第三键值数据进行存储,所述区块头信息至少包括时间戳信息、随机数信息及对应的merkle树根节点的哈希值。
15.一种区块链节点,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机程序;所述至少一个处理器执行所述存储器存储的计算机程序,以实现权利要求1-7中任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,该计算机可读存储介质中存储有计算机程序,所述计算机程序被执行时实现权利要求1-7中任一项所述的方法。
CN201810937201.2A 2018-08-16 2018-08-16 区块链的数据存储方法、装置、区块链节点及存储介质 Pending CN109165221A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810937201.2A CN109165221A (zh) 2018-08-16 2018-08-16 区块链的数据存储方法、装置、区块链节点及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810937201.2A CN109165221A (zh) 2018-08-16 2018-08-16 区块链的数据存储方法、装置、区块链节点及存储介质

Publications (1)

Publication Number Publication Date
CN109165221A true CN109165221A (zh) 2019-01-08

Family

ID=64896138

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810937201.2A Pending CN109165221A (zh) 2018-08-16 2018-08-16 区块链的数据存储方法、装置、区块链节点及存储介质

Country Status (1)

Country Link
CN (1) CN109165221A (zh)

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109559234A (zh) * 2019-01-31 2019-04-02 杭州复杂美科技有限公司 一种区块链状态数据的存储方法、设备和存储介质
CN109766389A (zh) * 2019-01-09 2019-05-17 华东师范大学 一种基于位图索引的区块链轻客户端验证查询方法
CN109840769A (zh) * 2019-01-21 2019-06-04 中国联合网络通信集团有限公司 基于区块链的存证方法及装置、系统与存储介质
CN109933592A (zh) * 2019-03-22 2019-06-25 杭州复杂美科技有限公司 数据存储方法、数据回滚方法、设备和存储介质
CN110119763A (zh) * 2019-04-16 2019-08-13 福建天晴数码有限公司 基于默克尔树思想的逻辑回归数据优化方法、存储介质
CN110175188A (zh) * 2019-05-31 2019-08-27 杭州复杂美科技有限公司 一种区块链状态数据缓存和查询方法、设备及存储介质
CN110275884A (zh) * 2019-05-31 2019-09-24 阿里巴巴集团控股有限公司 数据存储方法及节点
CN110362272A (zh) * 2019-06-03 2019-10-22 阿里巴巴集团控股有限公司 一种区块链数据存储方法及装置
CN110457398A (zh) * 2019-08-15 2019-11-15 广州蚁比特区块链科技有限公司 区块数据存储方法及装置
CN110784501A (zh) * 2019-07-15 2020-02-11 杭州复杂美科技有限公司 含交易组区块的打包和广播方法及系统、设备和存储介质
CN111033489A (zh) * 2019-05-14 2020-04-17 阿里巴巴集团控股有限公司 用于数据遍历的方法和设备
CN111125267A (zh) * 2019-12-25 2020-05-08 安徽兆尹信息科技股份有限公司 一种用于资产管理额度控制的区块链数据存取控制方法
CN111209341A (zh) * 2020-01-07 2020-05-29 北京众享比特科技有限公司 区块链的数据存储方法、装置、设备及介质
CN111316256A (zh) * 2019-11-29 2020-06-19 支付宝(杭州)信息技术有限公司 拍摄区块链数据的快照
CN111339191A (zh) * 2020-02-20 2020-06-26 百度在线网络技术(北京)有限公司 一种区块链的数据存储方法、装置、设备和介质
CN111475510A (zh) * 2020-04-03 2020-07-31 弦子科技(北京)有限公司 一种基于树状结构的数据同步方法、装置、系统及设备
CN111507706A (zh) * 2019-01-31 2020-08-07 华为技术有限公司 数据浏览、存储的方法、装置、计算机设备以及存储介质
CN111666289A (zh) * 2020-06-23 2020-09-15 中信银行股份有限公司 数据的存储与查询方法、装置、电子设备及可读存储介质
CN111723094A (zh) * 2020-06-18 2020-09-29 清华大学 一种基于场景的区块数据分布存储方法及系统
CN112269839A (zh) * 2020-11-18 2021-01-26 网易(杭州)网络有限公司 区块链中的数据存储方法、装置、电子设备及存储介质
WO2021027530A1 (zh) * 2019-08-14 2021-02-18 深圳前海微众银行股份有限公司 一种基于区块链的数据处理方法及装置
CN112905607A (zh) * 2021-05-07 2021-06-04 支付宝(杭州)信息技术有限公司 区块链数据存储方法及装置、电子设备
CN113343292A (zh) * 2021-05-28 2021-09-03 网易(杭州)网络有限公司 交易编号处理方法、装置、存储介质及计算机设备
CN113507369A (zh) * 2021-06-18 2021-10-15 深圳先进技术研究院 一种基于区块链与云端存储的黑匣子数据存取方法
US11294875B2 (en) 2019-05-31 2022-04-05 Advanced New Technologies Co., Ltd. Data storage on tree nodes
WO2022095429A1 (zh) * 2020-11-03 2022-05-12 平安科技(深圳)有限公司 一种区块链网络存储结构、工作方法、装置、介质及设备
CN114579582A (zh) * 2022-04-29 2022-06-03 武汉北大高科软件股份有限公司 一种基于区块链的资源处理方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106815530A (zh) * 2016-12-26 2017-06-09 北京爱接力科技发展有限公司 数据存证方法、数据校验方法及装置
CN107025559A (zh) * 2017-01-26 2017-08-08 阿里巴巴集团控股有限公司 一种业务处理方法及装置
CN107368259A (zh) * 2017-05-25 2017-11-21 阿里巴巴集团控股有限公司 一种向区块链系统中写入业务数据的方法和装置
CN107807951A (zh) * 2017-09-18 2018-03-16 联动优势科技有限公司 一种区块链生成方法、数据验证方法、节点及系统
US20180218003A1 (en) * 2017-01-30 2018-08-02 General Electric Company Ephemeral blockchain data structure

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106815530A (zh) * 2016-12-26 2017-06-09 北京爱接力科技发展有限公司 数据存证方法、数据校验方法及装置
CN107025559A (zh) * 2017-01-26 2017-08-08 阿里巴巴集团控股有限公司 一种业务处理方法及装置
US20180218003A1 (en) * 2017-01-30 2018-08-02 General Electric Company Ephemeral blockchain data structure
CN107368259A (zh) * 2017-05-25 2017-11-21 阿里巴巴集团控股有限公司 一种向区块链系统中写入业务数据的方法和装置
CN107807951A (zh) * 2017-09-18 2018-03-16 联动优势科技有限公司 一种区块链生成方法、数据验证方法、节点及系统

Cited By (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109766389A (zh) * 2019-01-09 2019-05-17 华东师范大学 一种基于位图索引的区块链轻客户端验证查询方法
CN109840769A (zh) * 2019-01-21 2019-06-04 中国联合网络通信集团有限公司 基于区块链的存证方法及装置、系统与存储介质
CN109559234A (zh) * 2019-01-31 2019-04-02 杭州复杂美科技有限公司 一种区块链状态数据的存储方法、设备和存储介质
CN111507706B (zh) * 2019-01-31 2024-04-26 华为技术有限公司 数据浏览、存储的方法、装置、计算机设备以及存储介质
CN111507706A (zh) * 2019-01-31 2020-08-07 华为技术有限公司 数据浏览、存储的方法、装置、计算机设备以及存储介质
CN109933592B (zh) * 2019-03-22 2021-06-01 杭州复杂美科技有限公司 数据存储方法、数据回滚方法、设备和存储介质
CN109933592A (zh) * 2019-03-22 2019-06-25 杭州复杂美科技有限公司 数据存储方法、数据回滚方法、设备和存储介质
CN110119763A (zh) * 2019-04-16 2019-08-13 福建天晴数码有限公司 基于默克尔树思想的逻辑回归数据优化方法、存储介质
CN111033489B (zh) * 2019-05-14 2023-11-17 创新先进技术有限公司 用于数据遍历的方法和设备
CN111033489A (zh) * 2019-05-14 2020-04-17 阿里巴巴集团控股有限公司 用于数据遍历的方法和设备
US11294875B2 (en) 2019-05-31 2022-04-05 Advanced New Technologies Co., Ltd. Data storage on tree nodes
CN110275884A (zh) * 2019-05-31 2019-09-24 阿里巴巴集团控股有限公司 数据存储方法及节点
CN110175188A (zh) * 2019-05-31 2019-08-27 杭州复杂美科技有限公司 一种区块链状态数据缓存和查询方法、设备及存储介质
CN110175188B (zh) * 2019-05-31 2021-05-11 杭州复杂美科技有限公司 一种区块链状态数据缓存和查询方法、设备及存储介质
WO2020238254A1 (zh) * 2019-05-31 2020-12-03 创新先进技术有限公司 数据存储方法及节点
CN110275884B (zh) * 2019-05-31 2020-08-04 阿里巴巴集团控股有限公司 数据存储方法及节点
CN110362272A (zh) * 2019-06-03 2019-10-22 阿里巴巴集团控股有限公司 一种区块链数据存储方法及装置
CN110784501B (zh) * 2019-07-15 2022-02-25 杭州复杂美科技有限公司 含交易组区块的打包和广播方法及系统、设备和存储介质
CN110784501A (zh) * 2019-07-15 2020-02-11 杭州复杂美科技有限公司 含交易组区块的打包和广播方法及系统、设备和存储介质
WO2021027530A1 (zh) * 2019-08-14 2021-02-18 深圳前海微众银行股份有限公司 一种基于区块链的数据处理方法及装置
CN110457398A (zh) * 2019-08-15 2019-11-15 广州蚁比特区块链科技有限公司 区块数据存储方法及装置
CN111316256A (zh) * 2019-11-29 2020-06-19 支付宝(杭州)信息技术有限公司 拍摄区块链数据的快照
CN111125267B (zh) * 2019-12-25 2020-09-15 安徽兆尹信息科技股份有限公司 一种用于资产管理额度控制的区块链数据存取控制方法
CN111125267A (zh) * 2019-12-25 2020-05-08 安徽兆尹信息科技股份有限公司 一种用于资产管理额度控制的区块链数据存取控制方法
CN111209341B (zh) * 2020-01-07 2023-03-14 北京众享比特科技有限公司 区块链的数据存储方法、装置、设备及介质
CN111209341A (zh) * 2020-01-07 2020-05-29 北京众享比特科技有限公司 区块链的数据存储方法、装置、设备及介质
CN111339191A (zh) * 2020-02-20 2020-06-26 百度在线网络技术(北京)有限公司 一种区块链的数据存储方法、装置、设备和介质
CN111339191B (zh) * 2020-02-20 2023-05-26 百度在线网络技术(北京)有限公司 一种区块链的数据存储方法、装置、设备和介质
CN111475510A (zh) * 2020-04-03 2020-07-31 弦子科技(北京)有限公司 一种基于树状结构的数据同步方法、装置、系统及设备
CN111723094A (zh) * 2020-06-18 2020-09-29 清华大学 一种基于场景的区块数据分布存储方法及系统
CN111723094B (zh) * 2020-06-18 2022-08-05 清华大学 一种基于场景的区块数据分布存储方法及系统
CN111666289A (zh) * 2020-06-23 2020-09-15 中信银行股份有限公司 数据的存储与查询方法、装置、电子设备及可读存储介质
WO2022095429A1 (zh) * 2020-11-03 2022-05-12 平安科技(深圳)有限公司 一种区块链网络存储结构、工作方法、装置、介质及设备
CN112269839B (zh) * 2020-11-18 2024-02-23 网易(杭州)网络有限公司 区块链中的数据存储方法、装置、电子设备及存储介质
CN112269839A (zh) * 2020-11-18 2021-01-26 网易(杭州)网络有限公司 区块链中的数据存储方法、装置、电子设备及存储介质
CN112905607B (zh) * 2021-05-07 2022-02-01 支付宝(杭州)信息技术有限公司 区块链数据存储方法及装置、电子设备
CN112905607A (zh) * 2021-05-07 2021-06-04 支付宝(杭州)信息技术有限公司 区块链数据存储方法及装置、电子设备
CN113343292A (zh) * 2021-05-28 2021-09-03 网易(杭州)网络有限公司 交易编号处理方法、装置、存储介质及计算机设备
CN113507369A (zh) * 2021-06-18 2021-10-15 深圳先进技术研究院 一种基于区块链与云端存储的黑匣子数据存取方法
CN114579582A (zh) * 2022-04-29 2022-06-03 武汉北大高科软件股份有限公司 一种基于区块链的资源处理方法和装置

Similar Documents

Publication Publication Date Title
CN109165221A (zh) 区块链的数据存储方法、装置、区块链节点及存储介质
CN109034809A (zh) 区块链的生成方法、装置、区块链节点及存储介质
CN108932348A (zh) 区块链的合并处理方法、装置、区块链节点及存储介质
CN109255056A (zh) 区块链的数据引用处理方法、装置、设备及存储介质
US10943029B2 (en) System and method for interaction object management in a blockchain environment
CN108200208B (zh) 基于云计算的物流区块链共识算法
CN109285005A (zh) 区块链的拆分处理方法、装置、区块链节点及存储介质
CN105630847B (zh) 数据存储方法、数据查询方法、装置及系统
CN110647503A (zh) 一种分布式存储方法及装置
KR102017739B1 (ko) 블록체인 시스템 및 블록체인 생성 방법
CN108171601B (zh) 区块链溯源追踪方法、装置和系统
CN107688591B (zh) 一种精算处理方法和装置
CN111461751B (zh) 基于区块链的房产信息链上组织方法、历史状态追溯方法及装置
CN113704357A (zh) 一种基于区块链的智慧城市数据共享方法及系统
CN115659417A (zh) 审计日志存储方法、验证方法、装置和计算机设备
KR101428649B1 (ko) 맵 리듀스 기반의 대용량 개인정보 암호화 시스템 및 그의 동작 방법
CN114529415A (zh) 基于区块链的交易验证方法及装置、电子设备
CN108446985A (zh) 证券投资组合的分享系统及方法
CN112163227A (zh) 一种电商平台卖家用户销售额多维统计分析系统及方法
CN110362540A (zh) 一种数据存储、访客数获取方法及装置
US11621850B2 (en) Distributed ledger management method, distributed ledger system, and node
CN114422105A (zh) 联合建模方法、装置、电子设备及存储介质
CN111309749B (zh) 一种保单信息的处理方法及装置、设备、介质
CN114490704A (zh) 数据处理方法、装置、设备及存储介质
CN113177843A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20190108

RJ01 Rejection of invention patent application after publication