CN109726206B - 区块链节点的数据处理方法、装置、设备和存储介质 - Google Patents

区块链节点的数据处理方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN109726206B
CN109726206B CN201811605445.7A CN201811605445A CN109726206B CN 109726206 B CN109726206 B CN 109726206B CN 201811605445 A CN201811605445 A CN 201811605445A CN 109726206 B CN109726206 B CN 109726206B
Authority
CN
China
Prior art keywords
data
processing request
data processing
physical
layer
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
CN201811605445.7A
Other languages
English (en)
Other versions
CN109726206A (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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and 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 Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201811605445.7A priority Critical patent/CN109726206B/zh
Publication of CN109726206A publication Critical patent/CN109726206A/zh
Application granted granted Critical
Publication of CN109726206B publication Critical patent/CN109726206B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

本发明实施例公开了一种区块链节点的数据处理方法、装置、设备及存储介质。该方法包括:区块链应用层在执行事务请求的过程中,产生逻辑数据处理请求,并传输给逻辑数据接口层;所述逻辑数据接口层,将所述逻辑数据处理请求映射为基于物理存储层的数据存储结构,并产生物理数据处理请求,传输给物理存储层;所述物理存储层,根据所述物理数据处理请求针对存储空间中的数据进行处理。采用本发明实施例的技术方案,逻辑数据接口层作为区块链应用层与物理存储层的中间层,能够将区块链应用层传输的不同数据形式的数据映射为基于物理存储层的数据存储结构,进而使物理存储层在数据存储结构有限的情况下,也能为区块链应用层的数据存储需求提供支持。

Description

区块链节点的数据处理方法、装置、设备和存储介质
技术领域
本发明实施例涉及区块链技术领域,尤其涉及一种区块链节点的数据处理方法、装置、设备和存储介质。
背景技术
目前的区块链系统中包括应用层和底层数据存储系统,而底层数据存储系统所采用的底层数据存储技术有多种,其中比较广泛采用的一种就是键值对(Key Value,简称KV)存储系统。KV存储系统在区块链系统应用层的控制下,支持区块链系统的数据读写等访问处理。
在KV存储系统中,会使用到很多键值对分别存储区块链系统所需存储的各种数据。但是,受限于KV存储系统的数据存储结构,无法为应用层日益丰富的存储需求提供有效支持。
发明内容
本发明实施例提供了一种区块链节点的数据处理方法、装置、设备和存储介质,能够为应用层的数据存储需求提供丰富的支持。
第一方面,本发明实施例提供了一种区块链节点的数据处理方法,该方法包括:
区块链应用层在执行事务请求的过程中,产生逻辑数据处理请求,并传输给逻辑数据接口层;
所述逻辑数据接口层,将所述逻辑数据处理请求映射为基于物理存储层的数据存储结构,并产生物理数据处理请求,传输给物理存储层;
所述物理存储层,根据所述物理数据处理请求针对存储空间中的数据进行处理。
第二方面,本发明实施例提供了一种区块链节点的数据处理装置,配置于区块链节点中,所述装置包括:
应用层传输模块,用于区块链应用层在执行事务请求的过程中,产生逻辑数据处理请求,并传输给逻辑数据接口层;
逻辑层传输模块,用于所述逻辑数据接口层,将所述逻辑数据处理请求映射为基于物理存储层的数据存储结构,并产生物理数据处理请求,传输给物理存储层;
物理层处理模块,用于所述物理存储层,根据所述物理数据处理请求针对存储空间中的数据进行处理。
第三方面,本发明实施例提供了一种设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所述的区块链节点的数据处理方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所述的区块链节点的数据处理方法。
本发明实施例提供的区块链节点的数据处理方法、装置、设备及存储介质,区块链应用层将在执行事务请求过程中所产生的逻辑数据处理请求传输至逻辑数据接口层,以使逻辑数据接口将逻辑数据处理请求映射为基于物理存储层的数据存储结构,并向物理存储层传输物理数据处理请求;物理存储层对逻辑接口层传输的物理数据处理请求进行处理,并存储。相比于现有的区块链节点的数据处理方案,本方案中逻辑数据接口层作为区块链应用层与物理存储层的中间层,能够将区块链应用层传输的不同数据形式的数据映射为基于物理存储层的数据存储结构,进而使物理存储层在数据存储结构有限的情况下,也能为区块链应用层的数据存储需求提供支持。
附图说明
图1为本发明实施例所适用的区块链节点的系统构架图;
图2为本发明实施例一提供的一种区块链节点的数据处理方法的流程图;
图3为本发明实施例二提供的一种区块链节点的数据处理方法的流程图;
图4为本发明实施例三提供的一种区块链节点的数据处理方法的流程图;
图5为本发明实施例四提供的一种区块链节点的数据处理方法的流程图;
图6A为本发明实施例五提供的一种区块链节点的数据处理方法的流程图;
图6B为本发明实施例五提供的文件系统基于键值对的存储结构示例图;
图7为本发明实施例六提供的一种区块链节点的数据处理方法的流程图;
图8为本发明实施例七提供的一种区块链节点的数据处理方法的流程图;
图9为本发明实施例八提供的一种区块链节点的数据处理方法的流程图;
图10为本发明实施例九提供的一种区块链节点的数据处理方法的流程图;
图11为本发明实施例十提供的一种区块链节点的数据处理方法的流程图;
图12为本发明实施例十一提供的一种区块链节点的数据处理装置的结构示意图;
图13为本发明实施例十二提供的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明实施例,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明实施例相关的部分而非全部结构。
在介绍本发明各实施例之前,先对本发明实施例中系统架构及可使用的底层存储系统进行说明。如图1所示,本实施例的设备可以包括应用层,逻辑数据接口层,以及物理存储层。该设备优选是区块链节点设备。
其中,应用层可以是实现任何功能的软件,需产生各种数据处理请求。优选是,应用层为实现区块链节点功能的软件,区块链应用层的软件主要功能是产生事务请求,事务请求的执行过程会产生数据处理请求。该应用层包括用于支撑区块链节点本地区块链正常运行所需部署的软件,如可以包括虚拟机以及其他与区块链相关的应用软件等。
逻辑数据接口层包括实现至少一种数据处理逻辑的接口,如文件系统接口、数据结构接口和搜索引擎接口,可以用于将应用层传输的不同数据结构形式的逻辑数据处理请求映射为基于物理存储层的数据存储结构。
物理存储层用于对逻辑接口层传输的物理数据处理请求进行处理,并存储。本发明实施例中,可选用键值对(Key Value,简称KV)存储系统作为物理存储层,更进一步的,该KV存储系统为多版本KV存储系统。
在多版本KV存储系统中,每个键值对的存储单元中包括键域(key)和值域(value)。其中,键域存储有键标识和版本标识,版本标识可以作为键域中存储内容的一部分,例如,前缀或后缀。键标识可以为能体现数据实际含义的标识,如区块标识、事务标识、或账号名称等;键值对的值域可以用于存储数据本身。版本标识用于标识该键值对是在哪个版本所对应的物理数据处理请求执行过程中所修改的。
一个版本所对应的物理数据处理请求可以是一个,也可以是多个。例如,一个区块产生的过程中,会涉及多个事务请求,也会需要执行多个物理数据处理请求,如写入数据、删除数据、读取数据、更改数据等。那么可以配置为一个区块产生过程中所需执行的多个物理数据处理请求对应于一个版本标识。下一个区块则对应下一个版本标识。
例如,一个区块中的事务请求为A账户向B账户转移设定数额的货币,则A账户和B账户存储账户余额的键值对,都会因为该事务请求的执行而发生变化。将A账户和B账户的账户余额的旧键值对仍然保留,并产生账户余额的新键值对,前后两个键值对的版本标识发生变化。
当然,一个版本标识也可以对应于一次事务请求的处理过程,或多个区块的处理过程,可根据情况具体配置。在区块链节点中,记录键标识与各个版本标识的对应关系,区块链应用层可以通过键标识和版本标识的组合,访问到所需数据。
实施例一
图2为本发明实施例一提供的一种区块链节点的数据处理方法的流程图,本实施例可适用于对区块链节点的数据进行处理的情况,尤其适用于基于区块链节点的系统架构中的应用层、逻辑数据接口层及物理存储层之间层级递进对数据进行处理的场景。该方法可由区块链节点的数据处理装置来执行,该装置可以配置于作为区块链节点的计算机设备中,以硬件和/或软件的方式来实现。
参见图2,该方法具体包括:
S210,区块链应用层在执行事务请求的过程中,产生逻辑数据处理请求,并传输给逻辑数据接口层。
本实施例中,事务请求可以为交易请求或其他任何需要由区块链应用层功能处理的请求,如版权登记信息处理请求等。事务请求可以是区块链应用层确定区块链节点本地具有事务处理需求,或者区块链节点接收到某一触发机制如第三方设备(如客户端、终端设备或服务器等)发送的事务处理需求时,产生并向区块链网络所发起的请求;还可以是从区块链网络中获取的其他节点向所发起的请求。可选的,该事务请求执行过程中需要依赖一些已有数据,并可能新增一些数据,该事务请求会涉及到数据处理操作,例如写入、更改、读取或删除等某种处理操作。
逻辑数据处理请求是区块链应用层在执行事务请求过程中所产生的,用于请求逻辑数据接口层将各种数据形式(如文件形式、数据结构形式或搜索语句形式等)转换为物理存储层所能够识别并处理的形式(如键值对形式)。
具体的,区块链应用层可以从本地或其他节点获取事务请求,而后根据事务请求的形式,采用与其相对应的策略执行该事务请求;并在执行该事务请求的过程中,产生用于转换数据结构的逻辑数据处理请求,将该逻辑数据处理请求传输至逻辑数据接口层,以请求逻辑数据接口层执行转换数据形式的相关操作过程。
S220,逻辑数据接口层,将逻辑数据处理请求映射为基于物理存储层的数据存储结构,并产生物理数据处理请求,传输给物理存储层。
本实施例中,逻辑数据处理请求中可以包括待处理数据等。物理数据处理请求用于请求物理存储层对存储空间中的数据进行写入、删除、更改或读取等处理。可选的,物理数据处理请求中也可以包括待处理数据,以及对待处理数据的操作方式等。例如,逻辑数据处理请求中的待处理数据是以文件形式呈现,而物理数据处理请求中的待处理数据的数据形式与物理存储层的数据存储结构相同,如键值对形式的数据存储结构。
物理存储层的数据存储结构是指物理存储层存储、组织数据的方式。本实施例中,将逻辑数据处理请求映射为基于物理存储层的数据存储结构,可以是将逻辑数据处理请求中的待处理数据的数据形式转换为,与物理存储层的数据存储结构相同的形式,或者物理存储层所能够识别并处理的形式。例如,物理存储层的数据存储结构为键值对存储系统,则可以将逻辑数据处理请求映射为键值对的数据存储结构。
需要说明的是,由于区块链应用层可以处理不同形式的事务请求(如文件形式的事务请求),而不同形式的事务请求所对应的数据形式不同;但是物理存储层所能够识别并处理的数据结构有限,为了使物理存储层能够支持区块链应用层的需求,本实施例中借助中间层即逻辑数据接口层,进行数据形式的转换操作,以便物理层能够识别和处理。
具体的,逻辑数据接口层接收到区块链应用层所传输的逻辑数据处理请求后,对该逻辑数据处理请求进行处理,将该逻辑数据处理请求映射为基于物理存储层的数据存储结构,并基于映射结果产生物理数据处理请求,传输给物理存储层,以请求物理存储层对物理数据处理请求中的数据进行处理。
S230,物理存储层,根据物理数据处理请求针对存储空间中的数据进行处理。
本实施例中,存储空间是指用于存储目标键值对所需要的存储介质,可以是任何存储设备,如可以是内存存储空间,也可以是磁盘存储空间等。
具体的,物理存储层接收到逻辑数据接口层所传输的逻辑数据处理请求后,根据物理数据处理请求的指示对存储空间中的数据进行如写入、删除、更改或读取等处理。
本发明实施例提供的技术方案,区块链应用层将在执行事务请求过程中所产生的逻辑数据处理请求传输至逻辑数据接口层,以使逻辑数据接口将逻辑数据处理请求映射为基于物理存储层的数据存储结构,并向物理存储层传输物理数据处理请求;物理存储层对逻辑接口层传输的物理数据处理请求进行处理,并存储。相比于现有的区块链节点的数据处理方案,本方案中逻辑数据接口层作为区块链应用层与物理存储层的中间层,能够将区块链应用层传输的不同数据形式的数据映射为基于物理存储层的数据存储结构,进而使物理存储层在数据存储结构有限的情况下,也能为区块链应用层的数据存储需求提供支持。
实施例二
图3为本发明实施例二提供的一种区块链节点的数据处理方法的流程图,本实施例在上述实施例的基础上,在物理存储层的数据存储结构为多版本键值对存储系统的情况下,提供了一种应用层、逻辑数据接口层及物理存储层之间层级递进对数据进行处理的方案。参见图3,该方法具体包括:
S310,区块链应用层在执行事务请求的过程中,确定事务请求所操作的目标数据,以及目标数据的版本信息。
本实施例中,目标数据是指事务请求执行过程中所依赖的数据。例如,某一事务请求为账户A向账户B转账,目标数据可以包括账户A余额和账户B余额等。可选的,目标数据具体可以包括事务请求执行前所依赖数据的数值,以及事务请求执行后所依赖数据的数值。例如,事务请求执行前账户A余额值,以及事务请求执行后账户A余额值。
版本信息可以用于表示目标数据被写入的事务请求所属区块的信息,如可以是区块标识。区块标识是指用于唯一识别某一区块的标志,如区块ID。不同的区块所对应的版本信息不同。
具体的,区块链应用层可以在本地对事务请求进行执行操作,进而确定事务请求所操作的目标数据;而后依据事务请求对目标数据的操作方式,确定目标数据的版本信息。可选的,事务请求对目标数据的操作方式不同,所确定的目标数据的版本可能不同,后续实施例将详细介绍。
S320,区块链应用层产生用于操作目标数据的逻辑数据处理请求,并传输给逻辑数据接口层,其中,逻辑数据处理请求中至少包括目标数据的版本信息。
具体的,区块链应用层在执行步骤S310确定事务请求所操作的目标数据,以及目标数据的版本信息后,可依据目标数据以及目标数据的版本信息等产生用于操作目标数据的逻辑数据处理请求;而后将该逻辑数据处理请求传输给逻辑数据接口层,以请求逻辑数据接口层执行数据形式的转换,以及产生物理数据处理请求的操作等。
S330,逻辑数据接口层,将逻辑数据处理请求映射为基于物理存储层的数据存储结构,确定目标数据的逻辑地址。
本实施例中,逻辑数据接口层可设置不同的接口,用于配合执行区块链应用层所传输的不同形式的逻辑数据处理请求,以将不同形式的逻辑数据处理请求均映射为基于物理存储层的数据存储结构,进而使物理存储层能够为区块链应用层的不同数据形式的数据存储需求提供支持。
可选的,逻辑数据接口层可以包括但不限于文件系统接口、数据结构接口和搜索引擎接口。其中,文件系统接口可用于对区块链应用层所传输的文件形式的逻辑数据处理请求进行处理;数据结构接口用于对区块链应用层所传输的不同数据结构形式(如数组、链表或图集合等)的逻辑数据处理请求进行处理;搜索引擎接口用于对区块链应用层所传输的搜索语句形式的逻辑数据处理请求进行处理。示例性的,逻辑数据接口层中不同的接口,将逻辑数据处理请求映射为基于物理存储层的数据存储结构的方式不同,下述实施例将详细介绍。
逻辑地址是指按照数据在逻辑数据接口层的存储逻辑给出的目标数据的存储路径,例如,一个数组可能的逻辑地址是包括数组中各个下标数据的存储位置,存储位置是连续的。逻辑地址与物理地址有对应关系,此对应关系通常有物理存储层来管理;物理地址是真正存储目标数据的位置,如由磁盘的柱面、头、段等物理位置所确定的地址。例如,在物理存储层中该数据各个下标数据的存储位置可能是不联系的。
具体的,当逻辑数据接口层中任一接口获取到逻辑数据处理请求后,可以采用该接口所设定的数据形式转换方式,将逻辑数据处理请求映射为基于物理存储层的数据存储结构即键值对形式的数据存储结构,同时确定逻辑数据处理请求所包括的目标数据的逻辑地址。
S340,逻辑数据接口层根据逻辑地址和版本信息,产生物理数据处理请求,传输给物理存储层。
可选的,逻辑数据接口层对于区块链应用层所传输的逻辑数据请求中的版本信息可以不做任何处理,而是透传给物理存储层;也可以将版本信息转换为物理存储层中所需的版本标识,传输给物理存储层等。为了简化逻辑数据接口层的操作,本实施例中优选将版本信息透传给物理存储层。此外,物理数据处理请求中至少包括目标数据、目标数据的逻辑地址以及目标数据的版本信息等。
具体的,逻辑数据接口层可以根据逻辑地址和版本信息产生物理数据处理请求,并传输给物理存储层。
S350,物理存储层,根据物理数据处理请求针对存储空间中的数据进行处理。
具体的,物理存储层依据物理数据处理请求中的逻辑地址和版本信息,确定目标数据在存储空间的物理存储单元,即物理地址;而后依据该物理地址定位至目标数据位置处,依据物理数据处理请求所指定的操作方式对目标数据进行处理。
本发明实施例提供的技术方案,区块链应用层将在执行事务请求过程中所产生的逻辑数据处理请求传输至逻辑数据接口层,以使逻辑数据接口将逻辑数据处理请求映射为基于物理存储层的数据存储结构,并向物理存储层传输物理数据处理请求;物理存储层对逻辑接口层传输的物理数据处理请求进行处理,并存储。相比于现有的区块链节点的数据处理方案,本方案中逻辑数据接口层作为区块链应用层与物理存储层的中间层,能够将区块链应用层传输的不同数据形式的数据映射为基于物理存储层的数据存储结构,进而使物理存储层在数据存储结构有限的情况下,也能为区块链应用层的数据存储需求提供支持。
实施例三
图4为本发明实施例三提供的一种区块链节点的数据处理方法的流程图,本实施例在上述实施例的基础上,在物理存储层的数据存储结构为多版本键值对存储系统的情况下,进一步对区块链应用层在执行事务请求的过程中,产生逻辑数据处理请求,并传输给逻辑数据接口层进行解释说明。如图4所示,该方法包括以下具体步骤:
S410,区块链应用层调用本地虚拟机,对发起的事务请求进行预执行操作,或对接收的其他节点发起的事务请求进行执行操作,以确定事务请求所操作的目标数据,其中,事务请求为智能合约。
本实施例中,虚拟机是指通过软件模拟的具有完整硬件系统功能的、运行在一个独立环境中的完整计算机系统。例如,虚拟机可以是EVM(Ethereum Virtual Machine,以太网虚拟机),借助于区块链网络本身提供合约触发条件,就能完成智能合约的执行。智能合约是指基于插件机制所编写的可供区块链网络中的节点调用并执行的代码段,一个智能合约的执行可实现至少一种功能或处理一类事务请求。
具体的,区块链应用层可以从本地或其他节点获取事务请求,若事务请求为智能合约,对于本地所发起的事务请求而言,区块链应用层可以调用本地虚拟机,在本地预先执行所发起的事务请求,进而确定该事务请求所操作的目标数据。对于从其他节点接收的事务请求而言,区块链应用层也可以调用本地虚拟机,执行该事务请求,进而确定该事务请求所操作的目标数据。
可选的,若事务请求是非智能合约形式的事务请求,如可读数据字段形式的事务请求,也可以通过对数据字段的解析处理来确定该事务请求所操作的目标数据。
S420,区块链应用层确定事务请求对目标数据的操作方式。如果对目标数据的操作为数据写入操作,则执行步骤S430;如果对目标数据的操作为数据更改操作或数据删除操作,则执行步骤S440;如果对目标数据的操作为数据读取操作,则执行步骤S440。
具体的,区块链应用层在确定事务请求所操作的目标数据后,可以确定事务请求对目标数据的操作方式,例如写入、删除、更改或读取操作等。可选的,不同的操作方式,可对应不同的版本信息确定方式。
需要说明的是,一个事务请求对目标数据的操作方式至少涉及数据写入操作、数据删除操作、数据读取操作及数据更改操作中的一种。
S430,区块链应用层确定当前区块的区块标识为目标数据的当前版本信息,并执行S450。
本实施例中,当前区块即为操作事务请求的区块。具体的,如果区块链应用层确定事务请求对目标数据的操作方式是数据写入操作,则可以将当前区块的区块标识确定为目标数据的当前版本信息。
S440,区块链应用层获取目标数据的原版本信息,以及确定当前区块的区块标识作为当前版本信息,并执行S450。
本实施例中,原版本信息是指执行事务请求之前,目标数据被写入的事务请求所属区块的区块标识;可以是前一区块的区块标识,也可以是历史任意区块的区块标识;还可默认为目标数据最近一次被修改时,所对应的事务请求所属区块的区块标识。
可选的,区块链应用层获取目标数据的原版本信息可以包括:区块链应用层根据事务请求中的指定版本确定目标数据的原版本信息。本实施例中,指定版本可以是前一版本信息,或者历史任一版本信息;事务请求中可以包括目标数据,以及目标数据的版本信息等。例如,事务请求为账户A向账户B转账,且该事务请求中指定在前一区块执行事务请求账户A向账户C转账的基础上,执行本次事务请求,则可以将账户A余额作为目标数据,将目标数据被写入的事务请求账户A向账户C转账所属区块(即前一区块)的区块标识作为原本版信息。具体的,区块链应用层可以从事务请求中获取目标数据的指定版本,而后将指定版本作为目标数据的原版本信息。
可选的,区块链应用层获取目标数据的原版本信息还可以包括:区块链应用层将目标数据的最近版本确定为原版本信息。本实施例中,最近版本为目标数据最近一次被修改时,所对应的事务请求所属区块的区块标识。例如,当前区块为第105个区块,目标数据为账户A余额,账户A余额上一次被修改在第100中,则可以将第100个区块的区块标识作为原版本信息。具体的,区块链应用层可以从当前区块向前遍历获取目标数据的原版本信息,还可以是从本地存储的版本映射关系中查询获取。
示例性的,区块链应用层将目标数据的最近版本确定为原版本信息可以包括:区块链应用层从本地存储的版本映射关系表中,查询目标数据最近被写入的事务请求所属区块的区块标识,作为原版本信息。本实施例中,区块链应用层所在区块链节点设备本地可预先存储至少包括版本信息及区块标识的版本映射关系表,还可以包括事务标识(如账户名)、时间戳等。具体的,区块链应用层可依据目标数据或事务标识,从本地存储的版本映射关系表中,查询获取目标数据最近一次被写入时,所对应的事务请求所属区块的区块标识,而后将获取的区块标识为原版本信息。
具体的,由于对于数据的删除、更改或读取等,需在已有数据的基础上进行操作,因此,如果区块链应用层确定事务请求对目标数据的操作方式是数据更改操作(如更改某一账户余额),数据删除操作(如将某一账户清空,则可以将该账户余额删除),或者数据读取操作(如需查询某一账户余额时,则可以读取该账户余额)时,则需获取目标数据的原版本信息,同时将当前区块的区块标识确定为目标数据的当前版本信息。
S450,区块链应用层产生用于操作目标数据的逻辑数据处理请求,并传输给逻辑数据接口层,其中,逻辑数据处理请求中至少包括目标数据的版本信息。
S460,逻辑数据接口层,将逻辑数据处理请求映射为基于物理存储层的数据存储结构,确定目标数据的逻辑地址。
S470,逻辑数据接口层根据逻辑地址和版本信息,产生物理数据处理请求,传输给物理存储层。
S480,物理存储层,根据物理数据处理请求针对存储空间中的数据进行处理。
本发明实施例提供的技术方案,区块链应用层将在执行事务请求过程中所产生的逻辑数据处理请求传输至逻辑数据接口层,以使逻辑数据接口将逻辑数据处理请求映射为基于物理存储层的数据存储结构,并向物理存储层传输物理数据处理请求;物理存储层对逻辑接口层传输的物理数据处理请求进行处理,并存储。相比于现有的区块链节点的数据处理方案,本方案中逻辑数据接口层作为区块链应用层与物理存储层的中间层,能够将区块链应用层传输的不同数据形式的数据映射为基于物理存储层的数据存储结构,进而使物理存储层在数据存储结构有限的情况下,也能为区块链应用层的数据存储需求提供支持。
实施例四
图5为本发明实施例四提供的一种区块链节点的数据处理方法的流程图,本实施例在上述实施例的基础上,在物理存储层的数据存储结构为多版本键值对存储系统的情况下,进一步对物理存储层,根据物理数据处理请求针对存储空间中的数据进行处理进行解释说明。如图5所示,该方法包括以下具体步骤:
S510,区块链应用层在执行事务请求的过程中,确定事务请求所操作的目标数据,以及目标数据的版本信息。
S520,区块链应用层产生用于操作目标数据的逻辑数据处理请求,并传输给逻辑数据接口层,其中,逻辑数据处理请求中至少包括目标数据的版本信息。
S530,逻辑数据接口层,将逻辑数据处理请求映射为基于物理存储层的数据存储结构,确定目标数据的逻辑地址。
S540,逻辑数据接口层根据逻辑地址和版本信息,产生物理数据处理请求,传输给物理存储层。
S550,物理存储层根据物理数据处理请求中目标数据的版本信息确定版本标识。
本实施例中,版本标识是一个起到唯一标识作用的标识符,用于标识对当前物理数据处理请求所涉及数据的更新操作。可选的,版本标识与版本信息相对应,版本标识可以是版本信息,也可以是版本信息与流水号所组成,还可以是流水号等。不同区块对应不同的版本标识。例如,第100个区块的版本标识可以是0100+第100个区块的区块标识,第101个区块的版本标识可以是0101+第101个区块的区块标识。
具体的,物理存储层可以直接将物理数据处理请求中的目标数据的版本信息作为版本标识;还可以根据物理数据处理请求中的目标数据的版本信息确定版本附加标识,及流水号标识,而后将版本附加标识和流水号标识组成版本标识。其中,版本附加标识即为区块标识,流水号标识即为流水号值。
需要说明的是,本实施例中所确定的版本标识至少包括当前区块的版本标识,还可包括依据目标数据的原版本信息所确定的当前区块之前的任一区块的版本标识。
S560,物理存储层根据物理数据处理请求中的逻辑地址和版本标识,确定目标数据的原数据所在的原物理存储单元。
本实施例中,目标数据的原数据是指在执行本次事务请求之前,该事务请求执行过程中所依赖数据的数值;原物理存储单元即为用于存储目标数据的原数据的键值对的位置,也就是说,目标数据的已有键值对的存储位置,或者逻辑地址所对应的物理地址的位置。
例如,本次事务请求为账户A向账户B转账,前一区块处理过程中包括事务请求账户A向账户C转账;目标数据为账户A余额,目标数据的原数据为执行事务请求账户A向账户C转账后,账户A余额值;对应的,原存储单元中存储目标数据的原数据的键值对,如,键标识可以为账户A的账户名,版本标识为事务请求账户A向账户C转账所属区块的版本标识,该键值对的值域中存储有账户A余额值等。
具体的,物理存储层可以根据物理数据处理请求中的逻辑地址确定目标数据所对应的键标识;依据键标识和版本标识,确定目标数据的原数据的物理地址,即目标数据的原数据的原物理存储单元。例如,依据物理数据请求中的逻辑地址确定账户A余额所对应的键标识为账户A的账户名,而后依据账户A的账户名和版本标识,即可确定存储空间中存储执行事务请求账户A向账户C转账后,账户A余额值的键值对。
S570,物理存储层确定物理数据处理请求所对应的操作方式。如果物理数据处理请求为数据写入、数据删除、或数据更改请求,则执行步骤S580;如果物理数据处理请求为数据读取请求,则执行步骤S590。
S580,物理存储层为目标数据分配新物理存储单元,并在新物理存储单元中对原数据进行操作,且记录目标数据的当前版本标识。
本实施例中,为目标数据分配新物理存储单元,对应为,产生目标数据的新键值对,为新键值分配新物理存储单元。
具体的,如果物理数据处理请求为数据写入请求,则可以产生目标数据的新键值对作为目标键值对,并为目标键值对分配新物理存储单元,以存储目标键值对;而后在目标键值对的键域写入新的键标识和当前版本标识,在目标键值对的值域写入目标数据。
如果物理数据处理请求为数据删除请求,则可以产生目标数据的新键值对作为目标键值对,并为目标键值对分配新物理存储单元,以存储目标键值对;而后从目标数据的原数据所在物理存储单元中获取目标数据的键标识,在目标键值对的键域写入该键标识和当前版本标识,将目标键值对的值域设置为空。
如果物理数据处理请求为数据更改请求,则可以产生目标数据的新键值对作为目标键值对,并为目标键值对分配新物理存储单元,以存储目标键值对;而后从目标数据的原数据所在物理存储单元中获取目标数据的键标识,在目标键值对的键域写入该键标识和当前版本标识,在目标键值对的值域写入目标数据的更改数据。
需要说明的是,本实施例中,在确定物理数据处理请求为数据更改或数据删除请求时,通过新增加一个KV存储更改数据或删除数据,相比于在原KV的基础上进行修改,保留已有键值对,便于后续基于版本标识快速切换至之前其他版本标识的键值对数据进行查看。
S590,物理存储层从原物理存储单元中读取原数据。
具体的,如果物理数据处理请求为数据读取请求,则可以从原物理存储单元所对应的键值对的值域中读取原数据。
本发明实施例提供的技术方案,物理存储层根据物理数据处理请求中目标数据的版本信息确定版本标识之后,基于物理数据处理请求所给定的数据请求方式如数据写入、数据读取、数据删除或数据更改请求等,采用对应的处理策略执行物理数据处理请求。尤其是,当需要对数据进行写入、更改或删除处理时,通过新分配物理存储单元存储写入、更改或删除数据,相比于在原物理存储单元的基础上进行上述操作,保留已有物理存储单元,便于后续基于版本标识快速切换至之前其他版本标识的物理存储单元数据进行查看。此外,通过引入版本标识,当区块链系统存在区块回滚和重做的需求,例如发生分叉时需要回滚,那么基于本发明实施例所提供的多键值对存储系统能够方便的切换至之前任何版本的键值对数据,不需要进行大量键值对的数据调整,同样就避免了索引的调整。同时。当区块链节点存在区块同步需求时,每个区块中事务请求所新增或改写的数据,会对应一个新的版本标识进行键值对存储,不影响已有版本标识键值对中的数据,即数据和数据的索引具有快照功能,方便在不停机的状态下进行同步操作。
实施例五
图6A为本发明实施例五提供的一种区块链节点的数据处理方法的流程图,本实施例在上述实施例的基础上,在物理存储层的数据存储结构为多版本键值对存储系统,且逻辑接口层为文件系统接口的情况下,进一步对逻辑数据接口层,将逻辑数据处理请求映射为基于物理存储层的数据存储结构,并产生物理数据处理请求,传输给物理存储层进行解释说明。如图6A所示,该方法包括以下具体步骤:
S610,区块链应用层在执行事务请求的过程中,确定事务请求所操作的目标数据,以及目标数据的版本信息。
S620,区块链应用层产生用于操作目标数据的逻辑数据处理请求,并传输给逻辑数据接口层,其中,逻辑数据处理请求中至少包括目标数据的版本信息。
S630,逻辑数据接口层中的文件系统接口获取区块链应用层的文件处理请求,其中,文件处理请求作为逻辑数据处理请求。
本实施例中,文件处理请求是指区块链应用层向逻辑数据接口层所发送的,用于请求其将文件处理请求转换为物理存储层所能够识别并处理的键值对形式。文件处理请求中可以至少包括待处理的目标文件,以及任何控制或管理目标文件的操作请求,例如文件的读、写、修改或删除等文件操作请求。
具体的,区块链节点本地需要进行文件处理需求时,通过区块链应用层中的可视化文件系统,如word,产生文件事务请求,区块链应用层在执行文件事务请求的过程中产生文件处理请求,并向逻辑数据接口层传输;逻辑数据接口层中的文件系统接口获取区块链应用层的文件处理请求。
还可以是,用户在需要进行文件管理时,通过可视化文件系统产生文件处理需求;可视化文件系统通过本地操作系统内核,将文件处理需求透传至部署于操作系统内核的用户空间文件系统,用户空间文件系统确定待处理的目标文件,并将包括目标文件的文件处理需求传递至可与区块链应用层进行数据交互的交互模块,由交互模块向本地区块链应用层或其他区块链节点的区块链应用层发起包括目标文件的文件处理需求,以调用区块链应用层的文件智能合约,产生文件事务请求;区块链应用层获取文件事务请求,并在执行文件事务请求的过程中产生文件处理请求,向逻辑数据接口层传输该文件处理请求;逻辑数据接口层中的文件系统接口获取区块链应用层的文件处理请求。
当然,也可以通过其他手段在区块链应用层发起文件处理请求。
S640,文件系统接口确定文件处理请求的目标文件的文件基础键值对。
由于物理存储层的数据存储结构是为多版本键值对存储系统,因此文件系统接口需将获取的文件处理请求转换为键值对的数据形式。可选的,可为每个存储文件设置一个文件基础键值对,也可以称为基础文件列表。文件基础键值对还可以通过层级关系包括至少一个关联键值对来扩展文件的存储空间。每个文件基础键值对包括键域(Key)和值域(Value),键域用于存储键标识,值域用于存储与键域中键标识相关联的目标数据的地址内容。相应的,如图6B所示,文件存储至文件基础键值对600中,其中,文件基础键值对600的键域601中存储文件名称,文件基础键值对600的值域602中存储地址内容。
本实施例中,由于文件基础键值对是每个文件的存储基础,当锁定了文件基础键值对即可确定整个文件下各数据的存储地址。因此可以根据文件处理请求确定目标文件的文件名称,而后以文件名称为索引即可确定目标文件的文件基础键值对。
需要说明的是,若文件系统接口中未存储目标文件的文件基础键值对,则可以产生新文件基础键值对作目标文件的文件基础键值对,将目标文件的文件名称写入新文件基础键值对的键域,将目标文件中各数据的地址内容写入新文件基础键值对的值域。
S650,文件系统接口在文件基础键值对值域的寻址区域中确定目标数据对应键值对的逻辑地址。
本实施例中,文件基础键值对值域中还可以包括寻址区域,寻址区域用于记录文件中各数据内容的逻辑地址,该逻辑地址可用于指向物理存储层中真正存储目标数据的物理存储单元。
具体的,文件系统接口在确定目标文件的文件基础键值对之后,可从文件基础键值对值域的寻址区域中确定目标数据对应键值对的逻辑地址。
可选的,如图6B所示,值域602中的寻址区域可以包括直接寻址区域622、间接寻址区域623、双间接寻址区域624、三间接寻址区域625以及具有更多层级关系相关联的扩展存储空间。其中,直接寻址区域622中直接记录有数据对应键值对的逻辑地址。
间接寻址区域623值域的寻址区域中记录有指向一级地址键值对641的存储地址,一级地址键值对641值域的寻址区域中记录有数据对应键值对的逻辑地址。其中,地址键值对与文件基础键值对的结构相似,地址键值对的键域中用于存储键标识,而地址键值对值域中的寻址区域用于存储与键标识相关联的且指向数据对应键值对的逻辑地址或下一级地址键值对的存储地址。
双间接寻址区域624值域的寻址区域中记录有指向二级地址键值对642的存储地址,二级地址键值对642值域的寻址区域中记录有指向一级地址键值对641的存储地址,相应的,一级地址键值对641值域的寻址区域中记录有指向数据对应键值对的逻辑地址。同理,三间接寻址区域625值域的寻址区域中记录有指向三级地址键值对643的存储地址,三级地址键值对643值域的寻址区域中记录有指向二级地址键值对642的存储地址,以此类推。
需要说明的是,各寻址区域之间是层级递进的,且不同的寻址区域所能存储的地址数量不同,也可相同。例如,如果直接寻址区域622所能存储的地址数量达到设定条件,则可从文件基础键值对600值域602的间接寻址区域623中进行寻址;当寻址层级较少的间接寻址区域所能存储的地址数量达到设定条件,则从相邻的寻址层级较多的间接寻址区域中进行寻址,以此类推,直到确定一级键值对的地址,并通过一级键值对确定数据对应键值对的逻辑地址。
示例性的,结合具体的文件处理场景,如果需要向文件中写入数据,则在目标文件的文件基础键值对的基础上,将所要写入数据的逻辑地址依据寻址层级关系依次顺序写入文件基础键值对的寻址区域中。如果需要从文件中读取数据,则依据寻址层级关系从文件基础键值对的寻址区域中获取待读取数据所对应键值对的逻辑地址。
S660,文件系统接口根据逻辑地址,和目标数据的版本信息,产生物理数据处理请求,并传输给物理存储层,以进行数据处理操作。
具体的,文件系统接口可以根据逻辑地址和版本信息产生物理数据处理请求,并传输给物理存储层,以使物理存储层根据逻辑地址和版本信息,确定目标数据在存储空间的物理存储单元,并对目标数据进行处理。
S670,物理存储层,根据物理数据处理请求针对存储空间中的数据进行处理。
本发明实施例提供的技术方案,逻辑数据接口层中的文件系统接口获取到区块链应用层传输的文件处理请求后,确定文件处理请求的目标文件所关联的文件基础键值对,并从文件基础键值对值域的寻址区域中确定目标数据对应键值对的逻辑地址;而后根据逻辑地址和版本信息产生物理数据处理请求,并传输给物理存储层,以使物理存储层根据逻辑地址和版本信息,确定目标数据在存储空间的物理存储单元即目标数据对应键值对的物理地址,并对目标数据进行处理。本方案,逻辑数据接口层中的文件系统接口通过采用文件基础键值对来存储文件管理和寻址信息,从而与物理存储层中所存储的数据对应的键值对建立了关联,实现了基于键值对存储系统的文件管理方式,提高了区块链系统中文件的管理和寻址能力,为文件的快速查找、读取、写入等管理操作提供依据。在物理存储层,可以不关注物理数据处理请求处理的是否为文件或其他形式,均可进行同样处理,因此逻辑数据处理请求不必收到物理存储层存储结构的制约。
实施例六
图7为本发明实施例六提供的一种区块链节点的数据处理方法的流程图,本实施例在上述实施例的基础上,在物理存储层的数据存储结构为多版本键值对存储系统,且逻辑接口层为数据结构接口的情况下,进一步对逻辑数据接口层,将逻辑数据处理请求映射为基于物理存储层的数据存储结构,并产生物理数据处理请求,传输给物理存储层进行解释说明。如图7所示,该方法包括以下具体步骤:
S710,区块链应用层在执行事务请求的过程中,确定事务请求所操作的目标数据,以及目标数据的版本信息。
S720,区块链应用层产生用于操作目标数据的逻辑数据处理请求,并传输给逻辑数据接口层,其中,逻辑数据处理请求中至少包括目标数据的版本信息。
S730,如果逻辑数据接口层中的数据结构接口接收到用于操作数据结构的逻辑数据处理请求,则根据数据结构与键值对的映射关系,确定逻辑数据处理请求的目标数据的键值对的逻辑地址。
由于物理存储层的数据存储结构是为多版本键值对存储系统,因此数据接口需将获取的逻辑数据处理请求转换为键值对的数据形式。本实施例中,数据结构可以包括但不限于数组、链表以及图集合等。数据结构接口可将不同形式的数据结构转换为键值对,例如可将数值和链表转换为地址键值对,将图集合转换为图键值对等。可选的,不同数据结构转换为键值对的策略不同,也即不同数据结构与键值对的映射关系不同。例如,对于数组而言,可将数组名及下标作为地址键值对的键标识,地址键值对的值域用于存储数组对应的数据键值对的逻辑地址,数据键值对位于物理存储层中。下述实施例将详细介绍不同数据结构转换为键值对的方式。
具体的,若逻辑数据接口层中的数据结构接口接收到用于操作数据结构的逻辑数据处理请求后,则可以根据逻辑数据处理请求中包括的目标数据,确定该目标数据所属数据结构;而后依据目标数据所属数据结构转换为相关键值对的策略,确定目标数据的键标识;进而根据键标识确定目标数据的键值对的逻辑地址。
S740,数据结构接口根据逻辑地址,和目标数据的版本信息,产生物理数据处理请求,并传输给物理存储层,以进行数据处理操作。
具体的,数据结构接口可以根据逻辑地址和版本信息产生物理数据处理请求,并传输给物理存储层,以使物理存储层根据逻辑地址和版本信息,确定目标数据在存储空间的物理存储单元,并对目标数据进行处理。
S750,物理存储层,根据物理数据处理请求针对存储空间中的数据进行处理。
本发明实施例提供的技术方案,逻辑数据接口层中的数据结构接口获取到区块链应用层传输的用于操作数据结构的逻辑数据处理请求后,可以根据数据结构与键值对的映射关系,确定逻辑数据处理请求的目标数据的键值对的逻辑地址;而后根据逻辑地址和版本信息产生物理数据处理请求,并传输给物理存储层,以使物理存储层根据逻辑地址和版本信息,确定目标数据在存储空间的物理存储单元即目标数据对应键值对的物理地址,并对目标数据进行处理。本方案,数据结构接口能够将不同形式的数据结构转换为键值对,从而与物理存储层中所存储的数据对应的键值对建立了关联,实现了基于键值对数据结构的管理方式,也为区块链应用层对于数据结构形式的数据存储需求提供了支持。
实施例七
图8为本发明实施例七提供的一种区块链节点的数据处理方法的流程图,本实施例在上述实施例的基础上,在物理存储层的数据存储结构为多版本键值对存储系统,且逻辑接口层为数据结构接口,以及数据结构为数组的情况下,进一步对逻辑数据接口层,将逻辑数据处理请求映射为基于物理存储层的数据存储结构,并产生物理数据处理请求,传输给物理存储层进行解释说明。如图8所示,该方法包括以下具体步骤:
S810,区块链应用层在执行事务请求的过程中,确定事务请求所操作的目标数据,以及目标数据的版本信息。
S820,区块链应用层产生用于操作目标数据的逻辑数据处理请求,并传输给逻辑数据接口层,其中,逻辑数据处理请求中至少包括目标数据的版本信息。
S830,如果逻辑数据接口层中的数据结构接口接收到用于操作数据结构的逻辑数据处理请求,则数据结构接口将目标数据的数组名称和下标,确定为数据键值对的键标识。
本实施例中,对于数组而言,数据结构接口可将数组转为地址键值对,每个地址键值对包括键域和值域,地址键值对的键域可存储有键标识,键标识可有数组名及下标组成,地址键值对的值域可存储有数据键值对的逻辑地址;而数据键值对存储于物理存储层的存储空间内,数据键值对的键域存储键标识(数组名和下标),数据键值对的值域存储该下标所对应的数据。逻辑接口层存储的地址键值对的键标识与物理存储层存储的数据键值对的键标识相同。其中,下标用于表明数据在数组中的位置或偏移量,可以为整数值。
例如,表1所示的地址键值对。a用于表示数组名,0至3用于表示下标,地址键值对的键标识可表示为a_下标,地址键值对的值域可存储有数据键值对的逻辑地址,逻辑地址用D表示。
表1数组对应的地址键值对
键标识 值域
a_0 D0
a_1 D1
a_2 D2
a_3 D3
例如,一个整型数组a,有10个元素,可表示为int a[9],10个元素可分别表示为a[0]、a[1]、a[2]、a[3]、a[4]、a[5]、a[6]、a[7]、a[8]以及a[9];若逻辑数据处理请求为,在数组a最后一个位置处中添加一个目标数据,则可以确定目标数据的数组名为a,下标为10,进而可确定数据键值对的键标识为a_10、a10或a+10等。若逻辑数据处理请求为,获取数据a中第5个数据,则可以确定数据键值对的键标识为a和4组成。
若逻辑处理请求为,新构建一个名为a且元素个数为10的数组,数据结构接口将在其存储空间为新构建的数组a分配存储空间,并产生数组的地址键值对,在地址键值对的键域中写入a和相应的下标作为键标识,在地址键值对的值域中写入数据键值对的逻辑地址。对应的物理存储层将构建数据键值对,且在数据键值对的键域中写入a和相应的下标作为键标识,在地址键值对的值域中写入数据。
S840,数据结构接口根据键标识确定目标数据所在数据键值对的逻辑地址。
具体的,数据结构接口在确定数据键值对的键标识后,可以以键标识为索引在地址键值对中确定目标数据所在数据键值对的逻辑地址。
S850,数据结构接口根据逻辑地址,和目标数据的版本信息,产生物理数据处理请求,并传输给物理存储层,以进行数据处理操作。
S860,物理存储层,根据物理数据处理请求针对存储空间中的数据进行处理。
本发明实施例提供的技术方案,提供了一种将数组形式的逻辑数据处理请求转换为键值对,从而与物理存储层中所存储的数据对应的键值对建立关联的方案,实现了基于键值对数组形式数据结构的管理方式,也为区块链应用层对于数组形式的数据存储需求提供了支持。
实施例八
图9为本发明实施例八提供的一种区块链节点的数据处理方法的流程图,本实施例在上述实施例的基础上,在物理存储层的数据存储结构为多版本键值对存储系统,且逻辑接口层为数据结构接口,以及数据结构为链表的情况下,进一步对逻辑数据接口层,将逻辑数据处理请求映射为基于物理存储层的数据存储结构,并产生物理数据处理请求,传输给物理存储层进行解释说明。如图9所示,该方法包括以下具体步骤:
S910,区块链应用层在执行事务请求的过程中,确定事务请求所操作的目标数据,以及目标数据的版本信息。
S920,区块链应用层产生用于操作目标数据的逻辑数据处理请求,并传输给逻辑数据接口层,其中,逻辑数据处理请求中至少包括目标数据的版本信息。
S930,如果逻辑数据接口层中的数据结构接口接收到用于操作数据结构的逻辑数据处理请求,则数据结构接口将目标数据的链表结点标识,确定为数据键值对的键标识;其中,用于存储链表结点标识的数据键值对值域中存储有前一结点和/或后一结点的数据键值对的键标识。
本实施例中,对于链表而言,与数组类型,数据结构接口可将链表转为地址键值对,每个地址键值对包括键域和值域,地址键值对的键域可存储有键标识,键标识可包括链表标识和某个结点标识(即链表结点标识)。地址键值对的值域可存储有数据键值对的逻辑地址;而数据键值对存储于物理存储层的存储空间内,数据键值对的键域存储键标识,数据键值对的值域存储该链表结点的数据,逻辑接口层存储的地址键值对的键标识与物理存储层存储的数据键值对的键标识相同。即数据键值对键标识具体可包括链表标识和某个结点标识。此外,基于链表的前后结点相连特性,为了便于后续查询,物理存储层可以将一个链表内的数据所对应的数据键值对关联存储。可选的,数据键值对的值域中还存储有该结点的前一个结点和/或后一个结点的结点标识。
链表结点标识可以有链表标识和结点标识组成,用于标识目标数据在某个链表中的位置或偏移量。可选的,可以将链表标识可以为链表名称,结点标识可以是流水号,可以将链表结点标识作为地址键值对和数据键值对的键标识等。例如,位于链表a中的第5个结点的数据键值对的键标识为a+005,第6个结点的数据键值对的键标识为a+006等。
此外,对于链表中第一结点而言,可将目标数据的链表结点标识作为数据键值对的键标识,数据键值对的值域可存储有数据,以及后一结点的数据键值对的键标识。同理,链表中的最后一个结点,数据键值对的值域可存储有数据,以及前一结点的数据键值对的键标识。
例如,表2和3所示的地址键值对和数据键值对。a用于表示链表名称,001至004用于结点标识,地址键值对的键标识可表示为a+结点标识,地址键值对的值域可存储有数据键值对的逻辑地址,逻辑地址用D表示。且数据键值对的值域存储有后一结点标识;第1个结点处的数据为100,第2个结点处的数据为200,第三个结点处的数据为300,第四个结点处的数据为400。
表2链表对应的地址键值对
键标识 值域
a+001 D1
a+002 D2
a+003 D3
a+004 D4
表3链表对应的数据键值对
键标识 值域
a+001 100a+002
a+002 200a+003
a+003 300a+004
a+004 400
可选的,对于单向链表而言,可将目标数据的链表结点标识作为数据键值对的键标识,数据键值对的值域可存储有数据,以及前一结点或后一结点的数据键值对的键标识。或者,将目标数据的链表结点标识,以及前一结点或后一结点的数据键值对的键标识,一起作为数据键值对的键标识,数据键值对的值域可存储有数据。
对于双向链表而言,可将目标数据的链表结点标识作为数据键值对的键标识,数据键值对的值域可存储有数据,以及前一结点和后一结点的数据键值对的键标识。或者,将目标数据的链表结点标识,以及前一结点和后一结点的数据键值对的键标识,一起作为数据键值对的键标识,数据键值对的值域可存储有数据。
具体的,数据结构接口在获取到用于操作链表的逻辑数据处理请求后,可以依据逻辑数据处理请求中的目标数据确定目标数据的链表结点标识;而后可将目标数据的链表结点标识作为数据键值对的键标识。
示例性的,若逻辑数据处理请求为从链表中读取目标数据,则可以确定目标数据的链表结点标识,而后可以将目标数据的链表结点标识作为数据键值对的键标识。
若逻辑数据处理请求为构建包括目标数据的链表,则数据结构接口将在其存储空间为新构建的链表分配存储空间,并产生链表的数据键值对,在数据键值对的键域中写入链表结点标识作为键标识,在数据键值对的值域中写入目标数据。
对于物理存储层而言,当需要在链表中添加结点时,需要新增数据键值对,同时需要更改该结点前后结点的数据键值对中的结点标识,以使调整链表中结点之间的关系。同样,当需要删除结点时,该结点的数据键值对前后结点也需要相应调整。
S940,数据结构接口根据键标识确定目标数据所在数据键值对的逻辑地址。
具体的,数据结构接口在确定数据键值对的键标识后,可以以键标识为索引在地址键值对中进行查询,进而确定目标数据所在数据键值对的逻辑地址。
S950,数据结构接口根据逻辑地址,和目标数据的版本信息,产生物理数据处理请求,并传输给物理存储层,以进行数据处理操作。
S960,物理存储层,根据物理数据处理请求针对存储空间中的数据进行处理。
本发明实施例提供的技术方案,提供了一种将数组形式的逻辑数据处理请求转换为键值对,从而与物理存储层中所存储的数据对应的键值对建立关联的方案,实现了基于键值对数组形式数据结构的管理方式,也为区块链应用层对于数组形式的数据存储需求提供了支持。
实施例九
图10为本发明实施例九提供的一种区块链节点的数据处理方法的流程图,本实施例在上述实施例的基础上,在物理存储层的数据存储结构为多版本键值对存储系统,且逻辑接口层为数据结构接口,以及数据结构为图集合的情况下,进一步对逻辑数据接口层,将逻辑数据处理请求映射为基于物理存储层的数据存储结构,并产生物理数据处理请求,传输给物理存储层进行解释说明。如图10所示,该方法包括以下具体步骤:
S1010,区块链应用层在执行事务请求的过程中,确定事务请求所操作的目标数据,以及目标数据的版本信息。
S1020,区块链应用层产生用于操作目标数据的逻辑数据处理请求,并传输给逻辑数据接口层,其中,逻辑数据处理请求中至少包括目标数据的版本信息。
S1030,如果逻辑数据接口层中的数据结构接口接收到用于操作数据结构的逻辑数据处理请求,则数据结构接口根据目标数据的图标识查询图键值对。
由于物理存储层的数据存储结构是为多版本键值对存储系统,因此数据接口需将获取的逻辑数据处理请求转换为键值对的数据形式。可选的,可为每个图集合设置一个图键值对,每个图键值对包括键域和值域,键域可存储有键标识,键标识可以是图标识,图标识可以为图集合的名称;值域存储有记录有数据对应键值对的逻辑地址,该逻辑地址可用于指向物理存储层中真正存储目标数据的物理存储单元。
例如,表4所示的图键值对。01用于表示图键值对的键标识(图标识),数据对应的键标识用K表示,以及键标识的逻辑地址用D表示。
表4图集合对应的图键值对
Figure BDA0001923479840000331
此外,与文件系统接口中的文件基础键值对类似,图键值对还可以通过层级关系包括至少一个关联键值对来扩展文件的存储空间,且图键值对值域中可以包括寻址区域,寻址区域用于记录图中各数据内容的逻辑地址,该逻辑地址可用于指向物理存储层中真正存储目标数据的物理存储单元。可选的,值域中的寻址区域可以包括直接寻址区域、间接寻址区域、双间接寻址区域、三间接寻址区域以及具有更多层级关系相关联的扩展存储空间。其中,直接寻址区域中直接记录有数据对应键值对的逻辑地址。间接寻址区域值域的寻址区域中记录有指向一级地址键值对的存储地址,一级地址键值对值域的寻址区域中记录有数据对应键值对的逻辑地址。地址键值对的键域中用于存储键标识,而地址键值对值域中的寻址区域用于存储与键标识相关联的且指向数据对应键值对的逻辑地址或下一级地址键值对的存储地址。
双间接寻址区域值域的寻址区域中记录有指向二级地址键值对的存储地址,二级地址键值对值域的寻址区域中记录有指向一级地址键值对的存储地址,相应的,一级地址键值对值域的寻址区域中记录有指向数据对应键值对的逻辑地址。同理,三间接寻址区域值域的寻址区域中记录有指向三级地址键值对的存储地址,三级地址键值对值域的寻址区域中记录有指向二级地址键值对的存储地址,以此类推。
通过上述转换策略,可以将图集合数据结构转换为一个有序、便于快速查找数据,以及动态添加新索引等的索引结构。
具体的,数据结构接口层接收到用于操作数据结构的逻辑数据处理请求后,可以从逻辑数据处理请求中获取目标数据;而后以目标数据的图标识为索引即可确定目标数据所对应的图键值对。
需要说明的是,若数据结构接口中未存储目标数据的图键值对,则可以产生新图键值对作目标数据的图键值对,将目标数据的图标识写入新图键值对的键域,将目标数据中各数据的地址内容写入新图键值对的值域。
S1040,数据结构接口从图键值对的值域中,查找目标数据对应的键标识以及键标识的逻辑地址。
具体的,数据结构接口在确定目标数据的图键值对之后,可从图键值对值域的值域中查找,确定目标数据对应的键标识以及键标识的逻辑地址。
S1050,数据结构接口根据逻辑地址,和目标数据的版本信息,产生物理数据处理请求,并传输给物理存储层,以进行数据处理操作。
S1060,物理存储层,根据物理数据处理请求针对存储空间中的数据进行处理。
本发明实施例提供的技术方案,提供了一种将图集合形式的逻辑数据处理请求转换为键值对,从而与物理存储层中所存储的数据对应的键值对建立关联的方案,实现了基于键值对图集合形式数据结构的管理方式,也为区块链应用层对于图集合形式的数据存储需求提供了支持。
实施例十
图11为本发明实施例十提供的一种区块链节点的数据处理方法的流程图,本实施例在上述实施例的基础上,在物理存储层的数据存储结构为多版本键值对存储系统,且逻辑接口层为搜索引擎接口的情况下,进一步对逻辑数据接口层,将逻辑数据处理请求映射为基于物理存储层的数据存储结构,并产生物理数据处理请求,传输给物理存储层进行解释说明。如图11所示,该方法包括以下具体步骤:
S1110,区块链应用层在执行事务请求的过程中,确定事务请求所操作的目标数据,以及目标数据的版本信息。
S1120,区块链应用层产生用于操作目标数据的逻辑数据处理请求,并传输给逻辑数据接口层,其中,逻辑数据处理请求中至少包括目标数据的版本信息。
S1130,逻辑数据接口层的搜索引擎接口,将逻辑数据处理请求的搜索语句,映射为基于物理存储层的数据存储结构的搜索语句,并产生物理数据搜索请求,作为物理数据处理请求,传输给物理存储层。
本实施例中,搜索引擎接口例如为SQL搜索数据库,SQL是一种数据库的访问编程语言,有规范的搜索语句,例如“select username from tableX where age=18”,表示从tableX表格中选出用户名,这些用户的年龄是18岁。当搜索引擎接口接收到诸如上述的规范搜索语句时,相当于接收到了逻辑数据处理请求。由搜索引擎接口基于规范搜索语句进行符合物理存储层数据存储结构的语句转换,如转换为符合KV存储结构的搜索语句。具体可以是将逻辑层的数据库映射为物理层数据库,例如tableX表格映射为以KV存储结构来存储。对于搜索条件“age”可以映射为在物理存储层中的KV,进行搜索。
逻辑层的搜索语句进而就可以产生物理数据搜索请求,供物理存储层进行数据搜索。当然,搜索引擎接口还可以支撑其他语法规则的搜索语句转换。
S1140,物理存储层,根据物理数据处理请求针对存储空间中的数据进行处理。
本发明实施例提供的技术方案,提供了一种将包括搜索语句形式的逻辑数据处理请求转换为基于物理存储层的数据存储结构的搜索语句,从而与物理存储层中所存储的数据建立关联的方案,为区块链应用层对于搜索形式的数据存储需求提供了支持。
实施例十一
图12为本发明实施例十一提供的一种区块链节点的数据处理装置的结构示意图,该装置可配置于区块链节点的计算设备中,可执行本发明任意实施例所提供的区块链节点的数据处理方法,具备执行方法相应的功能模块和有益效果。
如图12所示,该装置包括:
应用层传输模块1210,用于区块链应用层在执行事务请求的过程中,产生逻辑数据处理请求,并传输给逻辑数据接口层;
逻辑层传输模块1220,用于所述逻辑数据接口层,将逻辑数据处理请求映射为基于物理存储层的数据存储结构,并产生物理数据处理请求,传输给物理存储层;
物理层处理模块1230,用于物理存储层,根据物理数据处理请求针对存储空间中的数据进行处理。
本发明实施例提供的技术方案,区块链应用层将在执行事务请求过程中所产生的逻辑数据处理请求传输至逻辑数据接口层,以使逻辑数据接口将逻辑数据处理请求映射为基于物理存储层的数据存储结构,并向物理存储层传输物理数据处理请求;物理存储层对逻辑接口层传输的物理数据处理请求进行处理,并存储。相比于现有的区块链节点的数据处理方案,本方案中逻辑数据接口层作为区块链应用层与物理存储层的中间层,能够将区块链应用层传输的不同数据形式的数据映射为基于物理存储层的数据存储结构,进而使物理存储层在数据存储结构有限的情况下,也能为区块链应用层的数据存储需求提供支持。
示例性的,物理存储层的数据存储结构为多版本键值对存储系统。
示例性的,应用层传输模块1210可以包括:
数据信息确定单元,用于区块链应用层在执行事务请求的过程中,确定事务请求所操作的目标数据,以及目标数据的版本信息。
逻辑请求传输单元,用于区块链应用层产生用于操作目标数据的逻辑数据处理请求,并传输给逻辑数据接口层,其中,逻辑数据处理请求中至少包括目标数据的版本信息。
示例性的,逻辑层传输模块1220可以具体用于:
逻辑数据接口层,将逻辑数据处理请求映射为基于物理存储层的数据存储结构,确定目标数据的逻辑地址;
逻辑数据接口层根据逻辑地址和所述版本信息,产生物理数据处理请求,传输给物理存储层。
示例性的,数据信息确定单元可以具体用于:
区块链应用层调用本地虚拟机,对发起的事务请求进行预执行操作,或对接收的其他节点发起的事务请求进行执行操作,以确定事务请求所操作的目标数据,其中,事务请求为智能合约;
如果对目标数据的操作为数据写入操作,则区块链应用层确定当前区块的区块标识为目标数据的当前版本信息;
如果对目标数据的操作为数据更改操作或数据删除操作,则区块链应用层获取目标数据的原版本信息,以及确定当前区块的区块标识作为当前版本信息;
如果对目标数据的操作为数据读取操作,则区块链应用层获取目标数据的原版本信息,以及确定当前区块的区块标识作为当前版本信息。
示例性的,数据信息确定单元在区块链应用层获取目标数据的原版本信息时,可以用于:
区块链应用层根据事务请求中的指定版本确定所述目标数据的原版本信息;或
区块链应用层将目标数据的最近版本确定为原版本信息。
示例性的,数据信息确定单元在区块链应用层获取目标数据的原版本信息时,还可以用于:
区块链应用层从本地存储的版本映射关系表中,查询目标数据最近被写入的事务请求所属区块的区块标识,作为原版本信息。
示例性的,物理层处理模块1230可以具体用于:
物理存储层根据物理数据处理请求中目标数据的版本信息确定版本标识;
物理存储层根据物理数据处理请求中的逻辑地址和版本标识,确定目标数据的原数据所在的原物理存储单元;
如果物理数据处理请求为数据写入、数据删除、或数据更改请求,则物理存储层为目标数据分配新物理存储单元,并在新物理存储单元中对原数据进行操作,且记录目标数据的当前版本标识;
如果所述物理数据处理请求为数据读取请求,则物理存储层从原物理存储单元中读取原数据。
示例性的,逻辑数据接口层可以包括文件系统接口、数据结构接口和/或搜索引擎接口。
示例性的,逻辑层传输模块1220还可以具体用于:
逻辑数据接口层中的文件系统接口获取区块链应用层的文件处理请求,其中,文件处理请求作为逻辑数据处理请求;
文件系统接口确定文件处理请求的目标文件的文件基础键值对;
文件系统接口在文件基础键值对值域的寻址区域中确定目标数据对应键值对的逻辑地址;
文件系统接口根据所述逻辑地址,和目标数据的版本信息,产生物理数据处理请求,并传输给物理存储层,以进行数据处理操作。
示例性的,逻辑层传输模块1220可以包括:
逻辑地址确定单元,用于如果逻辑数据接口层中的数据结构接口接收到用于操作数据结构的逻辑数据处理请求,则根据数据结构与键值对的映射关系,确定逻辑数据处理请求的目标数据的键值对的逻辑地址;
物理请求传输单元,用于数据结构接口根据逻辑地址,和目标数据的版本信息,产生物理数据处理请求,并传输给物理存储层,以进行数据处理操作。
示例性的,如果数据结构为数组,逻辑地址确定单元可以用于:
数据结构接口将目标数据的数组名称和下标,确定为数据键值对的键标识;
数据结构接口根据键标识确定目标数据所在数据键值对的逻辑地址。
示例性的,如果数据结构为链表,逻辑地址确定单元可以用于:
数据结构接口将目标数据的链表结点标识,确定为数据键值对的键标识;其中,用于存储链表结点标识的数据键值对值域中存储有前一结点和/或后一结点的数据键值对的键标识;
数据结构接口根据键标识确定目标数据所在数据键值对的逻辑地址。
示例性的,如果数据结构为图集合,逻辑地址确定单元可以用于:
数据结构接口根据目标数据的图标识查询图键值对;
数据结构接口从图键值对的值域中,查找目标数据对应的键标识以及键标识的逻辑地址。
示例性的,逻辑层传输模块1220还可以具体用于:
逻辑数据接口层的搜索引擎接口,将逻辑数据处理请求的搜索语句,映射为基于物理存储层的数据存储结构的搜索语句,并产生物理数据搜索请求,作为物理数据处理请求,传输给物理存储层。
实施例十二
图13为本发明实施例十二提供的一种设备的结构示意图,图13示出了适于用来实现本发明实施例实施方式的示例性设备的框图。图13显示的设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。设备12典型可以是承担区块链网络节点功能的计算设备。
如图13所示,设备12以通用计算设备的形式表现。设备12的组件可以包括但不限于:一个或者多个处理器16,系统存储器28,连接不同系统组件(包括系统存储器28和处理器16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图13未显示,通常称为“硬盘驱动器”)。尽管图13中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。系统存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明实施例各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如系统存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明实施例所描述的实施例中的功能和/或方法。
设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该设备12交互的设备通信,和/或与使得该设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与设备12的其它模块通信。应当明白,尽管图中未示出,可以结合设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理器16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的区块链节点的数据处理方法。
实施例十三
本发明实施例五还提供一种计算机可读存储介质,其上存储有计算机程序(或称为计算机可执行指令),该程序被处理器执行时用于执行一种区块链节点的数据处理方法,该方法包括:
区块链应用层在执行事务请求的过程中,产生逻辑数据处理请求,并传输给逻辑数据接口层;
逻辑数据接口层,将逻辑数据处理请求映射为基于物理存储层的数据存储结构,并产生物理数据处理请求,传输给物理存储层;
物理存储层,根据物理数据处理请求针对存储空间中的数据进行处理。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明实施例操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或设备上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明实施例进行了较为详细的说明,但是本发明实施例不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (17)

1.一种区块链节点的数据处理方法,其特征在于,包括:
区块链应用层在执行事务请求的过程中,产生逻辑数据处理请求,并传输给逻辑数据接口层;其中,所述逻辑数据处理请求中至少包括目标数据的版本信息;所述目标数据的版本信息通过所述区块链应用层根据所述事务请求对目标数据的操作方式确定;
所述逻辑数据接口层,将所述逻辑数据处理请求映射为基于物理存储层的数据存储结构,并产生物理数据处理请求,传输给物理存储层;
所述物理存储层,根据所述物理数据处理请求针对存储空间中的数据进行处理;
其中,所述逻辑数据接口层,将所述逻辑数据处理请求映射为基于物理存储层的数据存储结构,并产生物理数据处理请求,传输给物理存储层,包括:
将所述逻辑数据处理请求映射为基于物理存储层的数据存储结构,确定目标数据的逻辑地址;
所述逻辑数据接口层根据所述逻辑地址和所述版本信息,产生所述物理数据处理请求,传输给物理存储层。
2.根据权利要求1所述的方法,其特征在于:所述物理存储层的数据存储结构为多版本键值对存储系统对应的存储结构。
3.根据权利要求2所述的方法,其特征在于,区块链应用层在执行事务请求的过程中,产生逻辑数据处理请求,并传输给逻辑数据接口层,包括:
所述区块链应用层在执行事务请求的过程中,确定所述事务请求所操作的目标数据,以及目标数据的版本信息;
所述区块链应用层产生用于操作所述目标数据的逻辑数据处理请求,并传输给所述逻辑数据接口层。
4.根据权利要求3所述的方法,其特征在于,所述区块链应用层在执行事务请求的过程中,确定所述事务请求所操作的目标数据,以及目标数据的版本信息,包括:
所述区块链应用层调用本地虚拟机,对发起的事务请求进行预执行操作,或对接收的其他节点发起的事务请求进行执行操作,以确定所述事务请求所操作的目标数据,其中,所述事务请求为智能合约;
如果对所述目标数据的操作为数据写入操作,则所述区块链应用层确定当前区块的区块标识为所述目标数据的当前版本信息;
如果对所述目标数据的操作为数据更改操作或数据删除操作,则所述区块链应用层获取所述目标数据的原版本信息,以及确定当前区块的区块标识作为当前版本信息;
如果对所述目标数据的操作为数据读取操作,则所述区块链应用层获取所述目标数据的原版本信息,以及确定当前区块的区块标识作为当前版本信息。
5.根据权利要求4所述的方法,其特征在于,所述区块链应用层获取所述目标数据的原版本信息,包括:
所述区块链应用层根据事务请求中的指定版本确定所述目标数据的原版本信息;或
所述区块链应用层将所述目标数据的最近版本确定为原版本信息。
6.根据权利要求5所述的方法,其特征在于,所述区块链应用层将所述目标数据的最近版本确定为原版本信息,包括:
所述区块链应用层从本地存储的版本映射关系表中,查询所述目标数据最近被写入的事务请求所属区块的区块标识,作为原版本信息。
7.根据权利要求3所述的方法,其特征在于,所述物理存储层,根据所述物理数据处理请求针对存储空间中的数据进行处理,包括:
所述物理存储层根据所述物理数据处理请求中目标数据的版本信息确定版本标识;
所述物理存储层根据所述物理数据处理请求中的逻辑地址和所述版本标识,确定目标数据的原数据所在的原物理存储单元;
如果所述物理数据处理请求为数据写入、数据删除、或数据更改请求,则所述物理存储层为所述目标数据分配新物理存储单元,并在所述新物理存储单元中对原数据进行操作,且记录目标数据的当前版本标识;
如果所述物理数据处理请求为数据读取请求,则所述物理存储层从所述原物理存储单元中读取原数据。
8.根据权利要求3-7任一所述的方法,其特征在于:所述逻辑数据接口层包括文件系统接口、数据结构接口和/或搜索引擎接口。
9.根据权利要求8所述的方法,其特征在于,所述逻辑数据接口层,将所述逻辑数据处理请求映射为基于物理存储层的数据存储结构,并产生物理数据处理请求,传输给物理存储层,包括:
逻辑数据接口层中的文件系统接口获取区块链应用层的文件处理请求,其中,所述文件处理请求作为所述逻辑数据处理请求;
所述文件系统接口确定所述文件处理请求的目标文件的文件基础键值对;
所述文件系统接口在所述文件基础键值对值域的寻址区域中确定目标数据对应键值对的逻辑地址;
所述文件系统接口根据所述逻辑地址,和目标数据的版本信息,产生物理数据处理请求,并传输给物理存储层,以进行数据处理操作。
10.根据权利要求8所述的方法,其特征在于,所述逻辑数据接口层,将所述逻辑数据处理请求映射为基于物理存储层的数据存储结构,并产生物理数据处理请求,传输给物理存储层,包括:
如果逻辑数据接口层中的数据结构接口接收到用于操作数据结构的逻辑数据处理请求,则根据数据结构与键值对的映射关系,确定所述逻辑数据处理请求的目标数据的键值对的逻辑地址;
所述数据结构接口根据所述逻辑地址,和目标数据的版本信息,产生物理数据处理请求,并传输给物理存储层,以进行数据处理操作。
11.根据权利要求10所述的方法,其特征在于,如果数据结构为数组,则所述数据结构接口根据数据结构与键值对的映射关系,确定所述逻辑数据处理请求的目标数据的键值对的逻辑地址,包括:
所述数据结构接口将所述目标数据的数组名称和下标,确定为数据键值对的键标识;
所述数据结构接口根据所述键标识确定目标数据所在数据键值对的逻辑地址。
12.根据权利要求10所述的方法,其特征在于,如果数据结构为链表,则所述数据结构接口根据数据结构与键值对的映射关系,确定所述逻辑数据处理请求的目标数据的键值对的逻辑地址,包括:
所述数据结构接口将所述目标数据的链表结点标识,确定为数据键值对的键标识;其中,用于存储链表结点标识的数据键值对值域中存储有前一结点和/或后一结点的数据键值对的键标识;
所述数据结构接口根据所述键标识确定目标数据所在数据键值对的逻辑地址。
13.根据权利要求10所述的方法,其特征在于,如果数据结构为图集合,则所述数据结构接口根据数据结构与键值对的映射关系,确定所述逻辑数据处理请求的目标数据的键值对的逻辑地址,包括:
所述数据结构接口根据所述目标数据的图标识查询图键值对;
所述数据结构接口从所述图键值对的值域中,查找所述目标数据对应的键标识以及键标识的逻辑地址。
14.根据权利要求8所述的方法,其特征在于,所述逻辑数据接口层,将所述逻辑数据处理请求映射为基于物理存储层的数据存储结构,并产生物理数据处理请求,传输给物理存储层,包括:
所述逻辑数据接口层的搜索引擎接口,将所述逻辑数据处理请求的搜索语句,映射为基于物理存储层的数据存储结构的搜索语句,并产生物理数据搜索请求,作为所述物理数据处理请求,传输给物理存储层。
15.一种区块链节点的数据处理装置,其特征在于,配置于区块链节点中,包括:
应用层传输模块,用于区块链应用层在执行事务请求的过程中,产生逻辑数据处理请求,并传输给逻辑数据接口层;其中,所述逻辑数据处理请求中至少包括目标数据的版本信息;所述目标数据的版本信息通过所述区块链应用层根据所述事务请求对目标数据的操作方式确定;
逻辑层传输模块,用于所述逻辑数据接口层,将所述逻辑数据处理请求映射为基于物理存储层的数据存储结构,并产生物理数据处理请求,传输给物理存储层;
物理层处理模块,用于所述物理存储层,根据所述物理数据处理请求针对存储空间中的数据进行处理;
其中,所述逻辑层传输模块具体用于:
所述逻辑数据接口层,将所述逻辑数据处理请求映射为基于物理存储层的数据存储结构,确定目标数据的逻辑地址;
所述逻辑数据接口层,根据所述逻辑地址和所述版本信息,产生所述物理数据处理请求,传输给物理存储层。
16.一种计算机设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-14中任一项所述的区块链节点的数据处理方法。
17.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-14中任一项所述的区块链节点的数据处理方法。
CN201811605445.7A 2018-12-26 2018-12-26 区块链节点的数据处理方法、装置、设备和存储介质 Active CN109726206B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811605445.7A CN109726206B (zh) 2018-12-26 2018-12-26 区块链节点的数据处理方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811605445.7A CN109726206B (zh) 2018-12-26 2018-12-26 区块链节点的数据处理方法、装置、设备和存储介质

Publications (2)

Publication Number Publication Date
CN109726206A CN109726206A (zh) 2019-05-07
CN109726206B true CN109726206B (zh) 2021-03-30

Family

ID=66297760

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811605445.7A Active CN109726206B (zh) 2018-12-26 2018-12-26 区块链节点的数据处理方法、装置、设备和存储介质

Country Status (1)

Country Link
CN (1) CN109726206B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11379316B2 (en) * 2019-06-04 2022-07-05 International Business Machines Corporation Snapshot restoration
CN110413695A (zh) * 2019-07-29 2019-11-05 北京百度网讯科技有限公司 基于区块链的警务信息管理方法、装置、设备和介质
WO2020035090A2 (en) * 2019-11-08 2020-02-20 Alipay (Hangzhou) Information Technology Co., Ltd. Lightweight decentralized application platform
WO2020035089A2 (en) 2019-11-08 2020-02-20 Alipay (Hangzhou) Information Technology Co., Ltd. System and method for blockchain-based decentralized application development
CN112989428B (zh) * 2021-05-08 2021-08-03 浙江数秦科技有限公司 一种联盟链数据快速加密存储方法
CN113254169B (zh) * 2021-06-11 2021-11-09 北京百度网讯科技有限公司 区块链系统的运行方法、装置、设备和存储介质
KR20240044230A (ko) * 2022-09-28 2024-04-04 케이포시큐리티 주식회사 블록체인 기반 데이터 고속 처리 장치 및 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108769150A (zh) * 2018-05-14 2018-11-06 百度在线网络技术(北京)有限公司 区块链网络的数据处理方法、装置、集群节点和存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102016224533A1 (de) * 2016-12-08 2018-06-14 Bundesdruckerei Gmbh Bidirektional verkettete Blockchainstruktur
CN108920514B (zh) * 2018-05-31 2020-10-09 百度在线网络技术(北京)有限公司 一种基于区块链的信息存储方法、装置、设备和存储介质
CN108846294A (zh) * 2018-06-22 2018-11-20 智链数据科技(南通)有限公司 基于区块链的食品数据存储方法及装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108769150A (zh) * 2018-05-14 2018-11-06 百度在线网络技术(北京)有限公司 区块链网络的数据处理方法、装置、集群节点和存储介质

Also Published As

Publication number Publication date
CN109726206A (zh) 2019-05-07

Similar Documents

Publication Publication Date Title
CN109726206B (zh) 区块链节点的数据处理方法、装置、设备和存储介质
CN109684335B (zh) 基于键值对的数据结构实现方法、装置、设备和存储介质
CN109684307B (zh) 一种数据存储方法、装置、设备及存储介质
US6804671B1 (en) Pluggable tablespaces for database systems
CN109710190B (zh) 一种数据存储方法、装置、设备及存储介质
US8073972B2 (en) System and method for location discovery based on DNS
CN109684414B (zh) 区块数据的同步方法、装置、设备及存储介质
KR100293795B1 (ko) 분산형데이터베이스시스템및데이터엔티티액세스방법
US20150039849A1 (en) Multi-Layer Data Storage Virtualization Using a Consistent Data Reference Model
US20190121901A1 (en) Database Sharding
CN109656889B (zh) 基于区块链的文件系统实现方法、装置、设备和存储介质
CN112578997B (zh) 一种数据迁移方法、系统及相关设备
EP2710477B1 (en) Distributed caching and cache analysis
US8874708B2 (en) Location discovery based on DNS
JP2008021330A (ja) 分散ファイル・システム
US11451629B2 (en) Distributed metadata management method for distributed file system
US20150269186A1 (en) Database Virtualization
CN109656886B (zh) 基于键值对的文件系统实现方法、装置、设备和存储介质
CN102314506B (zh) 基于动态索引的分布式缓冲区管理方法
US6549901B1 (en) Using transportable tablespaces for hosting data of multiple users
CN107004013A (zh) 用于使用基于硬件的处理来提供分布式树遍历的系统和方法
US11762775B2 (en) Systems and methods for implementing overlapping data caching for object application program interfaces
US20130198198A1 (en) Generating method, generating system, and recording medium
JP6268116B2 (ja) データ処理装置、データ処理方法およびコンピュータプログラム
US9380127B2 (en) Distributed caching and cache analysis

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