CN111475692A - 区块链数据的处理方法、装置及存储介质 - Google Patents

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

Info

Publication number
CN111475692A
CN111475692A CN201910067032.6A CN201910067032A CN111475692A CN 111475692 A CN111475692 A CN 111475692A CN 201910067032 A CN201910067032 A CN 201910067032A CN 111475692 A CN111475692 A CN 111475692A
Authority
CN
China
Prior art keywords
data
block
block chain
transaction
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.)
Pending
Application number
CN201910067032.6A
Other languages
English (en)
Inventor
何海涛
闫国旗
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201910067032.6A priority Critical patent/CN111475692A/zh
Publication of CN111475692A publication Critical patent/CN111475692A/zh
Pending legal-status Critical Current

Links

Images

Abstract

本发明提供了一种区块链数据的处理方法、装置及存储介质,其中,方法包括:根据区块链数据的不同类型,以不同类型数据之间的关联关系,构建多元组形式的数据模型;获取区块链中至少一个区块的数据;基于所述数据模型,对所述至少一个区块的数据进行转换,得到对应所述数据的知识图谱;存储所述知识图谱至图形数据库。

Description

区块链数据的处理方法、装置及存储介质
技术领域
本发明涉及区块链技术,尤其涉及一种区块链数据的处理方法、装置及存储介质。
背景技术
随着区块链技术的发展,各行各业将区块链技术作为底层技术引入,势必导致大量的数据以区块链数据的形式存在,同时区块链技术面临用户隐私泄露、非法金融活动等问题,所以对区块链数据进行分析变得极其重要,然而,由于区块链数据庞大,这种链式数据形态使得在进行数据查询时查询效率低,不易获取数据之间的关联关系。
发明内容
本发明实施例提供一种区块链数据的处理方法、装置及存储介质,能够将区块链数据的链式数据形态,转换为可视化的知识图谱的形式在图形数据库中存储。
本发明实施例的技术方案是这样实现的:
第一方面,本发明实施例提供一种区块链数据的处理方法,所述方法包括:
根据区块链数据的不同类型,以不同类型数据之间的关联关系,构建多元组形式的数据模型;
获取区块链中至少一个区块的数据;
基于所述数据模型,对所述至少一个区块的数据进行转换,得到对应所述数据的知识图谱;
存储所述知识图谱至图形数据库。
上述方案中,所述根据区块链数据的不同类型,以不同类型数据之间的关联关系,构建多元组形式的数据模型,包括:
根据区块链数据的不同类型,以不同类型的数据之间的关联关系,构建由两个节点和边组成的三元组形式的数据模型;
其中,所述节点表示一个类型的区块链数据,所述两个节点之间通过所述边连接,所述边表示所述两个节点之间的关联关系。
上述方案中,所述节点包括以下至少之一:类型为区块的区块链数据、类型为币基交易的区块链数据、类型为交易输出的区块链数据、类型为交易的区块链数据、类型为地址的区块链数据;
所述边包括以下至少之一:区块之间的关联关系、区块与币基交易之间的关联关系、区块与交易之间的关联关系、交易与交易输出之间的关联关系、交易输出与地址之间的关联关系。
上述方案中,所述获取区块链中至少一个区块的数据,包括:
响应于区块链中所述至少一个区块之后,存在预设数量的被确认的区块,获取所述至少一个区块的数据。
上述方案中,所述获取区块链中至少一个区块的数据,包括:
响应于所述至少一个区块被所述区块链网络中预设数量的节点确认,获取所述至少一个区块的数据。
上述方案中,所述获取区块链中至少一个区块的数据,包括:
响应于当前节点所包含的区块链数据缺失,从全节点处获取所述区块链网络中至少一个区块的数据。
上述方案中,所述方法还包括:
响应于所述区块链中存在需要进行数据回退的区块,获取所述需要进行数据回退的区块的标识;
基于所获取的所述标识,从所述图形数据库中删除对应所述需要进行数据回退的区块的数据。
上述方案中,所述方法还包括:
构建对应所述知识图谱的Dgraph图形数据库或者Neo4J图形数据库。
第二方面,本发明实施例提供一种区块链数据的处理装置,所述装置包括:
构建单元,用于根据区块链数据的不同类型,以不同类型数据之间的关联关系,构建多元组形式的数据模型;
获取单元,用于获取区块链中至少一个区块的数据;
转换单元,用于基于所述数据模型,对所述至少一个区块的数据进行转换,得到对应所述数据的知识图谱;
存储单元,用于存储所述知识图谱至图形数据库。
上述方案中,所述构建单元,具体用于根据区块链数据的不同类型,以不同类型的数据之间的关联关系,构建由两个节点和边组成的三元组形式的数据模型;
其中,所述节点表示一个类型的区块链数据,所述两个节点之间通过所述边连接,所述边表示所述两个节点之间的关联关系。
上述方案中,所述节点包括以下至少之一:类型为区块的区块链数据、类型为币基交易的区块链数据、类型为交易输出的区块链数据、类型为交易的区块链数据、类型为地址的区块链数据;
所述边包括以下至少之一:区块之间的关联关系、区块与币基交易之间的关联关系、区块与交易之间的关联关系、交易与交易输出之间的关联关系、交易输出与地址之间的关联关系。
上述方案中,所述获取单元,具体用于响应于区块链中所述至少一个区块之后,存在预设数量的被确认的区块,获取所述至少一个区块的数据。
上述方案中,所述获取单元,具体用于响应于所述至少一个区块被所述区块链网络中预设数量的节点确认,获取所述至少一个区块的数据。
上述方案中,所述获取单元,具体用于响应于当前节点所包含的区块链数据缺失,从全节点处获取所述区块链网络中至少一个区块的数据。
上述方案中,所述装置还包括:
删除单元,用于响应于所述区块链中存在需要进行数据回退的区块,获取所述需要进行数据回退的区块的标识;
基于所获取的所述标识,从所述图形数据库中删除对应所述需要进行数据回退的区块的数据。
上述方案中,所述构建单元,还用于构建对应所述知识图谱的Dgraph图形数据库或者Neo4J图形数据库。
第三方面,本发明实施例提供一种区块链数据的处理装置,所述装置包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本发明实施例提供的所述区块链数据的处理方法。
第四方面,本发明实施例提供一种存储介质,存储有可执行指令,用于引起处理器执行时,实现本发明实施例提供的所述的区块链数据的处理方法。
应用本发明实施例具有以下有益效果:
应用本发明实施例提供的区块链数据的处理方法、装置及存储介质,基于构建的多元组形式的数据模型,将区块链数据转换成相应的知识图谱并存储至图形数据库,使得区块链数据及区块链数据之间的关联关系变得可视化,便于后续对区块链数据及数据之间关联关系的查询及分析,提高用户体验。
附图说明
图1为本发明实施例提供的区块链网络的功能架构示意图;
图2为本发明实施例提供的区块链网络的组织架构示意图;
图3为本发明实施例提供的节点的组成结构示意图;
图4为本发明实施例提供的区块链数据的处理方法的流程示意图;
图5为本发明实施例提供的知识图谱的一个可选的示意图;
图6为本发明实施例提供的知识图谱的一个可选的示意图;
图7为本发明实施例提供的知识图谱的一个可选的示意图;
图8为本发明实施例提供的知识图谱的一个可选的示意图;
图9为本发明实施例提供的区块链数据的处理方法的流程示意图;
图10为本发明实施例提供的区块链数据的处理方法的流程示意图;
图11为本发明实施例提供的区块链数据的处理方法的流程示意图;
图12为本发明实施例提供的区块链数据的处理装置的组成结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
需要指出,本发明实施例所涉及的术语“第一\第二”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本发明实施例能够以除了在这里图示或描述的以外的顺序实施。
发明人在研究过程中发现,为了实现对区块链数据的分析(如交易追踪),可以采用如下方式:
方式1,在区块链网络中部署全节点,全节点会自动同步所有的区块链数据,通过全节点提供的JSON-RPC调用的方式读取到区块链数据并进行分析;然而,该方式无法获取区块链数据之间更深层次的关系,例如两个地址之间是否发生过转账交易、该地址历史上发生过多少笔交易等。
方式2,在区块链网络中部署全节点,全节点会自动同步所有的区块链数据,通过解析全节点下载的区块链数据文件的方式获取到区块链数据并进行分析;然而,该方式实现方式复杂,无法精准的获取指定的一个区块,而且,同样无法获取区块链数据之间更深层次的关系。
方式3,在区块链网络中部署全节点,全节点会自动同步所有的区块链数据,用户通过解析区块链数据文件或通过全节点提供的JSON-RPC调用的方式读取到区块链数据,并将其存储到关系型数据库中(SQLServer或者MySQL),然后再对关系型数据库中的数据进行分析,然而,该方式需要对区块链数据进行抽象建模,抽象建模往往使数据不够直观,将数据复杂化,并且遗漏掉很多有价值的信息;区块链数据分表存储,区块链数据的庞大导致了跨表查询效率的低下。
发明人还发现,在一些实施例中,根据区块链数据的不同类型,以不同类型数据之间的关联关系,构建多元组形式的数据模型;获取区块链中至少一个区块的数据;基于所述数据模型,对所述至少一个区块的数据进行转换,得到对应所述数据的知识图谱;存储所述知识图谱至图形数据库。如此,能够将区块链数据的链式数据形态,转换为可视化的知识图谱的形式在图形数据库中存储,使得区块链数据及区块链数据之间的关联关系变得可视化,便于后续对区块链数据及数据之间关联关系的查询及分析,提高用户体验。
对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
1)交易(Transaction),等同于计算机术语“事务”,并非单指商业语境中的交易,鉴于在区块链技术中约定俗成地使用了“交易”这一术语,本发明实施例遵循了这一习惯。在采用基于账户模型的区块链网络中,交易包括三种不同的交易类型:部署(Deploy),调用(Invoke)和查询(Query)。部署交易用于向区块链网络的节点安装指定的链码,调用和查询类型的交易用于调用部署号的链码,以实现对账本中的目标账户的相关数据的操作,包括增、查、改的操作修改账户中的键值(Key-Value)对形式的数据,或者在账本中增加新的账户。
2)区块(Block),记录一段时间内交易所更新的账本数据的数据结构,被标记上时间戳和之前一个区块的独特标记(例如数字指纹),区块经过区块链网络中节点的共识验证后,会被追加到区块链的末尾成为新的区块,区块链中的第一个区块称之为创世块。
3)区块链(Blockchain),区块以顺序相连的方式组合成的一种链式数据结构,在每个区块中引用前一个区块或者其子集的哈希值,从而以密码学的方式保证所记录交易的防篡改和防伪造。
4)区块链网络,通过共识的方式将新区块纳入区块链的一系列的、无中心的节点的集合。
5)账本(Ledger),区块链网络中以账户模型或未花费输出(UTXO,UnspentTransaction Output)模型为维度所记录的交易的总和,包括账本数据、账本状态证明和区块索引等元素,还可以包括用于记录区块链网络的状态的账本状态。
6)共识(Consensus),是区块链网络中的一个过程,用于在涉及的多个节点之间对交易结果达成一致,实现共识的机制包括工作量证明(PoW)、权益证明(PoS,Proof ofStake)、股份授权证明(DPoS,Delegated Proof-of-Stake)、消逝时间量证明(PoET,Proofof Elapsed Time)等。
例如,在区块链系统中,节点对其他节点提交的新区块的有效性进行验证,如验证成功则向发送新区块的节点发送确认,并将该新区块添加到相应节点所存储的区块链的尾部。
7)确认,当一项交易被区块收录时,视该交易存在一次确认,矿工们在此区块之后每再产生一个区块,此项交易的确认数就再加一,在实际应用中,当确认数达到6及以上时,通常认为这笔交易比较安全并难以逆转。
8)矿工,比特币网络中一个为新区块通过重复哈希计算来寻找有效工作量证明的网络节点。
9)币基交易,即Coinbase交易,区块中的第一个交易,该交易是由矿工创建的。
10)知识图谱,一种用点来代替实体,用边代替实体之间关系的一种语义网络,可以迅速描述物理世界中的概念及其相互关系。
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。区块链网络100响应来自业务主体的终端300通过网络200提交的交易以更新账本或者查询账本,并在终端300的用户界面310显示各种中间结果或最终结果。
在一些实施例中,区块链网络100中的节点根据功能进行了角色分类;以基于比特币的区块链网络为例,比特币网络中的各个节点相互对等,但是根据所提供的功能不同,各个节点可能具有不同的角色。每个比特币节点都是路由、区块链数据库、挖矿、钱包服务的功能集合。可以包括矿工节点、全节点、简易支付验证(SPV,Simplified PaymentVerification)节点。
接下来对本发明实施例提供的区块链网络中的节点进行说明,节点可以是一个或多个服务器,根据节点的结构,可以预见节点的其他的示例性结构,因此这里所描述的结构不应视为限制,例如可以省略下文所描述的部分组件,或者,增设下文所未记载的组件以适应某些应用场景的特殊需求。图3为本发明实施例提供的节点的组成结构示意图,参见图3,本发明实施例提供的节点包括:至少一个处理器210、存储器240、至少一个网络接口220和用户接口230。节点中的各个组件通过总线系统250耦合在一起。可理解,总线系统250用于实现这些组件之间的连接通信。总线系统250除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图3中将各种总线都标为总线系统250。
用户接口230可以包括显示器、键盘、鼠标、轨迹球、点击轮、按键、按钮、触感板或者触摸屏等。
存储器240可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、闪存(Flash Memory)等。易失性存储器可以是随机存取存储器(RAM,Random Access Memory),其用作外部高速缓存。
处理器210可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
存储器240能够存储可执行指令2401以支持区块链数据的处理装置的操作,这些可执行指令的示例包括:用于在区块链数据的处理装置上操作的程序、插件和脚本等各种形式的软件模块,程序例如可以包括操作系统和应用程序,其中,操作系统包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序可以包含实现节点110各种功能的程序。
结合上文可知,实现本发明实施例的区块链网络通过提供为一系列的存储器和处理器的形式,在存储器中存储有可执行指令,当可执行指令被处理器执行时,在运行处理器和存储器的多个机器部署有与业务主体的角色相适配的共识节点,当然还可以部署有其他类型的节点。
作为本发明实施例提供的区块链数据的处理方法采用软硬件结合实施的示例,本发明实施例所提供的区块链数据的处理方法可以直接体现为由处理器1101执行的上述不同形式的软件模块,软件模块可以位于存储介质中,存储介质位于存储器1104,处理器1101读取存储器1104中软件模块包括的可执行指令,结合必要的硬件(例如,包括处理器1101以及连接到总线系统1103的其他组件)完成节点110的功能。
接下来对本发明实施例区块链数据的处理方法进行说明。在实际实施时,实现本发明实施例区块链数据的处理方法的装置既可部署于区块链上,如通过区块链网络中的节点实施,亦可位于链下,如通过第三方实施。
图4为本发明实施例提供的区块链数据的处理方法的流程示意图,参见图4,本发明实施例提供的区块链数据的处理方法包括:
步骤301:根据区块链数据的不同类型,以不同类型数据之间的关联关系,构建多元组形式的数据模型。
在一些实施例中,可采用如下方式实现多元组形式的数据模型的构建:
根据区块链数据的不同类型,以不同类型的数据之间的关联关系,构建至少两个节点和边组成的多元组形式的数据模型;其中,所述节点表示一个类型的区块链数据,所述两个节点之间通过所述边连接,所述边表示所述两个节点之间的关联关系。
在实际实施时,可构建由两个节点和边组成的三元组(<节点><边><节点>)形式的数据模型。
以区块链网络为比特币网络、区块链数据为比特币数据为例,所构建的数据模型中的节点可包括以下至少之一:类型为区块的区块链数据、类型为币基交易的区块链数据、类型为交易输出的区块链数据、类型为交易的区块链数据、类型为地址的区块链数据;相应的,所构建的数据模型中的边包括以下至少之一:区块之间的关联关系、区块与币基交易之间的关联关系、区块与交易之间的关联关系、交易与交易输出之间的关联关系、交易输出与地址之间的关联关系。
举例说明,节点可以为:区块(block)、币基交易(coinbase)、交易输出(output)、交易输入(input)、交易(tx)、地址(address)等;边可以为:连接(connect)、产生(generate)、包含(include)、输入(in)、输出(out)、锁定(locked)、解锁(unlocked)等。
基于上述举例的节点和边可以构建如下三元组:
<block1><connect><block2>:区块1连接上一个区块2;
<block1><generate><coinbase>:区块1产生一个coinbase交易;
<coinbase><in><tx1>:coinbase交易作为交易(tx1)的输入;
<block1><include><tx1>:区块1存在交易(tx1),由于在实际应用中一个区块包含多个交易,因此可存在多个该形式的三元组;
<tx1><out><output1>:交易(tx1)存在交易输出(output1);在实际应用中,一个交易可存在多个交易输出,如<tx1><out><output2>,即交易tx1还可存在output2,也即,针对一个交易,可存在多个该形式的三元组。
<output1><locked><address1>:交易输出(output1)锁定地址(address1),即output1将一定数量的加密货币锁定在address1中,并提供了从address1中转移货币需要满足的条件;
<input1><unlocked><address1>:交易输入(input1)解锁地址(address1),即address1中的加密货币被output中提供的条件锁定,而input1中提供了解除address1中被锁定的加密货币的必要信息,例如,在比特币网络中为地址的拥有者利用私钥签署的数字签名;
<output1><in><tx1>:交易输出(output1)为交易(tx1)的输入,在实际应用中,一个交易可存在多个交易输入,如<output2><out><tx1>,即output2亦为交易tx1的输入,也即,针对一个交易,可存在多个该形式的三元组。
需要说明的是,构建数据模型的操作可在首次执行本发明实施例区块链数据的处理方法时执行即可,后续可直接应用。
步骤302:获取区块链中至少一个区块的数据。
这里,在一些实施例中,每当节点产生一个新的区块,便同步获取所产生的新区块的数据,如此,保证了数据的实时性。以比特币网络为例进行说明,本发明实施例提供的区块链数据的处理装置通过比特币网络中一个独立的节点实施,该节点连接全节点,每当全节点产生一个新的区块,便发送所产生的新区块的数据给上述独立的节点。
仍以比特币网络为例进行说明,在一些实施例中,区块链数据的处理装置通过全节点实施,当该全节点为比特币网络中的全新节点加入或者该全节点离线又重新上线后,处于区块链数据缺失的状态,需要构建完整的区块链,即恢复缺失的区块,从与其连接的对等节点处同步所缺失的至少一个区块的数据。
在一些实施例中,为了避免数据回退的情况(如同步了作恶节点的区块链数据),可在区块链中需要获取的所述至少一个区块之后,存在预设数量(如6)的被确认的区块时,获取所述至少一个区块的数据;
或者,在所述至少一个区块被所述区块链网络中预设数量(如3)的节点确认,获取所述至少一个区块的数据。
步骤303:基于所述数据模型,对所述至少一个区块的数据进行转换,得到对应所述数据的知识图谱。
这里,在实际应用中,对应数据模型中包含的各个三元组,对所述至少一个区块的数据进行数据抽取及转换,得到对应所述至少一个区块的数据的知识图谱。
图5为本发明实施例提供的知识图谱的一个可选的示意图,参见图5,其中,标号1及标号6所示的均为区块(block)节点,标号2所示的为交易(tx)节点,标号3所示的为coinbase交易节点,标号4所示的为交易输出(output)节点,标号5所示的为地址(address)节点;这里需要说明的是,相同的标号仅仅是是区别类似的对象,例如对于多个标号2来说并非表示多个相同的交易,仅仅表示该节点为交易类型的节点。
不同的边表示节点间不同的关联关系,如图5中标号a所示的边表示区块存在交易,即交易存在于区块中,如交易2存在于区块1中;标号b所示的边表示区块之间的连接关系,如标号1所示的区块连接其上一个区块6;标号c所示的边表示产生(generate),如标号1所示的区块产生一个标号3所示的co inbase交易;标号d所示的边表示输出,如标号2所示的交易存在标号4所示的交易输出;标号e所示的边表示锁定,如标号4所示的交易输出锁定标号5所示的地址。
步骤304:存储所述知识图谱至图形数据库。
这里,在实际实施时,在存储所述知识图谱之前,还包括构建具备存储所述知识图谱功能的图形数据库的操作,在一些实施例中,可以为构建对应所述知识图谱的Dgraph图形数据库或者Neo4J图形数据库。
在一些实施例中,存在区块出现数据回退的情况,相应的,为了保证图形数据库中知识图谱的准确性,针对区块链中需要进行数据回退的区块,获取所述需要进行数据回退的区块的标识;基于所获取的标识,从图形数据库中删除对应需要进行数据回退的区块的数据。
通过将区块链数据转换成相应的知识图谱并存储至图形数据库,使得区块链数据及区块链数据之间的关联关系变得可视化,便于后续对区块链数据及数据之间关联关系的查询及分析,接下来针对知识图谱形式的区块链数据的后续应用进行举例说明。
应用场景一,基于图形数据库中存储的知识图谱实现交易追踪:图6为本发明实施例提供的知识图谱的一个可选的示意图,参见图6,已知一笔交易(第一交易)的标识(如哈希),通过图6所示的知识图谱可查询第一交易的交易输出(output),以及该交易输出锁定的地址(address),并追踪交易输出用作输入的第二交易,即用于哪笔交易的输入,同时查询第二交易的交易输出、该交易输出锁定的地址等,实现层成追踪。如图6所示,交易2-1存在交易输出4-1,交易输出4-1锁定地址5-1,交易输出4-1作为交易2-2的输入,交易2-2存在交易输出4-2及交易输出4-3,交易输出4-2锁定地址5-2,交易输出4-3锁定地址5-3。
应用场景二,基于图形数据库中存储的知识图谱实现地址交易分析:图7为本发明实施例提供的知识图谱的一个可选的示意图,已知一个地址,通过图7所示的知识图谱可查询到哪些地址给这个地址转过账。参见图7,已知地址5-1,通过图7可知,交易输出4-1锁定地址5-2,同时,交易输出4-1作为交易2-1的输入,交易2-1存在交易输出4-3,交易输出4-3锁定地址5-1,也即可知地址5-2向地址5-1转过账;同理可知,地址5-3也向地址5-1转过账。
图8为本发明实施例提供的知识图谱的一个可选的示意图,已知一个地址,通过图8所示的知识图谱可查询到这个地址往哪些地址转过账。参见图8,已知地址5-1,通过图8可知,交易输出4-1锁定地址5-1,同时,交易输出4-1作为交易2的输入,交易2存在交易输出4-2,交易输出4-2锁定地址5-2,也即可知地址5-1向地址5-2转过账;同理可知,地址5-1还分别向地址5-3、地址5-4、地址5-5、地址5-6、地址5-7、地址5-8转过账。
接下来以比特币网络为例对本发明实施例区块链数据的处理方法进行说明。在实际实施时,本发明实施例区块链数据的处理方法的装置由比特币网络中的全节点实施,图9为本发明实施例提供的区块链数据的处理方法的流程示意图,参见图9,本发明实施例提供的区块链数据的处理方法包括:
步骤401:全节点构建对应比特币网络的三元组形式的数据模型、及用于存储知识图谱的图形数据库。
这里,可采用如下方式实现三元组形式的数据模型的构建:
根据比特币网络的比特币数据的类型,以不同类型的比特币数据之间的关联关系,构建由两个节点和边组成的三元组(<节点><边><节点>)形式的数据模型;其中,所述节点表示一个类型的区块链数据,所述两个节点之间通过所述边连接,所述边表示所述两个节点之间的关联关系。
在实际实施时,所构建的图形数据库为Dgraph图形数据库,通过搭建Dgr aph集群形成用于存储知识图谱的图形数据库。
步骤402:全节点确定当前产生新区块时,获取所产生的新区块的数据。
这里,在实际实施时,为了保证图形数据库中数据与全节点存储的区块链数据的同步,即保证数据的实时性,每当新产生一个区块,全节点便同时获取该新区块的数据,以将该新区块的数据转换为知识图谱的形式。
步骤403:全节点基于数据模型,对获取的新区块的数据进行转换,得到对应所述数据的知识图谱。
这里,在实际应用中,对应数据模型中包含的各个三元组,对所述新区块的数据进行数据抽取及转换,得到对应所述新区块的数据的知识图谱。
步骤404:全节点存储所述知识图谱至图形数据库。
步骤405:全节点确定区块链中存在需要进行数据回退的区块,从图形数据库中删除对应所述需要进行数据回退的区块的数据。
在实际实施时,当全节点确定区块链中存在需要进行数据回退的区块时,获取所述需要进行数据回退的区块的标识;基于所获取的所述标识,从图形数据库中删除对应需要进行数据回退的区块的数据。
继续以比特币网络为例对本发明实施例区块链数据的处理方法进行说明。在实际实施时,本发明实施例区块链数据的处理方法的装置由比特币网络中的全节点实施,图10为本发明实施例提供的区块链数据的处理方法的流程示意图,参见图10,本发明实施例提供的区块链数据的处理方法包括:
步骤501:全节点构建对应比特币网络的三元组形式的数据模型、及用于存储知识图谱的图形数据库。
这里,可采用如下方式实现三元组形式的数据模型的构建:
根据比特币网络的比特币数据的类型,以不同类型的比特币数据之间的关联关系,构建由两个节点和边组成的三元组(<节点><边><节点>)形式的数据模型;其中,所述节点表示一个类型的区块链数据,所述两个节点之间通过所述边连接,所述边表示所述两个节点之间的关联关系。
在实际实施时,所构建的图形数据库为Dgraph图形数据库,通过搭建Dgr aph集群形成用于存储知识图谱的图形数据库。
步骤502:全节点确定当前产生新区块时,收集比特币网络中其它节点对所述新区块的确认。
步骤503:全节点确定所收集的对所述新区块的确认超过预设数量时,获取所述新区块的数据。
这里,在实际应用中,为了避免出现数据回退的情况,当新区块产生时,并非马上将数据同步转换至图形数据库,而是待收集到对该新区块足够多(预设数量)的确认时才去获取该新区块的数据,以保证所获取的新区块的数据的可靠性。
步骤504:全节点基于所述数据模型,对获取的新区块的数据进行转换,得到对应所述数据的知识图谱。
这里,在实际应用中,对应数据模型中包含的各个三元组,对所述新区块的数据进行数据抽取及转换,得到对应所述新区块的数据的知识图谱。
步骤505:全节点存储所述知识图谱至图形数据库。
继续以比特币网络为例对本发明实施例区块链数据的处理方法进行说明。在实际实施时,本发明实施例区块链数据的处理方法的装置通过比特币网络中一个独立的节点,如第一节点实现,第一节点与全节点相连。图11为本发明实施例提供的区块链数据的处理方法的流程示意图,参见图11,本发明实施例提供的区块链数据的处理方法包括:
步骤601:第一节点构建对应比特币网络的三元组形式的数据模型、及用于存储知识图谱的图形数据库。
这里,可采用如下方式实现三元组形式的数据模型的构建:
根据比特币网络的比特币数据的类型,以不同类型的比特币数据之间的关联关系,构建由两个节点和边组成的三元组(<节点><边><节点>)形式的数据模型;其中,所述节点表示一个类型的区块链数据,所述两个节点之间通过所述边连接,所述边表示所述两个节点之间的关联关系。
在实际实施时,所构建的图形数据库为Dgraph图形数据库,通过搭建Dgr aph集群形成用于存储知识图谱的图形数据库。
步骤602:第一节点获取全节点中区块链的区块高度信息。
在实际应用中,第一节点与全节点相连,由于全节点保存了完整的区块链信息,拥有完整的区块链数据库,通过与全节点的通信可获取当前区块链网络的区块高度信息。
步骤603:第一节点基于获取的区块高度信信息及自身的区块高度,获取区块链中至少一个区块的数据。
这里,第一节点可通过如下方式确定需要获取的区块的数据:
第一节点比较获取的区块高度(即全节点中的区块高度)与自身存储的区块高度,若高度相同,结束本次处理流程;若自身存储的区块高度小于获取的区块高度,获取区块高度的差值,将该差值作为第一差值,当所述第一差值大于预设值时,获取第一差值与所述预设值的差值作为第二差值,确定全节点存储的区块链数据中预设值之前的第二差值个区块的数据为第一节点需要获取的区块的数据。
举例说明,第一节点当前存储的区块高度为5,获取的全节点中的区块高度为11,可知第一差值为6,若预设值为3,可知第二差值为3,则可确定全节点存储的区块链数据中,从最新建立的区块(最后一个)开始向前数,3个区块前的3个区块的数据为需要获取的数据。如此,保证所获取的区块后面存在足够多(预设数量/预设值)的区块,避免如获取了恶意节点的区块数据而出现数据回退的情况。
当第一节点确定了需要获取的区块的数据后,通过与全节点之间的通信获取相应的至少一个区块的数据。
步骤604:第一节点基于所述数据模型,对获取的区块的数据进行转换,得到对应所述数据的知识图谱。
这里,在实际应用中,对应数据模型中包含的各个三元组,对所述至少一个区块的数据进行数据抽取及转换,得到对应所述至少一个区块的数据的知识图谱。
步骤605:第一节点存储所述知识图谱至图形数据库。
接下来对本发明实施例提供的区块链数据的处理装置进行说明,图12为本发明实施例提供的区块链数据的处理装置的组成结构示意图,参见图12,本发明实施例提供的区块链数据的处理装置包括:
构建单元121,用于根据区块链数据的不同类型,以不同类型数据之间的关联关系,构建多元组形式的数据模型;
获取单元122,用于获取区块链中至少一个区块的数据;
转换单元123,用于基于所述数据模型,对所述至少一个区块的数据进行转换,得到对应所述数据的知识图谱;
存储单元124,用于存储所述知识图谱至图形数据库。
在一些实施例中,所述构建单元,具体用于根据区块链数据的不同类型,以不同类型的数据之间的关联关系,构建由两个节点和边组成的三元组形式的数据模型;
其中,所述节点表示一个类型的区块链数据,所述两个节点之间通过所述边连接,所述边表示所述两个节点之间的关联关系。
在一些实施例中,所述节点包括以下至少之一:类型为区块的区块链数据、类型为币基交易的区块链数据、类型为交易输出的区块链数据、类型为交易的区块链数据、类型为地址的区块链数据;
所述边包括以下至少之一:区块之间的关联关系、区块与币基交易之间的关联关系、区块与交易之间的关联关系、交易与交易输出之间的关联关系、交易输出与地址之间的关联关系。
在一些实施例中,所述获取单元,具体用于响应于区块链中所述至少一个区块之后,存在预设数量的被确认的区块,获取所述至少一个区块的数据。
在一些实施例中,所述获取单元,具体用于响应于所述至少一个区块被所述区块链网络中预设数量的节点确认,获取所述至少一个区块的数据。
在一些实施例中,所述获取单元,具体用于响应于当前节点所包含的区块链数据缺失,从全节点处获取所述区块链网络中至少一个区块的数据。
在一些实施例中,所述装置还包括:
删除单元,用于响应于所述区块链中存在需要进行数据回退的区块,获取所述需要进行数据回退的区块的标识;
基于所获取的所述标识,从所述图形数据库中删除对应所述需要进行数据回退的区块的数据。
在一些实施例中,所述构建单元,还用于构建对应所述知识图谱的Dgraph图形数据库或者Neo4J图形数据库。
这里需要指出的是:以上涉及区块链数据的处理装置的描述,与上述区块链数据的处理方法描述是类似的,同方法的有益效果描述,不做赘述。对于本发明所述装置实施例中未披露的技术细节,请参照本发明方法实施例的描述。
本发明实施例还提供了一种存储介质,存储有可执行指令,用于引起处理器执行时,实现本发明实施例提供所述的区块链数据的处理方法。
以上所述,仅为本发明的实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。

Claims (14)

1.一种区块链数据的处理方法,其特征在于,所述方法包括:
根据区块链数据的不同类型,以不同类型数据之间的关联关系,构建多元组形式的数据模型;
获取区块链中至少一个区块的数据;
基于所述数据模型,对所述至少一个区块的数据进行转换,得到对应所述数据的知识图谱;
存储所述知识图谱至图形数据库。
2.如权利要求1所述的方法,其特征在于,所述根据区块链数据的不同类型,以不同类型数据之间的关联关系,构建多元组形式的数据模型,包括:
根据区块链数据的不同类型,以不同类型的数据之间的关联关系,构建由两个节点和边组成的三元组形式的数据模型;
其中,所述节点表示一个类型的区块链数据,所述两个节点之间通过所述边连接,所述边表示所述两个节点之间的关联关系。
3.如权利要求2所述的方法,其特征在于,
所述节点包括以下至少之一:类型为区块的区块链数据、类型为币基交易的区块链数据、类型为交易输出的区块链数据、类型为交易的区块链数据、类型为地址的区块链数据;
所述边包括以下至少之一:区块之间的关联关系、区块与币基交易之间的关联关系、区块与交易之间的关联关系、交易与交易输出之间的关联关系、交易输出与地址之间的关联关系。
4.如权利要求1所述的方法,其特征在于,所述获取区块链中至少一个区块的数据,包括:
响应于当前节点所包含的区块链数据缺失,从全节点处获取所述区块链网络中至少一个区块的数据。
5.如权利要求1所述的方法,其特征在于,所述方法还包括:
响应于所述区块链中存在需要进行数据回退的区块,获取所述需要进行数据回退的区块的标识;
基于所获取的所述标识,从所述图形数据库中删除对应所述需要进行数据回退的区块的数据。
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
构建对应所述知识图谱的Dgraph图形数据库或者Neo4J图形数据库。
7.一种区块链数据的处理装置,其特征在于,所述装置包括:
构建单元,用于根据区块链数据的不同类型,以不同类型数据之间的关联关系,构建多元组形式的数据模型;
获取单元,用于获取区块链中至少一个区块的数据;
转换单元,用于基于所述数据模型,对所述至少一个区块的数据进行转换,得到对应所述数据的知识图谱;
存储单元,用于存储所述知识图谱至图形数据库。
8.如权利要求7所述的装置,其特征在于,
所述构建单元,具体用于根据区块链数据的不同类型,以不同类型的数据之间的关联关系,构建由两个节点和边组成的三元组形式的数据模型;
其中,所述节点表示一个类型的区块链数据,所述两个节点之间通过所述边连接,所述边表示所述两个节点之间的关联关系。
9.如权利要求8所述的装置,其特征在于,
所述节点包括以下至少之一:类型为区块的区块链数据、类型为币基交易的区块链数据、类型为交易输出的区块链数据、类型为交易的区块链数据、类型为地址的区块链数据;
所述边包括以下至少之一:区块之间的关联关系、区块与币基交易之间的关联关系、区块与交易之间的关联关系、交易与交易输出之间的关联关系、交易输出与地址之间的关联关系。
10.如权利要求7所述的装置,其特征在于,
所述获取单元,具体用于响应于当前节点所包含的区块链数据缺失,从全节点处获取所述区块链网络中至少一个区块的数据。
11.如权利要求7所述的装置,其特征在于,所述装置还包括:
删除单元,用于响应于所述区块链中存在需要进行数据回退的区块,获取所述需要进行数据回退的区块的标识;
基于所获取的所述标识,从所述图形数据库中删除对应所述需要进行数据回退的区块的数据。
12.如权利要求7所述的装置,其特征在于,
所述构建单元,还用于构建对应所述知识图谱的Dgraph图形数据库或者N eo4J图形数据库。
13.一种区块链数据的处理装置,其特征在于,所述装置包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至6任一项所述的区块链数据的处理方法。
14.一种存储介质,其特征在于,存储有可执行指令,用于引起处理器执行时,实现权利要求1至6任一项所述的区块链数据的处理方法。
CN201910067032.6A 2019-01-24 2019-01-24 区块链数据的处理方法、装置及存储介质 Pending CN111475692A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910067032.6A CN111475692A (zh) 2019-01-24 2019-01-24 区块链数据的处理方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910067032.6A CN111475692A (zh) 2019-01-24 2019-01-24 区块链数据的处理方法、装置及存储介质

Publications (1)

Publication Number Publication Date
CN111475692A true CN111475692A (zh) 2020-07-31

Family

ID=71743450

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910067032.6A Pending CN111475692A (zh) 2019-01-24 2019-01-24 区块链数据的处理方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN111475692A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112783440A (zh) * 2020-12-31 2021-05-11 深圳大学 一种面向区块链用户节点的数据存储方法及装置
CN113139814A (zh) * 2021-04-13 2021-07-20 广东工业大学 陶瓷生产交易溯源系统
CN113961545A (zh) * 2021-10-26 2022-01-21 北京市科学技术情报研究所 基于区块链的信息价值数据库构建方法
WO2022141561A1 (zh) * 2020-12-31 2022-07-07 深圳大学 一种面向区块链用户节点的数据存储方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107122444A (zh) * 2017-04-24 2017-09-01 北京科技大学 一种法律知识图谱自动构建方法
WO2018059334A1 (zh) * 2016-09-29 2018-04-05 腾讯科技(深圳)有限公司 区块链网络、分支节点、区块链网络应用方法及存储介质
CN108615144A (zh) * 2018-04-11 2018-10-02 北京奇虎科技有限公司 区块链节点的身份信息处理方法、装置及计算设备
CN109102260A (zh) * 2018-08-01 2018-12-28 昧来网络科技(上海)有限公司 AIBC生态系统的经济价值DPoEV激励共识方法
CN109218079A (zh) * 2018-08-16 2019-01-15 北京京东尚科信息技术有限公司 一种区块链网络、部署方法及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018059334A1 (zh) * 2016-09-29 2018-04-05 腾讯科技(深圳)有限公司 区块链网络、分支节点、区块链网络应用方法及存储介质
CN107122444A (zh) * 2017-04-24 2017-09-01 北京科技大学 一种法律知识图谱自动构建方法
CN108615144A (zh) * 2018-04-11 2018-10-02 北京奇虎科技有限公司 区块链节点的身份信息处理方法、装置及计算设备
CN109102260A (zh) * 2018-08-01 2018-12-28 昧来网络科技(上海)有限公司 AIBC生态系统的经济价值DPoEV激励共识方法
CN109218079A (zh) * 2018-08-16 2019-01-15 北京京东尚科信息技术有限公司 一种区块链网络、部署方法及存储介质

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112783440A (zh) * 2020-12-31 2021-05-11 深圳大学 一种面向区块链用户节点的数据存储方法及装置
WO2022141561A1 (zh) * 2020-12-31 2022-07-07 深圳大学 一种面向区块链用户节点的数据存储方法及装置
CN113139814A (zh) * 2021-04-13 2021-07-20 广东工业大学 陶瓷生产交易溯源系统
CN113139814B (zh) * 2021-04-13 2023-03-14 广东工业大学 陶瓷生产交易溯源系统
CN113961545A (zh) * 2021-10-26 2022-01-21 北京市科学技术情报研究所 基于区块链的信息价值数据库构建方法

Similar Documents

Publication Publication Date Title
US10938567B2 (en) Parallel-chain architecture for blockchain systems
Sukhwani et al. Performance modeling of hyperledger fabric (permissioned blockchain network)
US20220239470A1 (en) Cross-blockchain data processing method and apparatus, device, and computer storage medium
US20240028587A1 (en) System and method for a hybrid contract execution environment
Foschini et al. Hyperledger fabric blockchain: Chaincode performance analysis
US20200250747A1 (en) Systems, methods, and apparatuses for dynamically assigning nodes to a group within blockchains based on transaction type and node intelligence using distributed ledger technology (dlt)
WO2021036545A1 (zh) 一种基于智能合约的数据处理方法、设备及存储介质
US20190172026A1 (en) Cross blockchain secure transactions
US20190354518A1 (en) Chain mesh network for decentralized transaction systems
CN111475692A (zh) 区块链数据的处理方法、装置及存储介质
CN112506747B (zh) 一种业务进程监控方法、装置、电子设备及存储介质
JP2022529967A (ja) ブロックチェーン・ネットワークからのデータの抽出
JP7165148B2 (ja) ブロックチェーンネットワークにおける整合性のある分散型メモリプールのための方法及びシステム
TW202023224A (zh) 事件驅動的區塊鏈工作流程處理
CN109347651B (zh) 基于msvl的区块链系统建模和安全性验证的方法及系统
Hang et al. Optimal blockchain network construction methodology based on analysis of configurable components for enhancing hyperledger fabric performance
De Angelis Assessing security and performances of consensus algorithms for permissioned blockchains
EP3808028B1 (en) Services platform for managing a verifiable permissioned ledger in a distributed database management system
Wang et al. Performance benchmarking and optimization for blockchain systems: A survey
WO2020133148A1 (zh) 区块链的数据处理方法、装置和区块链系统
Piao et al. Privacy preserving in blockchain-based government data sharing: A Service-On-Chain (SOC) approach
Han et al. A survey on blockchain-based integrity auditing for cloud data
Leal et al. Performance evaluation of private ethereum networks
CN116325833A (zh) 将设备标识集成到区块链的许可框架中
CN111402033A (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