CN112988852B - 基于区块链的数据管理方法、设备以及介质 - Google Patents

基于区块链的数据管理方法、设备以及介质 Download PDF

Info

Publication number
CN112988852B
CN112988852B CN202110512372.2A CN202110512372A CN112988852B CN 112988852 B CN112988852 B CN 112988852B CN 202110512372 A CN202110512372 A CN 202110512372A CN 112988852 B CN112988852 B CN 112988852B
Authority
CN
China
Prior art keywords
service
node
data
service node
hash
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
CN202110512372.2A
Other languages
English (en)
Other versions
CN112988852A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202110512372.2A priority Critical patent/CN112988852B/zh
Publication of CN112988852A publication Critical patent/CN112988852A/zh
Application granted granted Critical
Publication of CN112988852B publication Critical patent/CN112988852B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • 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/2228Indexing structures
    • G06F16/2255Hash tables
    • 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

Abstract

本申请实施例提供了一种基于区块链的数据管理方法、设备以及介质,该方法包括:第一业务节点从共识网络中获取第一数据哈希以及第一业务节点对应的第一节点路由表;第一节点路由表包括第一邻居节点集合以及第一邻居节点集合中的每个邻居节点在寻址空间中的虚拟坐标区域;根据第一数据哈希在第一数据哈希所属的目标空间维度上的第一虚拟坐标,以及虚拟坐标区域在目标空间维度上的第二虚拟坐标之间的虚拟坐标距离,在第一邻居节点集合中查找候选邻居节点;若候选邻居节点中包含第一数据哈希,则在包含第一数据哈希的候选邻居节点中获取与第一数据哈希相对应的第一业务数据。采用本申请实施例,可以提高区块链网络中的业务数据查询效率。

Description

基于区块链的数据管理方法、设备以及介质
技术领域
本申请涉及互联网技术领域,尤其涉及一种基于区块链的数据管理方法、设备以及介质。
背景技术
随着信息技术的快速发展,各个平台(或者企业、部门)中的数据信息量日益增加,而如何对各个平台中的数据进行管理(包括数据存储和数据读取)成为亟待解决的问题。
现有技术中,可以将各个平台中的数据上传至区块链网络,以使区块链网络将各个平台中的数据存储至区块链,后续需要使用某平台中的数据时,可以从区块链中读取数据。然而,当需要获取某业务数据时,需要从区块链中读取该业务数据,由于区块链中所存储的数据量非常大,造成从区块链中读取业务数据的效率过低。
发明内容
本申请实施例提供一种基于区块链的数据管理方法、设备以及介质,可以提高区块链网络中的业务数据查询效率。
本申请实施例一方面提供了一种基于区块链的数据管理方法,包括:
第一业务节点从共识网络中获取第一数据哈希,获取第一业务节点对应的第一节点路由表;第一节点路由表包括第一业务节点所关联的第一邻居节点集合,以及第一邻居节点集合中的每个邻居节点分别在寻址空间中的虚拟坐标区域;
在寻址空间中确定第一数据哈希所属的目标空间维度,获取第一数据哈希在目标空间维度上的第一虚拟坐标,以及虚拟坐标区域在目标空间维度上的第二虚拟坐标;
根据第一虚拟坐标和第二虚拟坐标之间的虚拟坐标距离,在第一节点路由表的第一邻居节点集合中查找第一数据哈希对应的候选邻居节点;
若候选邻居节点中包含第一数据哈希,则将包含第一数据哈希的候选邻居节点确定为第二业务节点,在第二业务节点中获取与第一数据哈希相对应的第一业务数据。
本申请实施例一方面提供了一种基于区块链的数据管理方法,包括:
第一获取模块,用于第一业务节点从共识网络中获取第一数据哈希,获取第一业务节点对应的第一节点路由表;第一节点路由表包括第一业务节点所关联的第一邻居节点集合,以及第一邻居节点集合中的每个邻居节点分别在寻址空间中的虚拟坐标区域;
第二获取模块,用于在寻址空间中确定第一数据哈希所属的目标空间维度,获取第一数据哈希在目标空间维度上的第一虚拟坐标,以及虚拟坐标区域在目标空间维度上的第二虚拟坐标;
节点查找模块,用于根据第一虚拟坐标和第二虚拟坐标之间的虚拟坐标距离,在第一节点路由表的第一邻居节点集合中查找第一数据哈希对应的候选邻居节点;
数据获取模块,用于若候选邻居节点中包含第一数据哈希,则将包含第一数据哈希的候选邻居节点确定为第二业务节点,在第二业务节点中获取与第一数据哈希相对应的第一业务数据。
其中,第一邻居节点集合包括第一业务节点对应的M个邻居节点,M为正整数;
第二获取模块具体用于:
获取第一数据哈希在目标空间维度上的第一虚拟坐标,获取M个邻居节点所对应的虚拟坐标区域分别在目标空间维度上的第二虚拟坐标;
则节点查找模块包括:
距离获取单元,用于获取第一虚拟坐标分别与M个第二虚拟坐标之间的虚拟坐标距离;
邻居节点确定单元,用于在第一节点路由表的第一邻居节点集合中,将最小的虚拟坐标距离对应的虚拟坐标区域所属的邻居节点,确定为第一数据哈希对应的候选邻居节点。
其中,候选邻居节点包括局部哈希表,候选邻居节点的局部哈希表包括候选邻居节点所存储的N个业务数据与N个数据哈希之间的对应关系,N为正整数;
数据获取模块包括:
业务节点确定单元,用于若候选邻居节点所存储的N个数据哈希中包含第一数据哈希,则将包含第一数据哈希的候选邻居节点确定为第二业务节点;
业务数据获取单元,用于当第一业务节点在共识网络中的节点权限信息满足第二业务节点对应的数据访问条件时,在第二业务节点的局部哈希表中获取与第一数据哈希相对应的第一业务数据;第一业务数据属于N个业务数据。
其中,该装置还包括:
提示信息生成模块,用于当第一业务节点在共识网络中的节点权限信息不满足第二业务节点对应的数据访问条件时,生成针对第一业务节点的查询失败提示信息;查询失败提示信息用于指示第一业务节点向第二业务节点请求数据访问权限。
其中,该装置还包括:
第一业务数据获取模块,用于若候选邻居节点中不包含第一数据哈希,且目标邻居节点中包含第一数据哈希,则从目标邻居节点中获取与第一数据哈希相对应的第一业务数据;目标邻居节点属于候选邻居节点所关联的第二邻居节点集合,目标邻居节点是基于第一数据哈希值在目标空间维度上的虚拟坐标,与第二邻居节点集合所关联的虚拟坐标区域在目标空间维度上的虚拟坐标之间的虚拟坐标距离所确定的。
其中,第一获取模块包括:
数据访问单元,用于当第一业务节点接收到携带业务数据标识的数据查询请求时,对共识网络中的交易区块链进行数据访问;
数据哈希获取单元,用于在交易区块链中获取与业务数据标识相匹配的交易区块,从交易区块中获取业务数据标识所关联的第一数据哈希。
其中,该装置还可以包括:
第二业务数据获取模块,用于第一业务节点获取候选邻居节点发送的第二数据哈希,若第一业务节点的局部哈希表中包含第二数据哈希,则从第一业务节点的局部哈希表中获取与第二数据哈希相对应的第二业务数据,将第二业务数据返回至候选邻居节点。
其中,第二业务数据获取模块包括:
第二哈希获取单元,用于第一业务节点接收候选邻居节点发送的查询请求,获取查询请求所携带的第二数据哈希;
权限信息获取单元,用于若第一业务节点的局部哈希表中包含第二数据哈希,则获取候选邻居节点在共识网络的交易区块链中的候选节点权限信息;
权限判断单元,用于若候选节点权限信息包括候选邻居节点对第一业务节点的数据访问权限信息,则从第一业务节点的局部哈希表中获取与第二数据哈希相对应的第二业务数据,将第二业务数据返回至候选邻居节点。
其中,该装置还包括:
数据哈希生成模块,用于当第一业务节点生成第二业务数据时,对第二业务数据进行哈希运算,生成第二业务数据对应的第二数据哈希;
数据哈希上传模块,用于将第二数据哈希上传至共识网络,以使共识网络对第二数据哈希进行验证,将验证通过的第二数据哈希添加至共识网络中的交易区块链;
上链成功提示模块,用于接收共识网络返回的上链成功提示信息,获取第二业务数据对应的业务类型,在寻址空间所包含的D个空间维度中确定与业务类型相匹配的候选空间维度;D为正整数;
业务数据存储模块,用于根据候选空间维度对应的标准数据格式,对第二业务数据进行格式转换,得到格式转换后的第二业务数据,将第二数据哈希和格式转换后的第二业务数据关联存储至第一业务节点的局部哈希表。
其中,该装置还包括:
业务节点获取模块,用于获取见证网络中所包含的L个业务节点;L个业务节点包括第一业务节点,L为正整数;
空间坐标获取模块,用于在寻址空间所包含的D个空间维度中,获取L个业务节点分别对应的D维空间坐标;D为正整数;
邻居节点确定模块,用于若L个业务节点的业务节点i所对应的D维空间坐标中,存在(D-1)维空间坐标与第一业务节点的(D-1)维空间坐标重合,且剩余的一维空间坐标相邻,则将业务节点i确定为第一业务节点的邻居节点,将第一业务节点的邻居节点组合为第一邻居节点集合;第一业务节点对应的D维空间坐标处于第一业务节点的虚拟坐标区域内,i为小于或等于L的正整数;
路由表创建模块,用于根据第一邻居节点集合所包含的邻居节点,以及第一邻居节点集合中的邻居节点在寻址空间中的虚拟坐标区域,创建第一业务节点对应的第一节点路由表。
其中,该装置还包括:
节点新增模块,用于当第一业务节点的虚拟坐标区域被见证网络中的新增业务节点j所划分时,在寻址空间所包含的D个空间维度中,获取新增业务节点j对应的D维空间坐标;j为正整数;
第一邻居节点更新模块,用于根据新增业务节点j对应的D维空间坐标,以及L个业务节点分别对应的D维空间坐标,更新第一邻居节点集合,得到针对第一业务节点的更新后的第一邻居节点集合;
第一路由表更新模块,用于根据更新后的第一邻居节点集合,以及更新后的第一邻居节点集合中的邻居节点在寻址空间中的虚拟坐标区域,更新第一业务节点对应的第一节点路由表。
其中,该装置还包括:
坐标区域发送模块,用于获取第一业务节点所对应的更新后的虚拟坐标区域,将更新后的虚拟坐标区域发送给见证网络中除第一业务节点之外的剩余业务节点,以使剩余业务节点根据更新后的虚拟坐标区域,更新所属的节点路由表。
其中,该装置还包括:
第二邻居节点更新模块,用于当第一邻居节点集合中的业务节点i退出见证网络,且业务节点i的虚拟坐标区域与第一业务节点的虚拟坐标区域进行合并时,根据(L-1)个业务节点分别对应的D维空间坐标,更新第一邻居节点集合,得到针对第一业务节点的更新后的第一邻居节点集合;(L-1)个业务节点是指L个业务节点中除业务节点i之外的业务节点;
第二路由表更新模块,用于根据更新后的第一邻居节点集合,以及更新后的第一邻居节点集合中的邻居节点在寻址空间中的虚拟坐标区域,更新第一业务节点对应的第一节点路由表。
本申请实施例一方面提供了一种计算机设备,包括存储器和处理器,存储器与处理器相连,存储器用于存储计算机程序,处理器用于调用计算机程序,以使得该计算机设备执行本申请实施例中上述一方面提供的方法。
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序适于由处理器加载并执行,以使得具有处理器的计算机设备执行本申请实施例中上述一方面提供的方法。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述一方面提供的方法。
本申请实施例可以通过第一业务节点从共识网络中获取第一数据哈希,获取第一业务节点对应的第一节点路由表,该第一节点路由表包括第一业务节点所关联的第一邻居节点集合,以及第一邻居节点集合中的每个邻居节点分别在寻址空间中的虚拟坐标区域;进而可以在寻址空间中确定第一数据哈希所属的目标空间维度,获取第一数据哈希在目标空间维度上的第一虚拟坐标,以及虚拟坐标区域在目标空间维度上的第二虚拟坐标,根据第一虚拟坐标与第二虚拟坐标之间的虚拟坐标距离,在第一邻居节点集合中查找第一数据哈希对应的候选邻居节点;若候选邻居节点中包含第一数据哈希,则在包含第一数据哈希的候选邻居节点中,获取与第一数据哈希相对应的第一业务数据。可见,可以将业务数据的数据哈希上传至共识网络,由共识网络对所有业务数据的数据哈希进行管理,业务数据本身可以存储在业务节点中,当第一业务节点想要查询其余业务节点所存储的业务数据时,可以从共识网络中获取数据哈希,并在寻址空间中确定数据哈希所属的目标空间维度;进而可以根据第一业务节点对应的节点路由表,在目标空间维度上查找与数据哈希相对应的业务数据,即可以将所有业务数据在寻址空间中进行多维存储,在查询业务数据的过程中,可以按照哈希数据所属的目标空间维度,进而可以在单一空间维度中查询业务数据,从而可以提高区块链网络中的业务数据查询效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种网络架构的结构示意图;
图2是本申请实施例提供的区块链中的业务数据查询场景示意图;
图3是本申请实施例提供的一种基于区块链的数据管理方法的流程示意图;
图4是本申请实施例提供的一种构建节点路由表的示意图;
图5是本申请实施例提供的一种在见证网络中加入新增业务节点的示意图;
图6是本申请实施例提供的一种业务节点从见证网络中退出的示意图;
图7是本申请实施例提供的一种见证网络中的寻址查询示意图;
图8是本申请实施例提供的一种基于区块链的数据管理方法的流程示意图;
图9是本申请实施例提供的一种电子发票区块链系统的结构示意图;
图10是本申请实施例提供的一种基于区块链的数据管理装置的结构示意图;
图11是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
区块链(Blockchain)是一种分布式数据存储、点对点传输(P2P传输)、共识机制、加密算法等计算机技术的新型应用模式。区块链本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。
请参见图1,图1是本申请实施例提供的一种网络架构的结构示意图。如图1所示,该网络架构可以称为分层区块链架构,该网络架构可以包括见证网络、共识网络和中间路由层10i,见证网络可以包括一个或者多个业务节点,如图1所示的见证网络具体可以包括:业务节点10a、业务节点10b、……、业务节点10h,共识网络可以包括至少两个运行区块链共识协议的记账节点,如图1所示的共识网络具体可以包括:记账节点10j、记账节点10k、记账节点10m、……、记账节点10s,中间路由层10i可以包括一个或者多个路由节点;见证网络和共识网络之间通过中间路由层10i来进行隔离,即见证网络与共识网络之间的通信需要通过中间路由层10i来进行交互。其中,共识网络处于相对安全的私有云中,共识网络中不同记账节点之间的通信存在共识机制保证安全,无需加入额外的身份管理和网络控制;而见证网络可以为公共网络,该见证网络中的业务节点可以能会被不确定身份的网络终端进行访问,因此见证网络中的任一业务节点接入共识网络的行为均需要进行严格控制,即业务节点与共识网络之间的通信可以通过数字证书进行SSL(Secure Sockets Layer,安全套接字协议)安全通信,可以通过中间路由层10i对接入共识网络的每个业务节点所对应的数字证书进行验证,以确认业务节点的身份。可以理解的是,每个业务节点的数字证书可以由证书授权节点所签发,中间路由层10i中可以安装证书授权中心的根证书,以识别认证业务节点所对应数字证书的合法性。
其中,见证网络中的任一业务节点、共识网络中的任一记账节点以及中间路由层10i中的任一路由节点均可以是终端设备,或者是服务器;其中,终端设备可以包括智能手机、平板电脑、笔记本电脑、台式计算机、掌上电脑、移动互联网设备(mobile internetdevice,MID)、可穿戴设备(例如智能手表、智能手环等)等,但并不局限于此。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
如图1所示的网络架构中,为了保证区块链网络中的数据安全性,当业务数据涉及个人隐私或者机构安全的相关数据时,可以采用图1所示的分层区块链架构对跨部门(或者平台、机构、行业等)业务数据进行存储;该分层区块链架构可以包括见证网络和共识网络,见证网络中的业务节点可以用于执行业务,但不参与业务数据的记账共识,而是通过身份认证的方式从共识网络中获得区块头数据和部分授权可见的区块数据。业务数据对应的数据哈希可以上传至共识网络,其中数据哈希可以作为数据共享凭证并由共识网络进行管理,而具体的业务数据可以在见证网络中进行分布式存储;见证网络中的业务数据可以按照业务数据的数据类型划分为不同维度的业务数据(例如,可以包括人员信息、车辆信息以及建筑信息等维度数据),每个维度均可以在区块链上定义其对应的标准数据格式,不同维度的业务数据可以对应于内容寻址网络(Content Addressable Network,CAN)的寻址空间中的多个空间维度。
需要说明的是,可以在见证网络中引入内容寻址网络,将不同维度的业务数据映射到内容寻址网络中的不同空间维度,一种维度的业务数据对应内容寻址网络中的一个空间维度;其中,内容寻址网络基于虚拟的D维笛卡儿坐标空间实现其数据的组织和查找功能,该内容寻址空间可以将整个坐标空间动态地分配给见证网络中的所有业务节点,每个业务节点均可以拥有D维笛卡儿坐标空间(也可以称为寻址空间)中独立的互不相交的一块区域,D为正整数,如D可以取值为1,2,……。例如,业务数据包括人员信息、车辆信息以及建筑信息三个维度的数据,内容寻址网络的寻址空间为3维空间维度(包括空间维度x、空间维度y以及空间维度z),业务数据对应的数据哈希上链成功后,可以将人员信息映射到寻址空间中的空间维度x,将车辆信息映射到寻址空间中的空间维度y,在见证网络的业务节点中对业务数据进行分布式存储。
共识网络可以用于执行区块链共识,业务数据对应的数据哈希在共识网络中可以作为交易数据同等地被验证和共识,即可以将业务数据对应的数据哈希作为交易数据封装成区块,并在共识网络中对封装成的区块进行共识处理,将达成共识的区块(此处的区块包括业务数据的数据哈希)进行记账处理。中间路由层10i中的路由节点可以用于校验身份证书和转发区块链请求(例如,见证网络中的业务节点向共识网络发送的上链请求,或者记账节点向业务节点发送的区块共识处理结果等)。
当见证网络中的任一业务节点(也可以称为第一业务节点)想要获取其余业务节点所存储的业务数据时,可以通过路由服务向共识网络提交数据查询请求,在共识网络中获取所需业务数据的数据哈希,在内容寻址网络中确定该数据哈希对应的目标空间维度,进而可以在目标空间维度(单一维度)上寻址,以寻址查询到上述数据哈希对应的业务数据在见证网络中的存储位置(即存储上述数据哈希所对应的业务数据的第二业务节点),进而可以从第二业务节点中获取所需的业务数据,上述过程可以称为图1所示分层区块链架构中的业务数据查询过程。本申请实施例可以在见证网络中引入内容寻址网络,通过将业务数据映射到内容寻址网络的寻址空间中的多个空间维度,后续在查询业务数据的过程中,可以在单一空间维度中寻址,进而可以提高业务数据的查询效率。
请一并参见图2,图2是本申请实施例提供的区块链中的业务数据查询场景示意图。如图2所示的业务节点1可以为图1所示的见证网络中想要查询业务数据的任一业务节点,当业务节点1想要查询区块链网络(上述图1所对应实施例中的分层区块链)中的共享业务数据时,可以通过上述图1所示的中间路由层10i中的路由节点,向共识网络发送数据查询请求。共识网络中的记账节点在接收到业务节点1发送的数据查询请求后,可以获取数据查询请求中所携带的业务数据标识,进而可以在共识网络的交易区块链20a中获取与该业务数据标识相匹配的数据哈希1,并通过中间路由层10i中的路由节点向业务节点1返回数据哈希1。
进一步地,业务节点1可以在内容寻址网络的寻址空间中确定数据哈希1所属的目标空间维度,该目标空间维度可以用于表示见证网络所包含的业务节点中的寻址方向;进而可以获取该业务节点1所对应的节点路由表20b,该节点路由表20b可以包括该业务节点1在见证网络中的邻居节点,以及每个邻居节点分别在寻址空间中的虚拟坐标区域,此时的寻址空间可以是指内容寻址网络所对应的D维笛卡儿坐标空间。如图2所示,业务节点1在见证网络中的邻居节点包括:业务节点2、业务节点3、业务节点4以及业务节点5,该业务节点2在寻址空间中的虚拟坐标区域为:虚拟坐标区域2,该业务节点3在寻址空间中的虚拟坐标区域为:虚拟坐标区域3,该业务节点4在寻址空间中的虚拟坐标区域为:虚拟坐标区域4,该业务节点5在寻址空间中的虚拟坐标区域为:虚拟坐标区域5;其中,虚拟坐标区域2、虚拟坐标区域3、虚拟坐标区域4以及虚拟坐标区域5之间相互独立且互不重叠。换言之,业务节点1所对应的节点路由表20b中可以包括每个邻居节点分别对应的虚拟坐标区域。需要说明的是,每个邻居节点所对应的虚拟坐标区域的空间维数与寻址空间的空间维数相同,如寻址空间为3维坐标空间时,虚拟坐标区域同样为3维坐标空间。
进一步地,业务节点1可以获取数据哈希1在目标空间维度上的虚拟坐标1、虚拟坐标区域2在目标空间维度上的虚拟坐标2、虚拟坐标区域3在目标空间维度上的虚拟坐标3、虚拟坐标区域4在目标空间维度上的虚拟坐标4以及虚拟坐标区域5在目标空间维度上的虚拟坐标5;进而可以计算数据哈希1分别与每个邻居节点所对应的虚拟坐标区域之间的虚拟坐标距离,如可以计算虚拟坐标1与虚拟坐标2之间的虚拟坐标距离为:距离1,计算虚拟坐标1与虚拟坐标2之间的虚拟坐标距离为:距离2,计算虚拟坐标1与虚拟坐标3之间的虚拟坐标距离为:距离3,计算虚拟坐标1与虚拟坐标5之间的虚拟坐标距离为:距离4。
业务节点1可以根据上述计算得到的虚拟坐标距离确定与数据哈希1相匹配的候选业务节点,如上述距离1、距离2、距离3以及距离4中最小的虚拟坐标距离为距离2,那么可以将虚拟坐标区域3所对应的业务节点3确定为候选业务节点。进一步地,可以获取业务节点3中的局部哈希表20c,该局部哈希表20c可以为键值对<key,value>列表,其中key可以为存储至共识网络的数据哈希,value可以为具体的业务数据;如局部哈希表20c可以包括键值对<数据哈希1,业务数据1>(表示业务数据1对应的哈希为数据哈希1)、键值对<数据哈希2,业务数据2>、键值对<数据哈希3,业务数据3>、键值对<数据哈希4,业务数据4>,局部哈希表20c可以为见证网络中完整哈希表的一部分,哈希表可以是指一种有效地将key映射为value的数据结构。当业务节点1寻址到业务节点3,且业务节点3对应的局部哈希表20c中包含上述数据哈希1时,可以从业务节点3所对应的局部哈希表20c中获取与数据哈希1相对应的业务数据1,该业务节点3可以将自身存储的业务数据1返回至业务节点1,也就是说此时的业务节点1可以获取到想要查询的业务数据1。在上述查询业务数据的过程中,可以在单一空间维度中寻址,进而可以提高业务数据的查询效率。
请参见图3,图3是本申请实施例提供的一种基于区块链的数据管理方法的流程示意图。该方法可以由第一业务节点执行,第一业务节点可以为独立的服务器、或者为用户终端、或者为计算机程序(包括程序代码)、或者为多个服务器组成的服务器集群等。如图3所示,该基于区块链的数据管理方法可以包括以下步骤:
步骤S101,第一业务节点从共识网络中获取第一数据哈希,获取第一业务节点对应的第一节点路由表;第一节点路由表包括第一业务节点所关联的第一邻居节点集合,以及第一邻居节点集合中的每个邻居节点分别在寻址空间中的虚拟坐标区域。
具体的,当用户想要从区块链网络(如上述图1所对应实施例中的分层区块链,包括见证网络和共识网络)中查询需要的业务数据时,可以通过用户终端向见证网络中的任一业务节点发送携带业务数据标识的数据查询请求。见证网络中的第一业务节点(可以为见证网络中的任一业务节点)接收到携带业务数据标识的数据查询请求,对共识网络中的交易区块链进行数据访问,在交易区块链中获取与业务数据标识相匹配的交易区块,从该交易区块中获取该业务数据标识所关联的第一数据哈希(如上述图2所对应实施例中的数据哈希1)。换言之,当第一业务节点接收到携带业务数据标识的数据查询请求后,可以通过中间路由层中的路由节点向共识网络传输数据查询请求,该共识网络在接收到第一业务节点传输的数据查询请求后,共识网络中的记账节点可以根据数据查询请求所携带的业务数据标识,从共识网络的交易区块链中确定与业务数据标识相匹配的交易区块,进而在该交易区块中读取该业务数据标识所关联的第一数据哈希,并将第一数据哈希传输至第一业务节点,也就是说第一业务节点可以从共识网络的交易区块链中获取第一数据哈希。其中,业务数据标识可以是指用于表征业务数据的标识信息,如业务数据名称、业务数据编号、业务数据类型、业务数据所对应的用户等信息。
进一步地,第一业务节点获取到第一数据哈希后,可以判断该第一业务节点中是否存储有该第一数据哈希,若第一业务节点的本地存储有上述第一数据哈希,则可以从第一业务节点的本地存储中获取与第一数据哈希相对应的第一业务数据。若第一业务节点的本地未存储有上述第一数据哈希,则可以获取第一业务节点对应的第一节点路由表,基于该第一节点路由表可以在见证网络中进行寻址,以获取与第一数据哈希相对应的第一业务数据。其中,第一节点路由表可以包括第一业务节点所关联的第一邻居节点集合,以及第一邻居节点集合中的每个邻居节点分别在寻址空间中的虚拟坐标区域,该寻址空间可以为D维笛卡儿坐标空间(D为正整数),虚拟坐标区域可以为寻址空间中的一部分坐标区域。可以理解地,见证网络中的每个业务节点均可以对应寻址空间中的一个虚拟坐标区域,且每个业务节点所对应的虚拟坐标区域由该业务节点所存储的局部哈希表所确定,不同业务节点之间的虚拟坐标区域是相互独立且不重叠的;见证网络中的每个业务节点还可以维护邻居节点对应的虚拟坐标区域,并根据邻居节点对应的虚拟坐标区域构建节点路由表。
需要说明的是,见证网络中的每个业务节点构建节点路由表的过程是相同的,下面以见证网络中的第一业务节点为例,对第一节点路由表的构建过程可以包括:第一业务节点可以获取见证网络中所包含的L个业务节点,其中L为正整数,如L可以为1,2,3,……,在寻址空间所包含的D个空间维度中,获取L个业务节点分别对应的D维空间坐标,其中D为正整数,如D可以为1,2,3,……;若L个业务节点的业务节点i所对应的D维空间坐标中,存在(D-1)维空间坐标与第一业务节点的(D-1)维空间坐标重合,且剩余的一维空间坐标相邻,则将业务节点i确定为第一业务节点的邻居节点,将第一业务节点的邻居节点组合为第一邻居节点集合,其中第一业务节点对应的D维空间坐标处于第一业务节点的虚拟坐标区域内,i为小于或等于L的正整数;进而可以根据第一邻居节点集合所包含的邻居节点,以及第一邻居节点集合中的邻居节点在寻址空间中的虚拟坐标区域,创建第一业务节点对应的第一节点路由表。换言之,第一业务节点需要在见证网络中确定该第一业务节点的邻居节点,进而根据邻居节点所对应的虚拟坐标区域构建第一节点路由表。
请一并参见图4,图4是本申请实施例提供的一种构建节点路由表的示意图。如图4所示,见证网络中所包含的业务节点可以包括:业务节点A、业务节点B、业务节点C、业务节点I、业务节点E、业务节点F、业务节点G、业务节点H;该见证网络中的寻址空间可以为二维空间,也就是说图4所示的寻址空间可以包括两个空间维度,见证网络中的每个业务节点均可以存储整体哈希表中的一部分(zone),本申请实施例中的哈希表可以是指键值对列表,键值对中的“键(key)”可以表示为数据哈希,键值对中的key可以映射为寻址空间中的一个点(如,一个key可以映射为点(x,y)),键值对中的“值(value)”可以表示为具体的业务数据(资源数据)。如图4所示,业务节点A在寻址空间中的虚拟坐标区域可以为区域30a,业务节点C在寻址空间中的虚拟坐标区域可以为区域30b,业务节点I在寻址空间中的虚拟坐标区域为区域30c等。
可以理解的是,见证网络中的每个业务节点还可以维护邻居节点所对应的虚拟坐标区域,根据业务节点所维护的邻居节点的虚拟坐标区域,可以构建每个业务节点分别对应的节点路由表,进而可以基于节点路由表在见证网络中进行任意业务节点之间的路由查找。见证网络中的每个业务节点均可以将自身的虚拟坐标区域通知给其余业务节点,也就是说每个业务节点所对应的虚拟坐标区域对于见证网络中的所有业务节点均是公开的;在构建节点路由表时,需要确定该业务节点在见证网络中的邻居节点,在二维空间坐标中,若两个业务节点所对应的虚拟坐标区域在某一空间维度的坐标相重合,在另一空间维度的坐标相邻,则可以确定上述两个业务节点互为邻居节点。
如图4所示,业务节点A所对应的虚拟坐标区域在横轴上的坐标范围为[0,x1],在纵轴上的坐标范围为[y3,y4],业务节点B所对应的虚拟坐标区域在横轴上的坐标范围为[0,x1],在纵轴上的坐标范围为[y2,y3],可以确定业务节点A的虚拟坐标区域和业务节点B的虚拟坐标区域在横轴上的空间坐标重合,且在纵轴上的空间坐标范围相邻,因此业务节点A和业务节点B可以互为邻居节点;而业务节点I所对应的虚拟坐标区域在横轴上的坐标范围为[x2,x4],在纵轴上的坐标范围为[y2,y4],虽然业务节点A的虚拟坐标区域在纵轴上的坐标范围[y3,y4],属于业务节点I的虚拟坐标区域在纵轴上的坐标范围[y2,y4],即坐标范围[y3,y4]与坐标范围[y2,y4]重合,但业务节点A的虚拟坐标区域在横轴上的坐标范围[0,x1]与业务节点I的虚拟坐标区域在横轴上的坐标范围[x2,x4]不相邻,因此业务节点A与业务节点I不能互为邻居节点。对于见证网络中的每个业务节点,均可以基于上述方式确定各业务节点在见证网络中的邻居节点集合,如业务节点F在见证网络中的邻居节点集合包括:业务节点I、业务节点H、业务节点G、业务节点E,基于上述业务节点I、业务节点H、业务节点G以及业务节点E分别对应的虚拟坐标区域,可以构建业务节点F对应的节点路由表。
可选的,见证网络中所包含的业务节点并不是一成不变的,如见证网络可以增加新的业务节点,或者加入见证网络中的业务节点可以退出该见证网络。当见证网络中所包含的业务节点发生变更时,该见证网络中的业务节点所对应的虚拟坐标区域也有可能会发生变更,那么业务节点所对应的节点路由表也有可能会发生变更,即整个寻址空间是基于当前见证网络中所包含的所有业务节点进行动态划分的。例如,当新增业务节点j(j为正整数)加入见证网络时,可以确定新增业务节点j在寻址空间中的候选坐标区域,若见证网络中已经存在第一业务节点负责该候选坐标区域(此时的候选坐标区域可以为上述第一业务节点对应的虚拟坐标区域),则可以将该候选坐标区域进行平均划分,新加入的新增业务节点j和第一业务节点各负责候选坐标区域的一半坐标区域。换言之,在新增业务节点j加入见证网络后,可以从第一业务节点的虚拟坐标区域中划分一半坐标区域给新增业务节点j,此时第一业务节点的虚拟坐标区域变更为原有虚拟坐标区域的一半坐标区域。
进一步地,当第一业务节点的虚拟坐标区域被见证网络中的新增业务节点j所划分时,在寻址空间所包含的D个空间维度中,获取新增业务节点j对应的D维空间坐标,其中j为正整数;根据新增业务节点j对应的D维空间坐标,以及L个业务节点分别对应的D维空间坐标,更新第一邻居节点集合,得到针对第一业务节点的更新后的第一邻居节点集合;根据更新后的第一邻居节点集合,以及更新后的第一邻居节点集合中的邻居节点在寻址空间中的虚拟坐标区域,更新第一业务节点对应的第一节点路由表。具体的,当新增业务节点j加入见证网络时,该见证网络中某个现有的业务节点(例如,第一业务节点)可以将自己的虚拟坐标区域一分为二,自己保留一半坐标区域,将另一半坐标区域分配给新增业务节点j;此时的新增业务节点j为第一业务节点的邻居节点,因此可以将新增业务节点j添加至第一邻居节点集合,与此同时,还可以删除第一邻居节点集合中不再是第一业务节点的邻居节点的业务节点,以得到更新后的第一邻居节点集合,其中,更新后的第一邻居节点集合所包含的邻居节点中,新增业务节点j所对应的虚拟坐标区域为第一业务节点原有虚拟坐标区域的一半,除新增业务节点j之外的其余邻居节点所对应的虚拟坐标区域可以保持不变;根据更新后的第一邻居节点集合中的邻居节点在寻址空间中的虚拟坐标区域,更新第一业务节点对应的第一节点路由表。
需要说明的是,第一业务节点更新后的虚拟坐标区域变为原有虚拟坐标区域的一半后,第一业务节点可以将更新后的虚拟坐标区域发送给见证网络中除第一业务节点之外的剩余业务节点,以使剩余业务节点可以根据更新后的虚拟坐标区域和新增业务节点j对应的虚拟坐标区域,更新所属的节点路由表。可选的,当第一业务节点的虚拟坐标区域被新增业务节点j所划分时,可以将新增业务节点j和第一业务节点对应的更新后的虚拟坐标区域,通知给第一业务节点原有的第一邻居节点集合中的邻居节点,以使原有的第一邻居节点集合中的邻居节点可以及时更新各自的邻居节点集合,进而可以根据更新后的邻居节点集合更新各自的节点路由表,也就是说见证网络中除原有的第一邻居节点集合和新增业务节点j之外的其余业务节点所对应的节点路由表不会发生变化。
请一并参见图5,图5是本申请实施例提供的一种在见证网络中加入新增业务节点的示意图。如图5所示,以见证网络中的寻址空间为二维空间为例,对新增业务节点的加入过程进行描述。如图5所示的当前见证网络可以包括业务节点1至业务节点6等业务节点,当业务节点7(即上述新增业务节点j)想要加入见证网络时,可以在见证网络中找到一个已经存在的业务节点(例如,区域1所对应的业务节点),进而可以应用路由机制(即根据业务节点所对应的节点路由表),在见证网络中找到一个虚拟坐标区域将要被分割的业务节点(例如,见证网络中的业务节点1,此时的业务节点1可以上述被划分虚拟坐标区域的第一业务节点),如根据区域1所对应业务节点的节点路由表,寻址查询到区域2所对应的业务节点,进而可以根据区域2所对应业务节点的节点路由表,寻址查询到区域3所对应的业务节点,以此类推,可以根据区域3所对应业务节点的节点路由表,寻址查询到区域4所对应的业务节点1,该业务节点1为虚拟坐标区域(即区域4)即将被分割的业务节点(上述区域1、区域2、区域3以及区域4均为见证网络中的业务节点所对应的虚拟坐标区域)。随后,可以对业务节点1对应的虚拟坐标区域(即区域4)执行划分操作,将区域4平均划分为两部分,业务节点1自己保留其中一部分,将另一部分分配给新加入的业务节点7;并通知被划分区域4的邻居节点(包括业务节点2、业务节点3、业务节点4以及业务节点5)该见证网络中有新增业务节点7加入,以便邻居节点对所属的节点路由表进行更新。
如图5所示,当业务节点7加入见证网络后,业务节点1的邻居节点集合由{业务节点2,业务节点3,业务节点4,业务节点5}更新为{业务节点2,业务节点3,业务节点4,业务节点7};在业务节点5所对应的邻居节点集合中删除业务节点1,并增加业务节点7;在业务节点2所对应的邻居节点集合中,以及业务节点4所对应的邻居节点集合中均增加业务节点7。进而根据更新后的邻居节点集合,对各自节点路由表进行更新。
可选的,当见证网络中的业务节点i退出该见证网络时,需要将该业务节点i对应的虚拟坐标区域移交给见证网络中剩余的业务节点。通常情况下,业务节点i在退出见证网络时,可以将业务节点i对应的虚拟坐标区域,以及该业务节点i所存储的局部哈希表(键值对数据)移交给该业务节点i的一个邻居节点(例如,上述第一业务节点),若该邻居节点对应的虚拟坐标区域可以与业务节点i的虚拟坐标区域,合并为一个有效的新虚拟坐标区域,那么该业务节点i退出成功;若该邻居节点对应的虚拟坐标区域不能与业务节点i的虚拟坐标区域,合并为一个有效的新虚拟坐标区域,则可以将业务节点i的虚拟坐标区域移交给业务节点i所对应的邻居节点集合中,虚拟坐标区域最小的邻居节点,此时该邻居节点可以暂时负责两个虚拟坐标区域。
进一步地,当第一邻居节点集合中的业务节点i退出见证网络,且业务节点i的虚拟坐标区域与第一业务节点的虚拟坐标区域进行合并时,根据(L-1)个业务节点分别对应的D维空间坐标,更新第一邻居节点集合,得到针对第一业务节点的更新后的第一邻居节点集合,其中(L-1)个业务节点是指L个业务节点中除业务节点i之外的业务节点;进而可以根据更新后的第一邻居节点集合,以及更新后的第一邻居节点集合中的邻居节点在寻址空间中的虚拟坐标区域,更新第一业务节点对应的第一节点路由表。具体的,若业务节点i与第一业务节点互为邻居节点,在业务节点i从见证网络退出时,可以将业务节点i的虚拟坐标区域,以及该业务节点i所存储的局部哈希表移交至第一业务节点,将业务节点i的虚拟坐标区域与第一业务节点的虚拟坐标区域进行合并,得到针对第一业务节点的更新后的虚拟坐标区域。在业务节点i退出见证网络后,可以通知该业务节点i的所有邻居节点,业务节点i已退出见证网络,以便该业务节点i的所有邻居节点可以将从各自的邻居节点集合中删除该业务节点i;与此同时,第一业务节点可以将第一业务节点对应的更新后的虚拟坐标区域通知给该业务节点i的所有邻居节点,以便该业务节点i的所有邻居节点可以根据删除业务节i的邻居节点集合,以及第一业务节点对应的更新后的虚拟坐标区域,更新各自所对应的节点路由表。
请一并参见图6,图6是本申请实施例提供的一种业务节点从见证网络中退出的示意图。如图6所示,以见证网络中的寻址空间为二维空间为例,对业务节点的退出过程进行描述。如图6所示的当前见证网络可以包括业务节点1至业务节点10等业务节点,当业务节点8(即上述业务节点i)退出见证网络时,可以将业务节点8对应的虚拟坐标区域40a,以及该业务节点8所存储的局部哈希表移交给业务节点9(即上述第一业务节点),将业务节点8所对应的虚拟坐标区域40a与业务节点9所对应的虚拟坐标区域40b进行合并,得到一个更新后的虚拟坐标区域40c。在业务节点8退出见证网络后,可以将业务节点8退出见证网络的消息通知给该业务节点8的所有邻居节点(例如,业务节点10、业务节点9、业务节点3等),并将业务节点9更新后的虚拟坐标区域40c通知给该业务节点8的所有邻居节点,以便该业务节点8的所有邻居节点可以及时更新各自对应的节点路由表。
如图6所示,当业务节点8退出见证网络后,在业务节点10所对应的邻居节点集合中删除业务节点8,并在其节点路由表中更新业务节点9的虚拟坐标区域;在业务节点3所对应的邻居节点集合中删除业务节点8,并在其节点路由表中更新业务节点9的虚拟坐标区域;在业务节点9所对应的邻居节点集合中删除业务节点8,并更新自身的虚拟坐标区域以及自身所存储的局部哈希表。
可选的,当见证网络中存在多个变动的业务节点(如多个业务节点同时退出见证网络,或者多个业务节点同时加入见证网络,或者既有业务节点退出见证网络也有业务节点加入见证网络)时,可以根据寻址空间对当前见证网络中所包含的业务节点进行重新分配,使得各业务节点中的key更加均衡。
步骤S102,在寻址空间中确定第一数据哈希所属的目标空间维度,获取第一数据哈希在目标空间维度上的第一虚拟坐标,以及虚拟坐标区域在目标空间维度上的第二虚拟坐标。
具体的,第一业务节点从共识网络中获取到第一数据哈希后,可以在寻址空间中确定第一数据哈希所属的目标空间维度,其中寻址空间可以包括D个空间维度,每个空间维度可以用于存储不同维度的业务数据(也可以理解为不同类型的业务数据),在确定目标空间维度后,可以缩小业务数据查询范围,以增加业务数据的查询效率。进一步地,第一业务节点可以获取第一数据哈希在目标空间维度上的第一虚拟坐标,以及虚拟坐标区域在目标空间维度上的第二虚拟坐标,此时的第二虚拟坐标可以是指虚拟坐标区域中的某一点(例如,边缘点、中心点等)在目标空间维度上的虚拟坐标值,或者可以是指虚拟坐标区域在目标空间维度上的最小虚拟坐标值和最大虚拟坐标值。例如,在二维空间中,目标空间维度为横轴,上述第一虚拟坐标可以为第一数据哈希在横轴上的虚拟坐标值,上述第二虚拟坐标可以为虚拟坐标区域的中心点在横轴上的虚拟坐标值,或者为虚拟坐标区域在横轴上的最小虚拟坐标值和最大虚拟坐标值。
可选的,第一邻居节点集合可以包括第一业务节点对应的M个邻居节点,M为正整数,如M可以取值为1,2,3,……,此时第一业务节点可以获取第一数据哈希在目标空间维度上的第一虚拟坐标(数量为1),同时可以获取M个邻居节点所对应的虚拟坐标区域分别在目标空间维度上的第二虚拟坐标(第二虚拟坐标的数量为M)。
步骤S103,根据第一虚拟坐标和第二虚拟坐标之间的虚拟坐标距离,在第一节点路由表的第一邻居节点集合中查找第一数据哈希对应的候选邻居节点。
具体的,第一业务节点可以计算第一虚拟坐标分别与M个第二虚拟坐标之间的虚拟坐标距离,在第一节点路由表的第一邻居节点集合中,可以将最小的虚拟坐标距离对应的虚拟坐标区域所属的邻居节点,确定为第一数据哈希对应的候选邻居节点。换言之,第一业务节点在确定目标空间维度后,可以在见证网络中对第一数据哈希发起查询,此时的第一业务节点可以检查自身的邻居节点,在第一邻居节点集合中查找与第一数据哈希距离最近的邻居节点,并将距离最近的邻居节点确定为候选邻居节点,此时可以将针对第一数据哈希的查询消息发送给候选邻居节点。
步骤S104,若候选邻居节点中包含第一数据哈希,则将包含第一数据哈希的候选邻居节点确定为第二业务节点,在第二业务节点中获取与第一数据哈希相对应的第一业务数据。
具体的,若候选邻居节点所存储的局部哈希表中包含第一数据哈希,则可以将包含第一数据哈希的候选邻居节点确定为第二业务节点,在第二业务节点所存储的局部哈希表中可以获取与第一数据哈希相对应的第一业务数据,此时表示寻址成功,第一业务节点可以从第二业务节点所存储的局部哈希表中获取与第一数据哈希相对应的第一业务数据。
可选的,候选邻居节点所存储的局部哈希表中可以包括该候选邻居节点所存储的N个业务数据与N个数据哈希之间的对应关系(以键值对的数据结构进行存储),N为正整数,如N可以取值为1,2,3,……。若候选邻居节点所存储的N个数据哈希中包含第一数据哈希,则将包含第一数据哈希的候选邻居节点确定为第二业务节点;当第一业务节点在共识网络中的节点权限信息满足第二业务节点对应的数据访问条件时,在第二业务节点的局部哈希表中获取与第一数据哈希相对应的第一业务数据,此处的第一业务数据属于上述N个业务数据;当第一业务节点在共识网络中的节点权限信息不满足第二业务节点对应的数据访问条件时,生成针对第一业务节点的查询失败提示信息,其中,该查询失败提示信息用于指示第一业务节点向第二业务节点请求数据访问权限。
换言之,在寻址查询到第二业务节点所存储的局部哈希表中包含第一数据哈希对应的第一业务数据时,第二业务数据还需要对发起查询的第一业务节点进行身份审核,如获取第一业务节点在共识网络中的节点权限信息,当该节点权限信息中包含第一业务节点针对第一数据哈希的数据授权信息时,可以确定第一业务节点的节点权限信息满足第二业务节点对应的数据访问条件,此时的第二业务节点可以将第一业务数据传输至第一业务节点;当节点权限信息中不包含第一业务节点针对第一数据哈希的数据授权信息时,可以确定第一业务节点的节点权限信息不满足第二业务节点对应的数据访问条件,此时的第二业务节点可以生成查询失败提示信息,并向第一业务节点返回该查询失败提示信息,该查询失败提示信息用于提示第一业务节点关于本次数据查询的结果,以及造成数据查询失败的原因,提醒第一业务节点可以去想第二业务节点申请数据访问权限。
可选的,若候选邻居节点中不包含第一数据哈希,且目标邻居节点中包含第一数据哈希,则从目标邻居节点中获取与第一数据哈希相对应的第一业务数据;其中目标邻居节点属于候选邻居节点所关联的第二邻居节点集合,目标邻居节点是基于第一数据哈希值在目标空间维度上的虚拟坐标,与第二邻居节点集合所关联的虚拟坐标区域在目标空间维度上的虚拟坐标之间的虚拟坐标距离所确定的。换言之,若候选邻居节点所存储的局部哈希表中不包含第一数据哈希,则该候选邻居节点可以获取自身的第二邻居节点集合,进而可以获取第一数据哈希在目标空间维度上的第三虚拟坐标,以及第二邻居节点集合中的邻居节点所对应的虚拟坐标区域在目标空间维度上的第四虚拟坐标,通过计算第三虚拟坐标与第四虚拟坐标之间的虚拟坐标距离,可以在第二邻居节点集合中查找与第一数据哈希距离最近的邻居节点,将查询消息发送给该邻居节点。依次类推,直到找到包含第一数据哈希的目标邻居节点(此时的目标邻居节点可以作为第二业务节点),从目标邻居节点所存储的局部哈希表中获取与第一数据哈希相对应的第一业务数据,此时的目标邻居节点可以将第一业务数据传输至第一业务节点。
请一并参见图7,图7是本申请实施例提供的一种见证网络中的寻址查询示意图。如图7所示,以见证网络中的寻址空间为二维空间为例,对寻址查询过程进行描述。如图7所示的当前见证网络可以包括业务节点1、业务节点2、业务节点3、业务节点4、业务节点5、业务节点6、业务节点8以及业务节点9,当业务节点1(即上述第一业务节点)从共识网络中获取到第一数据哈希后,可以向第一数据哈希所在的键值对发起查找,该业务节点1可以检查自己的邻居节点,在业务节点1的邻居节点集合(即上述第一邻居节点集合)中找到与第一数据哈希距离最近的邻居节点,即业务节点4,可以将查找消息发送给业务节点4。同理,该业务节点4可以检查自己的邻居节点,在业务节点4的邻居节点集合(即上述第二邻居节点集合)中找到与第一数据哈希距离最近的邻居节点,即业务节点8,进而可以将查找消息发送给业务节点8。依次类推,当业务节点8的邻居节点集合中所包含的业务节点9中包含第一数据哈希时,表示寻址查询成功,可以从业务节点9所存储的局部哈希表中获取与第一数据哈希相对应的第一业务数据,此时的业务节点9可以将第一业务数据传输至业务节点1。
本申请实施例中,可以将业务数据的数据哈希上传至共识网络,由共识网络对所有业务数据的数据哈希进行管理,业务数据本身可以存储在业务节点中,当第一业务节点想要查询其余业务节点所存储的业务数据时,可以从共识网络中获取数据哈希,并在寻址空间中确定数据哈希所属的目标空间维度;进而可以根据第一业务节点对应的节点路由表,在目标空间维度上查找与数据哈希相对应的业务数据,即可以将所有业务数据在寻址空间中进行多维存储,在查询业务数据的过程中,可以按照哈希数据所属的目标空间维度,进而可以在单一空间维度中查询业务数据,从而可以提高区块链网络中的业务数据查询效率。
请参见图8,图8是本申请实施例提供的一种基于区块链的数据管理方法的流程示意图。该方法可以由第一业务节点执行,第一业务节点可以为独立的服务器、或者为用户终端、或者为计算机程序(包括程序代码)、或者为多个服务器组成的服务器集群等。如图8所示,该基于区块链的数据管理方法可以包括以下步骤:
步骤S201,当第一业务节点生成第二业务数据时,对第二业务数据进行哈希运算,生成第二业务数据对应的第二数据哈希。
具体的,当第一业务节点生成第二业务数据,或者第一业务节点接收到客户端上传至见证网络的第二业务数据时,可以采用哈希算法对第二业务数据进行哈希运算,生成第二业务数据对应的第二数据哈希。其中,哈希算法可以将数据或者消息压缩成摘要,不仅可以将数据的格式固定下来,还可以使数据量变小,哈希算法可以包括但不限于SHA-1、SHA-224、SHA-256、SHA-384以及SHA-512。以SHA-256算法为例,对于任意大小的数据,SHA-256算法均可以产生一个256比特的哈希值,对于不同的数据可以产生不同的哈希值。
步骤S202,将第二数据哈希上传至共识网络,以使共识网络对第二数据哈希进行验证,将验证通过的第二数据哈希添加至共识网络中的交易区块链。
具体的,第一业务节点可以将第二数据哈希上传至共识网络,共识网络接收到第二数据哈希后,该共识网络中的记账节点可以获取第一业务节点上传至共识网络的第二数据哈希,可以对第二数据哈希进行验证,如对第二数据哈希进行验签,以确保第二数据哈希在传输过程中不被篡改,还可以验证第二数据哈希的有效性、验证第一业务节点所对应数字签名的正确性等;第二数据哈希验证通过后,可以将第二数据哈希打包成交易区块,当交易区块在共识网络中达成共识时,将达成共识的交易区块添加至共识网络中的交易区块链。交易区块在交易区块链中上链成功后,表示第二数据哈希上链成功,可以向第一业务节点生成针对第二数据哈希的上链成功提示信息。
步骤S203,接收共识网络返回的上链成功提示信息,获取第二业务数据对应的业务类型,在寻址空间所包含的D个空间维度中确定与业务类型相匹配的候选空间维度;D为正整数。
具体的,第一业务节点接收到共识网络返回的上链成功提示信息后,表示第二业务数据已经在共识网络中已经正式上链,可以获取第二业务数据对应的业务类型,在寻址空间所包含的D个空间维度中确定与业务类型相匹配的候选空间维度,其中D为正整数。需要说明的是,寻址空间中的D个空间维度可以用于存储不同业务类型的业务数据,也可以理解为用于存储不同维度的业务数据,因此基于业务类型可以在寻址空间所包含的D个空间维度中,确定用于存储第二业务数据的候选空间维度。
步骤S204,根据候选空间维度对应的标准数据格式,对第二业务数据进行格式转换,得到格式转换后的第二业务数据,将第二数据哈希和格式转换后的第二业务数据关联存储至第一业务节点的局部哈希表。
具体的,不同维度的业务数据可以对应不同的标准数据格式,分别对应寻址空间所包含的D个空间维度,因此第一业务节点可以获取候选空间维度对应的标准数据格式,并根据候选空间维度对应的标准数据格式,对第二业务数据进行格式转换,得到格式转换后的第二业务数据,将第二数据哈希和格式转换后的第二业务数据关联存储至第一业务节点的局部哈希表。举例来说,人员类型的所有人员信息都可以映射到空间寻址中的空间维度1,若第二业务数据为用户A的用户信息,在用户A的用户信息所对应的数据哈希(即上述第二数据哈希)上链成功后,可以将第二数据哈希发送至寻址空间中,将第二数据哈希映射到空间维度1,可以在第一业务节点的局部哈希表中,将第二数据哈希和格式转换后的用户信息以键值对的形式进行存储。可选的,该第二数据哈希和格式转换后的用户信息可以存储至一个或多个业务节点所对应的局部哈希表中。
步骤S205,第一业务节点获取候选邻居节点发送的第二数据哈希,若第一业务节点的局部哈希表中包含第二数据哈希,则从第一业务节点的局部哈希表中获取与第二数据哈希相对应的第二业务数据,将第二业务数据返回至候选邻居节点。
具体的,当其余业务节点(例如,上述候选邻居节点,或者上述目标邻居节点等)发起对第二数据哈希的查询请求时,其余业务节点可以应用路由机制查找与第二数据哈希相对应的第二业务数据。可以理解的是,见证网络中的每个业务节点在寻址查询过程中的执行操作是相同的,例如,当第一业务节点接收到候选邻居节点发送的查询请求时,可以获取查询请求所携带的第二数据哈希;若第一业务节点的局部哈希表中包含第二数据哈希,则可以获取候选邻居节点在共识网络的交易区块链中的候选节点权限信息,若候选节点权限信息包括候选邻居节点对第一业务节点的数据访问权限信息,则从第一业务节点的局部哈希表中获取与第二数据哈希相对应的第二业务数据,将所述第二业务数据返回至候选邻居节点(或者可以称为发起上述查询请求的业务节点)。换言之,第一业务节点在接收到查询请求,或者与查询请求相关联的查询消息时,可以在第一业务节点对应的局部哈希表中,获取与第二数据哈希相对应的第二业务数据,并将第二业务数据传输至发起查询请求的业务节点。
请一并参见图9,图9是本申请实施例提供的一种电子发票区块链系统的结构示意图。如图9所示,以电子发票业务为例,用于执行电子发票业务的区块链网络可以包括业务层、路由代理层(也可以称为中间路由层)以及核心共识网络层,路由代理层可以用于隔离业务层和核心共识网络层。其中,业务层处于见证网络中,业务层可以包括一个或多个业务节点,可以用于处理电子发票业务,例如,电子税局50a可以通过税务专网50d与业务层中的地方税局进行通信,企业50b可以通过公有云50e与业务层中的开票服务商、报销服务商以及重要客户企业(也可以称为KA企业)进行通信,消费者50c可以通过私有云50f与业务层中的支付服务商、流转服务商以及KA企业进行通信,其中,私有云50f的安全性要高于公有云50e,可以更好地保护消费者的个人信息;业务层中的地方税局、开票服务商、报销服务商、重要客户企业、支付服务商、流转服务商等均可以作为业务节点。
路由代理层中包括代理节点(也可以称为路由节点),在路由代理层中可以包括路由服务、点对点服务以及认证服务等,路由代理层中还可以进行证书缓存。其中,路由服务可以用于在业务层和核心共识网络层之间转发数据,证书缓存可以用于对业务节点进行身份认证。
核心共识网络层可以包括可信区块链节点(也可以称为TrustSQL节点,或者记账节点共识网络层中可以包括多个核心链,如核心链1,……,核心链K(K为正整数,此处的核心链可以理解为交易区块链),核心链1可以包括可信区块链节点50g、可信区块链节点50h等节点,核心链K可以包括可信区块链节点50i、可信区块链节点50j等节点。核心共识网络层中的可信区块链节点可以运行区块链网络中的共识协议,不同的核心链可以运行相同的共识协议,也可以运行不同的共识协议。
在图9所示的区块链网络中,当见证网络(即业务层)中的业务节点想要查询其余业务节点所存储的业务数据时,可以向共识网络(即核心共识网络层)中的核心链获取数据哈希,如第一业务节点可以向共识网络中的核心链获取数据哈希1,进而可以在寻址空间所包含的D维空间维度中,获取数据哈希1所对应的目标空间维度,并在见证网络中应用路由机制,在目标空间维度上查找与数据哈希1相对应的第一业务数据。
可选的,本申请实施例涉及的分层区块链可以应用于物流业务、社保业务、摇号等业务。例如,当分层区块链应用在物流业务时,该分层区块链的共识网络中的业务节点可以用于存储物流业务数据,该分层区块链的见证网络可以用于存储物流业务数据对应的数据哈希;当分层区块链应用在社保业务时,该分层区块链的共识网络中的业务节点可以用于存储社保业务数据,该分层区块链的见证网络可以用于存储社保业务数据对应的数据哈希;当分层区块链应用在摇号业务时,该分层区块链的共识网络中的业务节点可以用于存储摇号业务数据,该分层区块链的见证网络可以用于存储摇号业务数据对应的数据哈希。
本申请实施例中,可以将业务数据的数据哈希上传至共识网络,由共识网络对所有业务数据的数据哈希进行管理,业务数据本身可以存储在业务节点中,当第一业务节点想要查询其余业务节点所存储的业务数据时,可以从共识网络中获取数据哈希,并在寻址空间中确定数据哈希所属的目标空间维度;进而可以根据第一业务节点对应的节点路由表,在目标空间维度上查找与数据哈希相对应的业务数据,即可以将所有业务数据在寻址空间中进行多维存储,在查询业务数据的过程中,可以按照哈希数据所属的目标空间维度,进而可以在单一空间维度中查询业务数据,从而可以提高区块链网络中的业务数据查询效率;将具体的业务数据存储在见证网络的业务节点中,业务数据的数据哈希存储在共识网络的交易区块链中,在确保业务数据安全性和隐私性的基础上,可以提高业务数据的管理有效性。
请参见图10,图10是本申请实施例提供的一种基于区块链的数据管理装置的结构示意图。基于区块链的数据管理装置可以是运行于业务节点中的一个计算机程序(包括程序代码),该装置可以用于执行图3所对应实施例提供的方法中的相应步骤。如图10所示,基于区块链的数据管理装置1可以包括:第一获取模块11,第二获取模块12,节点查找模块13,数据获取模块14;
第一获取模块11,用于第一业务节点从共识网络中获取第一数据哈希,获取第一业务节点对应的第一节点路由表;第一节点路由表包括第一业务节点所关联的第一邻居节点集合,以及第一邻居节点集合中的每个邻居节点分别在寻址空间中的虚拟坐标区域;
第二获取模块12,用于在寻址空间中确定第一数据哈希所属的目标空间维度,获取第一数据哈希在目标空间维度上的第一虚拟坐标,以及虚拟坐标区域在目标空间维度上的第二虚拟坐标;
节点查找模块13,用于根据第一虚拟坐标和第二虚拟坐标之间的虚拟坐标距离,在第一节点路由表的第一邻居节点集合中查找第一数据哈希对应的候选邻居节点;
数据获取模块14,用于若候选邻居节点中包含第一数据哈希,则将包含第一数据哈希的候选邻居节点确定为第二业务节点,在第二业务节点中获取与第一数据哈希相对应的第一业务数据。
其中,第一获取模块11,第二获取模块12,节点查找模块13,数据获取模块14的具体功能实现方式可以参见上述图3所对应实施例中的步骤S101-步骤S104,这里不再进行赘述。
在一些可行的实施方式中,第一邻居节点集合包括第一业务节点对应的M个邻居节点,M为正整数;
第二获取模块12可以具体用于:
获取第一数据哈希在目标空间维度上的第一虚拟坐标,获取M个邻居节点所对应的虚拟坐标区域分别在目标空间维度上的第二虚拟坐标;
则节点查找模块13可以包括:距离获取单元131,邻居节点确定单元132;
距离获取单元131,用于获取第一虚拟坐标分别与M个第二虚拟坐标之间的虚拟坐标距离;
邻居节点确定单元132,用于在第一节点路由表的第一邻居节点集合中,将最小的虚拟坐标距离对应的虚拟坐标区域所属的邻居节点,确定为第一数据哈希对应的候选邻居节点。
其中,距离获取单元131,邻居节点确定单元132的具体功能实现方式可以参见上述图3所对应实施例中的步骤S103,这里不再进行赘述。
在一些可行的实施方式中,候选邻居节点包括局部哈希表,候选邻居节点的局部哈希表包括候选邻居节点所存储的N个业务数据与N个数据哈希之间的对应关系,N为正整数;
数据获取模块14可以包括:业务节点确定单元141,业务数据获取单元142;
业务节点确定单元141,用于若候选邻居节点所存储的N个数据哈希中包含第一数据哈希,则将包含第一数据哈希的候选邻居节点确定为第二业务节点;
业务数据获取单元142,用于当第一业务节点在共识网络中的节点权限信息满足第二业务节点对应的数据访问条件时,在第二业务节点的局部哈希表中获取与第一数据哈希相对应的第一业务数据;第一业务数据属于N个业务数据。
其中,业务节点确定单元141,业务数据获取单元142的具体功能实现方式可以参见上述图3所对应实施例中的步骤S104,这里不再进行赘述。
在一些可行的实施方式中,该基于区块链的数据管理装置1还可以包括:提示信息生成模块15,第一业务数据获取模块16;
提示信息生成模块15,用于当第一业务节点在共识网络中的节点权限信息不满足第二业务节点对应的数据访问条件时,生成针对第一业务节点的查询失败提示信息;查询失败提示信息用于指示第一业务节点向第二业务节点请求数据访问权限。
第一业务数据获取模块16,用于若候选邻居节点中不包含第一数据哈希,且目标邻居节点中包含第一数据哈希,则从目标邻居节点中获取与第一数据哈希相对应的第一业务数据;目标邻居节点属于候选邻居节点所关联的第二邻居节点集合,目标邻居节点是基于第一数据哈希值在目标空间维度上的虚拟坐标,与第二邻居节点集合所关联的虚拟坐标区域在目标空间维度上的虚拟坐标之间的虚拟坐标距离所确定的。
其中,提示信息生成模块15,第一业务数据获取模块16的具体功能实现方式可以参见上述图3所对应实施例中的步骤S104,这里不再进行赘述。
在一些可行的实施方式中,第一获取模块11可以包括:数据访问单元111,数据哈希获取单元112;
数据访问单元111,用于当第一业务节点接收到携带业务数据标识的数据查询请求时,对共识网络中的交易区块链进行数据访问;
数据哈希获取单元112,用于在交易区块链中获取与业务数据标识相匹配的交易区块,从交易区块中获取业务数据标识所关联的第一数据哈希。
其中,数据访问单元111,数据哈希获取单元112的具体功能实现方式可以参见上述图3所对应实施例中的步骤S101,这里不再进行赘述。
在一些可行的实施方式中,该基于区块链的数据管理装置1还可以包括:第二业务数据获取模块17;
第二业务数据获取模块17,用于第一业务节点获取候选邻居节点发送的第二数据哈希,若第一业务节点的局部哈希表中包含第二数据哈希,则从第一业务节点的局部哈希表中获取与第二数据哈希相对应的第二业务数据,将第二业务数据返回至候选邻居节点。
其中,第二业务数据获取模块17可以包括:第二哈希获取单元171,权限信息获取单元172,权限判断单元173;
第二哈希获取单元171,用于第一业务节点接收候选邻居节点发送的查询请求,获取查询请求所携带的第二数据哈希;
权限信息获取单元172,用于若第一业务节点的局部哈希表中包含第二数据哈希,则获取候选邻居节点在共识网络的交易区块链中的候选节点权限信息;
权限判断单元173,用于若候选节点权限信息包括候选邻居节点对第一业务节点的数据访问权限信息,则从第一业务节点的局部哈希表中获取与第二数据哈希相对应的第二业务数据,将第二业务数据返回至候选邻居节点。
其中,第二业务数据获取模块17,第二哈希获取单元171,权限信息获取单元172,权限判断单元173的具体功能实现方式可以参见上述图3所对应实施例中的步骤S104,这里不再进行赘述。
在一些可行的实施方式中,该基于区块链的数据管理装置1还可以包括:数据哈希生成模块18,数据哈希上传模块19,上链成功提示模块20,业务数据存储模块21;
数据哈希生成模块18,用于当第一业务节点生成第二业务数据时,对第二业务数据进行哈希运算,生成第二业务数据对应的第二数据哈希;
数据哈希上传模块19,用于将第二数据哈希上传至共识网络,以使共识网络对第二数据哈希进行验证,将验证通过的第二数据哈希添加至共识网络中的交易区块链;
上链成功提示模块20,用于接收共识网络返回的上链成功提示信息,获取第二业务数据对应的业务类型,在寻址空间所包含的D个空间维度中确定与业务类型相匹配的候选空间维度;D为正整数;
业务数据存储模块21,用于根据候选空间维度对应的标准数据格式,对第二业务数据进行格式转换,得到格式转换后的第二业务数据,将第二数据哈希和格式转换后的第二业务数据关联存储至第一业务节点的局部哈希表。
其中,数据哈希生成模块18,数据哈希上传模块19,上链成功提示模块20,业务数据存储模块21的具体功能实现方式可以参见上述图8所对应实施例中的步骤S201-步骤S204,这里不再进行赘述。
在一些可行的实施方式中,该基于区块链的数据管理装置1还可以包括:业务节点获取模块22,空间坐标获取模块23,邻居节点确定模块24,路由表创建模块25;
业务节点获取模块22,用于获取见证网络中所包含的L个业务节点;L个业务节点包括第一业务节点,L为正整数;
空间坐标获取模块23,用于在寻址空间所包含的D个空间维度中,获取L个业务节点分别对应的D维空间坐标;D为正整数;
邻居节点确定模块24,用于若L个业务节点的业务节点i所对应的D维空间坐标中,存在(D-1)维空间坐标与第一业务节点的(D-1)维空间坐标重合,且剩余的一维空间坐标相邻,则将业务节点i确定为第一业务节点的邻居节点,将第一业务节点的邻居节点组合为第一邻居节点集合;第一业务节点对应的D维空间坐标处于第一业务节点的虚拟坐标区域内,i为小于或等于L的正整数;
路由表创建模块25,用于根据第一邻居节点集合所包含的邻居节点,以及第一邻居节点集合中的邻居节点在寻址空间中的虚拟坐标区域,创建第一业务节点对应的第一节点路由表。
其中,业务节点获取模块22,空间坐标获取模块23,邻居节点确定模块24,路由表创建模块25的具体功能实现方式可以参见上述图3所对应实施例中的步骤S101,这里不再进行赘述。
在一些可行的实施方式中,该基于区块链的数据管理装置1还可以包括:节点新增模块26,第一邻居节点更新模块27,第一路由表更新模块28,坐标区域发送模块29,第二邻居节点更新模块30,第二路由表更新模块31;
节点新增模块26,用于当第一业务节点的虚拟坐标区域被见证网络中的新增业务节点j所划分时,在寻址空间所包含的D个空间维度中,获取新增业务节点j对应的D维空间坐标;j为正整数;
第一邻居节点更新模块27,用于根据新增业务节点j对应的D维空间坐标,以及L个业务节点分别对应的D维空间坐标,更新第一邻居节点集合,得到针对第一业务节点的更新后的第一邻居节点集合;
第一路由表更新模块28,用于根据更新后的第一邻居节点集合,以及更新后的第一邻居节点集合中的邻居节点在寻址空间中的虚拟坐标区域,更新第一业务节点对应的第一节点路由表。
坐标区域发送模块29,用于获取第一业务节点所对应的更新后的虚拟坐标区域,将更新后的虚拟坐标区域发送给见证网络中除第一业务节点之外的剩余业务节点,以使剩余业务节点根据更新后的虚拟坐标区域,更新所属的节点路由表。
第二邻居节点更新模块30,用于当第一邻居节点集合中的业务节点i退出见证网络,且业务节点i的虚拟坐标区域与第一业务节点的虚拟坐标区域进行合并时,根据(L-1)个业务节点分别对应的D维空间坐标,更新第一邻居节点集合,得到针对第一业务节点的更新后的第一邻居节点集合;(L-1)个业务节点是指L个业务节点中除业务节点i之外的业务节点;
第二路由表更新模块31,用于根据更新后的第一邻居节点集合,以及更新后的第一邻居节点集合中的邻居节点在寻址空间中的虚拟坐标区域,更新第一业务节点对应的第一节点路由表。
其中,节点新增模块26,第一邻居节点更新模块27,第一路由表更新模块28,坐标区域发送模块29,第二邻居节点更新模块30,第二路由表更新模块31的具体功能实现方式可以参见上述图3所对应实施例中的步骤S101,这里不再进行赘述。
本申请实施例中,可以将业务数据的数据哈希上传至共识网络,由共识网络对所有业务数据的数据哈希进行管理,业务数据本身可以存储在业务节点中,当第一业务节点想要查询其余业务节点所存储的业务数据时,可以从共识网络中获取数据哈希,并在寻址空间中确定数据哈希所属的目标空间维度;进而可以根据第一业务节点对应的节点路由表,在目标空间维度上查找与数据哈希相对应的业务数据,即可以将所有业务数据在寻址空间中进行多维存储,在查询业务数据的过程中,可以按照哈希数据所属的目标空间维度,进而可以在单一空间维度中查询业务数据,从而可以提高区块链网络中的业务数据查询效率;将具体的业务数据存储在见证网络的业务节点中,业务数据的数据哈希存储在共识网络的交易区块链中,在确保业务数据安全性和隐私性的基础上,可以提高业务数据的管理有效性。
请参见图11,图11是本申请实施例提供的一种计算机设备的结构示意图。如图11所示,该计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,上述计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。可选的,网络接口1004可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器1005还可以是至少一个位于远离前述处理器1001的存储装置。如图11所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在如图11所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
第一业务节点从共识网络中获取第一数据哈希,获取第一业务节点对应的第一节点路由表;第一节点路由表包括第一业务节点所关联的第一邻居节点集合,以及第一邻居节点集合中的每个邻居节点分别在寻址空间中的虚拟坐标区域;
在寻址空间中确定第一数据哈希所属的目标空间维度,获取第一数据哈希在目标空间维度上的第一虚拟坐标,以及虚拟坐标区域在目标空间维度上的第二虚拟坐标;
根据第一虚拟坐标和第二虚拟坐标之间的虚拟坐标距离,在第一节点路由表的第一邻居节点集合中查找第一数据哈希对应的候选邻居节点;
若候选邻居节点中包含第一数据哈希,则将包含第一数据哈希的候选邻居节点确定为第二业务节点,在第二业务节点中获取与第一数据哈希相对应的第一业务数据。
应当理解,本申请实施例中所描述的计算机设备1000可执行前文图3和图8任一个所对应实施例中对基于区块链的数据管理方法的描述,也可执行前文图9所对应实施例中对基于区块链的数据管理装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且计算机可读存储介质中存储有前文提及的基于区块链的数据管理装置1所执行的计算机程序,且计算机程序包括程序指令,当处理器执行程序指令时,能够执行前文图3和图8任一个所对应实施例中对基于区块链的数据管理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。作为示例,程序指令可被部署在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行,分布在多个地点且通过通信网络互连的多个计算设备可以组成区块链系统。
此外,需要说明的是:本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或者计算机程序可以包括计算机指令,该计算机指令可以存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器可以执行该计算机指令,使得该计算机设备执行前文图3和图8任一个所对应实施例中对基于区块链的数据管理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机程序产品或者计算机程序实施例中未披露的技术细节,请参照本申请方法实施例的描述。
需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本申请实施例装置中的模块可以根据实际需要进行合并、划分和删减。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储器(Read-Only Memory,ROM)或随机存储器(Random Access Memory,RAM)等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

Claims (16)

1.一种基于区块链的数据管理方法,其特征在于,包括:
第一业务节点从共识网络中获取第一数据哈希,获取所述第一业务节点对应的第一节点路由表;所述第一节点路由表包括所述第一业务节点所关联的第一邻居节点集合,以及所述第一邻居节点集合中的每个邻居节点分别在寻址空间中的虚拟坐标区域;
在所述寻址空间所包含的D个空间维度中确定所述第一数据哈希所属的目标空间维度,获取所述第一数据哈希在所述目标空间维度上的第一虚拟坐标,以及所述虚拟坐标区域在所述目标空间维度上的第二虚拟坐标;D为正整数;
根据所述第一虚拟坐标和所述第二虚拟坐标之间的虚拟坐标距离,在所述第一节点路由表的第一邻居节点集合中查找所述第一数据哈希对应的候选邻居节点;
若所述候选邻居节点中包含所述第一数据哈希,则将包含所述第一数据哈希的候选邻居节点确定为第二业务节点,在所述第二业务节点中获取与所述第一数据哈希相对应的第一业务数据;
其中,所述第一业务数据是指所述第二业务节点所存储的具有所述目标空间维度所对应的标准数据格式的业务数据,所述目标空间维度是指所述第二业务节点基于所述第一业务数据的业务类型,从所述寻址空间所包含的D个空间维度中所确定的一个空间维度。
2.根据权利要求1所述的方法,其特征在于,所述第一邻居节点集合包括所述第一业务节点对应的M个邻居节点,M为正整数;
所述获取所述第一数据哈希在所述目标空间维度上的第一虚拟坐标,以及所述虚拟坐标区域在所述目标空间维度上的第二虚拟坐标,包括:
获取所述第一数据哈希在所述目标空间维度上的第一虚拟坐标,获取所述M个邻居节点所对应的虚拟坐标区域分别在所述目标空间维度上的第二虚拟坐标;
则所述根据所述第一虚拟坐标和所述第二虚拟坐标之间的虚拟坐标距离,在所述第一节点路由表的第一邻居节点集合中查找所述第一数据哈希对应的候选邻居节点,包括:
获取所述第一虚拟坐标分别与M个第二虚拟坐标之间的虚拟坐标距离;
在所述第一节点路由表的第一邻居节点集合中,将最小的虚拟坐标距离对应的虚拟坐标区域所属的邻居节点,确定为所述第一数据哈希对应的候选邻居节点。
3.根据权利要求1所述的方法,其特征在于,所述候选邻居节点包括局部哈希表,所述候选邻居节点的局部哈希表包括所述候选邻居节点所存储的N个业务数据与N个数据哈希之间的对应关系,N为正整数;
所述若所述候选邻居节点中包含所述第一数据哈希,则将包含所述第一数据哈希的候选邻居节点确定为第二业务节点,在所述第二业务节点中获取与所述第一数据哈希相对应的第一业务数据,包括:
若所述候选邻居节点所存储的所述N个数据哈希中包含所述第一数据哈希,则将包含所述第一数据哈希的候选邻居节点确定为第二业务节点;
当所述第一业务节点在所述共识网络中的节点权限信息满足所述第二业务节点对应的数据访问条件时,在所述第二业务节点的局部哈希表中获取与所述第一数据哈希相对应的第一业务数据;所述第一业务数据属于所述N个业务数据。
4.根据权利要求3所述的方法,其特征在于,还包括:
当所述第一业务节点在所述共识网络中的节点权限信息不满足所述第二业务节点对应的数据访问条件时,生成针对所述第一业务节点的查询失败提示信息;所述查询失败提示信息用于指示所述第一业务节点向所述第二业务节点请求数据访问权限。
5.根据权利要求1所述的方法,其特征在于,还包括:
若所述候选邻居节点中不包含所述第一数据哈希,且目标邻居节点中包含所述第一数据哈希,则从所述目标邻居节点中获取与所述第一数据哈希相对应的第一业务数据;所述目标邻居节点属于所述候选邻居节点所关联的第二邻居节点集合,所述目标邻居节点是基于所述第一数据哈希值在所述目标空间维度上的虚拟坐标,与所述第二邻居节点集合所关联的虚拟坐标区域在所述目标空间维度上的虚拟坐标之间的虚拟坐标距离所确定的。
6.根据权利要求1所述的方法,其特征在于,所述第一业务节点从共识网络中获取第一数据哈希,包括:
当第一业务节点接收到携带业务数据标识的数据查询请求时,对所述共识网络中的交易区块链进行数据访问;
在所述交易区块链中获取与所述业务数据标识相匹配的交易区块,从所述交易区块中获取所述业务数据标识所关联的第一数据哈希。
7.根据权利要求1所述的方法,其特征在于,还包括:
所述第一业务节点获取所述候选邻居节点发送的第二数据哈希,若所述第一业务节点的局部哈希表中包含所述第二数据哈希,则从所述第一业务节点的局部哈希表中获取与所述第二数据哈希相对应的第二业务数据,将所述第二业务数据返回至所述候选邻居节点。
8.根据权利要求7所述的方法,其特征在于,所述第一业务节点获取所述候选邻居节点发送的第二数据哈希,若所述第一业务节点的局部哈希表中包含所述第二数据哈希,则从所述第一业务节点的局部哈希表中获取与所述第二数据哈希相对应的第二业务数据,将所述第二业务数据返回至所述候选邻居节点,包括:
所述第一业务节点接收所述候选邻居节点发送的查询请求,获取所述查询请求所携带的第二数据哈希;
若所述第一业务节点的局部哈希表中包含所述第二数据哈希,则获取所述候选邻居节点在所述共识网络的交易区块链中的候选节点权限信息;
若所述候选节点权限信息包括所述候选邻居节点对所述第一业务节点的数据访问权限信息,则从所述第一业务节点的局部哈希表中获取与所述第二数据哈希相对应的第二业务数据,将所述第二业务数据返回至所述候选邻居节点。
9.根据权利要求7或8任一项所述的方法,其特征在于,还包括:
当所述第一业务节点生成所述第二业务数据时,对所述第二业务数据进行哈希运算,生成所述第二业务数据对应的第二数据哈希;
将所述第二数据哈希上传至所述共识网络,以使所述共识网络对所述第二数据哈希进行验证,将验证通过的第二数据哈希添加至所述共识网络中的交易区块链;
接收所述共识网络返回的上链成功提示信息,获取所述第二业务数据对应的业务类型,在所述寻址空间所包含的D个空间维度中确定与所述第二业务数据对应的业务类型相匹配的候选空间维度;D为正整数;
根据所述候选空间维度对应的标准数据格式,对所述第二业务数据进行格式转换,得到格式转换后的第二业务数据,将所述第二数据哈希和所述格式转换后的第二业务数据关联存储至所述第一业务节点的局部哈希表。
10.根据权利要求1所述的方法,其特征在于,还包括:
获取见证网络中所包含的L个业务节点;所述L个业务节点包括所述第一业务节点,L为正整数;
在所述寻址空间所包含的D个空间维度中,获取所述L个业务节点分别对应的D维空间坐标;D为正整数;
若所述L个业务节点的业务节点i所对应的D维空间坐标中,存在(D-1)维空间坐标与所述第一业务节点的(D-1)维空间坐标重合,且剩余的一维空间坐标相邻,则将所述业务节点i确定为所述第一业务节点的邻居节点,将所述第一业务节点的邻居节点组合为所述第一邻居节点集合;所述第一业务节点对应的D维空间坐标处于所述第一业务节点的虚拟坐标区域内,i为小于或等于L的正整数;
根据所述第一邻居节点集合所包含的邻居节点,以及所述第一邻居节点集合中的邻居节点在所述寻址空间中的虚拟坐标区域,创建所述第一业务节点对应的第一节点路由表。
11.根据权利要求10所述的方法,其特征在于,还包括:
当所述第一业务节点的虚拟坐标区域被所述见证网络中的新增业务节点j所划分时,在所述寻址空间所包含的D个空间维度中,获取所述新增业务节点j对应的D维空间坐标;j为正整数;
根据所述新增业务节点j对应的D维空间坐标,以及所述L个业务节点分别对应的D维空间坐标,更新所述第一邻居节点集合,得到针对所述第一业务节点的更新后的第一邻居节点集合;
根据所述更新后的第一邻居节点集合,以及所述更新后的第一邻居节点集合中的邻居节点在所述寻址空间中的虚拟坐标区域,更新所述第一业务节点对应的第一节点路由表。
12.根据权利要求11所述的方法,其特征在于,还包括:
获取所述第一业务节点所对应的更新后的虚拟坐标区域,将所述更新后的虚拟坐标区域发送给所述见证网络中除所述第一业务节点之外的剩余业务节点,以使所述剩余业务节点根据所述更新后的虚拟坐标区域,更新所属的节点路由表。
13.根据权利要求10所述的方法,其特征在于,还包括:
当所述第一邻居节点集合中的业务节点i退出所述见证网络,且所述业务节点i的虚拟坐标区域与所述第一业务节点的虚拟坐标区域进行合并时,根据(L-1)个业务节点分别对应的D维空间坐标,更新所述第一邻居节点集合,得到针对所述第一业务节点的更新后的第一邻居节点集合;所述(L-1)个业务节点是指所述L个业务节点中除所述业务节点i之外的业务节点;
根据所述更新后的第一邻居节点集合,以及所述更新后的第一邻居节点集合中的邻居节点在所述寻址空间中的虚拟坐标区域,更新所述第一业务节点对应的第一节点路由表。
14.一种基于区块链的数据管理装置,其特征在于,包括:
第一获取模块,用于第一业务节点从共识网络中获取第一数据哈希,获取所述第一业务节点对应的第一节点路由表;所述第一节点路由表包括所述第一业务节点所关联的第一邻居节点集合,以及所述第一邻居节点集合中的每个邻居节点分别在寻址空间中的虚拟坐标区域;
第二获取模块,用于在所述寻址空间所包含的D个空间维度中确定所述第一数据哈希所属的目标空间维度,获取所述第一数据哈希在所述目标空间维度上的第一虚拟坐标,以及所述虚拟坐标区域在所述目标空间维度上的第二虚拟坐标;D为正整数;
节点查找模块,用于根据所述第一虚拟坐标和所述第二虚拟坐标之间的虚拟坐标距离,在所述第一节点路由表的第一邻居节点集合中查找所述第一数据哈希对应的候选邻居节点;
数据获取模块,用于若所述候选邻居节点中包含所述第一数据哈希,则将包含所述第一数据哈希的候选邻居节点确定为第二业务节点,在所述第二业务节点中获取与所述第一数据哈希相对应的第一业务数据;
其中,所述第一业务数据是指所述第二业务节点所存储的具有所述目标空间维度所对应的标准数据格式的业务数据,所述目标空间维度是指所述第二业务节点基于所述第一业务数据的业务类型,从所述寻址空间所包含的D个空间维度中所确定的一个空间维度。
15.一种计算机设备,其特征在于,包括存储器和处理器;
所述存储器与所述处理器相连,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以使得所述计算机设备执行权利要求1至13任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序适于由处理器加载并执行,以使得具有所述处理器的计算机设备执行权利要求1至13任一项所述的方法。
CN202110512372.2A 2021-05-11 2021-05-11 基于区块链的数据管理方法、设备以及介质 Active CN112988852B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110512372.2A CN112988852B (zh) 2021-05-11 2021-05-11 基于区块链的数据管理方法、设备以及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110512372.2A CN112988852B (zh) 2021-05-11 2021-05-11 基于区块链的数据管理方法、设备以及介质

Publications (2)

Publication Number Publication Date
CN112988852A CN112988852A (zh) 2021-06-18
CN112988852B true CN112988852B (zh) 2021-08-03

Family

ID=76337509

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110512372.2A Active CN112988852B (zh) 2021-05-11 2021-05-11 基于区块链的数据管理方法、设备以及介质

Country Status (1)

Country Link
CN (1) CN112988852B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI784623B (zh) * 2021-07-19 2022-11-21 林春蓉 碎片式數位創作管理方法及電腦程式產品

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103546327A (zh) * 2013-11-05 2014-01-29 重庆邮电大学 一种建立基于jxta的混合式拓扑的网络管理模型的方法
CN106548349A (zh) * 2016-11-02 2017-03-29 江苏通付盾科技有限公司 交易信息验证方法及系统
CN107122437A (zh) * 2017-04-19 2017-09-01 高新兴科技集团股份有限公司 一种支持多条件检索和实时分析的大数据处理方法
CN108243250A (zh) * 2018-01-05 2018-07-03 无锡井通网络科技有限公司 一种基于分布式网络的分片快速选择方法
CN111309731A (zh) * 2020-02-18 2020-06-19 杭州复杂美科技有限公司 一种区块存储和查询方法、设备及存储介质
CN111639140A (zh) * 2020-06-08 2020-09-08 杭州复杂美科技有限公司 分布式数据存储方法、设备和存储介质
CN112104517A (zh) * 2020-11-23 2020-12-18 腾讯科技(深圳)有限公司 一种基于区块链网络的数据处理方法及相关装置
CN112200681A (zh) * 2020-12-04 2021-01-08 腾讯科技(深圳)有限公司 区块链网络的业务处理方法、信息处理方法及节点设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100128638A1 (en) * 2008-11-20 2010-05-27 Sap Ag Hierarchical shortest path first network routing protocol
US10917231B2 (en) * 2019-04-04 2021-02-09 Advanced New Technologies Co., Ltd. Data storage method, apparatus, system and device
CN112541019B (zh) * 2020-12-07 2023-07-25 北京大学 区块链资源的搜索方法和装置
CN112231415B (zh) * 2020-12-16 2021-03-12 腾讯科技(深圳)有限公司 区块链网络的数据同步方法、系统、电子设备及可读介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103546327A (zh) * 2013-11-05 2014-01-29 重庆邮电大学 一种建立基于jxta的混合式拓扑的网络管理模型的方法
CN106548349A (zh) * 2016-11-02 2017-03-29 江苏通付盾科技有限公司 交易信息验证方法及系统
CN107122437A (zh) * 2017-04-19 2017-09-01 高新兴科技集团股份有限公司 一种支持多条件检索和实时分析的大数据处理方法
CN108243250A (zh) * 2018-01-05 2018-07-03 无锡井通网络科技有限公司 一种基于分布式网络的分片快速选择方法
CN111309731A (zh) * 2020-02-18 2020-06-19 杭州复杂美科技有限公司 一种区块存储和查询方法、设备及存储介质
CN111639140A (zh) * 2020-06-08 2020-09-08 杭州复杂美科技有限公司 分布式数据存储方法、设备和存储介质
CN112104517A (zh) * 2020-11-23 2020-12-18 腾讯科技(深圳)有限公司 一种基于区块链网络的数据处理方法及相关装置
CN112200681A (zh) * 2020-12-04 2021-01-08 腾讯科技(深圳)有限公司 区块链网络的业务处理方法、信息处理方法及节点设备

Also Published As

Publication number Publication date
CN112988852A (zh) 2021-06-18

Similar Documents

Publication Publication Date Title
EP4120114A1 (en) Data processing method and apparatus, smart device and storage medium
Maroufi et al. On the convergence of blockchain and internet of things (iot) technologies
CN113691597B (zh) 区块链合约部署方法、装置、设备以及存储介质
CN112685505B (zh) 一种交易数据处理方法、装置、计算机设备及存储介质
US20160261690A1 (en) Computing device configuration and management using a secure decentralized transaction ledger
CN111291060B (zh) 一种管理区块链节点的方法、装置及计算机可读介质
CN110599095B (zh) 基于区块链网络的危废处理方法及区块链网络的节点
CN111461879A (zh) 一种基于区块链的政务服务处理系统和方法
CN112396423A (zh) 一种交易数据处理方法、装置、设备及存储介质
CN111294379B (zh) 区块链网络服务平台及其权限托管方法、存储介质
CN105247529A (zh) 在目录服务之间同步凭证散列
CN112527912B (zh) 基于区块链网络的数据处理方法、装置及计算机设备
KR20190089506A (ko) 블록체인상에서 공유 분산장부와 외부 저장장치에 정보를 분리저장하여 구현한 안전한 전자계약시스템
AU2021273375B2 (en) Cross-network identity provisioning
CN112702402A (zh) 基于区块链技术实现政务信息资源共享和交换的系统、方法、装置、处理器及其存储介质
CN111931215B (zh) 数据管理方法和装置及存储介质
CN111934870B (zh) 区块链网络中的根证书更新方法、装置、设备以及介质
CN112101942A (zh) 基于区块链的交易请求处理方法、系统、装置及设备
CN110601896A (zh) 一种基于区块链节点的数据处理方法以及设备
Jiang et al. A cross-chain solution to integration of iot tangle for data access management
CN112988852B (zh) 基于区块链的数据管理方法、设备以及介质
CN113259130B (zh) 一种交易数据处理方法、装置、设备以及介质
CN113011960A (zh) 基于区块链的数据访问方法、装置、介质及电子设备
CN112883429A (zh) 一种便于实现数据一致性的区块链平台
CN115701078A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40045477

Country of ref document: HK