区块链元数据存储系统及其存储方法与检索方法与流程

文档序号:12135197阅读:470来源:国知局
区块链元数据存储系统及其存储方法与检索方法与流程

本发明涉及数据存储与检索领域,尤其涉及一种元数据的存储系统、存储与检索方法。



背景技术:

区块链是一个去中心化去信任的集体维护的可靠数据库,分布式网络是区块链的基础设施,每个节点上产生的数据通过分布式网络广播到其他节点,其他节点通过工作量证明来验证数据的真实性。分布式网络是保证区块链去中心化、不可篡改、可回溯特性的前提,在比特币网络中,正是由于有分布于全球的验证节点,才使得比特币的工作量证明机制得到认可,也才让人们认识到了区块链的价值。

分布式网络是区块链的基础,而连接于分布式网络中的每个节点都存储有相同的数据交易记录,也就是每个节点记录相同的“一本账”则是区块链的最主要特征,要保证全网“一本账”,就必须将数据随时同步到各个节点,并能够保证数据的一致性。但在实际的应用系统中,业务数据可能非常庞大,尤其包括视频、音频的数据,动辄几十兆,有的甚至上百兆,如此庞大的数据在网络中传输,对带宽要求非常高,而且全网中如此大的数据汇聚成“一本账”,则这个账本会非常庞大,单个节点很难保证有足够的存储容量来存储。即使现在的比特币网络,账本的容量在优化后仍然达到4G以上,而且随着挖矿的进行,账本的容量在继续扩大,一台普通PC若要下载完成整个账本需要长达几十个小时,严重影响了用户体验,这不仅对区块链的普及推广构成很大的挑战,而且使得区块链在商业系统上的应用情况也变得更加严峻。

与数据存储相对应的是数据检索,在庞大“一本账”数据中如何快速检索,在区块链分布式网络中也面临着严峻的挑战。

因此,提供一种能够保证区块链上大容量元数据的存储及检索的方法及系统成为业内急需解决的问题。



技术实现要素:

本发明的目的在于提供一种区块链元数据存储系统及其存储方法与检索方法,其不仅能够引入分布式存储系统来存储大数据,同时还可以将数据降维后再存入区块链,便于需求方采集所需的信息。

本发明的第一个目的在于提供一种区块链元数据存储系统,包括各自连接互联网的至少一个主节点及若干个副节点,至少一个主节点及若干个副节点通过区块链构造成分布式共享网络,其中,至少一个主节点包括:数据接收模块,其用于接收来自外部的源数据;分布式存储模块,其与数据接收模块相连接,用于将数据接收模块传输的源数据进行分布式存储;降维保全模块,其与分布式存储模块相连接,用于将分布式存储模块传输的源数据进行降维操作以形成元数据后,再对元数据进行保全操作以形成数据指纹;数据存储模块,其与降维保全模块相连接,用于将数据指纹写入区块链中;以及第一数据共识模块,其用于将数据指纹进行全网发布以实现区块链的共识过程;若干个副节点包括:数据共识模块,其用于接收及存储区块链发布的数据指纹以完成区块链的共识过程。

其中,源数据是指需要保存的数据,诸如文档、语音、视频、或记录信息等。

此外,分布式存储模块采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息。分布式存储在众多的服务器搭建一个分布式文件系统,再在这个分布式文件系统上实现相关的数据存储业务。分布式文件系统是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。分布式文件系统可以包括:Lustre、Hadoop、MogileFS、FreeNAS、FastDFS、MooseFS、pNFS等,优选地,分布式存储模块设定为采用FastDFS分布式文件系统。

可选择地,主节点还包括:与分布式存储模块相连接的用于进行负载均衡的Nginx组件以及连接于Nginx组件与数据存储模块之间的ATS组件。

优选地,数据的降维保全操作是指对数据应用HASH算法,其中,HASH算法是将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。要找到散列为同一个值的两个不同的输入,在计算上是不可能的,所以数据的哈希值相似于“指纹”,经HASH算法处理后得到的HASH值被称为“指纹”值,从而可以检验数据的完整性。HASH算法包括:MD2、MD4、MD5和SHA-1。更优选地,本发明的降维及保全操作设定为对源数据应用SHA-1算法。

优选地,数据指纹设定为包括:本次源数据应用SHA-1算法得到的作为元数据的HASH值、本次源数据应用SHA-1算法的时间戳、本次源数据应用SHA-1算法的数字签名、以及上次元数据的数据指纹。

优选地,主节点还包括:指纹检索模块,其与数据存储模块相连接,用于检索存储于区块链中的数据指纹以得到检索数据指纹。

优选地,主节点及副节点均包括有验证模块,其用于验证检索数据指纹是否发生篡改。

本发明的第二个目的在于提供一种上述区块链元数据存储系统的存储方法,其包括:主节点接收来自外部的源数据,并将源数据进行分布式存储;主节点将进行分布式存储的源数据进行降维操作以形成元数据后,再对元数据进行保全操作以形成数据指纹;主节点将数据指纹写入区块链中,利用区块链的共识过程进行全网发布;以及副节点接收及存储所述区块链发布的所述数据指纹。

优选地,降维操作设定为对元数据应用SHA-1算法。

优选地,数据指纹设定为包括:本次源数据应用SHA-1算法得到的元数据、本次源数据应用SHA-1算法的时间戳、本次源数据应用SHA-1算法的数字签名、以及上次元数据的数据指纹。

本发明的第三个目的在于提供一种上述区块链元数据存储系统的指纹检索方法,其包括:于主节点上对目标数据指纹进行检索以获取检索数据指纹;于主节点及连接于区块链中的若干个副节点上对检索数据指纹进行验证;以及待主节点及若干个副节点对检索数据指纹验证一致性比例超过80%后,判定检索数据指纹未发生篡改,完成指纹检索过程。

本发明的有益效果是:(1)、主节点引入分布式存储系统来存储诸如音频、视频类的大数据量的源数据,然后再将源数据进行降维保全形成的数据指纹存入区块链中,并通过区块链的共识过程将数据指纹分布式存储到各个副节点中,大大减小了存储于区块链中的数据量,减轻了区块链的数据负担;(2)、源数据通过降维算法降维保全后就变为区块链可以接受的数据大小,而且在数据同步的过程中,大大降低了对带宽的要求,对分布式节点上的存储要求也大大降低;(3)、采用中心化的检索方式,在保证数据一致性的前提下,只需要在主节点上检索数据指纹即可,不需要进行全网检索,从而避免了不必要的带宽开销,保证数据检索的速度;(4)、每一次完成数据指纹检索后,都需要首先在全网进行验证,确保检索得到的数据指纹没有被篡改掉,才可以使用,有效保证了数据的安全性。

附图说明

图1是本发明的区块链元数据存储系统的构造示意图。

图2是本发明的数据指纹的组成示意图。

图3是本发明的区块链元数据存储系统的存储方法的流程示意图。

图4是本发明的区块链元数据存储系统的检索方法的流程示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。

首先,请参考图1,作为一种非限制性示例,本发明的区块链元数据存储系统包括各自连接互联网的一个主节点P及n个副节点S1、S2、S3……Sn,主节点P与副节点S1、S2、S3……Sn通过区块链C构造成分布式共享网络。在本发明中,主节点与副节点是逻辑上的区别,主节点可以发送“心跳”,副节点不需要发送“心跳”,同时,主节点可以接受外部的业务数据,而副节点不接收外部的业务数据。其中,“心跳”是主节点与若干个副节点之间进行网络探测的一种方式,其用来探测主节点与副节点之间的连通性。

在该非限制性示例中,主节点P包括:数据接收模块100、分布式存储模块200、降维保全模块300、数据存储模块400以及第一数据共识模块700。其中,数据接收模块100接收来自外部的作为源数据的业务数据,分布式存储模块200则将数据接收模块100传输来的源数据进行分布式存储。在本发明中,对于音频、视频等大文件的源数据的存储采用FastDFS分布式文件系统存储,从而适用于音频及视频等大文件。在完成分布式存储后,利用降维保全模块300将分布式存储模块200传输的源数据先进行降维形成元数据,然后再对元数据进行保全操作,从而形成数据指纹。而数据存储模块400则将降维保全后形成的数据指纹写入区块链中,然后再利用第一数据共识模块700将这些数据指纹进行全网发布,从而实现区块链的共识过程,同时副节点S1、S2、S3……Sn利用第二数据共识模块800来接收及存储区块链发布的这些数据指纹,从而大大降低了区块链中的存储数据量。

在该非限制性示例中,降维保全模块300对源数据应用SHA-1算法,降维保全的过程类似于对源数据进行“压缩”,其需要基于数据内容、文件特征、时间戳等特定信息进行压缩。其中,如图2所示,本发明的数据指纹包括本次源数据应用SHA-1算法得到的作为元数据的HASH值、本次源数据应用SHA-1算法的时间戳、本次源数据应用SHA-1算法的数字签名、以及上次元数据的数据指纹。从而将本次的源数据进行了“固化”,再定期地发布在区块链中,接受连接于区块链中的各个节点的监督,保证了区块链中存储数据的安全性及可靠性。

作为一种可替代的实施方式,主节点P还包括指纹检索模块500及验证模块600,与此对应地,副节点S1、S2、S3……Sn上安装有验证模块600。由此,在保证数据一致性的前提下,当需要对源数据的数据指纹进行检索时,只需要在主节点P上利用指纹检索模块500便可以检索存储于主节点P的区块链中的数据指纹,从而得到检索数据指纹,不需要进行全网检索,避免了不必要的宽带开销。但是为了确保数据的安全性,检索后得到的检索数据指纹需要在全网进行验证,利用主节点P及n个副节点S1、S2、S3……Sn上安装的验证模块600,便可以验证检索数据指纹是否发生篡改,在保证检索数据指纹未发生改变的情况下,才可以对该元数据进行使用。

基于同样的思想,本发明还提供了区块链元数据存储系统的存储方法,如图3所示,在步骤S1中,主节点接收来自外部的源数据,并将源数据进行分布式存储。接着,在步骤S2中,主节点将进行分布式存储的源数据进行降维操作形成元数据后,再对元数据进行保全操作,从而形成数据指纹。在步骤S3中,继续利用主节点将数据指纹写入区块链中,利用区块链的共识过程进行全网发布。最后,在步骤S4中,将数据指纹分布式存储于连接于区块链中的n个副节点中。

与存储方法相对应的是区块链元数据存储系统的检索方法,为了在庞大的区块链中实现元数据的快速检索,如图4所示,首先,在步骤S10中,于主节点上对目标数据指纹进行检索,从而获取检索数据指纹。接着,在步骤S20中,于主节点及若干个副节点上对检索数据指纹进行验证。最后,在步骤S30中,待主节点及若干个副节点对检索数据指纹验证一致性比例超过80%后,则判定检索数据指纹未发生篡改,完成指纹检索的过程。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

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

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