掌桥专利:专业的专利平台
掌桥专利
首页

基于区块链网络的数据操作方法及装置、设备、介质

文献发布时间:2024-04-18 19:59:31


基于区块链网络的数据操作方法及装置、设备、介质

技术领域

本申请涉及计算机技术领域,具体而言,涉及一种基于区块链网络的数据操作方法、基于区块链网络的数据操作装置、电子设备,以及计算机可读介质。

背景技术

可以理解的是,数据库是一个按数据结构来存储和管理数据的计算机软件系统,或者说是一个按照数据结构来组织、存储和管理数据的仓库,其为计算机的发展提供有力支持,可以应用于和计算机领域相关的诸多场景中,例如可应用于智慧交通、辅助驾驶、云技术、人工智能等各种场景中。其中,在相应场景的某个业务需求时,可以对数据库中所存储的数据进行操作,例如增、删、改、查等操作,但是相关技术中对于如何合理控制对数据库的操作,以提升数据库中数据的安全性尚未有明确方案。

发明内容

本申请的实施例提供了一种基于区块链网络的数据操作方法及装置、设备、介质,进而至少在一定程度上实现了对数据库操作的合理控制,提升了数据库中数据的安全性。

根据本申请实施例的一个方面,本申请实施例提供了一种基于区块链网络的数据操作方法,所述方法包括:接收针对指定数据库的操作指令,所述指定数据库是独立于区块链网络的数据库;在所述区块链网络中发起针对所述操作指令的共识过程,得到共识结果;若所述共识结果表征对所述操作指令共识成功,则将所述操作指令发送至数据库操作方,以使所述数据库操作方对所述指定数据库执行与所述操作指令相匹配的操作。

根据本申请实施例的一个方面,本申请实施例提供了一种基于区块链网络的数据操作方法,所述方法包括:接收区块链网络发送的操作指令;其中,所述操作指令是所述区块链网络对接收到针对指定数据库的操作指令共识成功之后发送的;对所述指定数据库执行与所述操作指令相匹配的操作。

根据本申请实施例的一个方面,本申请实施例提供了一种基于区块链网络的数据操作装置,所述装置包括:接收模块,配置为接收针对指定数据库的操作指令,所述指定数据库是独立于区块链网络的数据库;共识模块,配置为在所述区块链网络中发起针对所述操作指令的共识过程,得到共识结果;发送模块,配置为若所述共识结果表征对所述操作指令共识成功,则将所述操作指令发送至数据库操作方,以使所述数据库操作方对所述指定数据库执行与所述操作指令相匹配的操作。

在本申请的一个实施例中,基于前述方案,所述操作指令中携带有用于对所述指定数据库中的数据执行变更操作的结构化查询语言语句,所述区块链网络中包含有与所述指定数据库进行数据同步的同步数据库;所述共识模块,具体配置为:在所述区块链网络中模拟执行所述结构化查询语言语句,以对所述同步数据库中的数据进行变更,生成模拟变更数据;根据所述模拟变更数据生成第一区块,并发起针对所述第一区块的共识过程,得到所述共识结果。

在本申请的一个实施例中,基于前述方案,所述共识模块,还具体配置为:接收所述数据库操作方返回的执行结果,所述执行结果是所述数据库操作方对所述指定数据库中的数据执行与所述操作指令相匹配的操作之后所生成的;若所述执行结果表征对所述指定数据库中的数据执行操作成功,则在所述同步数据库中执行所述结构化查询语言语句,以对所述同步数据库中的数据进行变更,生成真实变更数据。

在本申请的一个实施例中,基于前述方案,所述共识模块,还具体配置为:根据所述真实变更数据生成第二区块,并发起针对所述第二区块的共识过程;若针对所述第二区块的共识通过,则对所述第二区块进行上链处理。

在本申请的一个实施例中,基于前述方案,所述操作指令中携带有用于对所述指定数据库中的数据执行变更操作的结构化查询语言语句,所述区块链网络中包含有与所述指定数据库进行数据同步的同步数据库;所述共识模块,具体配置为:在所述同步数据库中执行所述结构化查询语言语句,以对所述同步数据库中的数据进行变更,生成真实变更数据;根据所述真实变更数据生成第三区块,并发起针对所述第三区块的共识过程,得到所述共识结果。

在本申请的一个实施例中,基于前述方案,所述共识模块,具体配置为:对所述操作指令的发送方进行权限检测,得到权限检测结果;若所述权限检测结果表征对所述操作指令的发送方的权限检测通过,则在所述区块链网络中发起针对所述操作指令的共识过程,得到所述共识结果。

在本申请的一个实施例中,基于前述方案,所述操作指令中携带有用于对所述指定数据库中的数据执行变更操作的结构化查询语言语句,所述指定数据库中的数据为元数据;所述共识模块,还具体配置为:获取所述操作指令的发送方的标识信息,以及获取所述结构化查询语言语句中所含有的待执行变更的元数据所属的元数据集合;根据预设标识与元数据集合的映射关系、所述标识信息,以及所述元数据集合,对所述操作指令的发送方进行权限检测,得到所述权限检测结果。

在本申请的一个实施例中,基于前述方案,所述操作指令中携带有用于对所述指定数据库中的数据执行变更操作的结构化查询语言语句;所述共识模块,具体配置为:对所述结构化查询语言语句进行语法检测,得到语法检测结果;若所述语法检测结果表征对所述结构化查询语言语句的语法检测通过,则在所述区块链网络中根据所述结构化查询语言语句发起针对所述变更操作的共识,得到所述共识结果。

在本申请的一个实施例中,基于前述方案,所述区块链网络中包含有与所述指定数据库进行数据同步的同步数据库,所述指定数据库和所述同步数据库中的数据为元数据;所述共识模块,还具体配置为:对所述结构化查询语言语句进行语义分析,得到所述结构化查询语言语句中所含有的待执行变更的元数据所属的元数据集合;根据所述元数据集合以及所述同步数据库中的元数据集合,对所述结构化查询语言语句进行语法检测,得到所述语法检测结果。

根据本申请实施例的一个方面,本申请实施例提供了一种基于区块链网络的数据操作装置,所述装置包括:接收模块,配置为接收区块链网络发送的操作指令;其中,所述操作指令是所述区块链网络对接收到针对指定数据库的操作指令共识成功之后发送的;执行模块,配置为对所述指定数据库执行与所述操作指令相匹配的操作。

在本申请的一个实施例中,基于前述方案,所述操作指令中携带有用于对所述指定数据库中的数据执行变更操作的结构化查询语言语句;所述执行模块,具体配置为:从所述操作指令中获取所述结构化查询语句;在所述指定数据库中执行所述结构化查询语句,以对所述指定数据库中的数据进行变更。

在本申请的一个实施例中,基于前述方案,所述执行模块,具体配置为:接收所述区块链网络发送的针对所述操作指令的签名信息;根据指定密钥对所述签名信息进行验证,若验证通过,则对所述指定数据库执行与所述操作指令相匹配的操作。

根据本申请实施例的一个方面,本申请实施例提供了一种电子设备,包括一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现如上所述的基于区块链网络的数据操作方法。

根据本申请实施例的一个方面,本申请实施例提供了一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的基于区块链网络的数据操作方法。

根据本申请实施例的一个方面,本申请实施例提供了一种计算机程序产品,包括计算机指令,所述计算机指令被处理器执行时实现如上所述的基于区块链网络的数据操作方法。

在本申请的实施例提供的技术方案中:

区块链网络对接收到针对指定数据库的操作指令共识成功之后,才向数据库操作方发送操作指令;这样通过对针对指定数据库的操作指令进行共识,保证了操作指令的安全性,避免了相关技术中由于操作权限的管理不当导致操作权限相关的密码被泄露、破解等造成的操作指令安全性低现象。

由于操作指令是区块链网络对接收到针对指定数据库的操作指令共识成功之后所发送的,操作指令的安全性较高;因此数据库操作方根据安全性较高的操作指令对数据库执行与之相匹配的操作,提升了数据库中数据的安全性,实现了对数据库操作的合理控制。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

图1是区块链网络的结构示意图;

图2是区块链中各区块的连接关系示意图;

图3是区块的默克尔树的结构示意图;

图4是根据本申请的一个实施例的共识节点广播区块的示意图;

图5至图7是本申请实施例所应用的区块链系统的体系构架图;

图8示出了根据本申请的一个实施例的电子发票系统的示意图;

图9是可以应用本申请实施例的技术方案的示例性实施环境的示意图;

图10是本申请的一示例性实施例示出的基于区块链网络的数据操作方法的流程图;

图11是本申请的另一示例性实施例示出的基于区块链网络的数据操作方法的流程图;

图12是本申请的另一示例性实施例示出的基于区块链网络的数据操作方法的流程图;

图13是本申请的另一示例性实施例示出的基于区块链网络的数据操作方法的流程图;

图14是本申请的另一示例性实施例示出的基于区块链网络的数据操作方法的流程图;

图15是本申请的另一示例性实施例示出的基于区块链网络的数据操作方法的流程图;

图16是本申请的另一示例性实施例示出的基于区块链网络的数据操作方法的流程图;

图17是本申请的一示例性实施例示出的基于区块链网络的数据操作方法的流程图;

图18是本申请的另一示例性实施例示出的基于区块链网络的数据操作方法的流程图;

图19是本申请的另一示例性实施例示出的基于区块链网络的数据操作方法的流程图;

图20是本申请的一示例性实施例示出的基于区块链网络的数据操作方法的流程图;

图21是本申请的一个实施例的基于区块链网络的数据操作装置的框图;

图22是本申请的一个实施例的基于区块链网络的数据操作装置的框图;

图23是适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。

具体实施方式

这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相相同的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相同的装置和方法的例子。

附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。

需要说明的是,在本申请中提及的“多个”是指两个或者两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

在介绍本申请实施例的技术方案之前,先介绍本申请实施例中用到的区块链技术。

区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块(即区块),每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。

区块链本质上是一个去中心化的数据库,而区块链是由区块链网络中的节点共同维护的。例如请参阅图1,在图1所示的区块链网络中,可以包括多个节点101,多个节点101可以是形成区块链网络的各个客户端。每个节点101在进行正常工作可以接收到输入信息,并基于接收到的输入信息维护该区块链网络内的共享数据。为了保证区块链网络内的信息互通,区块链网络中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输。例如当区块链网络中的任意节点接收到输入信息时,区块链网络中的其它节点便根据共识算法获取该输入信息,将该输入信息作为共享数据进行存储,使得区块链网络中全部节点上存储的数据均一致。

对于区块链网络中的每个节点,均具有与其对应的节点标识,而且区块链网络中的每个节点均可以存储有其它节点的节点标识,以便后续根据其它节点的节点标识,将生成的区块广播至区块链网络中的其它节点。每个节点中可维护一个节点标识列表,将节点名称和节点标识对应存储至该节点标识列表中。其中,节点标识可为IP(InternetProtocol,网络之间互联的协议)地址以及其他任一种能够用于标识该节点的信息。

可选地,区块链网络中的每个节点可以是服务器,也可以是终端设备。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算(Cloud Computing)、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端设备可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、智能家居、车载终端等,但并不局限于此。各个节点之间可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。

前述的云计算是指IT基础设施的交付和使用模式,具体指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。云计算是网格计算(Grid Computing)、分布式计算(Distributed Computing)、并行计算(ParallelComputing)、效用计算(Utility Computing)、网络存储(Network StorageTechnologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。随着互联网、实时数据流、连接设备多样化的发展,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,云计算迅速发展起来。不同于以往的并行分布式计算,云计算的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。

区块链网络中的每个节点均存储一条相同的区块链。区块链由多个区块组成,请参阅图2,区块链由多个区块组成,这些区块按照创建时间戳由小到大的顺序连接成链式结构,每个区块包括区块头和区块主体,区块头中存储有前序区块哈希及本区块的默克尔树(Merkle Tree)根,区块体中包含本区块的完整交易数据,并以默克尔树的形式组织在一起。从区块链的结构可以看出,区块链中每个区块中存储的区块数据均与父区块(即前序区块)中存储的区块数据存在关联,保证了区块中输入信息的安全性。

需要说明的是,默克尔树是区块链技术的重要组成部分,区块链不会直接保存明文的原始数据,原始数据需要被执行散列运算,以散列值的方式被存储。默克尔树就用于将多个原始数据经散列运算形成的散列值按照二叉树结构组织起来,保存在区块的块体中。

默克尔树经常以二叉树的形式出现(也可以是三叉树、四叉树等多个分支的树形结构),由叶子节点、中间节点和根节点构成。在图3所示的默克尔树结构中,D0、D1、D2和D3是叶子节点包含的数据,也就是叶子节点的值,N0、N1、N2和N3就是叶子节点,它是将数据(也就是D0、D1、D2和D3)进行哈希运算(Hash)后的到的哈希值;继续向上看,N4和N5是中间节点,它们各是N0和N1经过哈希运算得到的哈希值以及N2和N3经过哈希运算得到的哈希值,注意,它们是把相邻的两个叶子结点合并成一个字符串,然后运算这个字符串的哈希;接着往上,Root(根)节点是N4和N5经过哈希运算后得到的哈希值,这就是这棵默克尔树的根哈希。

从默克尔树的结构可以看出,当任意一个叶子节点的交易被修改,叶子节点哈希值就会变更,最终根节点的哈希值就会改变,所以确定的根节点的哈希值可以准确的作为一组交易的唯一摘要。

在区块链技术中还有一项关键的技术,即共识机制,共识机制是保证区块链网络正常运行的基础。所谓共识即是达成一致的意思,区块链网络中的每个节点各自存储有一份分布式账本(即区块链),区块链网络的共识过程就是让各个节点之间的分布式账本保持一致的过程。其中,区块链网络中的全部或部分节点可参与到区块链网络的共识过程中,区块链网络的共识过程通常是基于共识算法来实现,参与共识的各个节点通过运行共识算法来执行共识过程的相应流程。可选的共识算法比如可以有PoW(Proof of Work,工作量证明机制)、PoS(Proof of Stake,权益证明)、DPoS(Delegated Proof of Stake,委托权益证明)、PBFT(Practical Byzantine Fault Tolerance,实用拜占庭容错系统)等。

通常而言,在区块链的某个区块高度需要进行一轮或多轮共识过程,才能在参与共识的各个节点之间达成一致。区块高度用于表示连接在区块链上的区块数量,区块高度是区块的标志符,可用来指示区块在区块链中的位置,比如区块链中创始区块的区块高度默认为0,创始区块之后的第一个区块的区块高度为1(该第一个区块可以简称为区块1),创始区块之后的第二个区块的区块高度为2(该第二个区块可以简称为区块2),以此类推。

举例说明,某条区块链的当前区块的区块高度为300(简称为区块300),这表示已经有300个区块被堆叠在创始区块之上了,即从创始区块到区块300之间形成的区块链上的区块数量为301个。在区块链的某个区块高度进行的共识过程是指在区块链处于该某个区块高度时,对区块链网络中待上链的区块进行共识的过程,如果该待上链的区块共识成功,则该区块被添加至区块链上,区块链的区块高度则+1。例如在区块链的区块高度10的共识过程就是指在区块链处于区块高度10时,对区块链网络中待上链的区块进行共识的过程,如果该区块共识成功,则该区块被添加至区块链上而使得区块链的区块高度由10变为11。

通常而言,一轮共识过程按照执行顺序可依次分为三个共识阶段,即提案阶段、预投票阶段和预提交阶段。参与同一轮共识过程的多个节点中包括提案节点和非提案节点两种类型。所谓提案节点是指由参与共识的多个节点通过选举产生的一个节点,作为提案节点的节点既负责在本轮共识过程的提案阶段产生待共识区块,并将该待共识区块广播给参与共识的其他节点进行共识处理;同时也负责对该待共识区块进行共识处理。而非提案节点则只对待共识区块进行共识处理。

共识处理包括预投票处理和预提交处理,预投票处理发生在预投票阶段,而预提交处理发生在预提交阶段。预投票处理是指是否同意对待共识区块进行预投票的过程,如果同意对待共识区块进行预投票,表示同意将该区块添加至区块链上。预提交处理是指是否同意对待共识区块进行预提交的过程,如果同意对待共识区块进行预提交,表示确认同意将该区块添加至区块链。在同一区块高度进行的多轮共识过程中,对于不同轮次的共识过程,参与共识的节点可能会发生变化,即每轮参与共识过程的节点可能会发生变化,并且提案节点可能会发生变化,待共识区块也可能会发生变化。

下面以一个具体示例来详细说明本申请实施例在区块链的区块高度H的第N-i轮共识过程的具体流程,其中H、N、i均为正整数,且i小于N。以i=1为例,在区块链的区块高度H的第N-1轮共识过程中,参与共识过程的共有4个节点。图4示出了根据本申请一个实施例的共识节点的区块广播示意图;如图4所示,区块链系统中参与共识过程的节点分别是节点A、节点B、节点C和节点D,在区块链的区块高度H的第N-1轮共识过程中,节点B为提案节点,节点A、节点C和节点D为非提案节点。在区块链的区块高度H的第N-1轮共识过程的具体流程包括:

一、提案阶段:

首先,节点B(即提案节点)产生待共识的目标区块Block-X,该Block-X可以是由节点B创建的新区块。然后,节点B将目标区块Block-X广播给节点A、节点C和节点D。

二、预投票阶段:

由于网络故障、设备故障或其他原因,会存在部分节点无法在第一时间内接收到节点B广播的Block-X的情况,例如设节点A未在第一时间内接收到节点B广播的Block-X,节点C和节点D均在第一时间内接收到节点B广播的Block-X;那么在预投票阶段,节点B、节点C和节点D均将Block-X作为待共识的目标区块,并对Block-X进行预投票处理得到各自的预投票信息。此处的预投票信息中包含被执行预投票处理的区块标识,例如节点C对该Block-X进行预投票处理生成节点C的预投票信息,节点C的预投票信息中包括Block-X的标识,且该预投票信息表示节点C同意对该Block-X进行预投票,即同意将该Block-X添加至区块链,该Block-X获得节点C的预投票。

可以理解的是,如果节点C未生成节点C的预投票信息,则表示节点C未对Block-X进行预投票处理;如果节点C的预投票信息中未包括Block-X的标识,则表示节点C不同意对该Block-X进行预投票,即不同意将该Block-X添加至区块链上。而节点A由于未在第一时间内接到Block-X,因此其可将空区块emptyBlock确定为待共识的目标区块,并对emptyBlock进行预投票处理得到节点A的预投票信息,该节点A的预投票信息包括emptyBlock的标识。其中第一时间可以根据实际需要进行设定,例如为1分钟、3分钟等等。

节点A、节点B、节点C和节点D各自广播自己的预投票信息。由于网络故障、设备故障或其他原因,可能会存在部分节点未在第二时间内接收到其他节点广播的预投票信息的情况,因此在第二时间到达时,参与共识过程的各个节点分别根据第二时间内接收到的预投票信息来统计待共识的目标区块在预投票阶段所获得的预投票的数量,并确认该预投票数量是否超过数量阈值。此处的数量阈值可以根据实际情况设定,例如数量阈值可以为参与共识过程的节点数量的50%,或者为参与共识过程的节点数量的2/3。此处的第二时间也可以根据实际需要进行设定,例如为1分钟、3分钟等等;第二时间可以与第一时间相同,也可以与第一时间不同。

举例说明,设数量阈值为2,由于节点A只对emptyBlock进行预投票处理,则节点A的预投票信息中包括emptyBlock的标识;而节点B、节点C和节点D均对Block-X进行了预投票处理,且节点B、节点C和节点D三者的预投票信息中均包含Block-X的标识;同时设节点A只接收到来自节点B的预投票信息,结合节点A自己的预投票信息统计得到Block-X在预投票阶段获得的预投票数量为1,确认Block-X所获得的预投票数量并未超过数量阈值2。设节点B接收到来自节点A、节点C和节点D三个预投票信息,再结合节点B自己的预投票信息统计得到Block-X获得的预投票数量为3,确认Block-X获得的预投票数量超过了数量阈值2。同理,设节点C接收到来自节点A、节点B和节点D三个预投票信息,再结合节点C自己的预投票信息统计得到Block-X获得的预投票数量为3,确认Block-X获得的预投票数量超过了数量阈值2。设节点D也接收到来自节点A、节点B和节点C三个预投票信息,再结合节点D自己的预投票信息统计得到Block-X获得的预投票数量为3,确认Block-X获得的预投票数量超过了数量阈值2。

三、预提交阶段:

节点B、节点C和节点D均将Block-X确定为待共识的目标区块,所以均对Block-X进行预提交处理得到各自的预提交信息;此处的预提交信息中包含被执行预提交处理的区块标识。例如:节点C对该Block-X进行预提交处理生成节点C的预提交信息,该预提交信息中包括Block-X的标识,且该预提交信息表示节点C同意对该Block-X进行预提交,即表示确认同意将该Block-X添加至区块链,该Block-X获得节点C的预提交。

可以理解的是,如果节点C未生成节点C的预提交信息,则表示节点C未对Block-X进行预提交处理;如果节点C的预提交信息中未包括Block-X的标识,则表示节点C不同意对该Block-X进行预提交,即不同意将该Block-X添加至区块链上。而节点A由于将空区块emptyBlock确定为待共识的目标区块,因此节点A对emptyBlock进行预提交处理得到节点A的预提交信息,该节点A的预提交信息包括emptyBlock的标识。

节点A、节点B、节点C和节点D各自广播自己的预提交信息。由于网络故障、设备故障或其他原因,可能会存在部分节点未在第三时间内接收到其他节点广播的预提交信息的情况。在第三时间到达时,参与共识过程的各个节点分别根据第三时间内接收到的预提交信息来统计待共识的目标区块在预提交阶段所获得的预提交的数量,并确认该预提交数量是否超过提交阈值。此处的提交阈值可以根据实际情况设定,例如提交阈值可以为参与共识过程的节点数量的50%,或者为参与共识过程的节点数量的2/3。此处的第三时间也可以根据实际需要进行设定,例如为1分钟、3分钟等;第三时间可以与第二时间相同,也可以与第二时间不同;同理,第三时间可以与第一时间相同,也可以与第一时间不同。

举例说明,设提交阈值为2,由于节点A只对emptyBlock进行预提交处理,则节点A的预提交信息中包括emptyBlock的标识;而节点B、节点C和节点D均对Block-X进行了预提交处理,且节点B、节点C和节点D三者的预提交信息中均包含Block-X的标识;同时设节点B接收到来自节点A和节点C的预提交信息,结合节点B自己的预提交信息统计得到Block-X在预提交阶段获得的预提交数量为2,确认Block-X所获得的预提交数量并未超过(不大于)提交阈值2。设节点C接收到来自节点A和节点C的预提交信息,再结合节点C自己的预提交信息统计得到Block-X获得的预提交数量为2,确认Block-X所获得的预提交数量并未超过(不大于)提交阈值2。同理,设节点A接收到来自节点B、节点C和节点D三个预提交信息,再结合节点A自己的预提交信息统计得到Block-X获得的预提交数量为3,确认Block-X获得的预提交数量超过了提交阈值2。设节点D也接收到来自节点A、节点B和节点C三个预提交信息,再结合节点D自己的预提交信息统计得到Block-X获得的预提交数量为3,确认Block-X获得的预提交数量超过了提交阈值2。

经过上述三个共识阶段,如果待共识的目标区块所获得的预投票数量超过数量阈值,同时所获得的预提交数量超过提交阈值,则该待共识的目标区块共识成功,可以被添加至区块链上;否则共识失败,不能被添加至区块链上。按照上述示例,节点A确认Block-X所获得的预提交数量超过提交阈值,但所获得的预投票数量并未超过数量阈值,因此认定Block-X共识失败。节点B确认Block-X所获得的预投票数量超过数量阈值,但所获得的预提交数量并未超过提交阈值,因此认定Block-X共识失败。节点C确认Block-X所获得的预投票数量超过数量阈值,但所获得的预提交数量并未超过提交阈值,因此认定Block-X共识失败。节点D确认Block-X所获得的预投票数量超过数量阈值,并且所获得的预提交数量超过提交阈值,因此认定Block-X共识成功,节点D将Block-X添加至节点D本地存储的区块链上。

综上,在区块链的区块高度为H的第N-1轮共识过程中,节点A、节点B和节点C并未对Block-X达成共识,未将Block-X写入各自的分布式账本中(即添加至各自本地存储的区块链上),但是节点D对Block-X达成共识,并将Block-X写入自己的分布式账本中,那么节点D本地存储的区块链的区块高度变为H+1;当在区块链的区块高度H的第N轮共识过程中,节点D将不再参与共识,参与共识的节点变更为节点A、节点B和节点C。

需要说明的是,当进行在区块链的区块高度为H的第N轮共识过程时,提案节点可能会发生变化,例如上述例子中在区块链的区块高度为H的第N-1轮共识过程中的提案节点为节点B,而在区块链的区块高度为H的第N轮共识过程可能变更为节点C;然后重新执行上述的三个共识阶段,以完成在区块链的区块高度为H的第N轮共识过程。

基于前述所介绍的区块链技术,本申请的实施例提出了一种区块链系统的体系架构。如图5所示,该区块链系统包括记账节点网络2和业务节点网络1。记账节点网络2包括对数据区块进行共识并将数据区块记录到区块链上的记账节点21(也称为共识节点)。业务节点网络1包括业务节点11,业务节点11可以对记账节点21记录到区块链上的数据区块进行验证,或者可以向记账节点21请求相应的交易数据。

具体而言,业务节点11对记账节点21记录到区块链上的数据区块进行验证可以包括以下步骤:记账节点网络2中的一个记账节点21利用特定于该记账节点21的密钥,基于要添加到区块链上的一个数据区块中所要包括的交易信息,生成签名;记账节点21将交易信息和生成的签名加入数据区块,添加到区块链上;记账节点21将该签名发往业务节点网络1中的业务节点11,业务节点11根据特定于该记账节点21的密钥对该签名进行签名验证,以实现业务节点11对记账节点21记录到区块链上的数据区块进行验证。记账节点网络2中的记账节点21负责向区块链记录数据区块,业务节点网络1中的业务节点11负责见证记账节点21记录的结果。具体地,记账节点21基于要添加到区块链上的一个数据区块中所要包括的交易信息,生成签名,然后将交易信息和生成的签名加入数据区块,进行上链。并将该签名发往业务节点网络1中的业务节点11,使业务节点11根据特定于该记账节点21的密钥对该签名进行签名验证。业务节点网络1中的业务节点11通过验证区块上记账节点21签名可以对全网的交易数据进行见证。记账节点网络2虽然拥有垄断的记账权,但是因为数据区块有了代表记账者身份的数字签名,所以一切行为都是公开可追溯的。如果记账节点21集体作恶,那么业务节点网络1中的全部节点都将保留有具体记账节点21作恶的证据。相比传统中心化系统和私有链,本申请实施例中系统的运转是更加透明的;而相比传统的去中心化方案,本方案是更可控也更便于可监管的。

在本申请的一个实施例中,记账节点网络2和业务节点网络1之间可以通过代理节点12连接,代理节点12可以是业务节点网络1的一个业务节点11,其负责将记账节点21要向业务节点11传递的信息传递给业务节点11。业务节点11是产生各种需上链的交易数据的交易方的终端,也可以是从记账节点网络2中查询交易数据的终端。业务节点11产生的交易数据在通过代理节点12传输至记账节点21,然后经过共识后记录到区块链上,有利于交易数据的统一处理和监管,而业务节点11也可以通过记账节点21经由代理节点12发送来的信息进行交易数据上链的监督和见证,这在某些既需要统一监管、但又怕监管的节点集体作弊因而需要监督的场景中有十分重要的意义。

在图5所示的结构中,业务节点网络1采用P2P(Peer to Peer,对等网络)网络模式。P2P网络是一种在对等者之间分配任务和工作负载的分布式应用架构,是对等计算模型在应用层形成的一种组网或网络形式,即“点对点”或者“端对端”网络。其可以定义为:网络的参与者共享他们所拥有的一部分硬件资源(处理能力、存储能力、网络连接能力、打印机等),这些共享资源通过网络提供服务和内容,能被其它对等节点直接访问而无需经过中间实体。在此网络中的参与者既是资源、服务和内容的提供者,又是资源、服务和内容的获取者。因此,在业务节点网络1中,当代理节点12接收到从记账节点21传递过来的消息后,向周围的业务节点11进行传播,周围的业务节点11接收到该消息,再向其周围的业务节点11传递,达到了该消息在业务节点网络1的每个业务节点11之间的传播。

图6示出了本申请实施例所应用的另一种区块链系统的体系构架。该体系构架与图5中所示的体系构架不同之处在于:在业务节点网络1中没有采取P2P网络模式,而是采取广播网络的模式。具体地,代理节点12在接收到从记账节点21传递过来的消息后,将该消息广播到业务节点网络1中的其它业务节点11。这样,也实现了该消息在业务节点网络1的每个业务节点11之间的传播。

图7示出了本发明实施例所应用的另一种区块链系统的体系构架。该体系构架与图5所示的体系构架不同之处在于:记账节点网络2分成了多个分支记账节点网络2。每个分支记账节点网络2可以负责某一种类型的交易信息的记录。例如,某一企业可能具有供应链金融业务,可能需要将供销过程中产生的合同信息、货款赊欠等信息记录到区块链上,同时该企业还要开具发票,也要把开票信息、发票报销信息等记录到区块链上。这时,为了有利于记账节点21被同一部门监管的需要,可能记录供应链金融业务交易的记账节点21和记录发票流转过程中的交易的记账节点21要分属于不同部门。例如,记录供应链金融业务交易的记账节点21是银行设置的记账终端,而记录发票流转过程中的交易的记账节点21是国税局设置的记账终端。而供应链金融业务交易和记录发票流转过程中的交易可能也最终会记录在不同分支的记账节点网络2上。这时,代理节点12要根据从业务节点11发来的交易信息中携带的交易类型,将该交易信息发送到与该交易类型对应的分支记账节点网络2中。

需要说明的是,在图5至图7所示的区块链系统的体系构架中,代理节点12位于业务节点网络1中,在本申请的其它实施例中,代理节点12也可以位于记账节点网络2中,或者独立于业务节点网络1和记账节点网络2。

图5至图7所示的区块链系统的体系架构可以应用在电子发票的应用场景中,以下详细进行阐述:

在本申请的一个实施例中,记账节点网络中的记账节点可以是各个税务总局终端,比如由部署在多个地区的税务总局终端分别作为一个记账节点来构成记账节点网络。业务节点网络中的各个业务节点可以是地方税局终端、开票代理服务商终端、开票企业终端、个人用户终端等。

具体而言,在图8所示的电子发票系统中,可以包括业务层、路由代理层和共识网络(即记账节点网络,以下简称记账网络)层。其中,业务层即为业务节点网络,其中包含了各个业务节点,比如可以是处于税务专网中的地方税局;处于公有云中的开票服务商、报销服务商、企业等;处于私有云中的支付服务商、流转服务商、企业等。路由代理层中包含了代理节点,代理节点提供了路由服务、证书缓存和认证服务、P2P服务等功能,路由代理层起到对业务层和共识网络层的隔离作用,具体参照前述实施例的技术方案。可选地,路由代理层中的代理节点可以处于税务专网中。共识网络(记账网络)层即为记账节点网络,其中包含了多个区块链,当然在本申请的其它实施例中,共识网络(记账网络)层中也可以包含一个区块链。

目前,相关技术中只要具有相应的操作权限即可对数据库进行操作,但是通常会由于操作权限的管理问题导致与操作权限相关的密码被泄露、破解等,在极大程度上降低了数据库中数据的安全性。

基于前述所介绍的区块链技术、区块链系统的体系架构,以及相关技术中数据库中数据安全性较低的问题,本申请的实施例提供了一种基于区块链网络的数据操作方案,主要是在数据库操作的场景中运用区块链技术,以提升对数据库操作的合理控制,保证数据库中数据的安全性。

请参阅图9,图9是本申请涉及的一种实施环境的示意图。该实施环境主要包括请求方901、区块链网络902、数据库操作方903,以及数据库904。可以理解的是,请求方901、区块链网络902、数据库操作方903,以及数据库904之间可以通过有线或者无线网络进行通信。其中:

请求方901是请求对数据库904进行操作的一方,其可以生成对数据库904进行操作的操作指令(也称操作指令的发送方)。请求方901可以通过任意具有对象输入接口的终端设备发送针对数据库904的操作指令。其中,终端设备包括但不限于智能手机、平板电脑、笔记本电脑、台式计算机、智能语音交互设备、智能家电、车载终端、飞行器等,对象输入接口包括但不限于触摸屏、键盘、物理按键、音频拾取装置等。

区块链网络902是接收请求方901发送的针对数据库904的操作指令,并发起针对该操作指令共识的一方,其为前述介绍的区块链网络,在此不再赘述。

数据库操作方903是接收区块链网络902对针对数据库904的操作指令共识成功之后所发送的操作指令,并根据该操作指令对数据库904进行操作的一方,操作包括但不限于增、删、改、查等。数据库操作方903可以通过任意具有对象输入接口的终端设备接收操作指令并发起对数据库904的操作。其中,终端设备包括但不限于智能手机、平板电脑、笔记本电脑、台式计算机、智能语音交互设备、智能家电、车载终端、飞行器等,对象输入接口包括但不限于触摸屏、键盘、物理按键、音频拾取装置等。

数据库904可以是服务器,也可以是终端设备。其中服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和智能平台等基础云计算服务的云服务器。

需要说明的是,数据库904是独立于区块链网络903的数据库,即数据库904是传统的数据库,其与区块链网络903(如前区块链网络903其实质是一个去中心化的数据库)有所不同。

可以理解的是,图9中的区块链网络902可以是前述所介绍的区块链系统体系架构中的共识网络(其包括多个共识节点),请求方901与数据库操作方903则可以是位于前述所介绍的区块链系统体系架构中的业务网络的业务节点。同时图9中的请求方901、区块链网络902、数据库操作方903,以及数据库904的数目仅仅是示意性的,根据实际需要,可以具有任意数量的请求方901、区块链网络902、数据库操作方903,以及数据库904。

在本申请的一个实施例中,基于区块链网络的数据操作方法可以由请求方901执行。示例性地,请求方901发送针对数据库904的操作指令至区块链网络902。

在本申请的一个实施例中,基于区块链网络的数据操作方法可以由区块链网络902执行。示例性地,区块链网络902接收请求方901发送的针对数据库904的操作指令,在区块链网络902中发起针对操作指令的共识过程,得到共识结果,其中如果共识结果表征对操作指令共识成功,则将操作指令发送至数据库操作方903。

在本申请的一个实施例中,基于区块链网络的数据操作方法可以由数据库操作方903执行。示例性地,数据库操作方903接收区块链网络902发送的操作指令,之后对数据库904执行与操作指令相匹配的操作。

图9所示实施例的技术方案可以应用于各种场景中,包括但不限于智慧交通、辅助驾驶、云技术、人工智能等;在实际应用中,可以根据具体应用场景进行相应调整。

示例性地,如果应用于智慧交通或辅助驾驶场景中,请求方901可以是车载终端、导航终端等,数据库904可以是计算机、智能手机、平板、笔记本电脑等。例如车载终端发送针对计算机的操作指令至区块链网络902;相应地,区块链网络902接收车载终端发送的针对计算机的操作指令,之后在区块链网络902中发起针对操作指令的共识过程,得到共识结果,其中如果共识结果表征对操作指令共识成功,则将操作指令发送至数据库操作方903。

示例性地,如果应用于云技术或人工智能场景中,数据库操作方903可以是云服务器。例如云服务器接收区块链网络902发送的针对数据库904的操作指令,之后对数据库904执行与操作指令相匹配的操作。

需要说明的是,在本申请的具体实施方式中,涉及到对象相关的数据,当本申请实施例运用到具体产品或技术中时,需要获得对象许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。

以下对本申请实施例的技术方案的各种实现细节进行详细阐述:

请参阅图10,图10是本申请的一个实施例示出的基于区块链网络的数据操作方法的流程图,该基于区块链网络的数据操作方法可以由区块链网络902来执行。如图10所示,该基于区块链网络的数据操作方法至少包括S1001至S1003,详细介绍如下:

S1001,接收针对指定数据库的操作指令,指定数据库是独立于区块链网络的数据库。

本申请实施例中指定数据库指的是独立于区块链网络的数据库,后文中还涉及到同步数据库,其中同步数据库指的是区块链网络中的数据库,该同步数据库是用于对指定数据库中的数据进行同步。

在本申请的一个实施例中,指定数据库和同步数据库中存储的是普通数据。

在本申请的一个实施例中,指定数据库和同步数据库中存储的是元数据。其中元数据是用来描述数据(即普通数据)的数据,例如对一张数据表中各字段的名称、类型、长度等的描述数据就称为元数据。

本申请实施例中请求方可以在有对指定数据库中的数据进行变更操作(例如增、删、改、查等)的需求时,生成针对指定数据库的操作指令,之后发送针对指定数据库的操作指令至区块链网络;相应地,区块链网络接收请求方发送的针对指定数据库的操作指令。

在本申请的一个实施例中,操作指令中携带有用于对指定数据库中的元数据执行变更操作的结构化查询语言(Structured Query Language,SQL)语句。其中结构化查询语言是数据库的标准查询编程语言,其允许对象在高层数据结构上工作,不要求对象指定对数据的存放方法,也不需要对象了解具体的数据存放方式,具有极大的灵活性和强大的功能。

需要说明的是,操作指令中也可以携带其他用于对指定数据库中的元数据执行变更操作的编程语言,例如还可以是Python语言、PHP(超文本预处理器,HypertextPreprocessor)语言等,在实际应用中,可以根据具体应用场景进行灵活调整。

S1002,在区块链网络中发起针对操作指令的共识过程,得到共识结果。

本申请实施例中区块链网络接收针对指定数据库的操作指令,之后可以在区块链网络中发起针对操作指令的共识过程,得到共识结果。

S1003,若共识结果表征对操作指令共识成功,则将操作指令发送至数据库操作方,以使数据库操作方对指定数据库执行与操作指令相匹配的操作。

本申请实施例中在区块链网络中发起针对操作指令的共识过程,得到的共识结果,之后存在着两种处理情况,其中:

情况一,共识结果表征对操作指令共识成功,则此时可以将操作指令发送至数据库操作方,这样数据库操作方就可以对指定数据库执行与操作指令相匹配的操作。

情况二,共识结果表征对操作指令共识失败,则此时可以不做处理,或者可以生成操作指令对应的拒绝信息,并将拒绝信息发送至数据库操作方,这样数据库操作方就可以确定操作指令被拒绝,不允许执行与操作指令相匹配的操作(其中该方式可以针对于请求方和数据库操作方为同一方的场景中,当然也可以针对于请求方和数据库操作方为不同方的场景中)。

在本申请的一个实施例中,区块链网络还可以对操作指令进行签名,生成针对操作指令的签名信息,并将签名信息与操作指令一并发送至数据库操作方,或者将签名信息与拒绝信息一并发送至数据库操作方,这样数据库操作方就可以根据签名信息对区块链网络进行验证,以明确其身份。

本申请实施例中区块链网络对接收到针对指定数据库的操作指令共识成功之后,才向数据库操作方发送操作指令;这样通过对针对指定数据库的操作指令进行共识,保证了操作指令的安全性,避免了相关技术中由于操作权限的管理不当导致操作权限相关的密码被泄露、破解等造成的操作指令安全性低现象。

在本申请的一个实施例中,提供了另一种基于区块链网络的数据操作方法,该基于区块链网络的数据操作方法可以由区块链网络902(具体可以是区块链网络902中的共识节点)来执行。如图11所示,该基于区块链网络的数据操作方法可以包括S1101至S1102、S1001、S1003。其中,操作指令中携带有用于对指定数据库中的元数据执行变更操作的结构化查询语言语句,区块链网络中包含有与指定数据库进行数据同步的同步数据库。

S1101至S1102详细介绍如下:

S1101,在区块链网络中模拟执行结构化查询语言语句,以对同步数据库中的数据进行变更,生成模拟变更数据。

本申请实施例中共识节点接收到携带有结构化查询语言语句的操作指令,之后共识节点可以在区块链网络中模拟执行结构化查询语言语句,以对同步数据库中的数据进行变更,生成模拟变更数据。

本申请实施例中模拟执行结构化查询语言语句指的是不是真实地执行结构化查询语言语句,而只是一个模拟执行结构化查询语言语句的操作。可以理解的是,模拟执行结构化查询语言语句,是模拟对同步数据库中的数据进行变更,得到的是模拟变更数据。

举例说明,例如设结构化查询语言语句为update table1 SET性别='男'wherename='小唐'(表征更新表1中对象小唐的性别为男),且同步数据库中表1对应的对象小唐的性别字段值为女;则共识节点可以在区块链网络中模拟执行update table1 SET性别='男'where name='小唐',生成对象小唐的性别字段值由女变更为男这一模拟变更数据。

S1102,根据模拟变更数据生成第一区块,并发起针对第一区块的共识过程,得到共识结果。

本申请实施例中共识节点在区块链网络中模拟执行结构化查询语言语句,生成模拟变更数据,之后可以根据模拟变更数据生成第一区块,并发起针对第一区块的共识过程,得到共识结果。其中发起针对第一区块的共识过程请参见前述详细介绍,在此不再赘述。

举例说明,例如承接前述示例,根据对象小唐的性别字段值由女变更为男这一模拟变更数据生成第一区块,并发起针对第一区块的共识过程,得到共识结果。

在本申请的一个实施例中,如果针对第一区块的共识通过,共识节点可以对第一区块进行上链处理,即将第一区块添加到区块链上,其中该区块链可以是任意区块链。

需要说明的是,图11所示中S1001、S1003的详细介绍请参见图10所示的S1001、S1003,在此不再赘述。

本申请实施例中共识节点采用在区块链网络中模拟执行结构化查询语言语句,并生成模拟变更数据所对应的区块进行共识,简单便捷地实现了对操作指令的共识过程,为后期决策是否发送操作指令至数据库操作方提供了支持。

在本申请的一个实施例中,提供了另一种基于区块链网络的数据操作方法,该基于区块链网络的数据操作方法可以由区块链网络902(具体可以是区块链网络902中的共识节点)来执行。如图12所示,该基于区块链网络的数据操作方法在S1003之后可以包括S1201至S1202。

S1201至S1202详细介绍如下:

S1201,接收数据库操作方返回的执行结果,执行结果是数据库操作方对指定数据库中的数据执行与操作指令相匹配的操作之后所生成的。

本申请实施例中共识节点将操作指令发送至数据库操作方,进而数据库操作方对指定数据库执行与操作指令相匹配的操作,并生成相应的执行结果返回至共识节点;相应地,共识节点接收数据库操作方返回的执行结果。

S1202,若执行结果表征对指定数据库中的数据执行操作成功,则在同步数据库中执行结构化查询语言语句,以对同步数据库中的数据进行变更,生成真实变更数据。

如前述实施例所介绍,共识节点是模拟执行的结构化查询语言语句,其并未真正对同步数据库中的数据进行变更;因此,如果执行结果表征数据库操作方对指定数据库中的数据执行操作成功,则为了保持同步数据库中的数据与指定数据库中的数据的一致性,此时共识节点需要在同步数据库中执行结构化查询语言语句,即真正对同步数据库中的数据进行变更,生成真实变更数据。

举例说明,例如承接前述示例,设数据库操作方成功将表1中对象小唐的性别字段值由女变更为男,共识节点接收到其返回的执行成功结果;则共识节点可以在同步数据库中执行update table1 SET性别='男'where name='小唐',以将同步数据库中表1中对象小唐的性别字段值进行变更,生成对象小唐的性别字段值由女变更为男这一真实变更数据。

需要说明的是,图12所示中S1101至S1102的详细介绍请参见图11所示的S1101至S1102,图12所示中S1001、S1003的详细介绍请参见图10所示的S1001、S1003,在此不再赘述。

本申请实施例中共识节点先在区块链网络中模拟执行结构化查询语言语句,并生成模拟变更数据所对应的区块进行共识,实现对操作指令的共识过程,并在数据库操作方对指定数据库中的数据执行与操作指令相匹配的操作成功之后,再在同步数据库中执行结构化查询语言语句,以对同步数据库中的数据进行变更;这样采用先模拟执行后真实执行的两步执行方式,保证了链上(即同步数据库)中的数据和链下(即指定数据库)中的数据的一致性,避免了先在链上对同步数据库中的数据进行了变更,但是由于数据库操作方宕机或者链下的指定数据库宕机而导致对指定数据库中的数据变更失败的现象。

在本申请的一个实施例中,提供了另一种基于区块链网络的数据操作方法,该基于区块链网络的数据操作方法可以由区块链网络902(具体可以是区块链网络902中的共识节点)来执行。如图13所示,该基于区块链网络的数据操作方法在S1202之后可以包括S1301至S1302。

S1301至S1302详细介绍如下:

S1301,根据真实变更数据生成第二区块,并发起针对第二区块的共识过程。

如前述实施例所介绍,如果执行结果表征对指定数据库中的数据执行操作成功,则共识节点可以在同步数据库中执行结构化查询语言语句,以对同步数据库中的数据进行变更,生成真实变更数据,之后可以根据真实变更数据生成第二区块,并发起针对第二区块的共识过程。

举例说明,例如承接前述示例,根据对象小唐的性别字段值由女变更为男这一真实变更数据生成第二区块,并发起针对第二区块的共识过程。

S1302,若针对第二区块的共识通过,则对第二区块进行上链处理。

本申请实施例中如果针对第二区块的共识通过,共识节点可以对第二区块进行上链处理,即将第二区块添加到区块链上,其中该区块链可以是任意区块链。

需要说明的是,图13所示中S1201至S1202的详细介绍请参见图12所示的S1201至S1202,图13所示中S1101至S1102的详细介绍请参见图11所示的S1101至S1102,图13所示中S1001、S1003的详细介绍请参见图10所示的S1001、S1003,在此不再赘述。

本申请实施例中共识节点在同步数据库中执行结构化查询语言语句,并对所得到的真实变更数据所对应的区块进行上链处理,保证了对指定数据库操作的可追溯,便于后期对指定数据库操作的管理等,可应用于诸多场景中。

在本申请的一个实施例中,提供了另一种基于区块链网络的数据操作方法,该基于区块链网络的数据操作方法可以由区块链网络902(具体可以是区块链网络902中的共识节点)来执行。如图14所示,该基于区块链网络的数据操作方法可以包括S1401至S1402、S1001、S1003。其中,操作指令中携带有用于对指定数据库中的元数据执行变更操作的结构化查询语言语句,区块链网络中包含有与指定数据库进行数据同步的同步数据库。

S1401至S1402详细介绍如下:

S1401,在同步数据库中执行结构化查询语言语句,以对同步数据库中的数据进行变更,生成真实变更数据。

本申请实施例中共识节点接收到携带有结构化查询语言语句的操作指令,之后共识节点可以在同步数据库中执行结构化查询语言语句,以对同步数据库中的数据进行变更,生成真实变更数据。

举例说明,例如设结构化查询语言语句为update table1 SET性别='男'wherename='小唐'(即表征更新表1中对象小唐的性别为男),且同步数据库中表1对应的对象小唐的性别字段值为女;则共识节点可以在同步数据库中执行update table1 SET性别='男'where name='小唐',以将同步数据库中表1中对象小唐的性别字段值进行变更,生成对象小唐的性别字段值由女变更为男这一真实变更数据。

S1402,根据真实变更数据生成第三区块,并发起针对第三区块的共识过程,得到共识结果。

本申请实施例中共识节点在同步数据库中执行结构化查询语言语句,以对同步数据库中的数据进行变更,生成真实变更数据,之后可以根据真实变更数据生成第三区块,并发起针对第三区块的共识过程,得到共识结果。其中发起针对第三区块的共识过程请参见前述详细介绍,在此不再赘述。

举例说明,例如承接前述示例,根据对象小唐的性别字段值由女变更为男这一真实变更数据生成第三区块,并发起针对第三区块的共识过程。

在本申请的一个实施例中,如果针对第三区块的共识通过,共识节点可以对第三区块进行上链处理,即将第三区块添加到区块链上,其中该区块链可以是任意区块链。

需要说明的是,图14所示中S1001、S1003的详细介绍请参见图10所示的S1001、S1003,在此不再赘述。

本申请实施例中共识节点采用在同步数据库中执行结构化查询语言语句,并生成真实变更数据所对应的区块进行共识,简单便捷地实现了对操作指令的共识过程,为后期决策是否发送操作指令至数据库操作方提供了支持。

在本申请的一个实施例中,提供了另一种基于区块链网络的数据操作方法,该基于区块链网络的数据操作方法可以由区块链网络902(具体可以是区块链网络902中的共识节点)来执行。如图15所示,该基于区块链网络的数据操作方法可以包括S1501至S1502、S1001、S1003。

S1501至S1502详细介绍如下:

S1501,对操作指令的发送方进行权限检测,得到权限检测结果。

本申请实施例中共识节点接收到针对指定数据库的操作指令,之后可以对操作指令的发送方(即请求方)进行权限检测,得到权限检测结果;即检测操作指令的发送方是否具有对指定数据库操作的相应权限。

在本申请的一个实施例中,操作指令中携带有用于对指定数据库中的数据执行变更操作的结构化查询语言语句,指定数据库中的数据为元数据;S1501中对操作指令的发送方进行权限检测,得到权限检测结果的过程,可以包括至少以下步骤:

获取操作指令的发送方的标识信息,以及获取结构化查询语言语句中所含有的待执行变更的元数据所属的元数据集合;

根据预设标识与元数据集合的映射关系、标识信息,以及元数据集合,对操作指令的发送方进行权限检测,得到权限检测结果。

其中,可选实施例中预置有预设标识与元数据集合的映射关系,请参见表1所示,为一种示例的预设标识与元数据集合的映射关系。

表1

也即,可选实施例中共识节点可以获取操作指令的发送方的标识信息,以及获取结构化查询语言语句中所含有的待执行变更的元数据所属的元数据集合,之后根据预设标识与元数据集合的映射关系、标识信息,以及元数据集合,实现对操作指令的发送方的权限检测,得到权限检测结果。

举例说明,例如设获取到操作指令的发送方为发送方1,且待执行变更的元数据所属的元数据集合为元数据集合K2,根据表1可知发送方1具有对元数据集合K2中元数据操作的权限,得到权限检测通过结果。或者设获取到操作指令的发送方为发送方1,且待执行变更的元数据所属的元数据集合为元数据集合K3,根据表1可知发送方1不具有对元数据集合K3中元数据操作的权限,得到权限检测未通过结果。

S1502,若权限检测结果表征对操作指令的发送方的权限检测通过,则在区块链网络中发起针对操作指令的共识过程,得到共识结果。

本申请实施例中共识节点对操作指令的发送方进行权限检测,得到权限检测结果,之后存在着两种处理情况,其中:

情况一,权限检测结果表征对操作指令的发送方的权限检测通过,则此时可以在区块链网络中发起针对操作指令的共识过程,得到共识结果。

情况二,权限检测结果表征对操作指令的发送方的权限检测未通过,则此时可以不做处理,即不在区块链网络中发起针对操作指令的共识过程,得到共识结果。

需要说明的是,图15所示中S1001、S1003的详细介绍请参见图10所示的S1001、S1003,在此不再赘述。

本申请实施例中共识节点在对操作指令的发送方进行权限检测通过之后,才触发发起针对操作指令的共识过程,进一步提升了操作指令的安全性,从而进一步提升了数据库中数据的安全性。

在本申请的一个实施例中,提供了另一种基于区块链网络的数据操作方法,该基于区块链网络的数据操作方法可以由区块链网络902(具体可以是区块链网络902中的共识节点)来执行。如图16所示,该基于区块链网络的数据操作方法可以包括S1601至S1602、S1001、S1003。其中,操作指令中携带有用于对指定数据库中的数据执行变更操作的结构化查询语言语句。

S1601至S1602详细介绍如下:

S1601,对结构化查询语言语句进行语法检测,得到语法检测结果。

本申请实施例中共识节点接收到针对指定数据库的操作指令,之后可以对结构化查询语言语句进行语法检测,得到语法检测结果;即检测结构化查询语言语句本身是否存在语法错误,其中语法错误包括但不限于拼写错误(某个单词拼写错误)、逻辑错误(待执行变更的元数据所属的元数据集合不存在)等。

在本申请的一个实施例中,区块链网络中包含有与指定数据库进行数据同步的同步数据库,指定数据库和同步数据库中的数据为元数据;S1601中对结构化查询语言语句进行语法检测,得到语法检测结果的过程,可以包括至少以下步骤:

对结构化查询语言语句进行语义分析,得到结构化查询语言语句中所含有的待执行变更的元数据所属的元数据集合;

根据元数据集合以及同步数据库中的元数据集合,对结构化查询语言语句进行语法检测,得到语法检测结果。

其中,可选实施例中同步数据库中存储有一个或多个元数据集合,请参见表2所示,为一种示例的同步数据库所存储的元数据集合。

表2

也即,可选实施例中共识节点可以通过对结构化查询语言语句进行语义分析,得到结构化查询语言语句中所含有的待执行变更的元数据所属的元数据集合,之后根据元数据集合以及同步数据库中的元数据集合,对结构化查询语言语句进行语法检测,得到语法检测结果。

举例说明,例如设得到待执行变更的元数据所属的元数据集合为元数据集合K2,根据表2可知所得到的元数据集合K2与同步数据库中的元数据集合K2相匹配,得到语法检测通过结果。或者设得到待执行变更的元数据所属的元数据集合为元数据集合K6,根据表2可知所得到的元数据集合K6与同步数据库中的元数据集合K1、K2、K3均不匹配,得到语法检测未通过结果。

S1602,若语法检测结果表征对结构化查询语言语句的语法检测通过,则在区块链网络中根据结构化查询语言语句发起针对变更操作的共识,得到共识结果。

本申请实施例中共识节点对结构化查询语言语句进行语法检测,得到语法检测结果,之后存在着两种处理情况,其中:

情况一,权限检测结果表征对结构化查询语言语句的语法检测通过,则此时可以在区块链网络中发起针对操作指令的共识过程,得到共识结果。

情况二,权限检测结果表征对结构化查询语言语句的语法检测未通过,则此时可以不做处理,即不在区块链网络中发起针对操作指令的共识过程,得到共识结果。

本申请实施例中在区块链网络中发起针对操作指令的共识过程,得到共识结果,可以是在区块链网络中根据结构化查询语言语句发起针对变更操作的共识,从而得到共识结果。

需要说明的是,图16所示中S1001、S1003的详细介绍请参见图10所示的S1001、S1003,在此不再赘述。

本申请实施例中共识节点在对结构化查询语言语句的进行语法检测通过之后,才触发发起针对操作指令的共识过程,在一定程度上节省了共识节点的资源消耗,避免了由于结构化查询语言语句的语法错误所导致的进行不必要的共识过程的现象。

需要说明的是,图10至图16所示实施例是从区块链网络的角度进行的阐述,以下结合图17至图19从数据库操作方的角度对本申请实施例的技术方案的实现细节进行详细阐述:

请参阅图17,图17是本申请的一个实施例示出的基于区块链网络的数据操作方法的流程图,该基于区块链网络的数据操作方法可以由数据库操作方903来执行。如图17所示,该基于区块链网络的数据操作方法至少包括S1701至S1702,详细介绍如下:

S1701,接收区块链网络发送的操作指令;其中,操作指令是区块链网络对接收到针对指定数据库的操作指令共识成功之后发送的。

本申请实施例中区块链网络对接收到针对指定数据库的操作指令共识成功之后向数据库操作方发送操作指令;相应地,数据库操作方接收区块链网络发送的操作指令。

S1702,对指定数据库执行与操作指令相匹配的操作。

本申请实施例中数据库操作方接收区块链网络发送的操作指令,之后可以对述指定数据库执行与操作指令相匹配的操作。

在本申请的一个实施例中,操作指令中携带有用于对指定数据库中的元数据执行变更操作的结构化查询语言语句。其中结构化查询语言是数据库的标准查询编程语言,其允许对象在高层数据结构上工作,不要求对象指定对数据的存放方法,也不需要对象了解具体的数据存放方式,具有极大的灵活性和强大的功能。

需要说明的是,操作指令中也可以携带其他用于对指定数据库中的元数据执行变更操作的编程语言,例如还可以是Python语言、PHP语言等,在实际应用中,可以根据具体应用场景进行灵活调整。

本申请实施例中由于操作指令是区块链网络对接收到针对指定数据库的操作指令共识成功之后所发送的,操作指令的安全性较高,因此数据库操作方根据安全性较高的操作指令对数据库执行与之相匹配的操作,提升了数据库中数据的安全性,实现了对数据库操作的合理控制。

在本申请的一个实施例中,提供了另一种基于区块链网络的数据操作方法,该基于区块链网络的数据操作方法可以由数据库操作方903来执行。来执行。如图18所示,该基于区块链网络的数据操作方法可以包括S1801至S1802、S1701。其中,操作指令中携带有用于对指定数据库中的元数据执行变更操作的结构化查询语言语句。

S1801至S1802详细介绍如下:

S1801,从操作指令中获取结构化查询语句。

本申请实施例中数据库操作方接收到区块链网络发送的携带有结构化查询语言语句的操作指令,之后可以从操作指令中获取结构化查询语句。

S1802,在指定数据库中执行结构化查询语句,以对指定数据库中的数据进行变更。

本申请实施例中数据库操作方在指定数据库中执行结构化查询语句,以对指定数据库中的数据进行变更。

举例说明,例如设接收到的操作指令中携带有结构化查询语言语句,且结构化查询语言语句为update table1 SET性别='男'where name='小唐';则数据库操作方可以在指定数据库中执行update table1 SET性别='男'where name='小唐',以将指定数据库中表1中对象小唐的性别字段值进行变更。

需要说明的是,图18所示中S1701的详细介绍请参见图17所示的S1701,在此不再赘述。

本申请实施例中数据操作方从操作指令中获取结构化查询语言语句,并在指定数据库中执行结构化查询语句,简单便捷地实现了指定数据库的操作。

在本申请的一个实施例中,提供了另一种基于区块链网络的数据操作方法,该基于区块链网络的数据操作方法可以由数据库操作方903来执行。来执行。如图19所示,该基于区块链网络的数据操作方法可以包括S1901至S1902、S1701。其中,操作指令中携带有用于对指定数据库中的元数据执行变更操作的结构化查询语言语句。

S1901至S1902详细介绍如下:

S1901,接收区块链网络发送的针对操作指令的签名信息。

本申请实施例中区块链网络对接收到针对指定数据库的操作指令共识成功之后可以对操作指令进行签名生成签名信息,之后向数据库操作方发送签名信息和操作指令;相应地,数据库操作方可以接收区块链网络发送的签名信息和操作指令。

S1902,根据指定密钥对签名信息进行验证,若验证通过,则对指定数据库执行与操作指令相匹配的操作。

本申请实施例中数据库操作方接收到区块链网络发送的签名信息和操作指令,之后就可以根据指定密钥对签名信息进行验证,其中如果对签名信息的验证通过,则此时可以对指定数据库执行与操作指令相匹配的操作,如果对签名信息的验证未通过,则此时可以不做处理,即不对指定数据库执行与操作指令相匹配的操作。

可以理解的是,数据库操作方对签名信息进行验证所利用的指定密钥和区块链网络对操作指令进行签名的所利用的指定密钥相匹配。

需要说明的是,图19所示中S1701的详细介绍请参见图17所示的S1701,在此不再赘述。

本申请实施例中数据操作方在共识节点的签名信息验证通过之后,才触发对指定数据库执行与操作指令相匹配的操作,进一步提升了数据库中数据的安全性,避免了作恶节点对操作指令篡改等的现象。

以下对本申请实施例的一个具体场景进行详细说明:

请参阅图20,主要包含了请求方(可以为客户端)、区块链网络(即共识网络,也称核心网络)、数据库操作方(可以为位于业务网络中的轻量节点)以及独立于区块链网络的数据库(即指定数据库);其中:

请求方,主要用于生成针对指定数据库的操作指令,并通过核心网络入口将针对指定数据库的操作指令发送至核心网络。

区块链网络,主要用于接收请求方发送的针对指定数据库进行操作的操作指令,发起针对该操作指令的共识过程,并在对操作指令共识成功之后,将操作指令发送至数据库操作方。其可以包括多个共识节点,其中每个共识节点对应一个同步数据库,同步数据库是用于对指定数据库中的数据进行数据同步。可选地,同步数据库中存储的是元数据。

数据库操作方,主要用于接收区块链网络对针对指定数据库的操作指令共识成功之后所发送的操作指令,并对指定数据库执行与操作指令相匹配的操作。其具体可以为Applier SPV(Simplified Payment Verification,简单支付验证),可以理解的是,其主要目的是确认交易支付是否被验证过(即交易是否已经得到区块链中的节点共识验证),以及计算得到了多少确认数(即得到多少次确认)。

指定数据库,主要用于存储元数据,相应地,同步数据库中也存储元数据。

请再参阅图20,该基于核心网络的数据操作方法至少包括S2001至S2005,详细介绍如下:

S2001,请求方发送针对指定数据库的操作指令至核心网络。

S2002,核心网络接收请求方发送的针对指定数据库的操作指令,并在核心网络中发起针对操作指令的共识过程,得到共识结果,如果共识结果表征对操作指令共识成功,则对操作指令进行签名,生成签名信息,并将签名信息和操作指令发送至请求方。

可选地,操作指令中携带有用于对指定数据库中的数据执行变更操作的结构化查询语言语句,核心网络在核心网络中模拟执行结构化查询语言语句,以对同步数据库中的数据进行变更,生成模拟变更数据;根据模拟变更数据生成第一区块,并发起针对第一区块的共识过程,得到共识结果。

S2003,请求方接收核心网络发送的签名信息和操作指令,并将签名信息和操作指令转发给数据库操作方。

S2004,数据库操作方接收请求方发送的签名信息和操作指令,并根据指定密钥对签名信息进行验证,如果验证通过,则对指定数据库执行与操作指令相匹配的操作,之后将执行结果返回至核心网络。

S2005,核心网络接收数据库操作方发送的执行结果。

可选地,如果执行结果表征对指定数据库中的数据执行操作成功,则核心网络在同步数据库中执行结构化查询语言语句,以对同步数据库中的数据进行变更,生成真实变更数据,之后根据真实变更数据生成区块,并发起针对该区块的共识过程,如果针对该区块的共识通过,则对该区块进行上链处理。

本申请实施例中核心网络采用先模拟执行后真实执行的两步执行方式,保证了链上(即同步数据库)中的数据和链下(即指定数据库)中的数据的一致性;同时对真实执行所对应的区块进行了上链处理,保证了对指定数据库操作的可追溯,便于后期对指定数据库操作的管理等,可应用于诸多场景中。

图21是本申请的一个实施例示出的基于区块链网络的数据操作装置的框图。如图21所示,该基于区块链网络的数据操作装置应用于区块链网络,装置包括:

接收模块2101,配置为接收针对指定数据库的操作指令,指定数据库是独立于区块链网络的数据库;

共识模块2102,配置为在区块链网络中发起针对操作指令的共识过程,得到共识结果;

发送模块2103,配置为若共识结果表征对操作指令共识成功,则将操作指令发送至数据库操作方,以使数据库操作方对指定数据库执行与操作指令相匹配的操作。

在本申请的一个实施例中,操作指令中携带有用于对指定数据库中的数据执行变更操作的结构化查询语言语句,区块链网络中包含有与指定数据库进行数据同步的同步数据库;共识模块2102,具体配置为:

在区块链网络中模拟执行结构化查询语言语句,以对同步数据库中的数据进行变更,生成模拟变更数据;

根据模拟变更数据生成第一区块,并发起针对第一区块的共识过程,得到共识结果。

在本申请的一个实施例中,共识模块2102,还具体配置为:

接收数据库操作方返回的执行结果,执行结果是数据库操作方对指定数据库中的数据执行与操作指令相匹配的操作之后所生成的;

若执行结果表征对指定数据库中的数据执行操作成功,则在同步数据库中执行结构化查询语言语句,以对同步数据库中的数据进行变更,生成真实变更数据。

在本申请的一个实施例中,共识模块2102,还具体配置为:

根据真实变更数据生成第二区块,并发起针对第二区块的共识过程;

若针对第二区块的共识通过,则对第二区块进行上链处理。

在本申请的一个实施例中,操作指令中携带有用于对指定数据库中的数据执行变更操作的结构化查询语言语句,区块链网络中包含有与指定数据库进行数据同步的同步数据库;共识模块2102,具体配置为:

在同步数据库中执行结构化查询语言语句,以对同步数据库中的数据进行变更,生成真实变更数据;

根据真实变更数据生成第三区块,并发起针对第三区块的共识过程,得到共识结果。

在本申请的一个实施例中,共识模块2102,具体配置为:

对操作指令的发送方进行权限检测,得到权限检测结果;

若权限检测结果表征对操作指令的发送方的权限检测通过,则在区块链网络中发起针对操作指令的共识过程,得到共识结果。

在本申请的一个实施例中,操作指令中携带有用于对指定数据库中的数据执行变更操作的结构化查询语言语句,指定数据库中的数据为元数据;共识模块2102,还具体配置为:

获取操作指令的发送方的标识信息,以及获取结构化查询语言语句中所含有的待执行变更的元数据所属的元数据集合;

根据预设标识与元数据集合的映射关系、标识信息,以及元数据集合,对操作指令的发送方进行权限检测,得到权限检测结果。

在本申请的一个实施例中,操作指令中携带有用于对指定数据库中的数据执行变更操作的结构化查询语言语句;共识模块2102,具体配置为:

对结构化查询语言语句进行语法检测,得到语法检测结果;

若语法检测结果表征对结构化查询语言语句的语法检测通过,则在区块链网络中根据结构化查询语言语句发起针对变更操作的共识,得到共识结果。

在本申请的一个实施例中,区块链网络中包含有与指定数据库进行数据同步的同步数据库,指定数据库和同步数据库中的数据为元数据;共识模块2102,还具体配置为:

对结构化查询语言语句进行语义分析,得到结构化查询语言语句中所含有的待执行变更的元数据所属的元数据集合;

根据元数据集合以及同步数据库中的元数据集合,对结构化查询语言语句进行语法检测,得到语法检测结果。

图22是本申请的一个实施例示出的基于区块链网络的数据操作装置的框图。如图22所示,该基于区块链网络的数据操作装置应用于数据操作方,装置包括:

接收模块2201,配置为接收区块链网络发送的操作指令;其中,操作指令是区块链网络对接收到针对指定数据库的操作指令共识成功之后发送的;

执行模块2202,配置为对指定数据库执行与操作指令相匹配的操作。

在本申请的一个实施例中,操作指令中携带有用于对指定数据库中的数据执行变更操作的结构化查询语言语句;执行模块2202,具体配置为:

从操作指令中获取结构化查询语句;

在指定数据库中执行结构化查询语句,以对指定数据库中的数据进行变更。

在本申请的一个实施例中,执行模块2202,具体配置为:

接收区块链网络发送的针对操作指令的签名信息;

根据指定密钥对签名信息进行验证,若验证通过,则对指定数据库执行与操作指令相匹配的操作。

需要说明的是,前述实施例所提供的装置与前述实施例所提供的方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述。

本申请的实施例还提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得电子设备实现如前的基于区块链网络的数据操作方法。

图23是适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。

需要说明的是,图23示出的电子设备的计算机系统2300仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

如图23所示,计算机系统2300包括中央处理单元(Central Processing Unit,CPU)2301,其可以根据存储在只读存储器(Read-Only Memory,ROM)2302中的程序或者从存储部分2308加载到随机访问存储器(Random Access Memory,RAM)2303中的程序而执行各种适当的动作和处理,例如执行上述实施例中的方法。在RAM 2303中,还存储有系统操作所需的各种程序和数据。CPU 2301、ROM 2302以及RAM 2303通过总线2304彼此相连。输入/输出(Input/Output,I/O)接口2305也连接至总线2304。

以下部件连接至I/O接口2305:包括键盘、鼠标等的输入部分2306;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分2307;包括硬盘等的存储部分2308;以及包括诸如LAN(Local AreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分2309。通信部分2309经由诸如因特网的网络执行通信处理。驱动器2310也根据需要连接至I/O接口2305。可拆卸介质2311,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器2310上,以便于从其上读出的计算机程序根据需要被安装入存储部分2308。

特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分2309从网络上被下载和安装,和/或从可拆卸介质2311被安装。在该计算机程序被中央处理单元(CPU)2301执行时,执行本申请的系统中限定的各种功能。

需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读介质例如可以是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(ErasableProgrammable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不相同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。

本申请的另一方面还提供了一种计算机可读介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前的基于区块链网络的数据操作方法。该计算机可读介质可以是上述实施例中描述的电子设备中所包含的,也可以是单独存在,而未装配入该电子设备中。

本申请的另一方面还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读介质中。计算机设备的处理器从计算机可读介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例中提供的基于区块链网络的数据操作方法。

上述内容,仅为本申请的较佳示例性实施例,并非用于限制本申请的实施方案,本领域普通技术人员根据本申请的主要构思和精神,可以十分方便地进行相应的变通或修改,故本申请的保护范围应以权利要求书所要求的保护范围为准。

技术分类

06120116523671