CN107704196B - 区块链数据存储系统和方法 - Google Patents

区块链数据存储系统和方法 Download PDF

Info

Publication number
CN107704196B
CN107704196B CN201710139269.1A CN201710139269A CN107704196B CN 107704196 B CN107704196 B CN 107704196B CN 201710139269 A CN201710139269 A CN 201710139269A CN 107704196 B CN107704196 B CN 107704196B
Authority
CN
China
Prior art keywords
database
block chain
disk
memory
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.)
Active
Application number
CN201710139269.1A
Other languages
English (en)
Other versions
CN107704196A (zh
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.)
OneConnect Smart Technology Co Ltd
Original Assignee
OneConnect Financial Technology Co Ltd Shanghai
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 OneConnect Financial Technology Co Ltd Shanghai filed Critical OneConnect Financial Technology Co Ltd Shanghai
Priority to CN201710139269.1A priority Critical patent/CN107704196B/zh
Priority to SG11201907619VA priority patent/SG11201907619VA/en
Priority to PCT/CN2018/075496 priority patent/WO2018161760A1/zh
Publication of CN107704196A publication Critical patent/CN107704196A/zh
Application granted granted Critical
Publication of CN107704196B publication Critical patent/CN107704196B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/10Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
    • G06Q20/102Bill distribution or payments

Abstract

本发明涉及一种区块链数据存储系统和方法,所述系统包括:内存数据库和磁盘数据库,其中:所述内存数据库和所述磁盘数据库分别接收区块链节点写入的区块链数据,并对所述区块链数据进行存储;当节点读取区块链数据时,节点先从内存数据库中进行读取,若读取失败,则从所述磁盘数据库中读取区块链数据,并且将读取到的区块链数据同步至内存数据库。采用本系统能够有效提高区块链数据的读写效率。

Description

区块链数据存储系统和方法
技术领域
本发明涉及互联网技术领域,特别是涉及一种区块链数据存储系统和方法。
背景技术
区块链一般被理解为一个分布式的账本,它实质上也是一个分布式计算和存储系统。区块链有多个节点,不同的节点通过一定的计算规则达成共识,并且将共识后的交易执行结果以区块的形式存储至数据库中,多个区块组成了区块链。由于不同节点的计算速度不同,会出现节点之间数据不一致的情形,需要在数据库中读取节点对应的数据进行同步操作。存储在数据库中的交易执行结果和节点对应的数据可以统称为区块链数据。由于区块链数据的读写频率非常高,区块链数据随着交易量的增加而增多。如果区块链数据的读写效率较低,会对区块链的性能造成影响。因此如何有效提高区块链数据的读写效率成为目前需要解决的一个技术问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够有效提高区块链数据读写效率的区块链数据存储系统和方法。
一种区块链数据存储系统,所述系统包括内存数据库和磁盘数据库,其中:
所述内存数据库和所述磁盘数据库分别接收区块链节点写入的区块链数据,并对所述区块链数据进行存储;
当节点读取区块链数据时,节点先从内存数据库中进行读取,若读取失败,则从所述磁盘数据库中读取区块链数据,并且将读取到的区块链数据同步至内存数据库。
在其中一个实施例中,所述系统还包括第一内存映射文件,当区块链数据写入内存数据库失败时,节点获取所述第一内存映射文件,将所述区块链数据写入第一内存映射文件;在所述内存数据库恢复后,节点通过所述第一内存映射文件将所述区块链数据写入内存数据库。
在其中一个实施例中,所述系统还包括第二内存映射文件,当区块链数据写入磁盘数据库失败时,节点获取所述第二内存映射文件,将所述区块链数据写入第二内存映射文件;在所述磁盘数据库恢复后,节点通过所述第二内存映射文件将所述区块链数据写入磁盘数据库。
在其中一个实施例中,所述磁盘数据库包括主磁盘数据库和从磁盘数据库;将所述区块链数据写入主磁盘数据库进行存储,所述主磁盘数据库与所述从磁盘数据库保持区块链数据同步;当节点读取区块链数据时,在所述从磁盘数据库中读取区块链数据。
在其中一个实施例中,所述主磁盘数据库包括多个,所述节点通过磁盘数据库接口层、数据路由、分库分表中间件和主数据库连接池对多个主磁盘数据库进行读写操作。
在其中一个实施例中,所述从磁盘数据库包括多个,所述节点通过磁盘数据库接口层、数据路由、分库分表中间件和从数据库连接池对多个主磁盘数据库进行读操作。
在其中一个实施例中,在节点重启之后,节点先从所述磁盘数据库中读取区块链数据,并将读取到的区块链数据加载至内存数据库中,所述磁盘数据库与所述内存数据库按照预设频率进行同步。
一种区块链数据的存储方法,所述方法应用于区块链的节点,包括以下步骤:
获取区块链数据;
将所述区块链数据分别写入内存数据库和磁盘数据库进行存储;
当读取区块链数据时,先从内存数据库中进行读取,若读取失败,则从所述磁盘数据库中读取区块链数据,并且将读取到的区块链数据同步至内存数据库。
在其中一个实施例中,所述内存数据库具有对应的第一内存映射文件;所述方法还包括:
当区块链数据写入内存数据库失败时,获取所述第一内存映射文件,将所述区块链数据写入第一内存映射文件;
在所述内存数据库恢复后,通过所述第一内存映射文件将所述区块链数据写入内存数据库。
在其中一个实施例中,所述磁盘数据库具有对应的第二内存映射文件,所述方法还包括:
当区块链数据写入磁盘数据库失败时,获取所述第二内存映射文件,将所述区块链数据写入第二内存映射文件;
在所述磁盘数据库恢复后,通过所述第二内存映射文件将所述区块链数据写入磁盘数据库。
上述区块链数据存储系统和方法,由于内存数据库的读写性能较高,节点将区块链数据分别写入内存数据库和磁盘数据库进行存储,能够有效提高区块链数据的存储。由于内存数据库的容量有限,通过磁盘数据库可以对节点的区块链数据提供永久存储。当节点在内存数据库中读取区块链数据失败时,能够通过磁盘数据库进行读取。并且读取到的区块链数据同步至内存数据库,便于下次直接在内存数据库中进行读取,有效提高了读取速度。
附图说明
图1为一个实施例中区块链数据存储系统的框图;
图2为一个实施例中区块链数据存储系统的连接示意图;
图3为一个实施例中区块链数据存储方法的流程图;
图4为一个实施例中终端的框图;
图5为一个实施例中区块链数据存储装置的框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在一个实施例中,如图1所示,提供了一种区块链数据存储系统,包括内存数据库和磁盘数据库,其中:
内存数据库和磁盘数据库分别接收区块链节点写入的区块链数据,并对区块链数据进行存储.
当节点读取区块链数据时,节点先从内存数据库中进行读取,若读取失败,则从磁盘数据库中读取区块链数据,并且将读取到的区块链数据同步至内存数据库。
区块链数据包括交易执行结果和交易日志。区块链的节点在计算得到交易执行结果后,对交易执行结果和交易日志进行存储。传统的方式是节点将交易执行结果和交易日志存入磁盘数据库,但是由于写入磁盘数据库会有延时,如果是高频率的写入磁盘数据库,会对区块链的性能造成影响。
本实施例中,区块链的节点对应的数据库包括内存数据库和磁盘数据库。区块链的节点可以有多个,节点可以是被授权的终端也可以是被授权的服务器。节点对应的数据库可以是针对每个节点分别部署的数据库。
节点通过内存数据库接口层将区块链数据写入至内存数据库,内存数据库对节点写入的区块链数据进行存储。节点通过磁盘数据库接口、数据路由、分库分表中间件等将区块链数据写入至磁盘数据库,磁盘数据库对节点写入的区块链数据进行存储。由于内存数据库的写入速度远远高于磁盘数据库的写入速度,将区块链数据存入内存数据库能够有效提高存储效率。区块链数据被高频率的写入内存数据库时也不会对区块链性能造成影响。但是内存数据库的容量是相对有限的,还需要磁盘数据库对区块链数据提供永久性存储。
当节点需要在数据库中读取区块链数据时,节点首先从内存数据库中进行读取。内存数据库的读取速度高于磁盘数据库的读取速度,因此节点从内存数据库中读取区块链数据能够有效提高读取效率。如果读取失败,则节点从磁盘数据库中读取,读取成功后将读取到的区块链数据同步至内存数据库,以便于下次能够直接在内存数据库中进行读取,以便提高读取速度。如果在磁盘数据库中仍然未能读取到所需的区块链数据,则向节点返回读取失败的消息。
本实施例中,节点将区块链数据分别写入内存数据库和磁盘数据库进行存储。当读取区块链数据时,节点先从内存数据库中进行读取,若读取失败,则从磁盘数据库中读取,并且将读取到的区块链数据同步至内存数据库。由于内存数据库的读写性能较高,能够有效提高区块链数据的存储。由于内存数据库的容量有限,通过磁盘数据库可以对节点的区块链数据提供永久存储。当节点在内存数据库中读取区块链数据失败时,能够通过磁盘数据库进行读取。并且读取到的区块链数据同步至内存数据库,便于下次直接在内存数据库中进行读取,有效提高了读取速度。
在一个实施例中,该系统还包括第一内存映射文件,当区块链数据写入内存数据库失败时,节点获取第一内存映射文件,将区块链数据写入第一内存映射文件;在内存数据库恢复后,节点通过第一内存映射文件将区块链数据写入内存数据库。
当节点将区块链数据写入内存数据库时,存在写入失败的可能性。虽然这种写入失败的可能性较低,但是写入失败的情形一旦出现,则会对区块链数据的高频存储造成影响。
本实施例中,内存数据库具有对应的第一内存映射文件。当区块链数据写入内存数据库失败时,节点获取与内存数据库对应的第一内存映射文件,将区块链数据写入第一内存映射文件。通过第一内存映射文件对区块链数据进行缓存。因此在内存数据库出现存储故障时,能够有效防止区块链数据存储效率下降。第一内存映射文件预先进行了内存映射。在内存数据库恢复之后,节点将第一内存映射文件中存储的区块链数据写入到内存数据库中。从而可以确保缓存的数据能够被准确无误的存储至内存数据库,有效防止数据丢失。
在内存数据库恢复之后,节点将第一内存映射文件中存储的区块链数据写入内存数据库之后,还可以将第一内存映射文件中缓存的区块链数据进行删除,从而能够有效提高第一内存映射文件的利用率。
在一个实施例中,系统还包括第二内存映射文件,当区块链数据写入磁盘数据库失败时,节点获取第二内存映射文件,将区块链数据写入第二内存映射文件;在磁盘数据库恢复后,节点通过第二内存映射文件将区块链数据写入磁盘数据库。
当节点将区块链数据写入磁盘数据库时,存在写入失败的可能性。虽然这种写入失败的可能性较低,但是写入失败的情形一旦出现,则会对区块链数据的存储造成影响。
本实施例中,磁盘数据库具有对应的第二内存映射文件。当区块链数据写入磁盘数据库失败时,节点获取与磁盘数据库对应的第二内存映射文件,将区块链数据写入第二内存映射文件。通过第二内存映射文件对区块链数据进行缓存。因此在磁盘数据库出现存储故障时,能够有效防止区块链数据存储效率下降。第二内存映射文件预先进行了内存映射。在磁盘数据库恢复之后,节点将第二内存映射文件中存储的区块链数据写入到磁盘数据库中。从而可以确保缓存的数据能够被准确无误的存储至磁盘数据库,有效防止数据丢失。
在磁盘数据库恢复之后,节点将第二内存映射文件中存储的区块链数据写入磁盘数据库之后,还可以将第二内存映射文件中缓存的区块链数据进行删除,从而能够有效提高第二内存映射文件的利用率。
在一个实施例中,磁盘数据库包括主磁盘数据库和从磁盘数据库;将区块链数据写入主磁盘数据库进行存储,主磁盘数据库与从磁盘数据库保持区块链数据同步;当节点读取区块链数据时,在从磁盘数据库中读取区块链数据。
磁盘数据库可以对区块链数据提供永久存储,为了有效提高磁盘数据库的读写性能,将磁盘数据库分为主磁盘数据库和从磁盘数据库。主磁盘数据库用于接收节点写入的区块链数据对区块链数据进行存储,还可以用于节点读取区块链数据。从磁盘数据库用于节点读取区块链数据。当节点在磁盘数据库中读取数据时,可以在从磁盘数据库中进行读取。若在从磁盘数据库中读取失败,则可以在主磁盘数据库中进行读取。通过将主磁盘数据库和从磁盘数据库的读写功能分离,能够有效提高磁盘数据库的存储效率。
进一步的,主磁盘数据库包括多个,从磁盘数据库包括多个。节点通过磁盘数据库接口层、数据路由、分库分表中间件和主数据库连接池对多个主磁盘数据库进行读写操作。节点通过磁盘数据库接口层、数据路由、分库分表中间件和从数据库连接池对多个主磁盘数据库进行读操作。
在其中一个实施例中,节点与内存数据库和磁盘数据库的连接示意图如图2所示。其中,节点通过数据库接口层和内存数据库接口层与内存数据库进行连接,从而对内存数据库进行读写操作。节点通过数据库接口层、磁盘数据库接口层、数据路由、分库分表中间件、主数据库连接池与多个主磁盘数据库进行连接。节点通过数据库接口层、磁盘数据库接口层、数据路由、分库分表中间件、从数据库连接池与多个从磁盘数据库进行连接。
通过分库分表中间件可以将主磁盘数据库分为多个主磁盘数据库。具体的,可以根据区块链数据的类型将主磁盘数据库分为多个主磁盘数据库。由此可以根据区块链数据的类型将区块链数据分别存储至不同的主磁盘数据库,从而可以实现对区块链数据的分类存储。
通过分库分表中间件可以将从磁盘数据库分为多个从磁盘数据库。具体的,可以根据区块链数据的类型将主磁盘数据库分为多个主磁盘数据库。主磁盘数据库与从磁盘数据库之间通过数据库日志保持同步。主磁盘数据库中的区块链数据可以进行分类存储,因此从磁盘数据库中的区块链数据也实现了分类存储。当节点读取区块链数据时,可以根据区块链数据的类型在从磁盘数据库中获取对应的区块链数据,从而能够有效提高读取速度。
在一个实施例中,在节点重启之后,节点先从磁盘数据库中读取区块链数据,并将读取到的区块链数据加载至内存数据库中,磁盘数据库与内存数据库按照预设频率进行同步。
本实施例中,区块链的节点断电之后,会造成内存数据库中的区块链数据丢失或无效。在节点在重启之后,节点会首先从磁盘数据库中读取区块链数据,并且将读取到的区块链数据加载至内存数据库中。在节点启动之后,节点对应的磁盘数据库和内存数据库会按照预设频率进行同步,以此确保节点在读取数据时可以先从内存数据库中进行读取,有效提高读取速度。
在一个实施例中,如图3所示,提供了一种区块链数据存储方法,以该方法应用于区块链的节点为例进行说明,包括以下步骤:
步骤302,获取区块链数据。
步骤304,将区块链数据分别写入内存数据库和磁盘数据库进行存储。
步骤306,当读取区块链数据时,先从内存数据库中进行读取,若读取失败,则从磁盘数据库中读取区块链数据,并且将读取到的区块链数据同步至内存数据库。
本实施例中,节点获取区块链数据,包括交易执行结果和交易日志。区块链的节点对应的数据库包括磁盘数据库和内存数据库。节点通过内存数据库接口层将区块链数据写入至内存数据库,内存数据库对节点写入的区块链数据进行存储。节点通过磁盘数据库接口、数据路由、分库分表中间件等将区块链数据写入至磁盘数据库,磁盘数据库对节点写入的区块链数据进行存储。由于内存数据库的写入速度远远高于磁盘数据库的写入速度,将区块链数据存入内存数据库能够有效提高存储效率。区块链数据被高频率的写入内存数据库时也不会对区块链性能造成影响。但是内存数据库的容量是相对有限的,还需要磁盘数据库对区块链数据提供永久性存储。
当节点需要在数据库中读取区块链数据时,节点首先从内存数据库中进行读取。内存数据库的读取速度高于磁盘数据库的读取速度,因此节点从内存数据库中读取区块链数据能够有效提高读取效率。如果读取失败,则节点从磁盘数据库中读取,读取成功后将读取到的区块链数据同步至内存数据库,以便于下次能够直接在内存数据库中进行读取,以便提高读取速度。如果在磁盘数据库中仍然未能读取到所需的区块链数据,则向节点返回读取失败的消息。
本实施例中,由于内存数据库的读写性能较高,节点将区块链数据分别写入内存数据库能够有效提高区块链数据的存储。由于内存数据库的容量有限,通过磁盘数据库可以对节点的区块链数据提供永久存储。当节点在内存数据库中读取区块链数据失败时,能够通过磁盘数据库进行读取。并且读取到的区块链数据同步至内存数据库,便于下次直接在内存数据库中进行读取,有效提高了读取速度。
在一个实施例中,内存数据库具有对应的第一内存映射文件;方法还包括:当区块链数据写入内存数据库失败时,获取第一内存映射文件,将区块链数据写入第一内存映射文件;在内存数据库恢复后,通过第一内存映射文件将区块链数据写入内存数据库。
本实施例中,内存数据库具有对应的第一内存映射文件。当区块链数据写入内存数据库失败时,节点获取与内存数据库对应的第一内存映射文件,将区块链数据写入第一内存映射文件。通过第一内存映射文件对区块链数据进行缓存。因此在内存数据库出现存储故障时,能够有效防止区块链数据存储效率下降。第一内存映射文件预先进行了内存映射。在内存数据库恢复之后,节点将第一内存映射文件中存储的区块链数据写入到内存数据库中。从而可以确保缓存的数据能够被准确无误的存储至内存数据库,有效防止数据丢失。
在一个实施例中,磁盘数据库具有对应的第二内存映射文件,方法还包括:当区块链数据写入磁盘数据库失败时,获取第二内存映射文件,将区块链数据写入第二内存映射文件;在磁盘数据库恢复后,通过第二内存映射文件将区块链数据写入磁盘数据库。
本实施例中,磁盘数据库具有对应的第二内存映射文件。当区块链数据写入磁盘数据库失败时,节点获取与磁盘数据库对应的第二内存映射文件,将区块链数据写入第二内存映射文件。通过第二内存映射文件对区块链数据进行缓存。因此在磁盘数据库出现存储故障时,能够有效防止区块链数据存储效率下降。第二内存映射文件预先进行了内存映射。在磁盘数据库恢复之后,节点将第二内存映射文件中存储的区块链数据写入到磁盘数据库中。从而可以确保缓存的数据能够被准确无误的存储至磁盘数据库,有效防止数据丢失。
在一个实施例中,磁盘数据库包括主磁盘数据库和从磁盘数据库;方法还包括:将区块链数据写入主磁盘数据库进行存储;主磁盘数据库与从磁盘数据库保持区块链数据同步;当读取区块链数据时,从从磁盘数据库中读取区块链数据。
本实施例中,为了有效提高磁盘数据库的读写性能,将磁盘数据库分为主磁盘数据库和从磁盘数据库。主磁盘数据库用于接收节点写入的区块链数据对区块链数据进行存储,还可以用于节点读取区块链数据。从磁盘数据库用于节点读取区块链数据。当节点在磁盘数据库中读取数据时,可以在从磁盘数据库中进行读取。若在从磁盘数据库中读取失败,则可以在主磁盘数据库中进行读取。通过将主磁盘数据库和从磁盘数据库的读写功能分离,能够有效提高磁盘数据库的存储效率。
在一个实施例中,区块链的节点为终端,如图4所示,终端400包括通过系统总线连接的处理器401、内存储器402、非易失性存储介质403和网络接口404。其中,该终端的非易失性存储介质403中存储有操作系统4031和区块链数据存储处理装置4032,区块链数据存储装置4032用于实现能够有效提高区块链数据的存储效率。终端400的处理器401用于提供计算和控制能力,被配置为执行一种区块链数据存储方法。终端400的内存储器402为非易失性存储介质中的客户数据屏蔽处理装置4032的运行提供环境,内存储器402中可储存有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种区块链数据存储方法。终端400的网络接口404用于据以与外部的客户终端通过网络连接通信,比如接收客户终端上传的交易请求,向客户终端发送事件消息流等。本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的终端的限定,具体地终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,如图5所示,提供了一种区块链数据存储装置,包括:获取模块502、存储模块504和访问模块506,其中:
获取模块502,用于获取区块链数据。
存储模块504,用于将区块链数据分别写入内存数据库和磁盘数据库进行存储。
访问模块506,用于当读取区块链数据时,先从内存数据库中进行读取,若读取失败,则从磁盘数据库中读取区块链数据,并且将读取到的区块链数据同步至内存数据库。
在一个实施例中,内存数据库具有对应的第一内存映射文件;存储模块504还用于当区块链数据写入内存数据库失败时,获取第一内存映射文件,将区块链数据写入第一内存映射文件;在内存数据库恢复后,通过第一内存映射文件将区块链数据写入内存数据库。
在一个实施例中,磁盘数据库具有对应的第二内存映射文件,存储模块504还用于当区块链数据写入磁盘数据库失败时,获取第二内存映射文件,将区块链数据写入第二内存映射文件;在磁盘数据库恢复后,通过第二内存映射文件将区块链数据写入磁盘数据库。
在一个实施例中,磁盘数据库包括主磁盘数据库和从磁盘数据库;存储模块504还用于将区块链数据写入主磁盘数据库进行存储;主磁盘数据库与从磁盘数据库保持区块链数据同步;访问模块506还用于当读取区块链数据时,从从磁盘数据库中读取区块链数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (7)

1.一种区块链数据存储系统,其特征在于,所述系统包括内存数据库和磁盘数据库,其中:
所述内存数据库和所述磁盘数据库分别接收区块链节点写入的区块链数据,并对所述区块链数据进行存储;
当节点读取区块链数据时,节点先从内存数据库中进行读取,若读取失败,则从所述磁盘数据库中读取区块链数据,并且将读取到的区块链数据同步至内存数据库;其中:
根据区块链数据的类型,所述节点通过分库分表中间件将主磁盘数据库分为多个主磁盘数据库,将从磁盘数据库分为多个从磁盘数据库;所述节点通过磁盘数据库接口层、数据路由、分库分表中间件和主数据库连接池对多个主磁盘数据库进行读写操作;所述节点通过磁盘数据库接口层、数据路由、分库分表中间件和从数据库连接池对多个从磁盘数据库进行读操作;主磁盘数据库与从磁盘数据库之间通过数据库日志保持同步;主磁盘数据库中的区块链数据以及从磁盘数据库中的区块链数据分别进行分类存储,当节点读取区块链数据时,根据区块链数据的类型在从磁盘数据库中获取对应的区块链数据,若在从磁盘数据库中读取失败,则在主磁盘数据库中进行读取。
2.根据权利要求1所述的系统,其特征在于,所述系统还包括第一内存映射文件,当区块链数据写入内存数据库失败时,节点获取所述第一内存映射文件,将所述区块链数据写入第一内存映射文件;在所述内存数据库恢复后,节点通过所述第一内存映射文件将所述区块链数据写入内存数据库。
3.根据权利要求1所述的系统,其特征在于,所述系统还包括第二内存映射文件,当区块链数据写入磁盘数据库失败时,节点获取所述第二内存映射文件,将所述区块链数据写入第二内存映射文件;在所述磁盘数据库恢复后,节点通过所述第二内存映射文件将所述区块链数据写入磁盘数据库。
4.根据权利要求1所述的系统,其特征在于,在节点重启之后,节点先从所述磁盘数据库中读取区块链数据,并将读取到的区块链数据加载至内存数据库中,所述磁盘数据库与所述内存数据库按照预设频率进行同步。
5.一种区块链数据存储方法,所述方法应用于区块链的节点,包括以下步骤:
获取区块链数据;
将所述区块链数据分别写入内存数据库和磁盘数据库进行存储;
当读取区块链数据时,先从内存数据库中进行读取,若读取失败,则从所述磁盘数据库中读取区块链数据,并且将读取到的区块链数据同步至内存数据库;其中:
根据区块链数据的类型,通过分库分表中间件将主磁盘数据库分为多个主磁盘数据库,将从磁盘数据库分为多个从磁盘数据库;通过磁盘数据库接口层、数据路由、分库分表中间件和主数据库连接池对多个主磁盘数据库进行读写操作;通过磁盘数据库接口层、数据路由、分库分表中间件和从数据库连接池对多个从磁盘数据库进行读操作;主磁盘数据库与从磁盘数据库之间通过数据库日志保持同步;主磁盘数据库中的区块链数据以及从磁盘数据库中的区块链数据分别进行分类存储,当节点读取区块链数据时,根据区块链数据的类型在从磁盘数据库中获取对应的区块链数据,若在从磁盘数据库中读取失败,则在主磁盘数据库中进行读取。
6.根据权利要求5所述的方法,其特征在于,所述内存数据库具有对应的第一内存映射文件;所述方法还包括:
当区块链数据写入内存数据库失败时,获取所述第一内存映射文件,将所述区块链数据写入第一内存映射文件;
在所述内存数据库恢复后,通过所述第一内存映射文件将所述区块链数据写入内存数据库。
7.根据权利要求5所述的方法,其特征在于,所述磁盘数据库具有对应的第二内存映射文件,所述方法还包括:
当区块链数据写入磁盘数据库失败时,获取所述第二内存映射文件,将所述区块链数据写入第二内存映射文件;
在所述磁盘数据库恢复后,通过所述第二内存映射文件将所述区块链数据写入磁盘数据库。
CN201710139269.1A 2017-03-09 2017-03-09 区块链数据存储系统和方法 Active CN107704196B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201710139269.1A CN107704196B (zh) 2017-03-09 2017-03-09 区块链数据存储系统和方法
SG11201907619VA SG11201907619VA (en) 2017-03-09 2018-02-06 Blockchain data storage system and method
PCT/CN2018/075496 WO2018161760A1 (zh) 2017-03-09 2018-02-06 区块链数据存储系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710139269.1A CN107704196B (zh) 2017-03-09 2017-03-09 区块链数据存储系统和方法

Publications (2)

Publication Number Publication Date
CN107704196A CN107704196A (zh) 2018-02-16
CN107704196B true CN107704196B (zh) 2020-03-27

Family

ID=61169547

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710139269.1A Active CN107704196B (zh) 2017-03-09 2017-03-09 区块链数据存储系统和方法

Country Status (3)

Country Link
CN (1) CN107704196B (zh)
SG (1) SG11201907619VA (zh)
WO (1) WO2018161760A1 (zh)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108537642A (zh) * 2018-04-20 2018-09-14 郑勇 一种基于区块链平台的线上线下的全域信用周期服务系统
CN109144414B (zh) * 2018-07-27 2020-07-07 阿里巴巴集团控股有限公司 区块链数据的多级存储方法和装置
CN109189163A (zh) * 2018-08-17 2019-01-11 深圳市贝优通新能源技术开发有限公司 一种基于区块链技术的具有防静电功能的服务器
CN109114726B (zh) * 2018-08-17 2020-07-10 广东奥维信息科技有限公司 一种搭载区块链技术的具有温控功能的机房
CN108897145A (zh) * 2018-08-17 2018-11-27 深圳市贝优通新能源技术开发有限公司 一种基于区块链技术的具有除雾功能的智能眼镜
CN109031698A (zh) * 2018-08-17 2018-12-18 深圳市雷凌广通技术研发有限公司 一种基于区块链技术的防尘遮光眼镜
CN109240438B (zh) * 2018-08-17 2020-12-22 安徽宝葫芦信息科技集团股份有限公司 一种基于区块链技术的具有防尘功能的计算机
CN109145189A (zh) * 2018-08-22 2019-01-04 杭州微链区块链科技有限公司 一种基于区块链的数据存入和搜索系统及其方法
CN109325011A (zh) * 2018-09-03 2019-02-12 上海奥若拉信息科技集团有限公司 基于区块链的数据存储、处理、分享方法及系统
CN109741162A (zh) * 2018-09-03 2019-05-10 上海奥若拉信息科技集团有限公司 基于区块链的个人征信数据存储、处理、分享方法及系统
CN108898039A (zh) * 2018-09-06 2018-11-27 深圳市晓控通信科技有限公司 一种基于区块链技术的防摔且节能的扫码枪
CN109033916B (zh) * 2018-09-06 2020-11-13 江西驴充充充电技术有限公司 一种基于区块链技术的扫码器
CN109120824A (zh) * 2018-09-19 2019-01-01 深圳市晓控通信科技有限公司 一种基于区块链技术的具有防尘功能的摄像头
CN109246341A (zh) * 2018-09-19 2019-01-18 深圳市安思科电子科技有限公司 一种基于区块链技术的便于装卸的摄像头
CN109184356A (zh) * 2018-09-19 2019-01-11 深圳市奈士迪技术研发有限公司 一种基于区块链技术的安全型智能锁
CN109255875A (zh) * 2018-09-19 2019-01-22 深圳市奈士迪技术研发有限公司 一种基于区块链技术的安全系数高的智能锁
CN109326312A (zh) * 2018-09-19 2019-02-12 深圳市奈士迪技术研发有限公司 一种基于区块链技术的安全型共享智能硬盘
CN109068040A (zh) * 2018-09-19 2018-12-21 深圳市奈士迪技术研发有限公司 一种基于区块链技术的便于安装的摄像头
CN109360302A (zh) * 2018-09-19 2019-02-19 深圳市贝优通新能源技术开发有限公司 一种基于区块链技术的智能锁
CN109138774B (zh) * 2018-09-19 2021-01-05 浙江佳洋门业有限公司 一种基于区块链技术的防盗门
CN109302584A (zh) * 2018-10-12 2019-02-01 深圳市乐业科技有限公司 一种基于区块链技术的拍摄范围广的安防监控装置
CN109068045A (zh) * 2018-10-12 2018-12-21 深圳市贝优通新能源技术开发有限公司 一种基于区块链技术的具有光线调节功能的监控装置
CN109403735A (zh) * 2018-10-12 2019-03-01 深圳市中科智诚科技有限公司 一种基于区块链技术的安全可靠的智能门锁
CN109347502B (zh) * 2018-10-12 2020-11-10 江西驴充充充电技术有限公司 一种基于区块链技术的耐用型安防通讯装置
CN109582735A (zh) * 2018-10-26 2019-04-05 黄淮学院 一种区块链知识单元存储系统
CN111159142B (zh) * 2018-11-07 2023-07-14 马上消费金融股份有限公司 一种数据处理方法及装置
CN109558453B (zh) * 2018-11-27 2021-01-26 深圳市链联科技有限公司 一种区块链数据网络化存储和移存的方法
CN109739843A (zh) * 2018-12-26 2019-05-10 篱笆墙网络科技有限公司 区块链数据读写方法、系统、设备及存储介质
CN110275892B (zh) * 2019-05-22 2022-08-19 深圳壹账通智能科技有限公司 面向区块链的数据管理方法、装置、设备及存储介质
CN110209742B (zh) * 2019-06-17 2021-07-27 国家计算机网络与信息安全管理中心 一种基于区块链依据数据重要性分类存储系统及方法
CN110442579B (zh) * 2019-08-02 2022-06-28 杭州复杂美科技有限公司 一种状态树数据存储方法、同步方法及设备和存储介质
CN111147718A (zh) * 2019-12-24 2020-05-12 深圳市安思科电子科技有限公司 一种基于区块链技术的便于收纳的监控装置
CN111309783A (zh) * 2020-02-10 2020-06-19 刘翱天 一种上链数据读取系统
CN111291022B (zh) * 2020-02-10 2024-01-05 刘翱天 一种基于区块链的数据存储系统
CN111432011B (zh) * 2020-03-30 2023-02-17 百度国际科技(深圳)有限公司 区块链的网络通信方法和设备
CN115098045B (zh) * 2022-08-23 2022-11-25 成都止观互娱科技有限公司 一种数据存储系统及网络数据读取和写入方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102222107A (zh) * 2011-06-28 2011-10-19 中国联合网络通信集团有限公司 数据存取系统及其数据存取方法
CN102521389A (zh) * 2011-12-23 2012-06-27 天津神舟通用数据技术有限公司 一种混合使用固态硬盘和传统硬盘的postgresql数据库集群系统及其优化方法
CN102868552A (zh) * 2012-08-21 2013-01-09 广东电网公司电力科学研究院 数据发送方法
CN102945251A (zh) * 2012-10-12 2013-02-27 浪潮电子信息产业股份有限公司 一种利用内存数据库技术优化磁盘数据库性能的方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5256173B2 (ja) * 2009-11-18 2013-08-07 株式会社日立製作所 データベース管理方法、データベース管理システム及びデータベース管理プログラム
US8433684B2 (en) * 2010-03-30 2013-04-30 Sybase, Inc. Managing data backup of an in-memory database in a database management system
CN106372115A (zh) * 2016-08-23 2017-02-01 成都乾威科技有限公司 一种数据读写方法、系统及数据库系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102222107A (zh) * 2011-06-28 2011-10-19 中国联合网络通信集团有限公司 数据存取系统及其数据存取方法
CN102521389A (zh) * 2011-12-23 2012-06-27 天津神舟通用数据技术有限公司 一种混合使用固态硬盘和传统硬盘的postgresql数据库集群系统及其优化方法
CN102868552A (zh) * 2012-08-21 2013-01-09 广东电网公司电力科学研究院 数据发送方法
CN102945251A (zh) * 2012-10-12 2013-02-27 浪潮电子信息产业股份有限公司 一种利用内存数据库技术优化磁盘数据库性能的方法

Also Published As

Publication number Publication date
CN107704196A (zh) 2018-02-16
SG11201907619VA (en) 2019-09-27
WO2018161760A1 (zh) 2018-09-13
WO2018161760A8 (zh) 2019-08-29

Similar Documents

Publication Publication Date Title
CN107704196B (zh) 区块链数据存储系统和方法
US11809726B2 (en) Distributed storage method and device
CN107391628B (zh) 数据同步方法及装置
US8301600B1 (en) Failover recovery in a distributed data store
CN107644030B (zh) 分布式数据库数据同步方法、相关装置及系统
CN106815218B (zh) 数据库访问方法、装置和数据库系统
CN108121782B (zh) 查询请求的分配方法、数据库中间件系统以及电子设备
KR20190067158A (ko) 블록체인 블록 데이터의 아카이빙 방법, 장치 및 조회 방법, 장치
US7903665B2 (en) System and method for synchronizing packet forwarding information
CN112084072B (zh) 一种提高PostgreSQL集群容灾能力的方法、系统、介质及终端
CN110597910A (zh) 一种异地数据同步方法、装置和系统
CN104111804A (zh) 一种分布式文件系统
CN107451013B (zh) 基于分布式系统的数据恢复方法、装置及系统
RU2653254C1 (ru) Способ, узел и система управления данными для кластера базы данных
US11132265B2 (en) Multi-replica data restoration method and apparatus
CN108009029B (zh) 基于Ignite网格缓存数据解耦持久化的方法及系统
CN107391033B (zh) 数据迁移方法及装置、计算设备、计算机存储介质
CN112559529B (zh) 数据存储方法、装置、计算机设备及存储介质
CN103501319A (zh) 一种低延迟的面向小文件的分布式存储系统
WO2016082594A1 (zh) 数据更新处理方法及装置
CN107153680B (zh) 一种分布式内存数据库在线扩展节点的方法及系统
CN113420081A (zh) 数据校验方法、装置、电子设备及计算机存储介质
CN115794819A (zh) 一种数据写入方法及电子设备
CN107943615B (zh) 基于分布式集群的数据处理方法与系统
CN116303789A (zh) 多分片多副本数据库并行同步方法、装置及可读介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
CB02 Change of applicant information

Address after: Room 3484, room 3, No. 2879, Longteng Avenue, Shanghai, Xuhui District, Shanghai

Applicant after: Shanghai one way link chain Technology Co., Ltd.

Address before: Room 3484, room 3, No. 2879, Longteng Avenue, Shanghai, Xuhui District, Shanghai

Applicant before: Shanghai billion through block chain Technology Co., Ltd.

CB02 Change of applicant information
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20180528

Address after: 518000 Room 201, building A, No. 1, Qian Wan Road, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong (Shenzhen Qianhai business secretary Co., Ltd.)

Applicant after: Shenzhen one ledger Intelligent Technology Co., Ltd.

Address before: 200232 room 3484, 3 floor, 2879 Longteng Road, Xuhui District, Shanghai.

Applicant before: Shanghai one way link chain Technology Co., Ltd.

CB02 Change of applicant information

Address after: 518000 Room 201, building A, 1 front Bay Road, Shenzhen Qianhai cooperation zone, Shenzhen, Guangdong

Applicant after: Shenzhen one ledger Intelligent Technology Co., Ltd.

Address before: 518000 Room 201, building A, No. 1, Qian Wan Road, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong (Shenzhen Qianhai business secretary Co., Ltd.)

Applicant before: Shenzhen one ledger Intelligent Technology Co., Ltd.

CB02 Change of applicant information
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1250800

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant