CN113297433A - 一种访问图数据库的方法和系统 - Google Patents
一种访问图数据库的方法和系统 Download PDFInfo
- Publication number
- CN113297433A CN113297433A CN202110804157.XA CN202110804157A CN113297433A CN 113297433 A CN113297433 A CN 113297433A CN 202110804157 A CN202110804157 A CN 202110804157A CN 113297433 A CN113297433 A CN 113297433A
- Authority
- CN
- China
- Prior art keywords
- graph database
- transaction request
- access
- access operation
- data
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/9038—Presentation of query results
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书实施例提供了一种访问图数据库的方法和系统,方法由区块链节点执行,其包括:获取与图数据库访问相关的交易请求;基于交易请求获取对图数据库的访问操作;调用预言机合约,以通过预言机将访问操作发送给区块链外部的图数据库,以及接收图数据库对访问操作的执行结果;将执行结果存储到区块链上。
Description
交叉引用
本申请要求于2020年7月17日提交的中国专利申请号202010691807.X的优先权,其全部内容通过引用结合于此。
技术领域
本说明书涉及计算机技术领域,特别涉及一种访问图数据库的方法和系统。
背景技术
目前对于数据的存储和管理,可以使用各种数据库实现。随着社交网络、移动互联网和IOT(物联网)等新的互联网应用不断涌现,用户、系统和传感器等产生的数据呈指数级增长,数据内部依赖和复杂度增加。在进行海量和复杂数据的存储和管理时,需要数据库具备较高的计算效率,保证数据的安全,以及能够支持高效地进行数据遍历、多级关联关系查询等访问操作。
所以,亟需一种访问图数据库的方法和系统,以实现数据存储的安全、数据计算的效率以及数据的复杂关系查询等功能。
发明内容
本说明书一个方面提供一种访问图数据库的方法。所述方法包括:获取与图数据库访问相关的交易请求;基于所述交易请求获取对图数据库的访问操作;调用预言机合约,以通过预言机将所述访问操作发送给区块链外部的图数据库,以及接收所述图数据库对所述访问操作的执行结果;将所述执行结果存储到区块链上。
本说明书另一个方面提供一种访问图数据库的系统。所述系统包括区块链节点,所述区块链节点包括:交易请求获取模块,用于获取与图数据库访问相关的交易请求;访问操作获取模块,用于基于所述交易请求获取对图数据库的访问操作;访问操作执行模块,用于调用预言机合约,以通过预言机将所述访问操作发送给区块链外部的图数据库,以及接收所述图数据库对所述访问操作的执行结果;存储模块,用于将所述执行结果存储到区块链上。
本说明书另一个方面提供一种访问图数据库的装置,包括处理器,所述处理器用于执行访问图数据库的方法。
附图说明
本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
图1是根据本说明书一些实施例所示的访问图数据库的系统的应用场景示意图;
图2是根据本说明书一些实施例所示的访问图数据库的方法的示例性流程图;
图3是根据本说明书一些实施例所示的另一种访问图数据库的方法的示例性流程图。
具体实施方式
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
应当理解,本说明书中所使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
图1是根据本说明书的一些实施例所示的示例性区块链图数据库的系统的应用场景示意图。
随着社交网络、移动互联网和物联网(The Internet of Things,简称IOT)等新的互联网应用不断涌现,用户、系统和传感器产生的数据呈指数级增长,数据内部依赖和复杂度增加。在应对这些新的趋势时,关系型数据库表现出了较多的不适应性。例如,因为数据庞大,数据需要分库分表存储,然而这种存储方式在查询数据之间的关联上具有较大的局限性,例如多级关联关系的查询。仅作为示例,预先在关系型数据库中录入的原始数据“A与B关联”,“B与C关联”,如果要想查询到数据A是否具有多级关联的数据,则需要查询到“A与C关联”,这对于传统的关系型数据库来说,查询效率较低。为此,图数据库的出现有效弥补了关系数据库的上述缺点,在图数据库中,数据之间的关系占重要地位,可以存储海量的、关系复杂的数据。
区块链作为一个去中心化的存储平台,其通过对数据公开化、透明化和防止篡改,在保证数据安全方面具有突出的优势。然而,区块链一般是以区块哈希和交易哈希作为key的key-value数据库,智能合约操作也尽可能在较大程度上利用key-value组织的特性进行编程。在涉及到多级关联查询时,智能合约也存在计算效率低下的问题。
因此,本说明书提出一种结合区块链和图数据库对数据进行管理和访问的方法,将图数据库(GraphDB,简称GDB)作为区块链的外部存储的系统架构。具体的,图数据库对数据进行存储和管理,用户或其他系统等可以通过区块链来访问图数据库。因为图数据库对于区块链而言,属于外部数据,区块链是一个确定性的、封闭的系统环境,无法主动获取外部数据的。因此,本说明书通过预言机来实现区块链与外部数据库的交互。
区块链图数据库的系统的应用场景可以是基于大数据的,数据关系复杂,需要高效率的数据遍历、多级关联关系查询等操作,数据维护需公开、安全、透明。示例的,该系统可以应用于物联网(IOT,Internet of things)中,物联网是让所有能够被独立寻址的实体(例如,人、机构、机、物、空间等)互联互通的网络。其中,物联网中实体可以通过各种事件联系起来。事件可以是与实体相关的任何动作行为。例如,事件可以是公司A将一批货物B仓储于仓库C中,又或者公司D向公司E出售了货物F等。物联网中的数据庞大,关系复杂,将该系统应用于物联网中,不仅可以利用图数据库存储物联网中复杂的关系,而且,通过区块链为物联网事件行为提供了一种公开透明且可追溯的信息记录手段。将物联网应用区块链图数据的系统具体如下:
图数据库用于存储物联网中的实体身份信息和与实体关联的事件信息。实体可以是线下物理世界中任何可以描述的实体,例如,公司、设备、人、货品、库位、运输工具等。实体身份信息是指实体自身的信息,以实体为“人”为例,身份信息可以是年龄、性别、职业、工作单位或家庭住址等,对于公司而言,实体身份信息可以是公司注册地址、法人、营业范围、注册资本等信息。事件信息为对事件对应动作相关的任何信息,例如,动作涉及的实体、动作的内容或者动作导致实体间发生了怎样的关联等。在一些实施例中,可以使用单据、证书、执照、合同、票据等凭据记录或描述物联网中的事件信息,同时凭据也可以作为物联网世界真实事件的证明。如,关于某货品的交易合同可以记录交易双方,交易金额以及交易时间。其中,货品以及交易双方可以是该事件涉及的实体。可以理解,图数据库中的实体通过事件产生关联。
当通过区块链访问图数据库中存储的物联网数据时,区块链(如,比特币、以太币、MyChain等区块链)的节点获取与图数据中物联网信息访问相关的交易请求(该交易请求可以由用户发起或者由其他节点发起),节点基于获取的交易请求确定对图数据库中物联网信息的访问操作(如图数据库操作脚本),以及使用预言机(ORACLE)将该图数据库操作脚本发送给图数据库,图数据库执行该图数据库操作脚本后,将执行结果通过预言机返回给区块链。进一步的,节点再将执行结果返回给用户。在此过程中,区块链还会以交易的形式记录各种信息。例如,将各种信息存于区块链上的一个区块或多个区块中。
与图数据库中物联网访问相关的交易请求可以包括与图数据库中实体身份信息访问和事件信息访问中至少一种相关的交易请求。与图数据库中实体身份信息访问和事件信息访问中至少一种相关的交易请求,可以理解为包含这些访问操作的交易请求,也可以指该交易请求中没有直接指示对图数据库中的实体身份信息和/或事件信息进行操作,而是在区块链节点处理该交易请求时,需要与图数据库交互,以对图数据库中的实体身份信息和/或事件信息进行处理,进而完成对所述交易请求的处理。相应的,区块链节点基于与图数据库中实体身份信息访问相关的交易请求,对图数据库发起的访问操作可以包括:实体身份信息注册、实体身份信息变更以及实体身份信息注销中的一种或多种的组合;节点基于与图数据库中事件身份信息访问相关的交易请求,对图数据库发起的访问操作可以包括:基于物联网事件生成凭据记录以及基于凭据生成实体关联信息中的一种或多种的组合。在一些实施例中,不同的交易请求可以通过同一个区块链接收和处理,也可以通过不同的区块链接收和处理。例如,区块链可以进一步包括身份链和业务链,其中,身份链中的节点用于处理与图数据库中身份信息访问相关的交易请求。业务链中的节点用于处于与图数据库中事件信息访问相关的交易请求。
在真实的物联网世界中,当实体之间发生某些动作时,可以看作生成了一次物联网事件,一系列的物联网事件可以构成一个具体的物联网业务。当实体间发生某些动作时,一般会生成凭据,以记录事件涉及的实体之间发生了什么,凭据可以看成是事件的证明,包括但不限于单据、合同、票据、执照等。通过区块链将指示生成凭据记录的访问操作发送给图数据库,图数据库可以保存相关的凭据或者基于凭据生成记录信息,可以公开透明且可追溯地记录物联网事件。
基于凭据生成实体关联信息是指基于凭证,对相关的实体建立关联关系,以实现物联网的互通互达。例如,凭据记录了公司A将货物D存储在仓库B中,那么可基于凭据确定公司A与仓库B之间存在合作关系,货物D与仓库B的关系是D存位于B处。在一些实施例中,区块链节点可以基于交易请求,将指示基于凭据生成实体间关联关系的访问操作发送给图数据库,图数据库可以对实体间的关联信息及时更新或完善。
如前所述,区块链会以交易的形式记录各种信息。因此,上述访问实体身份信息和/或事件信息的图数据库访问操作以及图数据图的执行结果都可以存储于区块链中,鉴于区块链的特点,可以保证对物联网真实世界中的信息的描述或记录的不可篡改和公开性。
在一些实施例中,图数据库的系统100可以包括业务服务端110、区块链120、图数据库130。
在一些实施例中,外部用户可以通过业务服务端110向区块链120发起交易请求,以获得与图数据库相关的服务。仅作为示例,外部用户可以通过业务服务端110向区块链120中某一节点发起与图数据库相关的交易请求。该节点与链上其他(或部分其他)节点共识后,将该交易请求在链上进行广播,以便多个节点参与到该交易请求的处理中。其中,与图数据库相关的服务可以是数据查询、数据添加或数据删除等,数据查询可以是多级关联查询等。在一些实施例中,外部用户可以是一个或多个用户,可以是人或组织等实体,也可以是代表一个事物的虚拟物,如账户(银行账户、基金账户、保险账户等)。
在一些实施例中,业务服务端110可以具备输入功能。例如,外部用户在业务服务端输入与图数据库相关的交易请求。其中,输入可以是语音、打字等方式。业务服务端还可以具备显示功能,例如,可以通过显示设备显示用户操作界面,以供用户输入交易请求,并向用户显示返回的执行结果或多级关联查询结果的可视化结果。
在一些实施例中,业务服务端110与区块链120通过网络(有线网络、无线网络、LAN、WAN、WLAN等)连接,并基于通讯协议(例如,HTTP协议)进行通讯,实现数据交互。
在一些实施例中,区块链120可以接收外部用户输入的交易请求。区块链120上某节点接收到外部用户通过业务服务端110发送的交易请求,或者接收到其他节点广播的交易请求后,便基于共识约定的智能合约调用顺序,依次调用执行相应的智能合约,完成该交易请求的处理。可以理解,区块链为了执行不同的数据处理功能,可以调用智能合约来实现。例如,调用语言转换合约将访问请求转换为图数据库语言形式的访问操作访问,又例如,调用预言机合约,通过预言机将区块链内部的数据传输给外部数据库,或接收外部数据库的数据。其中,智能合约可以根据需求设计,并存储在区块链120中,并根据具体要求调用。在一些实施例中,可以根据具体的请求类型调用对应不同的智能合约,也可以根据具体的请求类型调用同一个智能合约,该智能合约能够执行多个功能。
若节点接收到的交易请求中包含对图数据库的访问请求,则区块链节点可以将访问请求转化为图数据库语言形式的访问操作。若交易请求中包含图数据库语言形式的访问操作,则区块链节点直接提取即可。在一些实施例中,区块链节点可以通过预言机122将区块链中的数据传输给外部数据库(例如,图数据库),或者通过预言机122接收外部数据库的数据。
在一些实施例中,区块链120可以将交易请求、执行结果以及调用智能合约产生的任意数据等记录到区块,并将该区块存储到区块链上。
在一些实施例中,开发者可以根据不同的数据管理或访问需求,设定对应的区块链,例如,身份区块链或业务区块链。
在一些实施例中,图数据库130用以存储数据,如用户和交易相关信息,图数据库可以接收操作脚本,执行用户请求所对应的操作,并返回执行结果。在一些实施例中,图数据库130可以通过通讯协议与区块链120中的预言机122进行通讯,进行数据交互。
在一些实施例中,为了处理与图数据库访问相关的交易请求,可以在区块链120中多个节点中的每一个上部署访问图数据库系统200,图2展示了访问图数据库系统200的模块图。在一些实施例中,系统200可以包括交易请求获取模块210、访问操作获取模块220、访问操作执行模块230、存储模块240、结果返回模块250和可视化模块260。
交易请求获取模块210,可以用于获取与图数据库访问相关的交易请求。
访问操作获取模块220,可以用于基于所述交易请求获取对图数据库的访问操作。在一些实施例中,对图数据库的访问操作包括以下中的至少一种:数据写入、数据查询、数据更改以及数据删除。在一些实施例中,交易请求包括对图数据库的访问请求,访问操作获取模块还可以用于调用语言转换合约,以基于所述交易请求中对图数据库的访问请求生成图数据库语言形式的访问操作。在一些实施例中,交易请求包括图数据库语言形式的访问操作,访问操作获取模块还用于:从交易请求中提取图数据库语言形式的访问操作。
访问操作执行模块230,可以用于调用预言机合约,以通过预言机将访问操作发送给区块链外部的图数据库,以及接收图数据库对访问操作的执行结果。在一些实施例中,预言机和图数据库之间通过HTTP通讯协议进行通讯。
存储模块240,可以用于将执行结果存储到区块链上。
在一些实施例中,系统100还可以包括结果返回模块250,可以用于将执行结果返回给发起所述交易请求的用户。
在一些实施例中,对图数据库的访问操作为数据的多级关联查询,执行结果包括图数据库执行数据的多级关联查询获得的多个数据节点及其关联关系;区块链节点还包括可视化模块,可视化模块260用于:调用可视化合约,以基于交易请求根据所述多个数据节点及其关联关系获得可视化结果;将可视化结果传输给发起交易请求的用户。
应当理解,所示的系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
需要注意的是,以上对于访问图数据库的系统200及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。例如,交易请求获取模块、访问操作获取模块和存储模块可以共用一个存储模块,各个模块也可以分别具有各自的存储模块。诸如此类的变形,均在本说明书的保护范围之内。
图3是根据本说明书的一些实施例所示的访问图数据库的方法的示例性流程图。在一些实施例中,该访问图数据库的方法300可以由区块链的节点执行。
如图3所示,该访问图数据库的方法300可以包括:
步骤310,获取与图数据库访问相关的交易请求。具体的,该步骤310可以由交易请求获取模块执行。
图数据库是以图数据结构,存储和查询数据,图数据库可以处理图形数据模型的创建、读取、更新和删除操作,支持海量复杂数据关系运算。
图数据库访问是指调用图数据库或者对图数据库进行使用(例如,数据查询、数据读取等)。
交易请求可以是区块链接收到的、包含与图数据库访问相关的请求。该请求可以由用户发起(例如,通过业务服务端110)。对于区块链上某一节点而言,其获取的交易请求可以是用户通过业务服务端直接发送的,也可以来自其他节点。在一些实施例中,用户可以通过业务服务端110发起交易请求,业务服务端110将交易请求发送到区块链120的某一区块链节点上,该区块链节点获取了交易请求后,可以将交易请求放置交易池中,并对交易池中的多个交易请求进行打包,与区块链上其他的所有节点(或部分节点)进行共识,共识完成后该节点将该交易请求广播给其他节点(或其他部分节点),并将交易请求存储在区块链上。在一些实施例中,区块链节点获取了交易请求后,可以先不将该交易请求存储到区块链上,而是待与后续新产生的若干交易完成后,再一起存储到区块链上。
在一些实施例中,交易请求的类型或者具体内容可以与业务相关,包括但不限于:注册身份、更新身份、查询身份、生成仓单(仓单是指提取仓储物的凭证,或已收取仓储物的凭证)等。与图数据库访问相关的交易请求可以理解为,包含图数据库访问操作的交易请求,如请求对存储于图数据库中信息进行更改或删除,或者该交易请求中没有直接指示对图数据库进行操作,而是在区块链节点处理该交易请求时,需要与图数据库交互,以从图数据库中获得处理所述交易请求必要的信息。
区块链节点在对该交易请求完成共识后,便按照共识达成的执行顺序调用相应的智能合约(可以理解,完成一个交易请求的处理可能调用多个智能合约,为保证执行结果的一致性,共识节点需要对智能合约的执行顺序进行共识),对该交易请求进行处理。
步骤320,基于交易请求获取对图数据库的访问操作。具体的,该步骤320可以由访问操作获取模块执行。
对图数据库的访问操作是指对图数据库进行访问时具体进行的操作。在一些实施例中,对图数据库的访问操作可以是代表访问操作的图数据库可执行文件,例如,可以是图数据库执行访问操作的脚本。在一些实施例中,在对图数据库进行访问时,需要使用图数据库的语言编写访问操作或指令。在一些实施例中,交易请求中可以包含用非图数据库语言描述的访问请求,为了图数据库能够读取和执行,区块链节点需要基于交易请求涉及的图数据库访问请求生成(或“翻译成”)图数据库语言形式对应的操作指令。对图数据库的访问操作则可以看成是图数据库语言形式的访问操作的可执行脚本。
在一些实施例中,对图数据库的访问操作包括以下中的至少一种:数据写入、数据查询、数据更改以及数据删除。
在一些实施例中,交易请求的内容与访问操作对应。例如,交易请求为身份注册,则对应的访问操作为数据(身份信息)写入。又例如,交易请求为身份信息更新,则对应的访问操作为数居(身份信息)修改。在一些实施例中,交易请求没有明确指示对图数据库进行访问,而是节点在处理交易请求时生成对图数据库的某些访问操作,以便完成该交易请求。
在一些实施例中,节点可以通过某一智能合约基于交易请求获取所述访问操作,以及可以将访问操作以交易的形式存储在区块中,并存储到区块链上。其中,访问操作可以在获取之后立即存储到区块链上,也可以后续跟其他交易一起存储到区块链上。例如,区块链节点可以通过调用语言转换合约,实现将访问请求转化为图数据库语言形式的访问操作,如,生成对应的图数据库可执行文件。图数据库语言是指图数据库中使用的语言形式,例如gremlin语言、Cypher语言、nGQL语言等。
在一些实施例中,交易请求可以包括图数据库语言形式的访问操作。可以理解,用户在业务服务端发起了交易请求之后,业务服务端可以预先将代表请求的编程语言转化为图数据库语言形式的代码(即,图数据库语言形式的访问操作),即该转换在交易请求发送给区块链之前已完成。此时,区块链节点可以直接从交易请求中提取所述图数据库语言形式的访问操作。
步骤330,调用预言机合约,以通过预言机将访问操作发送给区块链外部的图数据库,以及接收所述图数据库对所述访问操作的执行结果。具体的,该步骤330可以由访问操作执行模块执行。
预言机(Oracle)是指区块链外信息写入区块链内的机制,其功能是将外界信息写入到区块链内,完成区块链与现实世界的数据互通,是区块链与外部进行数据交互的接口。
在一些实施例中,预言机合约可以是包含预言机接口的智能合约,可以实现预言机将区块链内部数据传输给外部数据库,或将外部数据库的数据传输给区块链的智能合约。智能合约无法主动执行,触发智能合约执行的条件可以是智能合约被外部用户调用,或者其他智能合约调用。例如,为完成某交易请求,在先执行的智能合约可以根据需要生成相应的图数据库访问操作,并调用预言机合约将访问操作发送给图数据库。
在一些实施例中,可以以交易请求作为调用预言机合约的条件,当区块链节点接收到了交易请求,可以调用预言机合约将获取的访问操作传输给外部数据库。
在一些实施例中,可以以其他智能合约为预言机智能合约的调用条件,实现对预言机合约的调用。例如,通过语言转换合约,调用预言机合约。又例如,通过将访问操作发送给图数据库之前的调用的其他合约,调用预言机合约,本实施例不做限制。
在一些实施例中,所有访问操作对应一个预言机合约,即,区块链将任何访问操作发送给外部图数据库时,都调用同一个预言机合约。在一些实施例中,访问操作的类型或者访问操作的业务类型与预言机合约存在对应关系,即,在获取到对图数据库的访问操作后,调用对应的预言机合约。例如,数据写入、查询、更改和删除分别对应一个预言机合约,又例如,身份注册、仓单生成等与业务类型对应访问操作分别对应一个预言机合约。
可以理解的,调用预言机合约,可以实现将区块链中的数据传输给外部图数据库,例如,将所述访问操作以及图数据库的网络地址作为预言机合约的入参,预言机合约被执行后,可以将访问操作传输给外部图数据库,并获得外部图数据库返回的执行结果,作为预言机合约的输出。
图数据库接收到访问操作之后,可以直接执行该访问操作,得到执行结果。执行结果可以包含任意执行过程中和执行完成后的信息。在一些实施例中,执行结果包含但不限于:执行成功或失败、执行失败的原因或/和执行后图数据库中相关数据的信息等。其中,执行后图数据库中相关数据的信息可以是与发起交易请求的用户或交易请求本身的内容相关的信息。例如,交易请求代表的是身份注册,相关信息可以是注册后代表身份的帐号或/和身份的相关信息。
在一些实施例中,当对图数据库的访问操作为数据的多级关联查询时,执行结果可以包括图数据库执行数据的多级关联查询获得的多个数据节点及其关联关系。其中,多级关联查询是指对数据的多级关联关系进行查询,例如对于查询数据A存在的二级的关联关系,预先录入图数据库的原始数据包括A<——>B,B<——>C,在对数据A进行多级关联查询时,就会查到一级关联A<——>B和二级关联A<——>C(或A<——>B<——>C)。
为了更加形象化表示多级关联查询的查询结果,可以对查询结果进行可视化表示,例如,通过图形表示多个数据节点及其关联关系等。在一些实施例中,查询结果的可视化表示可以直接从图数据库中获取,可以理解的,执行结果中还可以包括多个数据节点及其关联关系对应的可视化结果。
在一些实施例中,为了实现预言机和图数据库之间的数据交互,预言机和图数据库之间可以通过HTTP通讯协议进行通讯。
步骤340,将所述执行结果存储到区块链上。具体的,该步骤340可以由存储模块执行。
数据在存储到区块链上之前,一般是先由节点写入区块中,待与其他节点进行共识后,将被共识认可的区块保留,即以区块的形式存储到区块链上。若该区块未被共识认可,则视为无效,不能存储到区块链上。
在一些实施例中,数据存储在区块上的方式有多种,例如可以是内容存证、哈希存证、链接存证、隐私存证、分享隐私存证等方式。其中内容存证是指将要存储的数据内容直接放入到区块之中,哈希存证是指把数据内容的哈希值进行保存在区块中,链接存证是指在哈希存证基础上又添加了文件的URI地址保存在区块中,隐私存证是指把数据进行加密之后存储在区块中,分享隐私存证是指在隐私存证之上更进一步,把数据进行加密之后,同时还要把加密的秘钥再使用非对称加密再加密一次后存储区块中。
在一些实施例中,执行结果可以与步骤310所述的交易请求或步骤320的访问操作一起写入区块。例如,将执行结果和交易请求存在同一个区块中,节点共识后,将该区块存储到区块链上。又例如,将交易请求和访问操作存储在一个区块,执行结果存储在另一不同的区块,将所有区块存储到区块链上。
通过本实施例,图数据库操作在链外执行,链上可以记录图数据库的操作记录,例如,操作请求或操作结果等。
步骤350,执行结果返回给发起交易请求的用户。具体的,该步骤350可以由结果返回模块执行。
在一些实施例中,节点将执行结果存储到区块链上后,可以将执行结果返回用户。例如,将执行结果发送至业务服务端,显示给用户。
如前所述,若对图数据库的访问操作为数据的多级关联查询,执行结果中也可以包括查询结果的可视化结果(即多个数据节点及其关联关系的可视化结果)。在一些实施例中,查询结果的可视化表示还可以通过区块链获取。可以理解的,区块链作为一个去中心化的分布式数据库,其具体公开透明等特点,因此,比一般的数据库(例如,图数据库)更安全,因此,相比于直接从图数据库中获取查询结果的可视化表示,从区块链中获取可以更可靠。
在一些实施例中,可视化模块可以通过调用智能合约,实现区块链对查询结果的可视化。其中,区块链上用于对数据进行可视化处理的智能合约称为可视化合约。本实施例中,执行可视化合约可以将数据进行可视化处理,得到关于数据的可视化结果。可视化结果可以包括各种类型的可视化图表,例如散点图、气泡图、树形图等。
在一些实施例中,可以将得到的可视化结果传输给发起交易请求的用户。例如,将可视化的结果与执行结果进行打包,一起发给用户。
本说明书实施例可能带来的有益效果包括但不限于:(1)通过预言机实现区块链与外部图数据库的数据交互,从而通过外部图数据管理数据,提高数据遍历和多级关联关系查询的效率;(2)通过区块链记录对图数据库中数据的操作,保证外部图数据中的数据安全、透明和公开;(3)通过区块链对多级关联查询的查询结果进行可视化,并将可视化结果返回给用户,用户可以直观地得到交易请求反馈的执行结果,增强了用户体验,且还可以实现更加便捷的数据分析;(4)通过区块链访问图数据库中的物联网数据,为线下物理世界事件行为提供了一种公开透明且可追溯的信息记录手段。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域技术人员可以理解,本说明书的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF、或类似介质,或任何上述介质的组合。
本说明书各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等,常规程序化编程语言如C语言、Visual Basic、Fortran2003、Perl、COBOL2002、PHP、ABAP,动态编程语言如Python、Ruby和Groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或处理设备上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)。
此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的处理设备或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本说明书一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
针对本说明书引用的每个专利、专利说明书、专利说明书公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的说明书历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。
Claims (19)
1.一种访问图数据库的方法,所述方法由区块链节点执行,其包括:
获取与图数据库访问相关的交易请求;
基于所述交易请求获取对图数据库的访问操作;
调用预言机合约,以通过预言机将所述访问操作发送给区块链外部的图数据库,以及接收所述图数据库对所述访问操作的执行结果;
将所述执行结果存储到区块链上。
2.根据权利要求1所述的方法,所述交易请求包括对图数据库的访问请求;
所述基于所述交易请求获取对图数据库的访问操作,包括:
调用语言转换合约,以基于所述交易请求中对图数据库的访问请求生成图数据库语言形式的访问操作。
3.根据权利要求1所述的方法,所述交易请求包括图数据库语言形式的访问操作;
所述基于所述交易请求获取对图数据库的访问操作,包括:
从所述交易请求中提取所述图数据库语言形式的访问操作。
4.根据权利要求1所述的方法,所述预言机和所述图数据库之间通过HTTP通讯协议进行通讯。
5.根据权利要求1所述的方法,所述对图数据库的访问操作包括以下中的至少一种:数据写入、数据查询、数据更改以及数据删除。
6.根据权利要求1所述的方法,所述方法还包括将所述执行结果返回给发起所述交易请求的用户。
7.根据权利要求6所述的方法,所述对图数据库的访问操作为数据的多级关联查询,所述执行结果包括图数据库执行所述数据的多级关联查询获得的多个数据节点及其关联关系;
所述方法还包括:
调用可视化合约,以基于所述交易请求根据所述多个数据节点及其关联关系获得可视化结果;
将所述可视化结果传输给发起所述交易请求的用户。
8.根据权利要求1所述的方法,所述图数据库用于存储物联网中的实体身份信息和与实体关联的事件信息;
所述与图数据库访问相关的交易请求,包括与图数据库中实体身份信息访问和事件信息访问中至少一种相关的交易请求。
9.根据权利要求8所述的方法,所述区块链包括身份链和业务链;
当所述区块链节点为身份链节点时,所述对图数据库的访问操作,包括:实体身份信息注册、实体身份信息变更以及实体身份信息注销中的一种或多种的组合;
当所述区块链节点为业务链节点时,所述对图数据库的访问操作,包括:基于物联网事件生成凭据记录以及基于凭据生成实体关联信息中的一种或多种的组合。
10.一种访问图数据库的系统,所述系统位于区块链节点上,所述系统包括:
交易请求获取模块,用于获取与图数据库访问相关的交易请求;
访问操作获取模块,用于基于所述交易请求获取对图数据库的访问操作;
访问操作执行模块,用于调用预言机合约,以通过预言机将所述访问操作发送给区块链外部的图数据库,以及接收所述图数据库对所述访问操作的执行结果;
存储模块,用于将所述执行结果存储到区块链上。
11.根据权利要求10所述的系统,所述交易请求包括对图数据库的访问请求;
所述访问操作获取模块还用于:
调用语言转换合约,以基于所述交易请求中对图数据库的访问请求生成图数据库语言形式的访问操作。
12.根据权利要求10所述的系统,所述交易请求包括图数据库语言形式的访问操作;
所述访问操作获取模块还用于:
从所述交易请求中提取所述图数据库语言形式的访问操作。
13.根据权利要求10所述的系统,所述预言机和所述图数据库之间通过HTTP通讯协议进行通讯。
14.根据权利要求10所述的系统,所述对图数据库的访问操作包括以下中的至少一种:数据写入、数据查询、数据更改以及数据删除。
15.根据权利要求10所述的系统,所述区块链节点还包括:
结果返回模块,用于将所述执行结果返回给发起所述交易请求的用户。
16.根据权利要求15所述的系统,所述对图数据库的访问操作为数据的多级关联查询,所述执行结果还包括图数据库执行所述数据的多级关联查询获得的多个数据节点及其关联关系;
所述系统还包括可视化模块,所述可视化模块用于:
调用可视化合约,以基于所述交易请求根据所述多个数据节点及其关联关系获得可视化结果;
将所述可视化结果传输给发起所述交易请求的用户。
17.根据权利要求10所述的系统,所述图数据库用于存储物联网中的实体身份信息和与实体关联的事件信息;
所述与图数据库访问相关的交易请求,包括与图数据库中实体身份信息访问和事件信息访问中至少一种相关的交易请求。
18.根据权利要求17所述的系统,所述区块链包括身份链和业务链;
当所述区块链节点为身份链节点时,所述对图数据库的访问操作,包括:实体身份信息注册、实体身份信息变更以及实体身份信息注销中的一种或多种的组合;
当所述区块链节点为业务链节点时,所述对图数据库的访问操作,包括:基于物联网事件生成凭据记录以及基于凭据生成实体关联信息中的一种或多种的组合。
19.一种访问图数据库的装置,包括处理器,所述处理器用于执行如权利要求1-9所述的访问图数据库的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010691807 | 2020-07-17 | ||
CN202010691807X | 2020-07-17 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113297433A true CN113297433A (zh) | 2021-08-24 |
Family
ID=77330805
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110804157.XA Pending CN113297433A (zh) | 2020-07-17 | 2021-07-16 | 一种访问图数据库的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113297433A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114625899A (zh) * | 2022-03-14 | 2022-06-14 | 北京百度网讯科技有限公司 | 信息处理方法、装置、电子设备以及存储介质 |
CN116152968A (zh) * | 2023-04-23 | 2023-05-23 | 安徽中科晶格技术有限公司 | 基于区块链合约事件机制的智能锁的控制方法及装置 |
CN116260655A (zh) * | 2023-05-06 | 2023-06-13 | 杭州瀚陆信息技术有限公司 | 一种深海机器人数据传输方法和系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109858258A (zh) * | 2018-12-28 | 2019-06-07 | 北京市天元网络技术股份有限公司 | 基于区块链的政务数据交换方法及装置 |
US20190295078A1 (en) * | 2018-03-23 | 2019-09-26 | Graph Blockchain Limited | Control system and method for controlling private blockchain system |
-
2021
- 2021-07-16 CN CN202110804157.XA patent/CN113297433A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190295078A1 (en) * | 2018-03-23 | 2019-09-26 | Graph Blockchain Limited | Control system and method for controlling private blockchain system |
CN109858258A (zh) * | 2018-12-28 | 2019-06-07 | 北京市天元网络技术股份有限公司 | 基于区块链的政务数据交换方法及装置 |
Non-Patent Citations (1)
Title |
---|
李佳潞: "基于区块链的粮食供应链溯源方案的研究", 《中国优秀硕士学位论文全文数据库》》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114625899A (zh) * | 2022-03-14 | 2022-06-14 | 北京百度网讯科技有限公司 | 信息处理方法、装置、电子设备以及存储介质 |
CN114625899B (zh) * | 2022-03-14 | 2023-09-08 | 北京百度网讯科技有限公司 | 信息处理方法、装置、电子设备以及存储介质 |
CN116152968A (zh) * | 2023-04-23 | 2023-05-23 | 安徽中科晶格技术有限公司 | 基于区块链合约事件机制的智能锁的控制方法及装置 |
CN116260655A (zh) * | 2023-05-06 | 2023-06-13 | 杭州瀚陆信息技术有限公司 | 一种深海机器人数据传输方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11875400B2 (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) | |
US11611560B2 (en) | Systems, methods, and apparatuses for implementing consensus on read via a consensus on write smart contract trigger for a distributed ledger technology (DLT) platform | |
US11876910B2 (en) | Systems, methods, and apparatuses for implementing a multi tenant blockchain platform for managing Einstein platform decisions using distributed ledger technology (DLT) | |
US11451530B2 (en) | Systems, methods, and apparatuses for implementing super community and community sidechains with consent management for distributed ledger technologies in a cloud based computing environment | |
US11127088B2 (en) | Cross-blockchain interaction method, system, computer device, and storage medium | |
US20230342734A1 (en) | Systems, methods, and apparatuses for implementing smart flow contracts using distributed ledger technologies in a cloud based computing environment | |
US11257073B2 (en) | Systems, methods, and apparatuses for implementing machine learning models for smart contracts using distributed ledger technologies in a cloud based computing environment | |
US10798130B2 (en) | Control over data resource utilization through a security node control policy evaluated in the context of an authorization request | |
CN109791591B (zh) | 经由区块链进行身份和凭证保护及核实的方法和系统 | |
US11063744B2 (en) | Document flow tracking using blockchain | |
US20190238316A1 (en) | Systems, methods, and apparatuses for implementing intelligent consensus, smart consensus, and weighted consensus models for distributed ledger technologies in a cloud based computing environment | |
US20190236606A1 (en) | Systems, methods, and apparatuses for implementing a virtual chain model for distributed ledger technologies in a cloud based computing environment | |
US20190236562A1 (en) | Systems, methods, and apparatuses for implementing document interface and collaboration using quipchain in a cloud based computing environment | |
TWI706280B (zh) | 資料讀寫方法及裝置、電子設備 | |
CN113297433A (zh) | 一种访问图数据库的方法和系统 | |
CN110032599B (zh) | 数据结构的读取及更新方法、装置、电子设备 | |
US11411959B2 (en) | Execution of application in a container within a scope of user-granted permission | |
CN111538786B (zh) | 区块链数据脱敏与溯源的存储方法与装置 | |
US20180262510A1 (en) | Categorized authorization models for graphical datasets | |
TW202025020A (zh) | 基於區塊鏈的內容管理系統及方法、裝置、電子設備 | |
CN110032568B (zh) | 数据结构的读取及更新方法、装置、电子设备 | |
US11080109B1 (en) | Dynamically reweighting distributions of event observations | |
CN113743955A (zh) | 基于智能合约的食材溯源数据安全访问控制方法 | |
US11275850B1 (en) | Multi-faceted security framework for unstructured storage objects | |
US20220385645A1 (en) | Bootstrapping trust in decentralized identifiers |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210824 |