区块链数据的多级存储方法和装置与流程

文档序号:16528773发布日期:2019-01-05 10:34阅读:224来源:国知局
区块链数据的多级存储方法和装置与流程

本说明书涉及网络通信技术领域,尤其涉及一种区块链数据的多级存储方法和装置。



背景技术:

区块链技术,也被称之为分布式账本技术,是一种由若干台计算设备共同参与“记账”,共同维护一份完整的分布式数据库的新兴技术。区块链技术具有去中心化、公开透明的特性,每台计算设备作为区块链的节点设备可以参与数据库记录、并且各计算设备之间可以快速的进行数据同步;区块链的各节点设备通常要处理区块链系统高并发的共识、验证及读写操作,随着“入账”区块的增加,增量的区块数据存储会逐渐影响存储器的响应速度,进而影响节点设备的对高并发的共识、验证及读写操作的响应效率。



技术实现要素:

针对以上提出的问题,本说明书提供了一种区块链数据的多级存储方法,所述区块链的区块数据存储于与所述区块链对接的多级存储系统;所述多级存储系统包括用于存储所述区块链的最新区块数据的第一级存储系统,以及用于对所述第一级存储系统中存储的区块数据进行存档的至少一个下级存储系统;所述方法包括:

接收所述区块链的最新区块数据,并将所述最新区块数据存储至所述多级存储系统中的第一级存储系统;

确定是否触发了针对所述第一级存储系统的区块数据迁移事件;

如果是,将所述第一级存储系统中存储的至少部分区块数据迁移至所述下级存储系统。

更优的,所述多级存储系统中各存储系统之间采用单链式连接方式。

更优的,所述第一级存储系统对应的存储介质的存储性能高于所述下级存储系统。

更优的,所述多级存储系统中的各级存储系统对应的存储介质的存储性能从所述第一级存储系统梯度下降。

更优的,所述方法还包括:

确认所述下级存储系统的任一级存储系统是否接收到迁移自其上一级的所述至少部分区块数据;

如果是,确定是否触发了针对所述任一级存储系统的区块数据迁移事件;

如果是,继续将所述任一级存储系统中存储的至少部分区块数据迁移至所述任一级存储系统的下一级存储系统。

更优的,所述针对所述第一级存储系统的区块数据迁移事件包括:

所述第一级存储系统中存储的区块数据的数据容量超出预设阈值;

或者,所述第一级存储系统中存储的区块数据的数据容量对应于所述第一级存储系统的数据总容量的容量占比超出预设阈值。

更优的,所述针对所述任一级存储系统的区块数据迁移事件包括:

所述任一级存储系统中存储的区块数据的数据容量超出预设阈值;

或者,所述任一级存储系统中存储的区块数据的数据容量对应于所述任一级存储系统的数据总容量的容量占比超出预设阈值。

相应地,本说明书还提供了一种区块链数据的多级存储装置,所述区块链的区块数据存储于与所述区块链对接的多级存储系统;所述多级存储系统包括用于存储所述区块链的最新区块数据的第一级存储系统,以及用于对所述第一级存储系统中存储的区块数据进行存档的至少一个下级存储系统;所述装置包括:

读写单元,接收所述区块链的最新区块数据,并将所述最新区块数据存储至所述多级存储系统中的第一级存储系统;

判断单元,确定是否触发了针对所述第一级存储系统的区块数据迁移事件;

迁移单元,如果所述判断单元判断为是,将所述第一级存储系统中存储的至少部分区块数据迁移至所述下级存储系统。

更优的,所述多级存储系统中各存储系统之间采用单链式连接方式。

更优的,所述第一级存储系统对应的存储介质的存储性能高于所述下级存储系统。

更优的,所述多级存储系统中的各级存储系统对应的存储介质的存储性能从所述第一级存储系统梯度下降。

更优的,上述装置:

所述判断单元,确认所述下级存储系统的任一级存储系统是否接收到迁移自其上一级的所述至少部分区块数据;

如果是,确定是否触发了针对所述任一级存储系统的区块数据迁移事件;

所述迁移单元,如所述下级存储系统判读单元确定为是,继续将所述任一级存储系统中存储的至少部分区块数据迁移至所述任一级存储系统的下一级存储系统。

更优的,所述针对所述第一级存储系统的区块数据迁移事件包括:

所述第一级存储系统中存储的区块数据的数据容量超出预设阈值;

或者,所述第一级存储系统中存储的区块数据的数据容量对应于所述第一级存储系统的数据总容量的容量占比超出预设阈值。

更优的,所述针对所述任一级存储系统的区块数据迁移事件包括:

所述任一级存储系统中存储的区块数据的数据容量超出预设阈值;

或者,所述任一级存储系统中存储的区块数据的数据容量对应于所述任一级存储系统的数据总容量的容量占比超出预设阈值。

相应地,本说明书还提供了一种计算机设备,包括:存储器和处理器;所述存储器上存储有可由处理器运行的计算机程序;所述处理器运行所述计算机程序时,执行如上述区块链数据的存储方法所述的步骤。

本说明书还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,执行如上述区块链数据的存储方法所述的步骤。

本说明书所提供的区块链数据的存储方法、装置、计算机设备及计算机存储介质,在相关迁移触发事件的触发下,将第一级存储系统内的至少部分区块数据迁移至多级存储系统的下级存储系统,从而为第一级存储系统释放出更多的存储空间,方便第一级存储系统更加优化地进行区块链上产生的各种数据操作,如高并发的共识、验证、及读写操作;由于区块链的防篡改特性机制,已被收录至历史区块的数据不能被删除或修改,且也无法对历史区块进行增加数据的操作,对迁移至多级存储系统的下级存储系统的区块数据只会涉及到读取操作,因此可选用性能配置较低硬件设备资源来部署上述下级存储系统,起到节约整个存储系统成本的目的。

附图说明

图1为本说明书一示例性实施例提供的区块链数据的多级存储方法的流程图;

图2(a)为本说明书一示例性实施例提供的多级存储系统的架构图;

图2(b)为本说明书又一示例性实施例提供的多级存储系统的架构图;

图3为本说明书一示例性实施例提供的区块链数据的多级存储装置的示意图;

图4为运行本说明书所提供的区块链数据的多级存储方法或装置实施例的一种硬件结构图。

具体实施方式

本说明书提供的实施例所述的“区块链”,具体可指一个各节点设备通过共识机制达成的、具有分布式数据存储结构的p2p网络系统,该区块链内的数据分布在时间上相连的一个个“区块(block)”之内,后一区块包含前一区块的数据摘要,且根据具体的共识机制(如pow、pos、dpos或pbft等)的不同,达成全部或部分节点的数据全备份。区块链的各节点设备(尤其是全节点设备)通常要处理区块链系统高并发的共识、验证及读写操作,随着“入账”区块的增加,增量的区块数据存储会逐渐影响存储器的响应速度,进而影响节点设备的对高并发的共识、验证及读写操作的响应效率。

本说明书旨在提供一种区块链数据的多级存储方法或装置,将所述区块链的区块数据存储于与所述区块链对接的多级存储系统;所述多级存储系统包括用于存储所述区块链的最新区块数据的第一级存储系统,以及用于对所述第一级存储系统中存储的区块数据进行存档的至少一个下级存储系统。

图1为本说明书一示例性实施例提供的区块链数据的多级存储方法的流程图,该方法包括:

步骤102,接收所述区块链的最新区块数据,并将所述最新区块数据存储至所述多级存储系统中的第一级存储系统;

步骤104,确定是否触发了针对所述第一级存储系统的区块数据迁移事件;

如果是,

步骤106,将所述第一级存储系统中存储的至少部分区块数据迁移至所述下级存储系统。

上述实施例所述的第一级存储系统用于存储所述区块链的最新区块数据,而且,与上述最新区块数据的生成相关,还可用于处理区块链上数据操作业务(包括区块数据共识、验证、及读写操作)。由于区块链的多节点、高并发的业务需求,第一级存储系统通常选用存储性能较高(如高带宽、高处理速率、大容量等)的存储介质。随着区块链上打包出的区块越来越多,第一级存储系统的剩余存储空间逐渐变小,其处理数据的能力,如上述的处理区块数据共识、验证、及读写的能力随之逐渐降低,因此存储系统需要将第一级存储系统中的至少部分区块数据迁移至第一级存储系统在所述多级存储系统中的下级存储系统。

上述实施例所述的多级存储系统可以有多种架构形式,图2(a)和图2(b)示意了本说明书提供的多级存储系统的两种可能的架构形式。图2(a)中,第一级存储系统具有多个下级存储系统,即多个第二级存储系统,根据存储系统的设置,区块数据可以从第一级存储系统分别迁移至不同的第二级存储系统;另外应具体的区块链数据存储需求,该多个第二级存储系统还可以与多个第三级存储系统连接,在本说明书中不作限定。图2(b)所示的存储系统为以上述第一级存储系统起始的、多个下级存储系统单链式连接的多级存储系统,所述多级存储系统中各存储系统之间采用单链式连接方式,在该架构的多级存储系统中,区块数据从第一级存储系统单向迁移。

上述实施例所述的至少一个下级存储系统为所述多级存储系统除所述第一级存储系统外的存储系统,上述实施例所述的将所述第一级存储系统中存储的至少部分区块数据迁移至所述下级存储系统,可以包括多种迁移方式:如将第一级存储系统中存储的至少部分区块数据迁移至与该第一级存储系统连接的一个下级存储系统;或将第一级存储系统中存储的至少部分区块数据迁移至与该第一级存储系统连接的多个下个存储系统,在本说明书中不作限定。

上述实施例所述的区块数据,包括区块链的区块内的全部数据;在区块链数据库内还设置有针对每个区块内的全部数据而建立的索引数据时,上述区块数据还应包括对应于每个区块的索引数据,该索引数据通常包括针对每个区块的区块摘要值(哈希值)索引、交易摘要值(哈希值)索引、交易历史状态数据索引等内容,所述交易历史状态数据是指区块链上交易状态的历史值,例如与某区块对应的链上账户总余额值。因此,本说明书所述的至少部分区块数据迁移,可以包括将该区块链至少部分区块的区块内的全部数据整体迁移,或者还可以包括将该至少部分区块对应的索引数据随区块迁移,或者还可以包括将将该至少部分区块对应的部分索引数据随区块迁移等多种形式,本领域的技术人员可依据具体的需求设定该多级存储系统中的区块数据迁移方式,在本说明书中不作具体限定。

上述实施例所述的确定是否触发针对所述第一级存储系统的区块数据迁移事件,包括:确定所述第一级存储系统中存储的区块数据是否满足了预设的数据迁移触发规则。具体而言,该数据迁移触发规则可包括:所述第一级存储系统中存储的区块数据的数据容量大于预设阈值;或者,所述第一级存储系统中存储的区块数据的数据容量对应于所述第一级存储系统的数据总容量的容量占比大于预设阈值。基于区块数据所包含的数据类型,上述用于触发规则判定的区块数据可包括:所述区块内的总数据、交易摘要值数据、区块摘要值的数据、历史状态数据中的一种或多种。

例如,查询上述区块链在第一级存储系统内的现有区块内的总数据容量是否超出预设阈值,如果超过该阈值,发起迁移操作,将所述第一级存储系统中存储的迁移参考时间之前的区块数据,包括每个区块内总数据或每个区块内总数据及与每个区块内总数据相关的索引数据,迁移至所述第二存储系统;当上述迁移参考时间为具体的区块高度值时,可以直接发起对该区块高度值之前的区块数据的迁移;当上述迁移参考时间为具体的物理时间(如时间点或时间戳)时,可先将该物理时间转换为具体的区块高度值,在发起对该区块高度值之前的区块数据的迁移。上述迁移参考时间之前的区块数据,包括每个区块内总数据或每个区块内总数据及与每个区块内总数据相关的索引数据,即为上述实施例所述的至少部分区块数据。

又如,当区块链的数据库内还设置有相关的索引数据时,对于以交易为主要业务形式的区块链,查询上述区块链在第一级存储系统内的交易摘要值数据容量是否超出阈值,或该交易摘要值数据占该第一级存储系统的数据总容量的容占比是否超出预设阈值,如果超过该阈值,发起迁移操作,将所述第一存储系统中存储的迁移参考时间之前的区块数据,迁移至所述第二存储系统。类似的,上述区块链数据库内的其他索引数据也可作为上述迁移触发规则设定的监督对象,监督上述历史状态数据的容量或容占比,以触发迁移操作。

上述数据迁移触发规则的设定或迁移触发操作通常由计算机程序设定并执行,可以理解的是,上述设定有数据迁移触发规则的执行程序可以部署在该区块链节点设备内部,监测上述第一级存储系统的存储情况以根据迁移触发规则而执行,值得注意的是,在由计算机程序执行监测上述响应于所述检测到针对所述第一级存储系统中存储的区块数据的迁移触发事件,并执行相应的迁移操作时,该计算机程序可调用所述区块链中的数据迁移实用程序,将所述第一级存储系统中至少部分的区块数据,迁移至第一级存储系统的下级存储系统。

在示出的另一实施例中,上述数据迁移触发规则的设定和迁移触发操作可以由用户自行判断手动执行,例如上述第一级存储系统所在的区块链节点设备的用户根据自身对第一级存储系统的现有状态的了解和判断而主动输入的迁移指令,也可以是上述区块链节点设备系统调用一些系统其他程序或相关智能合约程序后触发出的迁移指令,在本说明书中不作限定。

上述多个实施例所提供的区块链数据的存储方法,在相关迁移触发事件的触发下,将第一级存储系统内的至少部分区块数据迁移至所述多级存储系统的下级存储系统,从而为第一级存储系统释放出更多的存储空间,方便第一级存储系统更加优化地进行区块链上产生的各种数据操作,如高并发的共识、验证、及读写操作;由于区块链的防篡改特性机制,已被收录至历史区块的数据不能被删除或修改,且也无法对历史区块进行增加数据的操作,对迁移至所述多级存储系统的下级存储系统的区块数据只会涉及到读取操作,因此可选用性能配置较低硬件设备资源来部署上述下级存储系统,起到节约整个存储系统成本的目的。

当上述多级存储系统为如图2(b)所示的单链式多级存储系统时,接收第一级存储系统中迁移的至少部分区块数据的为多级存储系统的第二级存储系统,本领域的技术人员应知,在接收了上一级迁来的区块数据后,由于存储的数据发生增加,第二级存储系统应确认现有的数据存储是否触发了针对第二级存储系统的区块数据迁移事件,如果是,第二级存储系统也应发起向其下一级存储系统即第三级存储系统的、至少部分区块数据的迁移;同理,在接收了上一级迁来的区块数据后,由于存储的数据发生增加,第三级存储系统也应确认现有的数据存储是否触发了针对第三级存储系统的区块数据迁移事件,如果是,第三级存储系统也应发起向其下一级存储系统即第四级存储系统的、至少部分区块数据的迁移;相似的过程可依次类推。

因此,在本说明书提供的又一示例性实施例中,对于上述单链式架构的多级存储系统,该区块链数据的存储方法还包括:

确认所述下级存储系统的任一级存储系统是否接收到迁移自其上一级的所述至少部分区块数据;

如果是,确定是否触发了针对所述任一级存储系统的区块数据迁移事件;

如果是,继续将所述任一级存储系统中存储的至少部分区块数据迁移至其下一级存储系统。

上述实施例所述的触发针对所述任一级存储系统的区块数据迁移事件,与上述实施例中触发针对第一级存储系统的区块数据迁移事件类似,可包括所述任一级存储系统中存储的区块数据的数据容量大于预设阈值;或者,所述任一级存储系统中存储的区块数据的数据容量对应于所述任一级存储系统的数据总容量的容量占比大于预设阈值。基于区块数据所包含的数据类型,上述用于触发判定的区块数据可包括:所述区块内的总数据、交易摘要值数据、区块摘要值的数据、历史状态数据中的一种或多种。上述任一级存储系统的判断触发事件是否发生、迁移至少部分区块数据至下一级的过程与上述第一级存储系统的判断触发事件是否发生、迁移至少部分区块数据至下一级的过程类似,在此不再赘述。

值得注意的是,上述多级存储系统中,针对每一级存储系统的区块数据迁移触发事件可以相同,也可以不同,例如上述的每一级存储系统的区块数据迁移触发事件对应的预设阈值的取值,可以相同也可以不同;或者某些级存储系统的区块数据迁移触发事件为其存储的区块数据的数据容量大于预设阈值,另外一些级的存储系统的区块数据迁移触发事件为其存储的区块数据对应于该一些级存储系统的数据总容量的容量占比大于预设阈值,甚至还有一些级存储系统的区块数据迁移触发事件为用户输入的迁移指令。本领域的技术人员可以根据具体的数据存储需求,为上述多级存储系统的每一级设置相应的数据迁移触发事件,以增加本说明书提供的多级存储系统的适应性和灵活性。

由于区块链系统在相应共识机制下运行,已收录至区块链数据库内的数据很难被任意的节点篡改,例如采用pow共识的区块链,至少需要全网51%算力的攻击才有可能篡改已有数据,因此区块链系统有着其他中心化数据库系统所法比拟的保证数据安全、防攻击篡改的特性。由于已被区块链各节点设备共识收录的已有区块不能被篡改,对该已有区块的操作类型只有读操作,因此接收从第一级存储系统迁移而来的至少部分区块数据的下级存储系统,其对应的存储介质性能要低于上述第一级存储系统。可选的,在如图2(b)所示的单链式多级存储系统中,由于区块链内的数据分布在时间上相连的一个个“区块(block)”之内,越是历史久远的数据被用户读取的概率越低,该链式多级存储系统对应的存储介质的存储性能从第一级存储系统开始可梯度下降。通过上述的链式多级迁移,即可完成对区块链中历史数据的归档存储,既合理调配了存储资源,又提高了区块链系统的共识读写效率。

与上述流程实现对应,本说明书的实施例还提供了一种区块链数据的存储装置。该装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为逻辑意义上的装置,是通过所在设备的cpu(centralprocessunit,中央处理器)将对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,除了图4所示的cpu、内存以及存储器之外,该基于区块链的数据迁移装置所在的设备通常还包括用于进行无线信号收发的芯片等其他硬件,和/或用于实现网络通信功能的板卡等其他硬件。

图3所示为本说明书所提供的一种区块链数据的存储装置30,所述区块链的区块数据存储于与所述区块链对接的多级存储系统;所述多级存储系统包括用于存储所述区块链的最新区块数据的第一级存储系统,以及用于对所述第一级存储系统中存储的区块数据进行存档的至少一个下级存储系统;所述装置30包括:

读写单元302,接收所述区块链的最新区块数据,并将所述最新区块数据存储至所述多级存储系统中的第一级存储系统;

判断单元304,确定是否触发了针对所述第一级存储系统的区块数据迁移事件;

迁移单元306,如果所述判断单元判断为是,将所述第一级存储系统中存储的至少部分区块数据迁移至所述下级存储系统。

更优的,所述多级存储系统中各存储系统之间采用单链式连接方式。

更优的,所述第一级存储系统对应的存储介质的存储性能高于所述下级存储系统。

更优的,所述多级存储系统中的各级存储系统对应的存储介质的存储性能从所述第一级存储系统梯度下降。

更优的,上述装置:

所述判断单元,确认所述下级存储系统的任一级存储系统是否接收到迁移自其上一级的所述至少部分区块数据;

如果是,确定是否触发了针对所述任一级存储系统的区块数据迁移事件;

所述迁移单元,如所述下级存储系统判读单元确定为是,继续将所述任一级存储系统中存储的至少部分区块数据迁移至所述任一级存储系统的下一级存储系统。

更优的,所述针对所述第一级存储系统的区块数据迁移事件包括:

所述第一级存储系统中存储的区块数据的数据容量超出预设阈值;

或者,所述第一级存储系统中存储的区块数据的数据容量对应于所述第一级存储系统的数据总容量的容量占比超出预设阈值。

更优的,所述针对所述任一级存储系统的区块数据迁移事件包括:

所述任一级存储系统中存储的区块数据的数据容量超出预设阈值;

或者,所述任一级存储系统中存储的区块数据的数据容量对应于所述任一级存储系统的数据总容量的容量占比超出预设阈值。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,相关之处参见方法实施例的部分说明即可,在此不再赘述。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部单元或模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

上述实施例阐明的装置、单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

与上述方法实施例相对应,本说明书的实施例还提供了一种计算机设备,该计算机设备包括存储器和处理器。其中,存储器上存储有能够由处理器运行的计算机程序;处理器在运行存储的计算机程序时,执行本说明书实施例中基于区块链的数据迁移方法的各个步骤。对基于区块链的数据迁移方法的各个步骤的详细描述请参见之前的内容,不再重复。

与上述方法实施例相对应,本说明书的实施例还提供了一种计算机可读存储介质,该存储介质上存储有计算机程序,这些计算机程序在被处理器运行时,执行本说明书实施例中基于区块链的作品版权收益分配方法的各个步骤。对基于区块链的数据迁移方法的各个步骤的详细描述请参见之前的内容,不再重复。

以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。

计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书的实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书的实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

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