CN109241032B - 账本数据库组件、运行方法及存储介质 - Google Patents

账本数据库组件、运行方法及存储介质 Download PDF

Info

Publication number
CN109241032B
CN109241032B CN201810936782.8A CN201810936782A CN109241032B CN 109241032 B CN109241032 B CN 109241032B CN 201810936782 A CN201810936782 A CN 201810936782A CN 109241032 B CN109241032 B CN 109241032B
Authority
CN
China
Prior art keywords
ledger
account book
blockchain network
component
nodes
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
CN201810936782.8A
Other languages
English (en)
Other versions
CN109241032A (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 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 CN201810936782.8A priority Critical patent/CN109241032B/zh
Publication of CN109241032A publication Critical patent/CN109241032A/zh
Application granted granted Critical
Publication of CN109241032B publication Critical patent/CN109241032B/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

账本数据库组件、运行方法及存储介质
技术领域
本发明涉及通信技术,尤其涉及一种账本数据库组件、运行方法及存储介质。
背景技术
在实现本发明过程中,发明人发现相关技术提供的区块链网络,区块链数据的数据结构多样化,区块数据访问缺少通用性,需要依赖于特定实现的区块链节点。
发明内容
本发明实施例提供一种账本数据库组件、运行方法及存储介质,能够实现对区块链网络的账本从多个维度解构形成统一的键值对形式的数据,使得数据访问具备通用性。
本发明实施例的技术方案是这样实现的:
第一方面,本发明实施例提供一种账本数据库组件,所述账本数据库组件包括:
账本数据协议组件,用于从区块链网络中同步获取所述区块链网络的账本,并将同步获取的所述账本从多个维度进行解构,形成键值对形式的数据集合;
其中,所述维度包括以下至少之一:
账本、交易、账户、元数据、区块及默克尔树;
账本存储组件,用于存储形成的所述键值对形式的数据集合。
第二方面,本发明实施例提供一种账本数据库组件的运行方法,所述方法包括:
从区块链网络中同步获取所述区块链网络的账本,并将同步获取的所述账本从多个维度进行解构,形成键值对形式的数据集合;
其中,所述维度包括以下至少之一:
账本、交易、账户、元数据、区块及默克尔树;
存储形成的所述键值对形式的数据集合。
第三方面,本发明实施例提供一种存储介质,存储有可执行指令,当所述可执行指令被执行时,用于实现本发明实施例提供的账本数据库组件的运行方法。
第四方面,本发明实施例提供一种账本数据库组件,所述账本数据库组件包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令,实现本发明实施例提供的所述账本数据库组件的运行方法。
本发明实施例具有以下有益效果:
1)对区块链网络的账本从不同维度的解构,能实现区块容量、区块数量、账户数量的弹性伸缩。
2)将区块链网络的账本从多个维度进行解构,形成统一的键值对形式的数据集合,使得数据访问具备通用性。
附图说明
图1是本发明实施例提供的区块链网络的功能架构示意图;
图2本发明实施例提供的区块链网络的组织架构示意图;
图3是本发明实施例提供的共识节点的一个可选的结构示意图;
图4为本发明实施例提供的账本数据库组件的组成结构示意图;
图5是本发明实施例提供的区块链网络的部署结构示意图一;
图6是本发明实施例提供的账本数据库组件的部署示意图一;
图7是本发明实施例提供的区块链网络的部署结构示意图二;
图8是本发明实施例提供的区块链网络的部署结构示意图三;
图9是本发明实施例提供的账本数据库组件的部署示意图二;
图10是本发明实施例提供的账本数据库组件的部署示意图三;
图11是本发明实施例提供的应用于账本数据库节点解构账本的示意图;
图12是本发明实施例提供的账本数据解构为键值对数据,并计算存在性证明的示意图;
图13是本发明实施例提供的账本数据库组件的运行方法的流程示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
1)交易(Transaction),等同于计算机术语“事务”,包括对智能合约的调用,以实现对账本中的目标账户的相关数据的操作,包括增、查、改的操作修改账户中的键值(Key-Value)对形式的数据,或者在账本中增加新的账户,并非单指商业语境中的交易,鉴于在区块链技术中约定俗成地使用了“交易”这一术语,本发明实施例遵循了这一习惯。
2)区块(Block),记录一段时间内交易所更新的账本数据的数据结构,被标记上时间戳和之前一个区块的独特标记(例如数字指纹),区块经过区块链网络中节点的共识验证后,会被追加到区块链的末尾成为新的区块。
3)区块链(Blockchain),区块以顺序相连的方式组合成的一种链式数据结构,在每个区块中引用前一个区块或者其子集的哈希值,从而以密码学的方式保证所记录交易的防篡改和防伪造。
4)区块链网络,通过共识的方式将新区块纳入区块链的一系列的、无中心的节点的集合。
5)账本(Ledger),区块链网络中以账户为维度所记录的数据的总和,包括账本数据、账本状态、账本状态证明和区块索引等元素。
6)账本数据,实际区块数据存储,即区块链中记录的一系列有序的、不可篡改的交易的记录,可以表现为文件系统的文件的形式,交易中调用的智能合约被执行时,实现对账户/账户中数据的更新。
7)账本状态,也称为状态数据,即账本数据的状态,可以表现为数据库终中的键值对的形式,其中实时账本状态用于表示共识的交易所更新的键值对的最新记录,历史账本状态用于表示键值对的历史记录。
8)存在性证明,是对账本数据以加密学方式实现的存在真实性的证明,例对账本数据计算默克尔(Merkle)树的方式证明。
9)共识(Consensus),是区块链网络中的一个过程,用于在涉及的多个节点之间对交易结果达成一致,实现共识的机制包括工作量证明(PoW)、权益证明(PoS,Proof ofStake)、股份授权证明(DPoS,Delegated Proof-of-Stake)、消逝时间量证明(PoET,Proofof Elapsed Time)等。
10)智能合约(Smart Contracts),也称为链码(Chaincode),部署在区块链网络中的根据条件而触发执行的程序,用于通过查询、增加、修改来操作账本,以实现对账本的查询或更新。
11)响应于,用于表示所执行的操作所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
下面说明实现本发明实施例的区块链网络的示例性的功能架构,参见图1,图1本发明实施例提供的区块链网络的功能架构示意图,包括应用层101、共识层102、网络层103、数据层104和资源层105,下面分别进行说明。
资源层105封装各种可用的计算资源和存储资源,例如计算机、服务器/集群和云中的计算资源和存储资源,进行抽象并向数据层104提供统一的接口以屏蔽实现资源层105的底层硬件的差异性。
计算资源包括各种形式的处理器,例如中央处理器(CPU)、应用专用集成电路(ASIC,Application Specific Integrated Circuit)、专用集成电路和现场可编程门阵列(FPGA,Field-Programmable Gate Array)的各种形式的处理器。
存储资源包括各种易失性存储器和非易失性存储器等各种类型的存储介质。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)。易失性存储器可以是随机存取存储器(RAM,Random Access Memory),其用作外部高速缓存。
资源层105的计算资源和存储资源可以被映射为区块链网络中各种类型的节点,实现本发明实施例的存储介质存储了用于实现本发明实施例的区块链网络部署方法的可执行指令,一旦被部署到节点的可执行指令被执行,实现节点的底层资源(例如各种类型的处理器)将实现区块链网络中各种类型的节点的部署、以及执行各种类型节点的功能,从而实现针对业务过程中的交易的账本、以及基于账本的各种应用。
作为示例,可执行指令可以采用软件(包括系统程序和应用程序)、软件模块、脚本、插件等的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件或者适合在计算环境中使用的其它单元。
数据层104封装了实现账本的各种数据结构,包括以文件系统实现的账本状态,以数据库形式实现的账本数据和存在性证明。
网络层103封装了点对点(P2P)网络协议、数据传播机制和数据验证机制、接入和认证机制和业务主体身份。P2P网络协议实现区块链网络中节点之间的通信,数据传播机制保证了交易/交易结果在区块链网络中的传播,数据验证机制用于基于加密学方法(例如数字证书、数字签名、公/私钥对)实现节点之间传输数据的可靠性;接入和认证机制用于基于业务主体身份对终端的接入和认证进行管理。
共识层102封装了区块链中传播的交易结果达成一致性的机制,包括POS、POW和DPOS等,支持共识机制的可插拔。
应用层101封装了区块链网络能够实现的各种业务,包括交易结算、溯源和存证等。
下面说明实现本发明实施例的区块链网络的示例性的组织架构,参见图2,图2本发明实施例提供的区块链网络的组织架构示意图,包括至少两个共识节点110,作为示例,图2中仅示出了共识节点110-1和共识节点110-2;共识节点110-1和共识节点110-2是针对参与业务的两个不同业务实体在业务中所实现的角色而对应部署。区块链网络100的共识节点110响应来自业务主体的终端300提交的交易以更新账本或者查询账本,并在终端300的用户界面310显示各种中间结果或最终结果。
下面以共识节点为例,说明实现本发明实施例的区块链网络中节点的示例性结构,可以理解地,区块链网络100中的其他节点的硬件结构可以根据共识节点的硬件结构而对应实施。
参见图3,图3是本发明实施例提供的共识节点110一个可选的结构示意图,共识节点110可以是一个或多个服务器,根据共识节点110的结构,可以预见共识节点110的其他的示例性结构,因此这里所描述的结构不应视为限制,例如可以省略下文所描述的部分组件,或者,增设下文所未记载的组件以适应某些应用场景的特殊需求。
图3所示的共识节点110包括:至少一个处理器1101、存储器1104、至少一个网络接口1102。共识节点110中的各个组件通过总线系统1103耦合在一起。可理解,总线系统1103用于实现这些组件之间的连接通信。总线系统1103除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图3中将各种总线都标为总线系统1103。
存储器1104可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。本发明实施例描述的存储器1104旨在包括这些和任意其它适合类型的存储器。
处理器1101可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
存储器1104能够存储可执行指令以支持共识节点110的操作,这些可执行指令的示例包括:用于在共识节点110上操作的程序、插件和脚本等各种形式的软件模块,程序例如可以包括操作系统和应用程序,其中,操作系统包含各种系统程序和驱动程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序可以包含实现共识节点110各种功能的程序。
结合上文可知,实现本发明实施例的区块链网络通过提供为一系列的存储器和处理器的形式,在存储器中存储有可执行指令,当可执行指令被处理器执行时,在运行处理器和存储器的多个机器部署有与业务主体的角色相适配的共识节点,当然还可以部署有其他类型的节点。
作为本发明实施例提供的区块链部署方法采用软硬件结合实施的示例,本发明实施例所提供的区块链部署方法可以直接体现为由处理器1101执行的上述不同形式的软件模块,软件模块可以位于存储介质中,存储介质位于存储器1104,处理器1101读取存储器1104中软件模块包括的可执行指令,结合必要的硬件(例如,包括处理器1101以及连接到总线系统1103的其他组件)完成共识节点110的功能。
下面说明实现本发明实施例的区块链网络支撑多个业务主体参与业务的示例性应用,参与业务的业务主体在所参与业务中所实现的角色根据业务主体的业务诉求而定。
在一个示例性的业务中,业务主体的角色至少可以包括交易方,还可以包括协作方、监管方、认证方和备案方,下面分别进行说明。
交易方是业务中的主要角色,交易方彼此之间就开展的一项或多项业务具有在维护共同的账本中记录交易的日志的业务诉求,例如,在账本中记录交易方之间的数字资产、商品库存的状态的变化。
协作方,在业务中与交易方协同完成交易过程的业务主体,向交易方提供必要的业务支持,或者用于完成交易方在业务中所实现的部分业务环节的业务实体。
监管方,是对交易方的交易结果具有监管诉求的业务主体,不参与交易方的具体交易过程,例如,对交易有监管权限/责任的相关职能部门。
认证方,是对交易方、或对交易方所交易的对象(例如实体商品、虚拟商品、数字资产等)具有行业认证资质的业务主体,账本中可以包括认证方针对对象所签发的认证信息(例如产品质量认证、产地认证等),以供在后续的交易/使用过程中证明交易方的合法资质、以及交易对象的质量等。
备案方,是对业务的账本有备份诉求的业务实体,不参与交易方的具体交易过程,例如,对账本有监察权限的智能部门,对账本提供验证服务的第三方机构等。
接下来对本发明实施例提供的账本数据库组件进行说明。图4为本发明实施例提供的账本数据库组件的组成结构示意图,参见图4,本发明实施例提供的账本数据库组件的组成包括:账本数据协议组件610及账本存储组件620。
账本数据协议(Ledger Data Contract)组件610用于实现一个标准的、与外部访问一致的存储管理方式,定义和管理了数据结构以组织账本数据、针对账本数据的操作,解构并存储账本数据的方式;从多个维度解构账本数据形成的键值对集合。
账本存储组件620用于将解构的键值对数据存储到非结构性数据库/单个的文件中,从而能够向终端300提供账本的链下访问服务(即不通过共识节点110即可查询账本的服务),这种查询服务不依赖于区块链网络100的内部的交易处理逻辑完成,并提供键值对的方式提供查询服务,查询的数据的维度包括:账本(一条区块链)、交易、账户、元数据、区块和Merkle树。
由于这种存储结构具有良好的扩展性,因此即使是单区块大小无限制、账户数量无限制、区块增长无限制的情况,通过解构形成的键值对数据来响应查询请求,相较于查询文件形式的账本数据能够实现更快速地查询。
账本数据库组件600还可以用于支持键值对数据的写入,例如,以实施为独立于区块链网络部署的存储集群时,支持终端300以链下的方式写入键值对数据;又例如,实施为账本数据库节点或共识节点时,将写入请求封装为交易提交到区块链中,在链上完成写入。
接下来对账本数据库组件600部署的不同情况进行说明。在实际实施时,账本数据库组件可以部署为区块链独立功能节点(如区块链网络中的账本数据库节点)。账本数据库组件还可以部署在区块链网络的任一节点,例如,账本数据库组件600部署在区块链网络的共识节点中,或者,可以部署为独立于区块链网络的存储集群,以下分别进行说明。
在一些实施例中,账本数据库组件600部署于区块链网络100中独立的账本数据库节点中,实现本发明实施例的区块链网络中还部署有共识节点,账本数据库节点可以连接共识节点,在另一些实施例中,区块链网络中还可以包括备份节点,账本数据库节点连接备份节点,在另一些实施例中,区块链网络中同时部署有共识节点、备份节点,以及与共识节点连接的账本数据库节点、与备份节点连接的账本数据库节点,以下分别进行说明。
图5是本发明实施例提供的区块链网络的部署结构示意图,参见图5,区块链网络100中对应参与业务的不同业务主体200而部署有共识节点110(本文中也称为共识节点110归属用于业务主体200)及账本数据库节点140,在图5中示例性示出了共识节点110-1至共识节点110-5、账本数据库节点140-1;账本数据库节点140-1连接共识节点110-4,以从共识节点110-4处同步区块链网络的账本到账本数据库节点140的本地,进而将区块链网络的账本从多个维度进行解构,形成键值对形式的数据集合并存储。
需要指出,区块链网络100中部署共识节点110的数量不仅限于图4所示,例如,可以部署更多的共识节点,或者,在区块链网络中仅针对业务的两个角色为交易方的业务主体而部署对应的共识节点;可以理解地,一个业务至少有两个交易方,因此区块链网络中针对交易方而部署的共识节点的数量至少为两个。
在一些实施例中,区块链网络100中的共识节点110通过对计算设备(例如,计算机、服务器/集群、云)进行如图1所示的资源层105的计算资源和存储资源进的抽象,并在此基础上部署数据层104的账本、网络层103的协议/机制、共识层102的共识机制以及应用层101的应用而实现。
在一些实施例中,在区块链网络中对应所述业务主体是否部署共识节点、以及部署的共识节点的数量,与所述业务主体在所述业务中实现的角色相适配,下面结合图5对不同角色的业务主体而部署节点的示例进行说明。
示例1)参见图5,当业务主体200-1和业务主体200-2在业务中的角色为交易方时,在区块链网络100中对应相应的业务主体200-1部署有至少一个共识节点即共识节点110-1和共识节点110-2,向来自业务主体200-1的终端提供接入,包括业务主体外部并与业务主体200-1连接的终端(包括终端300-1至终端300-3,其中终端300-1为手机、终端300-2为桌面设备,终端300-3为物联网设备)、以及业务主体内部的终端(图中未示出,例如通过内部专用网络而接入业务主体的终端);在区块链网络100中对应相应的业务主体200-2部署有至少一个共识节点即共识节点110-3,向来自业务主体200-2的终端提供接入,包括业务主体200-2内部的终端(包括终端300-4和终端300-5,均为桌面设备)、以及业务主体200-2外部、并与业务主体200-2连接的终端(图中未示出)。
在一个业务中通常至少有两个共识节点参与,因此在区块链网络中部署有至少两个共识节点。其中,针对不同角色的业务主体而部署的共识节点的数量可以根据相应业务主体的业务负荷确定,从而保证交易的处理效率;当然,针对业务主体部署的共识节点的数量也可以为设定值。
以角色为交易方的业务主体为例,业务负荷可以从以下至少一个方面确定:在业务主体内部和外部需要接入共识节点的终端的总量;窗口时间(如一小时)来自业务主体的终端(包括业务主体内部的终端、以及通过业务主体而接入共识节点的终端)提交交易的总量,等等。
示例2)参见图5,当业务主体200-1在业务中的角色为交易方时,在区块链网络100中对应业务主体200-1、以及角色为相应业务主体200-1的协作方的业务主体200-3-1部署有共同的至少一个共识节点,即共识节点110-2,共识节点110-2向来自业务主体200-3-1的终端提供接入,包括业务主体200-3-1内部的终端300-6(例如是用户终端),以及业务主体200-3-1外部的终端(图中未示出)。
业务主体200-2在业务中的角色为交易方时,在区块链网络100中对应业务主体200-2、以及角色为相应业务主体200-2的协作方的业务主体200-3-2部署有共同的至少一个共识节点即共识节点110-3,共识节点110-3为来自业务主体200-3-2的终端,包括业务主体200-3-2内部的终端300-4和终端300-5(例如是物联网终端),以及业务主体200-3-2的外部的终端(图中未示出)。
示例3)参见图5,当业务主体200-4在业务中的角色为监管方时,在区块链网络100中对应业务主体200-4部署有至少一个共识节点,即共识节点110-4,共识节点110-4向来自监管方的终端300-7提供接入。
示例4)参见图5,业务主体200-5在业务中的角色为认证方时,在区块链网络100中对应相应业务主体200-5部署有至少一个共识节点,即共识节点110-5。
基于图5所示的区块链网络的部署结构,参见图6,图6是本发明实施例提供的账本数据库组件的部署示意图,对应于图5所示的区块链网络,账本数据库节点140-1连接共识节点110-4,当区块链网络中的终端300向共识节点110-4提交交易后,共识节点110-4对终端300提交的交易排序后打包为新区块,执行所述新区块中的交易得到交易结果;对所述交易结果在区块链网络中共识节点之间执行共识,并根据执行共识后的交易结果更新共识节点110-4维护的账本。账本数据库节点140-1从共识节点110-4处同步获取所述账本,将区块链网络的账本从多个维度(如图6中所示,多个维度可以为账本、交易、账户、元数据、区块、默克尔数)进行解构,形成键值对形式的数据集合,并存储形成的所述键值对形式的数据集合。终端可采用链下的方式直接从账本数据库节点140-1处进行账本的访问,进行账本状态、账本数据的查询。
图7是本发明实施例提供的区块链网络的部署结构示意图,参见图7,区块链网络100中部署有共识节点110、备份节点120及账本数据库节点140(图中示例性的示出了账本数据库节点140-2);备份节点120对应在业务中的角色为备案业务主体而部署,用于将所维护的账本与共识节点所维护的账本进行同步,以更新备份节点维护的账本。账本数据库节点140-2连接备份节点120,从备份节点120处同步区块链网络的账本到账本数据库节点140的本地,进而将区块链网络的账本从多个维度进行解构,形成键值对形式的数据集合并存储,进而向区块链网络中的终端提供账本的链下查询。
图8是本发明实施例提供的区块链网络的部署结构示意图,参见图8,区块链网络100中部署有共识节点110、备份节点120、与共识节点110-4连接的账本数据库节点140-1,以及与备份节点120连接的账本数据库节点140-2,从而不论是以哪种方式部署的账本数据库节点140不管采用那种连接方式,都能够用于同步账本到账本数据库节点140的本地,进而将区块链网络的账本从多个维度进行解构,形成键值对形式的数据集合并存储,进而向区块链网络中的终端提供账本的链下查询。
图9是本发明实施例提供的账本数据库组件的部署示意图,参见图9,账本数据库组件600部署于区块链网络中的共识节点110上,共识节点110对终端提交的交易排序后打包为新区块,执行所述新区块中的交易得到交易结果;对所述交易结果在区块链网络中共识节点之间执行共识,并根据执行共识后的交易结果更新共识节点维护的账本,然后通过自身的账本数据库组件600对更新后的账本从多个维度进行解构,形成键值对形式的数据集合,并存储形成的所述键值对形式的数据集合。终端可采用链上的方式从共识节点110处进行账本的访问,进行账本状态、账本数据的查询。
图10是本发明实施例提供的账本数据库组件的部署示意图,参见图10,账本数据库组件部署为独立于区块链网络的存储集群。所述存储集群可以通过与区块链网络的通信获取区块链网络的账本,例如与区块链网络中的共识节点进行通信获取共识节点所维护的账本,然后对获取的账本从多个维度进行解构,形成键值对形式的数据集合,并存储形成的所述键值对形式的数据集合。终端可采用链下的方式从存储集群中进行账本的访问。
参见图11,图11是本发明实施例提供的应用于账本数据库节点解构账本的一个示意图,账本数据库节点将文件系统方式存储的账本数据(按照时间轴顺序排列形成的区块)进行多个维度的解构(包括账本、区块、交易、账户、存在性证明和元数据)形成键值对的集合,这些键值对记录的数据的示例包括:区块头中的数据摘要&时间戳;默克尔树中记录的默克尔树路径(交易数据的存在性证明);交易的数据内容;键值对集合可以采用非结构化数据库在存储集群中,例如主从(Master-Slaver)、副本集(Replica Set)、切片(Sharding)等类型的存储集群。从而能够实现快速查询,当然不局限于非结构化存储方式,例如还可以将解构的每个键值对存储为单独的文件(以键对文件进行命名),同样能够实现键值对的快速查询。
继续说明将账本数据解构形成键值对,并形成键值对的存在性证明的方式,参见图12,图12是本发明实施例提供的账本数据解构为键值对数据,并计算存在性证明的一个示意图,各个区块的账本数据被解构多个键值对的结合,以任意两个键值对为叶子节点计算哈希值作为新的叶子节点,并迭代计算哈希值,直至计算得到叶子节点的哈希值,形成对应区块的默克尔树路径,一个示例如:Block3-hash/hash1/hash2/hash3。区块的默克尔树路径能够作为从区块结构得到的键值对数据的存在性进行证明,区块连同对应的默克尔树路径构成区块的快照,通过从多个维度的解构,即使是非结构化的数据最终也能够形成非结构化的形式,从而实现了兼容结构化/非结构化数据可直接上链的技术效果。
参见图13,图13是本发明实施例提供的账本数据库组件的运行方法的流程示意图,结合步骤201至步骤202进行说明。
步骤201,将区块链网络的账本从多个维度进行解构,形成键值对形式的数据集合。
这里,在一些实施例中,本步骤之前,账本数据库组件需要获取区块链网络的账本,根据账本数据库组件的方式不同,获取区块链网络的账本的方式也不同,例如,当账本数据库组件部署于区块链网络中的账本数据库节点上时,可通过同步连接所述账本数据库节点的共识节点获取区块链网络中的账本,或者通过同步连接所述账本数据库节点的备份节点获取区块链网络中的账本。
步骤202,存储形成的所述键值对形式的数据集合。
在一些实施例中,所述账本数据库组件部署于独立于所述区块链网络的数据库系统中;所述方法还包括:向所述区块链网络中的终端提供针对所述账本的链下查询。
在一些实施例中,所述账本数据库组件部署于所述区块链网络中的账本数据库节点中,所述账本数据库节点连接所述区块链网络的共识节点,所述共识节点的数量为至少两个,对应参与业务的业务主体在所述业务中所实现的角色而部署;
所述将区块链网络的账本从多个维度进行解构,形成键值对形式的数据集合,包括:从所述共识节点处同步获取所述共识节点维护的所述区块链网络的账本,并将同步获取的所述账本从多个维度进行解构,形成键值对形式的数据集合;相应的,还包括:向所述区块链网络中的终端提供针对所述账本的链下查询。
在一些实施例中,所述账本数据库组件部署于所述区块链网络中的账本数据库节点中,所述账本数据库节点连接所述区块链网络中的备份节点,所述备份节点对应在业务中的角色为备案业务主体而部署;
所述将区块链网络的账本从多个维度进行解构,形成键值对形式的数据集合,包括:从所述备份节点处同步获取所述备份节点维护的所述区块链网络的账本,并将同步获取的所述账本从多个维度进行解构,形成键值对形式的数据集合;相应的,还包括:向所述区块链网络中的终端提供针对所述账本的链下查询。
在一些实施例中,账本数据库组件部署于所述区块链网络的共识节点中,所述共识节点的数量为至少两个,对应参与业务的业务主体在所述业务中所实现的角色而部署;账本数据协议组件对所述共识节点维护的所述区块链网络的账本从多个维度进行解构,形成键值对形式的数据集合;相应的,还包括:向所述区块链网络中的终端提供针对所述账本的链上查询。
在一些实施例中,所述存储形成的所述键值对形式的数据集合,包括:
将所述键值对形式的数据集合存储至非结构化数据库中;
或者,将解构得到的每个键值对数据打包形成对应的文件,以文件的方式存储所述数据集合。
在一些实施例中,将区块链网络的账本从多个维度进行解构,可以为将区块链网络的账本从以下至少之一个维度进行解构:账本、交易、账户、元数据、区块及默克尔树。
在一些实施例中,还包括:以键值对的形式进行数据的写入。
综上所述,本发明实施例具有以下有益效果:
1)对区块链网络的账本从不同维度的解构,能实现区块容量、区块数量、账户数量的弹性伸缩。
2)将区块链网络的账本从多个维度进行解构,形成统一的键值对形式的数据集合,使得数据访问具备通用性。
3)账本数据库组件可部署于区块链网络中的账本数据库节点上或实施为独立于区块链网络部署的存储集群,支持终端采用链下的方式进行账本的访问,提升了交易查询的效率;区块链网络的资源可以用于集中处理提交的交易,对提交交易响应的实时性得以提升。
本发明实施例还提供了一种存储介质,存储有可执行指令,当所述可执行指令被执行时,用于引起处理器执行本发明实施例提供的账本数据库组件的运行方法。
本发明实施例还提供了一种账本数据库组件,所述账本数据库组件包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令,实现本发明实施例提供的所述的账本数据库组件的运行方法。
以上所述,仅为本发明的实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。

Claims (10)

1.一种账本数据库组件,其特征在于,所述账本数据库组件包括:
账本数据协议组件,用于从区块链网络中同步获取所述区块链网络的账本,并将同步获取的所述账本从多个维度进行解构,形成键值对形式的数据集合;
其中,所述维度包括以下至少之一:
账本、交易、账户、元数据、区块及默克尔树;
账本存储组件,用于存储形成的所述键值对形式的数据集合。
2.根据权利要求1所述的账本数据库组件,其特征在于,所述账本数据库组件部署于独立于所述区块链网络的数据库系统中;
所述账本数据协议组件,还用于向所述区块链网络中的终端提供针对所述账本的链下查询。
3.根据权利要求1所述的账本数据库组件,其特征在于,所述账本数据库组件部署于所述区块链网络中的账本数据库节点中,所述账本数据库节点连接所述区块链网络的共识节点,所述共识节点的数量为至少两个,对应参与业务的业务主体在所述业务中所实现的角色而部署;
所述账本数据协议组件,还用于从所述共识节点处同步获取所述共识节点维护的所述区块链网络的账本,并将同步获取的所述账本从多个维度进行解构,形成键值对形式的数据集合;
以及,向所述区块链网络中的终端提供针对所述账本的链下查询。
4.根据权利要求1所述的账本数据库组件,其特征在于,所述账本数据库组件部署于所述区块链网络中的账本数据库节点中,所述账本数据库节点连接所述区块链网络中的备份节点,所述备份节点对应在业务中的角色为备案业务主体而部署;
所述账本数据协议组件,还用于从所述备份节点处同步获取所述备份节点维护的所述区块链网络的账本,并将同步获取的所述账本从多个维度进行解构,形成键值对形式的数据集合;
以及,向所述区块链网络中的终端提供针对所述账本的链下查询。
5.根据权利要求1所述的账本数据库组件,其特征在于,
所述账本数据库组件部署于所述区块链网络的共识节点中,所述共识节点的数量为至少两个,对应参与业务的业务主体在所述业务中所实现的角色而部署;
所述账本数据协议组件,还用于对所述共识节点维护的所述区块链网络的账本从多个维度进行解构,形成键值对形式的数据集合;
以及,向所述区块链网络中的终端提供针对所述账本的链上查询。
6.根据权利要求1所述的账本数据库组件,其特征在于,
所述账本存储组件,还用于将所述键值对形式的数据集合存储至非结构化数据库中;
或者,将解构得到的每个键值对数据分别打包形成对应的文件,以文件的方式存储形成的所述文件。
7.根据权利要求1至6任一项所述的账本数据库组件,其特征在于,
账本数据协议组件,还用于以键值对的形式进行数据的写入。
8.一种账本数据库组件的运行方法,其特征在于,所述方法包括:
从区块链网络中同步获取所述区块链网络的账本,并将同步获取的所述账本从多个维度进行解构,形成键值对形式的数据集合;
其中,所述维度包括以下至少之一:
账本、交易、账户、元数据、区块及默克尔树;
存储形成的所述键值对形式的数据集合。
9.一种存储介质,其特征在于,存储有可执行指令,当所述可执行指令被执行时,用于引起处理器执行权利要求8 所述的账本数据库组件的运行方法。
10.一种账本数据库组件,其特征在于,所述账本数据库组件包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令,实现如权利要求8 所述的账本数据库组件的运行方法。
CN201810936782.8A 2018-08-16 2018-08-16 账本数据库组件、运行方法及存储介质 Active CN109241032B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810936782.8A CN109241032B (zh) 2018-08-16 2018-08-16 账本数据库组件、运行方法及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810936782.8A CN109241032B (zh) 2018-08-16 2018-08-16 账本数据库组件、运行方法及存储介质

Publications (2)

Publication Number Publication Date
CN109241032A CN109241032A (zh) 2019-01-18
CN109241032B true CN109241032B (zh) 2021-02-26

Family

ID=65071628

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810936782.8A Active CN109241032B (zh) 2018-08-16 2018-08-16 账本数据库组件、运行方法及存储介质

Country Status (1)

Country Link
CN (1) CN109241032B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109800336B (zh) * 2019-01-30 2020-12-25 百度在线网络技术(北京)有限公司 基于键值对存储系统的表格实现方法、装置、设备和介质
CN109933592B (zh) * 2019-03-22 2021-06-01 杭州复杂美科技有限公司 数据存储方法、数据回滚方法、设备和存储介质
CN110232288B (zh) * 2019-06-25 2020-10-30 重庆市地理信息和遥感应用中心(重庆市测绘产品质量检验测试中心) 地理信息数据复合加密系统
WO2019228571A2 (en) * 2019-09-12 2019-12-05 Alibaba Group Holding Limited Log-structured storage systems
WO2019228570A2 (en) 2019-09-12 2019-12-05 Alibaba Group Holding Limited Log-structured storage systems
CN111523148B (zh) * 2020-04-16 2023-10-27 丝链(常州)控股有限公司 基于区块链的数据存储方法
CN111538785A (zh) * 2020-04-23 2020-08-14 北京海益同展信息科技有限公司 区块链的数据写入方法、装置、系统及电子设备
CN111813866B (zh) * 2020-07-30 2021-03-16 河南中盾云安信息科技有限公司 一种改进的区块链账本同步方法
CN112765269B (zh) * 2020-12-31 2022-06-10 杭州趣链科技有限公司 数据处理方法、装置、设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107103054A (zh) * 2017-04-12 2017-08-29 北京航空航天大学 一种私有区块链的智能合约异步执行存储系统与实现方法
CN107332847A (zh) * 2017-07-05 2017-11-07 武汉凤链科技有限公司 一种基于区块链的访问控制方法和系统
CN108121828A (zh) * 2018-01-17 2018-06-05 清华大学 一种基于键值对数据库的多源异构数据管理方法及系统
CN108377189A (zh) * 2018-05-09 2018-08-07 深圳壹账通智能科技有限公司 区块链上用户通信加密方法、装置、终端设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2559640A (en) * 2017-01-27 2018-08-15 Zensar Tech Limited A system and method for evaluating the feasibility of introducing a new node in a blockchain infrastructure

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107103054A (zh) * 2017-04-12 2017-08-29 北京航空航天大学 一种私有区块链的智能合约异步执行存储系统与实现方法
CN107332847A (zh) * 2017-07-05 2017-11-07 武汉凤链科技有限公司 一种基于区块链的访问控制方法和系统
CN108121828A (zh) * 2018-01-17 2018-06-05 清华大学 一种基于键值对数据库的多源异构数据管理方法及系统
CN108377189A (zh) * 2018-05-09 2018-08-07 深圳壹账通智能科技有限公司 区块链上用户通信加密方法、装置、终端设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"Untangling Blockchain: A Data Processing View of Blockchain Systems";Tien Tuan Anh Dinh et al.;《IEEE Transactions on Knowledge and Data Engineering》;20180104;全文 *
"区块链技术发展现状与展望";袁勇 等;《自动化学报》;20160430;第42卷(第4期);全文 *

Also Published As

Publication number Publication date
CN109241032A (zh) 2019-01-18

Similar Documents

Publication Publication Date Title
CN109241032B (zh) 账本数据库组件、运行方法及存储介质
CN109325855B (zh) 区块链网络、部署方法及存储介质
CN109218079B (zh) 一种区块链网络、部署方法及存储介质
CN109191124B (zh) 区块链网络、部署方法及存储介质
CN109325854B (zh) 区块链网络、部署方法及存储介质
US11088854B2 (en) Securing blockchain access through a gateway on behalf of a communication device
US20210157823A1 (en) Blockchain Node and Transaction Method
WO2018176965A1 (zh) 基于区块链的用于金融数据处理的方法、装置及电子设备
US20190372772A1 (en) Blockchain implementing delta storage
US11195180B2 (en) Virtual blockchain
CN109189396B (zh) 智能合约引擎组件、运行方法及存储介质
US9020949B2 (en) Method and system for centralized issue tracking
US10833845B2 (en) Guarantee of ledger immutability
US11720545B2 (en) Optimization of chaincode statements
US10819523B2 (en) Guarantee of ledger immutability
US20200151269A1 (en) Consensus transaction scheduler
CN110033373A (zh) 区块链中背书的装置、方法及存储介质
CN110471982B (zh) 基于区块链的数据处理方法和装置
US20200081746A1 (en) Load leveler
US20200092361A1 (en) Sparse peer with transient participation
CN112750037A (zh) 基于区块链的数据压缩、查询方法及装置和电子设备
US11138188B2 (en) Performance optimization
US20200092360A1 (en) Sparse peer with transient participation
CN110955724A (zh) 基于区块链的数据处理方法、装置、节点设备及存储介质
WO2022206210A1 (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