基于结构化的区块链数据存储、获取方法及装置与流程

文档序号:20775680发布日期:2020-05-19 20:44阅读:169来源:国知局
基于结构化的区块链数据存储、获取方法及装置与流程

本发明涉及计算机技术领域,尤其涉及一种基于结构化的区块链数据存储、获取方法及装置。



背景技术:

区块链技术,也被称之为分布式账本技术,是一种互联网数据库技术,其特点是去中心化、公开透明,让每个人均可参与数据库记录。

如果我们把数据库假设成一本账本,读写数据库就可以看做一种记账的行为,区块链技术的原理就是在一段时间内找出记账最快最好的人,由这个人来记账,然后将账本的这一页信息发给整个系统里的其他所有人。这也就相当于改变数据库所有的记录,发给全网的其他每个节点,所以区块链技术也称为分布式账本(distributedledger)。

在区块链中用户在任一节点获取数据信息时,如果不遍历所有节点,则会存在获取的数据可能篡改的情况。如果遍历所有节点,会导致计算机资源的浪费。因此,如何提高区块链中数据查询的效率,成为关注的焦点。



技术实现要素:

基于上述问题,本发明实施例提供了一种基于结构化的区块链数据存储、获取方法及装置。

第一方面,提供了一种基于结构化的区块链数据存储方法。应用于区块链节点,所述方法包括:接收待出块的多个业务数据记录,每个所述业务数据记录包括多个属性的数据,所述多个属性包括交易标识属性;基于所述多个业务数据记录中的交易标识,将所述多个业务数据记录转换为目标结构化数据,所述目标结构化数据包括交易标识属性分别与所述多个属性中其他属性的关系表;基于所述目标结构化数据,生成新的区块。

在一个可选的实现中,所述多个属性还包括时间戳属性和交易地址属性。

在一个可选的实现中,所述目标结构化数据中同一个元组对应的同一个业务数据记录中不同属性的数据。

第二方面,提供了一种基于结构化的区块链数据获取方法。应用于区块链节点,该方法包括:接收获取请求,并确定所述获取请求对应的目标交易标识和待获取数据的属性;获取所述目标交易标识和所述待获取数据的属性对应的第一关系表,所述第一关系表用于指示交易标识属性和所述待获取数据的属性之间的关系;在所述第一关系表中获取所述目标交易标识对应的目标数据,并将所述目标数据返回。

作为一个可选的实现中,所述获取请求包括目标交易地址和待获取数据的属性;确定所述获取请求对应的目标交易标识的步骤,包括:获取所述交易标识属性和交易地址属性对应的第二关系表;在所述第二关系表中,获取所述目标交易地址对应的目标交易标识。

第三方面,提供了一种基于结构化的区块链数据存储装置。应用于区块链节点,所述装置包括:接收单元,用于接收待出块的多个业务数据记录,每个所述业务数据记录包括多个属性的数据,所述多个属性包括交易标识属性;转换单元,用于基于所述多个业务数据记录中的交易标识,将所述多个业务数据记录转换为目标结构化数据,所述目标结构化数据包括交易标识属性分别与所述多个属性中其他属性的关系表;生成单元,用于基于所述目标结构化数据,生成新的区块。

第四方面,提供了一种基于结构化的区块链数据获取装置。应用于区块链节点,所述装置包括:接收单元,用于接收获取请求,并确定所述获取请求对应的目标交易标识和待获取数据的属性;获取单元,用于获取所述目标交易标识和所述待获取数据的属性对应的第一关系表,所述第一关系表用于指示交易标识属性和所述待获取数据的属性之间的关系;发送单元,用于在所述第一关系表中获取所述目标交易标识所述目标属性对应的目标数据,并将所述目标数据返回。

第五方面,本说明书实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现前述第一方面所述的方法步骤。

第六方面,本说明书实施例提供了一种区块链网络,包括多个区块链节点以及多个用户设备,所述区块链节点用于实现前述第一方面所述的方法步骤。

第七方面,提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述第一方面所述的方法步骤。

第八方面,提供了一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使得计算机执行上述第一方面所述的方法步骤。

本发明实施例提供了一种基于结构化的区块链数据存储、获取方法及装置。通过接收待出块的多个业务数据记录,每个所述业务数据记录包括多个属性的数据,所述多个属性包括交易标识属性;基于所述多个业务数据记录中的交易标识,将所述多个业务数据记录转换为目标结构化数据,所述目标结构化数据包括交易标识属性分别与所述多个属性中其他属性的关系表;基于所述目标结构化数据,生成新的区块。因此,可以降低在查询数据时,所需要遍历的数据量,提升查询效率。

附图说明

图1应用本申请提供的实施例的示例性架构;

图2为本发明实施例提供的一种基于结构化的区块链数据存储方法的流程图;

图3为本发明实施例提供的一种基于结构化的区块链数据获取方法的流程图;

图4为本发明实施例提供的一种基于结构化的区块链数据存储装置的结构示意图;

图5为本发明实施例提供的一种基于结构化的区块链数据获取装置的结构示意图;

图6示出了本说明书实施例所提供的一种计算机设备结构示意图;

图7示出了本说明书实施例所提供的一种计算机设备结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供了一种基于结构化的区块链数据存储、获取方法及装置。图1示出了应用本申请提供的实施例的示例性架构。

如图1所示,该示例性架构可以包括一个或多个用户设备101和一个或多个区块链节点102,当区块链节点102和用户设备101为多个时,形成区块链网络,其中,该区块链网络中的区块链节点可以包括存储节点和出块节点。用户设备101可以用于与区块链节点102进行交互,例如,用户设备101发送业务数据给区块链节点;区块链节点将该业务数据存储在区块链中;用户设备101还可以向区块链节点发送查询请求,该查询请求用于请求区块链中的数据。

值得说明的是,本实施例架构并不限定其实现其他功能,例如用户设备101也可以作为区块链节点等。

为便于对本发明实施例的理解,下面将结合附图以具体实施例作进一步的解释说明,实施例并不构成对本发明实施例的限定。

图2为本发明提供的一种基于结构化的区块链数据存储方法流程示意图。如图2所示,应用于区块链节点(例如图1中所述的区块链节点102),该方法具体可以包括如下步骤:

s210,接收待出块的多个业务数据记录,每个业务数据记录包括多个属性的数据,该多个属性包括交易标识属性;

该多个属性可以包括多种,具体可以根据实际业务需要确定。例如,该多个属性还包括时间戳属性以及交易地址属性。

用户设备可以生成业务数据记录,并将业务数据记录发送至区块链节点。

区块链节点可以对指定周期内的多个业务数据记录进行验证、打包、盖上时间戳以生成区块。其中,该指定周期可以根据实际的需要确定。

在本申请实施例中,需要在对业务数据记录进行打包之前,先将该业务数据记录转换为指定的便于检索的数据结构。其中,对于业务数据记录,交易标识可以作为该业务数据记录的唯一标识,所以,可以将该周期内的业务数据记录,以交易标识为基准进行划分。

s220,基于多个业务数据记录中的交易标识,将多个业务数据记录转换为目标结构化数据,该目标结构化数据包括交易标识属性分别与多个属性中其他属性的关系表;

在该目标结构化数据中同一个元组对应的同一个业务数据记录中不同属性的数据。例如,该目标结构中可以包括多张交易标识对应的关系表,对于一个业务数据记录,可以将该业务数据记录中各个数据,按属性划分到各个关系表中,以实现将业务数据记录结构化。在该结构化数据中交易标识作为该业务数据记录的标识,通过该交易标识既可以同时或依次确定该业务数据记录对应的所有数据。

其中,一个关系对应着一个二维表,该二维表可以通过关系名命名。对于一个关系表中,每个属性的属性值,即为业务数据记录中的数据。

s230,基于目标结构化数据,生成新的区块。

在将周期内的业务数据记录转换为目标结构后,可以根据该目标结构化数据,进行打包、盖上时间戳后,生成新的区块。可以将该新的区块发送至验证节点,以便对该新的区块进行验证后,实现不可逆。

本申请实施例,通过接收待出块的多个业务数据记录,每个业务数据记录包括多个属性的数据,该多个属性包括交易标识属性;基于所述多个业务数据记录中的交易标识,将所述多个业务数据记录转换为目标结构化数据,所述目标结构化数据包括交易标识属性分别与所述多个属性中其他属性的关系表;基于所述目标结构化数据,生成新的区块。因此,可以降低在查询数据时,所需要遍历的数据量,提升查询效率。

图3为本发明提供的一种基于结构化的区块链数据获取方法流程示意图。如图3所示,应用于区块链节点(例如图1中所述的区块链节点102),该方法具体可以包括如下步骤:

s310,接收获取请求,并确定获取请求对应的目标交易标识和待获取数据的属性;

该获取请求可以为用户通过用户设备触发。例如,用户可以通过用户设备中的客户端,触发对区块链中的数据进行查询。其中,在该用户设备中可以记录有多个数据标识,例如,数据的哈希值,数据的存储地址以及数据所属的账户等等。

用户可以在用户设备中选择或输入目标交易标识和/或待获取数据的属性,以触发数据获取请求。

s320,获取目标交易标识和待获取数据的属性对应的第一关系表,该第一关系表用于指示交易标识属性和待获取数据的属性之间的关系;

s330,在第一关系表中获取目标交易标识对应的目标数据,并将目标数据返回。

在一些实施例中,获取请求可以包括目标交易地址和待获取数据的属性;确定所述获取请求对应的目标交易标识的步骤,包括:

获取所述交易标识属性和交易地址属性对应的第二关系表;

在所述第二关系表中,获取所述目标交易地址对应的目标交易标识。

在另一些实施例中,获取请求可以包括目标交易标识和待获取数据的属性。

图4为本发明提供的一种基于结构化的区块链数据存储装置结构示意图。如图4所示,应用于区块链节点(例如图1中所述的区块链节点102),该装置具体可以包括如下结构:

接收单元401,用于接收待出块的多个业务数据记录,每个所述业务数据记录包括多个属性的数据,所述多个属性包括交易标识属性;

转换单元402,用于基于所述多个业务数据记录中的交易标识,将所述多个业务数据记录转换为目标结构化数据,所述目标结构化数据包括交易标识属性分别与所述多个属性中其他属性的关系表;

生成单元403,用于基于所述目标结构化数据,生成新的区块。

在一些实施例中,所述多个属性还包括时间戳属性和交易地址属性。

在一些实施例中,所述目标结构化数据中同一个元组对应的同一个业务数据记录中不同属性的数据。

可以理解,本实施例的基于结构化的区块链数据存储装置与图2所示的方法实施例相对应,因此,以上关于图2所示的方法实施例的描述同样适用于本实施例的装置,在此不再赘述。

图5为本发明提供的一种基于结构化的区块链数据获取装置结构示意图。如图5所示,应用于区块链节点(例如图1中所述的区块链节点102),该装置具体可以包括如下结构:

接收单元501,用于接收获取请求,并确定所述获取请求对应的目标交易标识和待获取数据的属性;

获取单元502,用于获取所述目标交易标识和所述待获取数据的属性对应的第一关系表,所述第一关系表用于指示交易标识属性和所述待获取数据的属性之间的关系;

发送单元503,用于在所述第一关系表中获取所述目标交易标识所述目标属性对应的目标数据,并将所述目标数据返回。

在一些实施例中,所述获取请求包括目标交易地址和待获取数据的属性;接收单元501具体用于:

获取所述交易标识属性和交易地址属性对应的第二关系表;

在所述第二关系表中,获取所述目标交易地址对应的目标交易标识。

可以理解,本实施例的基于结构化的区块链数据获取装置与图3所示的方法实施例相对应,因此,以上关于图3所示的方法实施例的描述同样适用于本实施例的装置,在此不再赘述。

图6示出了本说明书实施例所提供的一种计算机设备结构示意图,该计算机设备可以包括:处理器610、存储器620、输入/输出接口630、通信接口640和总线650。其中处理器610、存储器620、输入/输出接口630和通信接口640通过总线650实现彼此之间在设备内部的通信连接。处理器610用于执行存储器620中存储的可执行模块,例如图2所示的方法实施例对应的计算机程序。

图7示出了本说明书实施例所提供的一种计算机设备结构示意图,该计算机设备可以包括:处理器710、存储器720、输入/输出接口730、通信接口740和总线750。其中处理器710、存储器720、输入/输出接口730和通信接口740通过总线750实现彼此之间在设备内部的通信连接。处理器710用于执行存储器720中存储的可执行模块,例如图3所示的方法实施例对应的计算机程序。

对于上述图6或图7中,处理器可以采用通用的cpu(centralprocessingunit,中央处理器)、微处理器、应用专用集成电路(applicationspecificintegratedcircuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。

存储器可以采用rom(readonlymemory,只读存储器)、ram(randomaccessmemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器中,并由处理器来调用执行。

输入/输出接口用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。

通信接口用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。

总线包括一通路,在设备的各个组件(例如处理器、存储器、输入/输出接口和通信接口)之间传输信息。

需要说明的是,尽管上述设备仅示出了处理器、存储器、输入/输出接口、通信接口以及总线,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。

专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的范围之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1