数据存储的控制方法、装置、服务器及可读存储介质与流程

文档序号:16783439发布日期:2019-02-01 19:17阅读:200来源:国知局
数据存储的控制方法、装置、服务器及可读存储介质与流程

本说明书实施例涉及区块链技术领域,尤其涉及一种数据存储的控制方法、装置、服务器及可读存储介质。



背景技术:

区块链技术也称为分布式账本技术,是一种分布式互联网数据库技术。基于区块链技术构建的网络可以称为区块链网络,在该区块链网络中包含网络节点(区块链节点),每一个节点对应至少一个区块链,每一个区块链上至少包含一个区块。区块链网络具备去中心化、公开透明、不可篡改、可信任等特点。



技术实现要素:

本说明书实施例提供一种数据存储的控制方法、装置、服务器及可读存储介质。

第一方面,本说明书实施例提供一种数据存储的控制方法,用于针对区块链系统对非即时数据的存储进行控制,所述方法包括:接收非即时数据,并对非即时数据进行验证;在所述验证通过后,将所述非即时数据存储至所述区块链系统的数据库中;对所述非即时数据进行共识处理,根据共识处理结果确定异常数据,并针对所述异常数据在所述数据库的存储进行管理。

第二方面,本说明书实施例提供一种数据存储的控制装置,用于针对区块链系统对非即时数据的存储进行控制,所述装置包括:数据接收单元,用于接收非即时数据;验证单元,用于对非即时数据进行验证;存储控制单元,用于在所述验证通过后,将所述非即时数据存储至所述区块链系统的数据库中;共识单元,用于对非即时数据进行共识处理;异常数据确定单元,用于根据共识处理结果确定异常数据;异常管理单元,用于对所述异常数据在所述数据库的存储进行管理。

第三方面,本说明书实施例提供一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一项所述方法的步骤。

第四方面,本说明书实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一项所述方法的步骤。

本说明书实施例有益效果如下:

本说明书实施例中,为了保证达到高效存储、提升系统吞吐量的目的,在验证完成之后,立即启动将非即时数据存储至数据库的操作,而不是等待其他操作(例如共识处理、虚拟机处理等)完成后才进行存储,这种打破原有的从共识排序到数据落盘写入顺序的方式,可达成高效的集群系统逻辑并行,从而显著提升系统吞吐量,尤其适用于分布式架构的联盟链。

附图说明

图1为本说明书实施例的数据存储的控制方法应用场景示意图;

图2本说明书实施例第一方面的数据存储的控制方法流程图;

图3本说明书实施例第一方面的数据存储的控制方法实例示意图;

图4本说明书实施例第二方面的数据存储的控制装置结构示意图;

图5本说明书实施例第三方面的服务器结构示意图。

具体实施方式

为了更好的理解上述技术方案,下面通过附图以及具体实施例对本说明书实施例的技术方案做详细的说明,应当理解本说明书实施例以及实施例中的具体特征是对本说明书实施例技术方案的详细的说明,而不是对本说明书技术方案的限定,在不冲突的情况下,本说明书实施例以及实施例中的技术特征可以相互组合。

参见图1,为本说明书实施例数据存储的控制方法应用场景示意图。客户端10与区块链系统20通信,区块链系统20从客户端10接收数据并进行数据上链的操作。

区块链是一种由多方共同维护,使用密码学保证传输和访问安全,能够实现数据一致存储、防篡改、防抵赖的技术体系。典型的区块链是以块链结构实现数据存储的。

区块链上链的数据对即时性的要求程度不同,可区分为即时数据和非即时数据。即时数据一般是指业务数据,例如包括交易处理实时性要求较高的数据;非即时数据可以包括存证数据以及状态描述数据,其中,存证数据是指用于索引业务数据或标记业务数据位置的数据,例如key/value(kv)数据;状态描述数据是指描述业务数据状态信息的数据。

数据上链的过程包括三个阶段:受理阶段、共识阶段和存储阶段。受理阶段可以理解为待上链的数据被区块链网络中的某一区块链节点接收到,并由该区块链节点受理该数据;共识阶段可以理解为区块链节点在受理该数据之后,需要由区块链网络中的其他区块链节点参与对该数据进行共识处理,数据通过共识后,可以进入存储阶段;存储节点可以理解为区块链节点将共识通过的数据进行上链处理。

本说明书实施例提供的数据存储的控制方法,用于针对区块链系统对非即时数据的存储进行控制。

第一方面,本说明书实施例提供一种数据存储的控制方法,用于针对区块链系统对非即时数据的存储进行控制。请参考图2,该数据存储的控制方法包括s201-s205。

s201:接收非即时数据。

如前所述,非即时数据是指对即时性要求不高的数据,包括存证数据和状态描述数据。

以存证数据为例,接收存证数据的具体过程,例如,区块链系统从客户端接收区块链业务数据的存证数据。存证数据可以理解为是用于索引业务数据或标记业务数据位置的数据,例如包括key/value(kv)数据。区块链存证业务是区块链技术中重要的业务形式,旨在对于提交的某类交易数据进行数据归档,后续根据交易哈希提供存在性证明。

s202:对非即时性数据进行验证。

为了保证两个区块链节点之间传输数据的正确性及未更改,需要对数据进行验证。交易哈希(块哈希)是区块链技术中利用特定的哈希算法对交易或区块头进行哈希运算所得的哈希值,常用于检索和验证相关信息。

验证的过程例如包括:

在记录交易的节点(记为:节点001),得到交易信息(包括存证数据,或者还包括其他数据,例如交易数据),计算交易相关信息的哈希值001;“哈希值001+私钥”进行签名运算生成一个签名,对外广播内容为“交易信息+签名”;

在验证交易的节点(记为:节点002),由广播得到上述“交易信息+签名”;通过节点001公钥对签名进行解密得到哈希值001;对交易信息进行哈希计算得到哈希值002;比对哈希值001和哈希值001是否一致,如果一致,则验证通过,如果不一致,则验证不通过。

本说明书实施例中,不论是针对记录交易的节点或验证交易的节点都适用,即,不论哪个节点,只要在验证通过后,即执行步骤s203,立即启动将非即时数据进行存储的操作。

s203:在验证通过后,将非即时数据存储至区块链系统的数据库中。

区块链技术中很核心的一部分是它的账本数据库。传统数据库使用cs(client-server)网络结构。这样,用户可以修改数据。同时,数据库的控制权也在一个中心机构,比如公司或机构,它们对客户端身份验证之后,就会提供对数据库的访问权限,传统的数据库有明显的中心化服务的痕迹。区块链数据库则不同,它由多个分布式去中心化的节点组成。所有节点都参与数据管理,在账本数据库增加任何数据,都得到节点确认,这些账本对于所有节点都是公开和透明的。就像比特币的账本中要增加交易数据,必须取得共识,在节点们确认后才能进入区块。这种共识算法保证了网络的安全,也让它不可篡改。共识的机制除了算力竞争的pow,还是授权证明pos和委托授权证明dpos等。

在一种可选的实现方式中,可通过如下步骤实现对非即时数据的即时存储:

(1)创建异步提交线程;

(2)当验证通过后,立即启动异步提交线程,将非即时数据插入至区块链系统的数据库中。

s204:对非即时数据进行共识处理。

s205:根据共识处理结果确定异常数据,并针对异常数据在数据库的存储进行管理。

由于本说明书实施例没有考虑共识结果而将所有非即时数据存储至数据库,因此,为了保证数据的有效性,可根据共识结果对数据库所存储的共识失败的数据进行管理。

在一种可选方式中,在验证后,在进行非即时数据存储的同时,进行共识处理。后续,根据共识结果,确定异常数据,并对异常数据在数据库的存储进行管理。

共识机制是区块链技术中的一个核心机制。在区块链里,“共识”的意思是参与者就某一区块链状态达成共同的认识。由于区块链是去中心化的,因此任何“决策/状态/改变等”都要所有节点(参与者)一起使用某种机制来达成相同的认识,这就是区块链的共识机制。共识机制也称为共识算法。本说明书实施例中共识算法包括但不限于:工作量证明(pow)、权益证明(pos)、股份授权证明(dpos)、实用拜占庭容错(pbft)、授权拜占庭容错(dbft)等。

为了去除共识失败的异常数据,首先需要根据共识结果确定出异常数据,并将异常数据对应的异常标记信息插入到数据库中;然后,在合适时机(例如数据库空闲时),通过异常标记信息,确定出异常数据并进行删除等操作。

在一种可选方式中,根据共识处理结果确定异常数据,包括:

(1)将共识失败或上链失败的失败区块的非即时数据对应的异常标记信息插入到数据库;

(2)在数据库中,通过异常标记信息确定对应的异常数据。

其中,异常标记信息是指用于标记异常的非即时数据的标志信息,例如包括异常哈希值,或者,异常标记信息除了包括异常哈希值之外,还可以包括失败区块的块高度信息,附加上失败区块的块高度信息的目的在于,可以根据块高度信息来避免广泛域上的哈希碰撞。

在一种可选方式中,对异常数据在数据库的存储进行管理的过程可以是:在区块链系统空闲时,或者在预定时间段内,或者在预定事件触发下,对异常数据进行删除。

例如,可以通过统计系统内存状态确定系统是否储于空闲状态,并预先配置在空闲状态对异常数据进行删除操作;也可以预置异常数据删除时间段,例如,设置一个固定时间段(例如凌晨一段时间)每周清理一次异常数据;或者,在某些特定事件(例如数据库存储能力不足)时,启动对异常数据的删除。

在一种可选方式中,可控制由不同节点分别执行s203(将非即时数据存储至数据库的步骤)和s204(对非即时数据进行共识处理的步骤),这样处理的好处在于,通过将存储及共识的操作分别在不同节点(物理设备)上处理,从而提高处理效率,例如,在节点a进行存储控制的操作,在节点b进行共识处理的操作,由于存储控制与计算机的输入/输出(i/o)性能紧密相关,而共识处理效率与计算机的cpu吞吐量紧密相关,因此可以选择更适合上述两个步骤的物理设备分别进行专门处理,互不影响,提高处理效率。当然,将上述两个步骤放置在同一个物理设备上执行也是可行的。

可见,本说明书实施例中,为了保证达到高效存储、提升系统吞吐量的目的,在数据验证通过之后,立即启动将非即时数据存储至数据库的操作,而不是等待其他操作(例如共识处理、虚拟机处理等)完成后才进行存储,这种打破原有的从共识排序到数据落盘写入顺序的方式,可达成高效的集群系统逻辑并行,从而显著提升系统吞吐量,尤其适用于分布式架构的联盟链。

参见图3,为本说明书实施例第一方面的数据存储控制方法实例示意图。

在该实例中,以区块链系统的分布式kv数据库为例,对存证数据的存储进行说明。分布式kv(key/value)亦称为分布式键值对存储,是指集群式多机维护的kv数据库系统,数据存放在网络各节点上,而非单机kv存储。

首先,在步骤301,区块链系统从客户端接收到存证数据;然后,在步骤302,对存证数据进行验证;在步骤303,将存证数据插入至kv数据库;在步骤303的执行过程中,可同时执行步骤304:对存证数据进行共识处理;步骤305:将共识处理后的数据经过虚拟机进行计算;步骤306:根据异常标记信息更新kv数据库;步骤307:kv数据库根据异常标记信息对异常存证数据进行异步清理,例如,系统空闲时,根据本地异常标记信息,通过实用程序将无效的tx-hash键值对数据从交易数据库中异步进行删除清理。

可见,在该实例中,针对存证业务型交易哈希键值对数据,通过打破正常从共识排序到数据落盘写入顺序的相应技术和方式,在哈希计算后立即异步提交给分布式kv系统进行数据写入,使得本地共识过程和分布式kv数据写入过程同步并行,达成高效的集群系统逻辑并行从而显著提升系统吞吐量性能,对于共识失败的交易存本地文件,后序异步实用程序在系统闲时集中清理数据库;本说明书实施例适用于联盟链区块链系统(permissioned),尤其实用分布式架构的联盟链、区块链系统。

第二方面,基于同一发明构思,本说明书实施例提供一种数据存储的控制装置,用于针对区块链系统对非即时数据的存储进行控制,请参考图4,所述装置包括:

数据接收单元401,用于接收非即时数据;

验证单元402,用于对非即时数据进行验证;

存储控制单元403,用于在所述验证通过后,将所述非即时数据存储至所述区块链系统的数据库中;

共识单元404,用于对非即时数据进行共识处理;

异常数据确定单元405,用于根据共识处理结果确定异常数据;

异常管理单元406,用于对所述异常数据在所述数据库的存储进行管理。在一种可选方式中,还包括:

异步提交线程创建单元407,用于创建异步提交线程;

存储控制单元403通过启动所述异步提交线程,将所述非即时数据插入至所述区块链系统的数据库中。

在一种可选方式中,所述异常数据确定单元405具体用于:将共识失败或上链失败的失败区块的非即时数据对应的异常标记信息插入到所述数据库;以及,在所述数据库中,通过所述异常标记信息确定对应的异常数据。

在一种可选方式中,所述异常标记信息包括异常哈希值,或者,所述异常标记信息包括异常哈希值及失败区块的块高度信息。

在一种可选方式中,所述对异常管理单元406具体用于:在所述区块链系统空闲时,或者在预定时间段内或根据预定事件触发下,对所述异常数据进行删除。

在一种可选方式中,所述存储控制单元403和所述共识单元404分别由不同节点执行。

在一种可选方式中,所述非即时数据包括存证数据或状态描述数据。

第三方面,基于与前述实施例中数据存储控制方法同样的发明构思,本发明还提供一种服务器,如图5所示,包括存储器504、处理器502及存储在存储器504上并可在处理器502上运行的计算机程序,所述处理器502执行所述程序时实现前文所述数据存储的控制方法的任一方法的步骤。

其中,在图5中,总线架构(用总线500来代表),总线500可以包括任意数量的互联的总线和桥,总线500将包括由处理器502代表的一个或多个处理器和存储器504代表的存储器的各种电路链接在一起。总线500还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口506在总线500和接收器501和发送器503之间提供接口。接收器501和发送器503可以是同一个元件,即收发机,提供用于在传输介质上与各种其他装置通信的单元。处理器502负责管理总线500和通常的处理,而存储器504可以被用于存储处理器502在执行操作时所使用的数据。

第四方面,基于与前述实施例中数据存储控制方法的发明构思,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前文所述数据存储的控制方法的任一方法的步骤。

本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本说明书的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本说明书范围的所有变更和修改。

显然,本领域的技术人员可以对本说明书进行各种改动和变型而不脱离本说明书的精神和范围。这样,倘若本说明书的这些修改和变型属于本说明书权利要求及其等同技术的范围之内,则本说明书也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1