区块链数据读写方法、系统、设备及存储介质与流程

文档序号:17641409发布日期:2019-05-11 00:41阅读:425来源:国知局
区块链数据读写方法、系统、设备及存储介质与流程

本发明涉及数据信息技术领域,具体涉及区块链数据读写方法、系统、设备及存储介质。



背景技术:

区块链一般被理解为一个分布式的账本,它实质上也是一个分布式计算和存储系统。区块链有多个节点,不同的节点通过一定的计算规则达成共识,并且将共识后的交易执行结果以区块的形式存储至数据库中,多个区块组成了区块链。存储在数据库中的交易执行结果和节点对应的数据可以统称为区块链数据。

区块链数据的读写频率非常高,区块链数据随着交易量的增加而增多,由于不同节点的计算速度不同,会出现节点之间数据不一致的情形,使得区块链数据的读写效率较低,会对区块链的性能造成影响。



技术实现要素:

有鉴于此,本发明为了在至少一定程度上克服相关技术中存在的问题,提供一种区块链数据读写方法、系统、设备及存储介质。

为解决上述技术问题,本发明采用如下技术方案:

第一方面,提供一种区块链数据读写方法,包括:

接收读写指令,所述读写指令包括:写指令,或者,读指令;

如果所述读写指令为写指令,则将接收的区块链数据分别写入内存数据库和磁盘数据库;

如果所述读写指令为读指令,则先从内存数据库中读取所需数据;

若内存数据库中数据读取失败,则再从磁盘数据库中读取所述所需数据,并将从磁盘数据库中读取的数据写入所述内存数据库。

可选的,还包括:

对所述内存数据库中预设时间内读取次数小于预设次数的数据进行清理。可选的,所述磁盘数据库包括主磁盘数据库,所述主磁盘数据库用于存储数据;

所述将接收的区块链数据写入磁盘数据库,包括:

将接收的区块链数据写入所述主磁盘数据库。

可选的,所述磁盘数据库包括从磁盘数据库,所述从磁盘数据库用于读取数据;

所述从磁盘数据库中读取所述所需数据,包括:

从所述从磁盘数据库中读取所述所需数据。

第二方面,提供一种区块链数据读写系统,包括:内存数据库、磁盘数据库、接口,所述内存数据库和所述磁盘数据库均与所述接口相连接;

所述接口用于在接收到写指令时,将接收的区块链数据分别写入内存数据库和磁盘数据库;以及,在接收到读指令时,先从内存数据库中读取所需数据,若内存数据库中数据读取失败,则再从磁盘数据库中读取所述所需数据,并将从磁盘数据库中读取的数据写入所述内存数据库。

可选的,所述内存数据库,还用于对所述内存数据库中预设时间内读取次数小于预设次数的数据进行清理。

可选的,所述磁盘数据库包括主磁盘数据库和从磁盘数据库;

所述主磁盘数据库,用于写入接收的区块链数据;

所述从磁盘数据库,用于读取所需数据。

第三方面,提供一种区块链数据读写设备,包括:处理器,以及与所述处理器相连接的存储器;

所述存储器用于存储计算机程序;

所述处理器用于调用并执行所述存储器中的所述计算机程序,以执行如第一方面所述的方法。

第四方面,提供一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现如第一方面所述的方法。

本发明采用以上技术方案,可以实现如下技术效果:

本申请中,在接收到写指令时,将接收的区块链数据分别写入内存数据库和磁盘数据库,而在接收到读指令时,先从内存数据库中读取所需数据,若内存数据库中数据读取失败,再从磁盘数据库中读取所述所需数据,并将从磁盘数据库中读取的数据写入所述内存数据库;由于磁盘数据库需要将数据从外设到内存的交换,使得读写速度较慢,而内存数据库是将所有的数据访问控制都在内存中进行,因此,先从内存数据库中读取数据速度更快,提高了区块链数据的读写效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例一提供的区块链数据读写方法的流程示意图;

图2是本发明实施例二提供的区块链数据读写方法的流程示意图;

图3是本发明实施例三提供的区块链数据读写系统的结构示意图;

图4是本发明实施例四提供的区块链数据读写设备的结构示意图。

具体实施方式

为使本发明的目的,技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。

实施例一

图1是本发明实施例一提供的区块链数据读写方法。如图1所示,本实施例提供第一方面,提供一种区块链数据读写方法,包括:

步骤101、接收读写指令,读写指令包括:写指令,或者,读指令;

步骤102、如果读写指令为写指令,则将接收的区块链数据分别写入内存数据库和磁盘数据库;

步骤103、如果读写指令为读指令,则先从内存数据库中读取所需数据;若内存数据库中数据读取失败,则再从磁盘数据库中读取所需数据,并将从磁盘数据库中读取的数据写入内存数据库。

本实施例中,在接收到写指令时,将接收的区块链数据分别写入内存数据库和磁盘数据库,而在接收到读指令时,先从内存数据库中读取所需数据,若内存数据库中数据读取失败,再从磁盘数据库中读取所需数据,并将从磁盘数据库中读取的数据写入内存数据库;由于磁盘数据库需要将数据从外设到内存的交换,使得读写速度较慢,而内存数据库是将所有的数据访问控制都在内存中进行,因此,先从内存数据库中读取数据速度更快,提高了区块链数据的读写效率。

实施例二

图2是本发明实施例二提供的区块链数据读写方法。如图2所示,本实施例提供另一种区块链数据读写方法,包括:

步骤201、接收读写指令,读写指令包括:写指令,或者,读指令;

步骤202、判断接收的指令为何种指令,若读写指令为写指令,则执行步骤203;若读写指令为读指令,则执行步骤204;

步骤203、将接收的区块链数据分别写入内存数据库和磁盘数据库;

在磁盘数据库中,数据的主拷贝在磁盘上,数据库管理系统为了向应用系统提供存取服务,将用户需要访问的数据装入主存中,即对数据的管理是“基于磁盘的缓存技术”。磁盘相对于主存来说是及其低速的存储介质,且磁盘存取速度还和欲存取的数据的物理位置和当前磁头状态有关。另外,管理缓存或缓冲,无论是在操作系统层,还是数据库管理系统层,都需要付出较大的代价(空间和时间,尤其是时间代价)。因此,即使将磁盘数据全部缓存到主存,其管理代价仍较大,存取速度仍然无法满足多数实时性应用系统的要求。

而内存数据库抛弃了磁盘数据管理的传统方式,基于全部数据都在内存中重新设计了体系结构,并且在数据缓存、快速算法、并行操作方面也进行了相应的改进,所以数据处理速度比磁盘数据库的数据处理速度要快很多,一般都在10倍以上。内存数据库的最大特点是其“主拷贝”或“工作版本”常驻内存,即活动事务只与实时内存数据库的内存拷贝打交道。

本步骤中,将接收的区块链数据分别写入内存数据库和磁盘数据库,可以将数据双重存储更加安全。

其中,磁盘数据库包括主磁盘数据库,用于存储数据,上述将接收的区块链数据写入磁盘数据库,即为:将接收的区块链数据写入主磁盘数据库中。

步骤204、从内存数据库中读取所需数据;若内存数据库中数据读取成功,则执行步骤206;若失败,则执行步骤205。

步骤205、从磁盘数据库中读取所需数据,并将从磁盘数据库中读取的数据写入内存数据库。

基于上述对内存数据库和磁盘数据库的描述,内存数据库中,全部数据都存在了内存中,因此,先从内存数据库中读取数据,其速度更快。也就是加快了区块链在读取数据时的速度,提高了区块链数据的读取效率以及区块链的性能。

当在内存数据库中数据读取失败时,再从磁盘数据库中读取,并且,将读取的数据写入内存数据库,如此,在下一次读取该数据时,便可以直接从内存数据库中读取,提高读取效率。

其中,磁盘数据库包括从磁盘数据库,用于读取数据,上述从磁盘数据库中读取所需数据,即为:从从磁盘数据库中读取所需数据。

磁盘数据库包括主磁盘数据库和从磁盘数据库,当区块链数据写入主磁盘数据库进行存储,系统内主磁盘数据库与从磁盘数据库保持区块链数据同步,当节点读取区块链数据时,在从磁盘数据库中读取区块链数据。因为考虑到数据不能在某一瞬间时刻同时进行读写,因此分为主磁盘数据库和从磁盘数据库,即:将一份数据备份到两个磁盘,一个磁盘用于读取,一个磁盘用于写入。

步骤206、对内存数据库中预设时间内读取次数小于预设次数的数据进行清理。

由于内存数据库中的容量有限,因此,设计此步骤及时对内存中的数据进行清理,保留读取次数频繁的数据,以此来提高使用率。可以理解的是,预设时间及预设次数均可以根据实际需求进行设置,例如,预设时间可以为1-7天,预设次数可以为10-100次,优选的,可以每3天对内存数据库中读取次数小于30次的数据进行清理。

实施例三

图3是本发明实施例三提供的区块链数据读写系统。如图3所示,本实施例提供一种区块链数据读写系统,包括:

内存数据库、磁盘数据库、接口,内存数据库和磁盘数据库均与接口相连接;

接口用于在接收到写指令时,将接收的区块链数据分别写入内存数据库和磁盘数据库;以及,在接收到读指令时,先从内存数据库中读取所需数据,若内存数据库中数据读取失败,则再从磁盘数据库中读取所需数据,并将从磁盘数据库中读取的数据写入内存数据库。

可选的,内存数据库,还用于对内存数据库中预设时间内读取次数小于预设次数的数据进行清理。

可选的,磁盘数据库包括主磁盘数据库和从磁盘数据库;

主磁盘数据库,用于写入接收的区块链数据;

从磁盘数据库,用于读取所需数据。

实施例的具体实现方案可以参见前述实施例一和实施例二记载的区块链数据读写方法及方法实施例中的相关说明,此处不再赘述。

实施例四

图4是本发明实施例四提供的区块链数据读写设备。如图4所示,本实施例提供一种区块链数据读写设备,包括:处理器401,以及与处理器相连接的存储器402;

存储器用于存储计算机程序;

处理器用于调用并执行存储器中的计算机程序,以执行如上述区块链数据读写方法中的各步骤。

本实施例的具体实现方案可以参见前述实施例一和实施例二记载的区块链数据读写方法及方法实施例中的相关说明,此处不再赘述。

实施例五

提供一种存储介质,存储介质存储有计算机程序,计算机程序被处理器执行时,实现如上述区块链数据读写方法中的各步骤。

本实施例的具体实现方案可以参见前述实施例一和实施例二记载的区块链数据读写方法及方法实施例中的相关说明,此处不再赘述。

可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。

需要说明的是,在本发明的描述中,术语“第一”,“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是指至少两个。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块,片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。

应当理解,本发明的各部分可以用硬件,软件,固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行装置执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。

在本说明书的描述中,参考术语“一个实施例”,“一些实施例”,“示例”,“具体示例”,或“一些示例”等的描述意指结合该实施例或示例描述的具体特征,结构,材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征,结构,材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化,修改,替换和变型。

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