掌桥专利:专业的专利平台
掌桥专利
首页

基于联盟区块链的多节点存储系统及方法

文献发布时间:2023-06-19 10:29:05


基于联盟区块链的多节点存储系统及方法

技术领域

本发明涉及区块链技术领域,具体涉及基于联盟区块链的多节点存储系统及方法。

背景技术

近几年来,国内互联网的发展风起云涌。前十年,是信息互联网与人际互联网的良性互动,最近十年的发展趋势是服务互联网与物联网的良性互动。从技术角度上,体现在数据存储从单一文件系统发展到海量分布式存储;从具体服务上,体现在从服务统一化管理发展到云上业务微服务化;从基础设施上,体现在从购买大型昂贵的物理机发展到租赁云上价格实惠的虚拟机。技术发展趋势从整体上讲呈从小规模维护到大规模运维管理方向发展,作为一种底层与后端技术,区块链自诞生起,就与基础设施这个概念紧密关联。区块链以P2P对等网络为基础、以密码学技术起家,重在数据存储与数据交互,基于其不可篡改、去(弱)中心化等特点,区块链曾被《经济学人》称为“创造信任的机器”,业界寄望区块链能在不可信的互联网环境中建立信任,搭建信任基础设施,消除中心化架构带来的信息不对称,从而降低经济生活中的信任成本,随着区块链中区块的数目不断增多,导致随着区块的数目增多对于资源的占用也在不断的增加。

发明内容

本发明实施例提供了基于联盟区块链的多节点存储系统及方法,通过对区块进行压缩同时对区块文件归并生成索引信息,减少资源的占用,解决了目前随着区块链中区块的数目不断增多,导致随着区块的数目增多对于资源的占用也在不断的增加的问题。

基于联盟区块链的多节点存储系统,包括:区块获取模块、区块归并模块、广播模块和更新模块;

区块获取模块,用于获取区块的数量并根据区块的数量进行标记,得到标记数据;

其中,所述区块获取模块包括实时获取单元、区块统计单元和标的单元,所述实时获取单元用于实时采集区块的数量,所述区块统计单元用于统计采集的区块的数量,根据采集的区块的数量对采集的区块进行分组,所述标的单元用于对不同分组中的区块进行标记,得到标记数据;

区块归并模块,用于根据所述区块获取模块标记得到的标记数据对区块进行识别和打包压缩,并将压缩完成的区块进行加密和归并,同生成索引信息;

其中,所述区块归并模块包括识别单元、打包单元、归并单元、索引创建单元和加密单元,所述识别单元用于根据所述区块获取模块得到的标记数据,对被标记的区块进行识别,所述打包单元用于对被标记的区块进行打包压缩,得到区块打包压缩数据,所述加密单元用于对区块打包压缩数据进行加密得到验证秘钥,所述归并单元用于对加密后的区块打包压缩数据进行归并,得到区块压缩包集合,所述索引创建单元用于根据所述归并单元归并的区块压缩数据建立索引信息;

广播模块,用于记录进行压缩的区块的索引信息并对外同步发布到公共账本;

其中,所述广播模块包括记录单元和发布单元,所述记录单元用于对所述区块归并模块得到的区块压缩文件索引信息进行记录,所述发布单元用于将索引信息同步发布到公共账本;

更新模块,用于获取公共账本中索引信息,验证通过后对本地数据进行更新同时转发到相邻的其他节点;

其中,所述更新模块包括接收单元、解密单元、验证单元、解析单元和转发单元,所述接收单元用于从公共账本中获取索引信息,解密单元根据索引信息分别对区块打包压缩数据验证秘钥进行解密,验证单元对解密结果进行对比判断,得到判断结果,验证通过后,解析单元用于根据索引信息对归并后的区块数据进行解析,并对本地数据进行更新,同时将更新信息转发到其他节点。

进一步的,所述加密单元采用哈希算法进行加密所述解密单元采用相同的哈希算法进行解密。

进一步的,所述统计单元对区块就那些分组的方式为,将区块按照每十万块进行一次分组,所述标的单元对区块进行标记的方式为,读取区块数据0-1kByte中内容并截取其中第15Byte至150Byte段的内容生成二进制数,得到标记数据。

进一步的,所述识别单元是识别区块的方式为,通过读取区块数据0-1kByte中内容并截取其中第15Byte至150Byte段的内容生成二进制数与所述标的单元生成的标记数据进行比对得到被标记的区块。

进一步的,所述归并单元还用于对区块压缩包集合生成父ID以及对区块压缩包集合中单个区块压缩包生成子ID。

进一步的,所述索引创建单元得到的索引信息包括区块压缩包的验证秘钥和区块压缩包集合的父ID和区块压缩包集合中单个区块压缩包的子ID以及区块压缩包的说明信息。

进一步的,所述解密单元根据区块压缩包的验证秘钥和区块压缩包集合的父ID和区块压缩包集合中单个区块压缩包的子ID对区块压缩包进行解密。

第二方面,本发明实施例提供基于联盟区块链的多节点存储方法,包括以下步骤:

S1,区块分析,实时获取单元实时采集区块的数量,区块统计单元统计采集的区块的数量,根据采集的区块的数量对采集的区块进行分组,标的单元对不同分组中的区块进行标记,得到标记数据;

S2,区块打包,识别单元根据区块标的单元得到的标记数据,对被标记的区块进行识别,打包单元对被标记的区块进行打包压缩,得到区块打包压缩数据,加密单元对区块打包压缩数据进行加密得到验证秘钥,归并单元对加密后的区块打包压缩数据进行归并,得到区块压缩包集合,索引创建单元根据归并单元归并的区块压缩数据建立索引信息;

S3,广播,记录单元对索引创建单元得到的区块压缩文件索引信息进行记录,发布单元将索引信息同步发布到公共账本;

S4,区块更新,接收单元从公共账本中获取索引信息,解密单元根据索引信息分别对区块打包压缩数据验证秘钥进行解密,验证单元对解密结果进行对比判断,得到判断结果,验证通过后,解析单元根据索引信息对归并后的区块数据进行解析,并对本地数据进行更新,同时将更新信息转发到其他节点。

本发明实施例提供的上述技术方案的有益效果至少包括:

本发明通过对区块进行压缩同时对区块文件归并生成索引信息,减少资源的占用,解决了目前随着区块链中区块的数目不断增多,导致随着区块的数目增多对于资源的占用也在不断的增加的问题。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图1为本发明实施例公开的基于联盟区块链的多节点存储系统结构示意图;

图2为本发明实施例公开的基于联盟区块链的多节点存储方法流程示意图。

附图标记:

100-区块获取模块;101-实时获取单元;102-区块统计单元;103-标的单元;200-区块归并模块;201-识别单元;202-打包单元;203-归并单元;204-索引创建单元;205-加密单元;300-广播模块;301-记录单元;302-发布单元;400-更新模块;401-接收单元;402-解密单元;403-解析单元;404-验证单元;405-转发单元。

具体实施例

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

实施例一

如图1所示,本发明实施例提供基于联盟区块链的多节点存储系统,包括:区块获取模块100、区块归并模块200、广播模块300和更新模块400;

区块获取模块100,用于获取区块的数量并根据区块的数量进行标记,得到标记数据,所述区块获取模块100包括实时获取单元101、区块统计单元102和标的单元103,所述实时获取单元101用于实时采集区块的数量,所述区块统计单元102用于统计采集的区块的数量,根据采集的区块的数量对采集的区块进行分组,所述统计单元对区块就那些分组的方式为,将区块按照每十万块进行一次分组,所述标的单元103用于对不同分组中的区块进行标记,得到标记数据,所述标的单元103对区块进行标记的方式为,读取区块数据0-1kByte中内容并截取其中第15Byte至150Byte段的内容生成二进制数,得到标记数据;

具体的,实时获取单元101实时读取区块链中区块的数量,得到区块的数量数据,区块统计单元102根据每十万块进行一次分组的方式对区块进行分组,例如,一条区块链上包括25万个区块,则将该区块链上的区块从区块链的起始按照每10万块进行一次分组,共分成两组,其中不足10万的部分不进行分组,标的单元103对分组中的区块分别获取二进制数得到标记数据。

区块归并模块200,用于根据所述区块获取模块100标记得到的标记数据对区块进行识别和打包压缩,并将压缩完成的区块进行加密和归并,同生成索引信息,所述区块归并模块200包括识别单元201、打包单元202、归并单元203、索引创建单元204和加密单元205,所述识别单元201用于根据所述区块获取模块100得到的标记数据,所述识别单元201是识别区块的方式为,通过读取区块数据0-1kByte中内容并截取其中第15Byte至150Byte段的内容生成二进制数与所述标的单元103生成的标记数据进行比对得到被标记的区块,对被标记的区块进行识别,所述打包单元202用于对被标记的区块进行打包压缩,得到区块打包压缩数据,所述加密单元205用于对区块打包压缩数据进行加密得到验证秘钥,加密单元205采用哈希算法进行加密,所述归并单元203用于对加密后的区块打包压缩数据进行归并,得到区块压缩包集合,所述归并单元203还用于对区块压缩包集合生成父ID以及对区块压缩包集合中单个区块压缩包生成子ID,所述索引创建单元204用于根据所述归并单元203归并的区块压缩数据建立索引信息,所述索引创建单元204得到的索引信息包括区块压缩包的验证秘钥和区块压缩包集合的父ID和区块压缩包集合中单个区块压缩包的子ID以及区块压缩包的说明信息,该区块压缩包的说明信息包括压缩包内区块的文件数、文件创建时间、文件大小以及区块目录信息;

具体的,识别单元201根据读取区块中数据,并生成为二进制数,同时与标记数据的二进制数进行比对,当识别单元201根据读取区块中数据生成为二进制数与标记数据一致时,识别单元201判定该区块为被标记区块,将区块筛选出来,打包单元202将筛选出来的区块进行压缩,压缩完成后加密单元205采用哈希算法进行加密得到对应的验证秘钥,归并单元203将压缩后的区块以及对应的秘钥进行归集得到区块压缩包集合,并对区块压缩包集合生成父ID以及对区块压缩包集合中单个区块压缩包生成子ID,索引创建单元204根据区块压缩包集合数据生成包含有压缩包集合的父ID和区块压缩包集合中单个区块压缩包的子ID以及对应验证秘钥和区块压缩包的说明信息的索引信息。

广播模块300,用于记录进行压缩的区块的索引信息并对外同步发布到公共账本,所述广播模块300包括记录单元301和发布单元302,所述记录单元301用于对所述区块归并模块200得到的区块压缩文件索引信息进行记录,所述发布单元302用于将索引信息同步发布到公共账本;

具体的,记录单元301将区块归并模块200得到的区块压缩文件索引信息进行记录,发布单元302同步将索引信息同步发布到公共账本上。

更新模块400,用于获取公共账本中索引信息,验证通过后对本地数据进行更新同时转发到相邻的其他节点,所述更新模块400包括接收单元401、解密单元402、验证单元404、解析单元403和转发单元405,所述接收单元401用于从公共账本中获取索引信息,解密单元402根据索引信息分别对区块打包压缩数据验证秘钥进行解密,解密单元402采用相同的哈希算法进行解密,所述解密单元402根据区块压缩包的验证秘钥和区块压缩包集合的父ID和区块压缩包集合中单个区块压缩包的子ID对区块压缩包进行解密,验证单元404对解密结果进行对比判断,得到判断结果,验证通过后,解析单元403用于根据索引信息对归并后的区块数据进行解析,并对本地数据进行更新,同时将更新信息转发到其他节点;

具体的,更新模块400设置于各个节点中,接收单元401实时采集公共账本中公示的索引信息,同时将采集到的索引信息输入到解密单元402,解密单元402根据索引信息中的区块压缩包集合的父ID和区块压缩包集合中单个区块压缩包的子ID对区块压缩包进行解密,同时验证单元404对解密结果进行验证,验证通过后,解析单元403根据压缩包集合的父ID和区块压缩包集合中单个区块压缩包的子ID对区块压缩包进行解析并对节点本地数据进行更新,更新过程包括将索引信息更新到本地,同时将更新信息转发到相邻的节点,相邻的节点接收到更新信息后重复上述操作,在相邻的节点本地更新过程中转发单元405发送更新信息转发到相邻的节点直至节点数据全部更新完成。

本发明通过对区块进行压缩同时对区块文件归并生成索引信息,减少资源的占用,同时通过节点之间的相互发送更新信息加快更新的速度,解决了目前随着区块链中区块的数目不断增多,导致随着区块的数目增多对于资源的占用也在不断的增加的问题。

实施例二

如图1所示,本发明实施例还公开了基于联盟区块链的多节点存储方法,包括以下步骤:

S1,区块分析,实时获取单元101实时采集区块的数量,区块统计单元102统计采集的区块的数量,根据采集的区块的数量对采集的区块进行分组,标的单元103对不同分组中的区块进行标记,得到标记数据;

具体的,实时获取单元101实时读取区块链中区块的数量,得到区块的数量数据,区块统计单元102根据每十万块进行一次分组的方式对区块进行分组,其中不足10万的部分不进行分组,标的单元103读取分组中的区块数据0-1kByte中内容并截取其中第15Byte至150Byte段的内容生成二进制数,得到标记数据。

S2,区块打包,识别单元201根据区块标的单元103得到的标记数据,对被标记的区块进行识别,打包单元202对被标记的区块进行打包压缩,得到区块打包压缩数据,加密单元205对区块打包压缩数据进行加密得到验证秘钥,归并单元203对加密后的区块打包压缩数据进行归并,得到区块压缩包集合,索引创建单元204根据归并单元203归并的区块压缩数据建立索引信息;

具体的,识别单元201读取区块数据0-1kByte中内容并截取其中第15Byte至150Byte段的内容生成二进制数与所述标的单元103生成的标记数据进行比对当识别单元201根据读取区块中数据生成为二进制数与标记数据一致时,识别单元201判定该区块为被标记区块,将区块筛选出来,打包单元202将筛选出来的区块进行压缩,压缩完成后加密单元205采用哈希算法进行加密得到对应的验证秘钥,归并单元203将压缩后的区块以及对应的秘钥进行归集得到区块压缩包集合,并对区块压缩包集合生成父ID以及对区块压缩包集合中单个区块压缩包生成子ID,索引创建单元204根据区块压缩包集合数据生成包含有压缩包集合的父ID和区块压缩包集合中单个区块压缩包的子ID以及对应验证秘钥和区块压缩包的说明信息的索引信息。

S3,广播,记录单元301对索引创建单元204得到的区块压缩文件索引信息进行记录,发布单元302将索引信息同步发布到公共账本;

S4,区块更新,接收单元401从公共账本中获取索引信息,解密单元402根据索引信息分别对区块打包压缩数据验证秘钥进行解密,验证单元404对解密结果进行对比判断,得到判断结果,验证通过后,解析单元403根据索引信息对归并后的区块数据进行解析,并对本地数据进行更新,同时将更新信息转发到其他节点;

具体的,接收单元401实时采集公共账本中公示的索引信息,同时将索引信息输入到解密单元402,解密单元402根据索引信息中的区块压缩包集合的父ID和区块压缩包集合中单个区块压缩包的子ID找到对应的区块压缩包并进行解密,同时验证单元404对解密结果进行验证,验证通过后,解析单元403根据压缩包集合的父ID和区块压缩包集合中单个区块压缩包的子ID对区块压缩包进行解析并对节点本地数据进行更新,更新过程包括将索引信息更新到本地,同时将更新信息转发到相邻的节点,相邻的节点接收到更新信息后重复上述操作,在相邻的节点本地更新过程中发送更新信息转发到相邻的节点直至节点数据全部更新完成。

本实施例公开的基于联盟区块链的多节点存储方法,通过对区块进行压缩同时对区块文件归并生成索引信息,减少资源的占用,解决了目前随着区块链中区块的数目不断增多,导致随着区块的数目增多对于资源的占用也在不断的增加的问题。

应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。

在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要清楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的那样,本发明处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。

本领域技术人员还应当理解,结合本文的实施例描述的各种说明性的逻辑框、模块、电路和算法步骤均可以实现成电子硬件、计算机软件或其组合。为了清楚地说明硬件和软件之间的可交换性,上面对各种说明性的部件、框、模块、电路和步骤均围绕其功能进行了一般地描述。至于这种功能是实现成硬件还是实现成软件,取决于特定的应用和对整个系统所施加的设计约束条件。熟练的技术人员可以针对每个特定应用,以变通的方式实现所描述的功能,但是,这种实现决策不应解释为背离本公开的保护范围。

结合本文的实施例所描述的方法或者算法的步骤可直接体现为硬件、由处理器执行的软件模块或其组合。软件模块可以位于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动磁盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质连接至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。该ASIC可以位于用户终端中。当然,处理器和存储介质也可以作为分立组件存在于用户终端中。

对于软件实现,本申请中描述的技术可用执行本申请所述功能的模块(例如,过程、函数等)来实现。这些软件代码可以存储在存储器单元并由处理器执行。存储器单元可以实现在处理器内,也可以实现在处理器外,在后一种情况下,它经由各种手段以通信方式耦合到处理器,这些都是本领域中所公知的。

上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。

相关技术
  • 基于联盟区块链的多节点存储系统及方法
  • 一种基于区块链技术的联盟多节点网络身份认证系统
技术分类

06120112568245