一种基于文件链分块的区块链存储方法、存储系统及存储
介质
技术领域
背景技术
[0002] 当今区块链的发展主要基于两个方面的背景,一是当今区块链的广泛前景;二是区块链在存储领域中新型发展。
[0003] 区块链技术也称为
分布式账本技术,是一种互联网
数据库技术,其特点是去中心化、公开透明,让每个人均可参与数据库记录,通过网络使用每台机器上的磁盘空间,并将这些分散的存储资源构成一个虚拟的存储设备,数据分散的存储在网络中的各个
角落。
[0004] 目前,区块链被应用于金融财务行业,在提供不可篡改和建立信任机制中发挥重要作用。随着技术的发展,一些区块链应用被开发出来,极大的刺激的区块链行业的发展。
发明内容
[0005] 鉴于以上所述
现有技术的缺点,本发明的目的在于提供一种基于文件链分块的区块链存储方法、存储系统及存储介质,用于解决现有技术中现有的区块链技术,例如以太坊,每个
节点都存储了全量的交易信息,导致每个节点体积过于庞大;在整个链上,同样的数据几乎被每个节点冗余,使得整个链对于磁盘要求越来越高;现有的区块链中,每个节点有着全量的数据,导致在生成共识的时候,必须采用
工作量证明的方式达成一致;在存储领域,暂无对文件进行的追溯机制等问题。本发明提供一种基于文件链分块的区块链存储方法,所述基于文件链分块的区块链存储方法包括以下步骤:
[0006] 上传文件;
[0007] 将文件切分为多个文件块;并对每一个文件块进行哈希加密,得到其对应的哈希指纹;
[0008] 将文件块分散到对应存储节点;
[0009] 建立文件块的索引文件;
[0010] 将索引文件插入到文件链中。
[0011] 所述文件是按照文件大小切分为多个文件块。
[0012] 所述文件大小为1024个字节。
[0013] 所述的将文件块分散到对应存储节点的步骤包括:对于每一个文件块,计算文件块与多个存储节点间的距离,选择距离最小的存储节点进行存储。
[0014] 所述的建立文件的索引文件的方法为:根据切分后的文件块以及其对应的存储节点,生成文件描述内容,建立文件块的索引文件。
[0015] 一种基于文件链分块的区块链存储系统,所述基于文件链分块的区块链存储系统包括:
[0017] 核心逻辑层,用于对文件进行分块、哈希加密以及建立索引文件作用;
[0018] 存储节点层,用于对文件块进行存储。
[0019] 所述的核心逻辑层包括:
[0020] 哈希分块模块:对数据进行切分,每1024个字节为1块,并对这一块进行哈希运算,得到当前块的哈希指纹;
[0021] 分发模块:对文件块进行分发,首先对当前文件块进行寻址,计算当前节点与存储节点距离,选择距离最小的一些节点进行存储;
[0022] 文件链模块:接收文件块内容,生成对应的文件描述内容,建立文件块的索引文件。
[0023] 所述的索引文件包括4个部分:前一个文件的哈希值(previous)、当前文件的哈希值(Hash)、文件描述内容(MetaData)、数据哈希(DataHash)。
[0024] 一种存储介质,其上存储有
计算机程序,该程序被处理器执行时实现如上所述基于文件链分块的区块链存储方法的步骤。
[0025] 一种
电子设备,包括
存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行所述程序时实现如上所述基于文件链分块的区块链存储方法的步骤。
[0026] 如上所述,本发明的一种基于文件链分块的区块链存储方法、存储系统及存储介质,具有以下有益效果:
[0027] 本发明与现有的区块链等技术相比,例如以太坊,本发明能有效的节约单节点的负载,解决了区块链中每个节点备份全量数据的问题,同时对数据文件进行切分,加密存储在多个节点中,有效的保护了数据的安全,并且,在存储领域,创新性提出了文件链的存储方式,文件以链式存储的方式分散在多存储节点中,达到了分布式容灾、不可篡改、版本追踪等功能,是新一代的优质存储方式。
附图说明
[0028] 图1显示为本发明
实施例中一种基于文件链分块的区块链存储方法的流程示意图。
[0029] 图2显示为本发明实施例中一种基于文件链分块的区块链存储系统的功能模块示意图。
[0030] 图3显示为本发明实施例中一种基于文件链分块的区块链存储方法的文件分块原理示意图。
[0031] 图4显示为本发明实施例中一种基于文件链分块的区块链存储方法中索引文件的原理结构示意图。
[0032] 图5显示为本发明实施例中一种基于文件链分块的区块链存储方法中文件块分散加密存储示意图。
[0033] 图6显示为本发明实施例中一种基于文件链分块的区块链存储方法中文件寻址存储示意图。
具体实施方式
[0034] 以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本
说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
[0035] 需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
[0036] 请参阅图1,本发明提供一种基于文件链分块的区块链存储方法的流程示意图。
[0037] 如图1所示,本发明中一种基于文件链分块的区块链存储方法包括以下步骤:
[0038] 上传文件;
[0039] 将文件切分为多个文件块;并对每一个文件块进行哈希加密,得到其对应的哈希指纹;
[0040] 将文件块分散到对应存储节点;
[0041] 建立文件块的索引文件;
[0042] 将索引文件插入到文件链中。
[0043] 所述文件是按照文件大小切分为多个文件块。
[0044] 所述文件大小为1024个字节。
[0045] 所述的将文件块分散到对应存储节点的步骤包括:对于每一个文件块,计算文件块与多个存储节点间的距离,选择距离最小的存储节点进行存储。
[0046] 所述的建立文件的索引文件的方法为:根据切分后的文件块以及其对应的存储节点,生成文件描述内容,建立文件块的索引文件。
[0047] 请参阅图2,本发明提供一种基于文件链分块的区块链存储系统的功能模块示意图。
[0048] 如图2所示,本发明中一种基于文件链分块的区块链存储系统包括:
[0049] 接口层,用于操作整个存储系统;
[0050] 核心逻辑层,用于对文件进行分块、哈希加密以及建立索引文件作用;
[0051] 存储节点层,用于对文件块进行存储。
[0052] 所述的核心逻辑层包括:
[0053] 哈希分块模块:对数据进行切分,每1024个字节为1块,并对这一块进行哈希运算,得到当前块的哈希指纹;
[0054] 分发模块:对文件块进行分发,首先对当前文件块进行寻址,计算当前节点与存储节点距离,选择距离最小的一些节点进行存储;
[0055] 文件链模块:接收文件块内容,根据文件信息生成对应的文件描述内容,建立文件块的索引文件。
[0056] 所述的索引文件包括4个部分:前一个文件的哈希值(previous)、当前文件的哈希值(Hash)、文件描述内容(MetaData)、数据哈希(DataHash)。
[0057] 请参阅图3,本发明提供一种基于文件链分块的区块链存储方法的文件分块原理示意图。
[0058] 如图3所示,通过哈希分块模块,对文件按照文件大小进行切分。优选地,每1024个字节为1块。并对切分后的文件块进行哈希运算,得到当前文件块的哈希指纹。优选采用如下方式进行哈希指纹的计算:
[0059] blockHash=sha256(block content);
[0060] 其中,block content表示数据内容。
[0061] 请参阅图4,本发明提供一种基于文件链分块的区块链存储方法中索引文件的原理结构示意图。
[0062] 如图4所示,通过文件链模块,接收到文件内容,生成对应的文件描述内容,建立文件的索引文件,索引文件包括4个部分:前一个文件的哈希值(previous)、当前文件的哈希值(Hash)、文件描述内容(MetaData)、数据哈希(DataHash)。
[0063] 在本发明的一较佳实施例中,前一个文件的哈希值(previous)、当前文件的哈希值(Hash)、文件描述内容(MetaData)和数据哈希(DataHash)可通过如下公式进行计算:
[0064] DataHash=sha256(blockhash+blockhash);
[0065] MetaDataHash=sha256(md5(content)+md5(size)+md5(timestamp));
[0066] Hash=sha256(previous+metaDataHash+DataHash);
[0067] 其中,content为数据内容;size为数据大小;timestamp为上传时间。
[0068] 通过文件链模块,将当前文件块的索引文件加入到文件链中,成为当前文件链中的最新版本,形成最新的、可追溯的、不可篡改的文件链。
[0069] 请参阅图5,本发明提供一种基于文件链分块的区块链存储方法中文件块分散加密存储示意图。
[0070] 如图5所示,通过分发模块,对文件块块进行分发,首先对当前文件块进行寻址,计算当前节点与存储节点距离,选择距离最小的节点进行存储。在本发明的一较佳实施例中,距离最小节点是通过下述公式计算的:
[0071]
[0072] 其中,StoreNodeHash表示存储节点的哈希值。
[0073] 请参阅图6,本发明提供一种基于文件链分块的区块链存储方法中文件寻址存储示意图。
[0074] 如图6所示,通过分块的哈希指纹与存储节点进行异或操作,将文件快寻址分散到对应的存储节点。
[0075] 综上所述,本发明与现有的区块链等技术相比,例如以太坊,本发明能有效的节约单节点的负载,解决了区块链中每个节点备份全量数据的问题,同时对数据文件进行切分,加密存储在多个节点中,有效的保护了数据的安全,并且,在存储领域,创新性提出了文件链的存储方式,文件以链式存储的方式分散在多存储节点中,达到了分布式容灾、不可篡改、版本追踪等功能,是新一代的优质存储方式。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
[0076] 上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的
权利要求所涵盖。