一种基于区块链的大数据分析方法及系统与流程

文档序号:15385907发布日期:2018-09-08 00:33阅读:208来源:国知局

本发明涉及大数据分析方法领域,具体涉及一种基于区块链的大数据分析方法及系统。



背景技术:

区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法。其核心是分布式记账方法,将各个节点数据同步,只可以写入或读取,无法进行修改,从而实现了去中心化和不可篡改。大数据(bigdata),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。大数据分析的前提是具有足够的数据资源,而区块链技术的出现正好可以容纳各个节点的参与。但是在区块链中,数据有一定的冗余率,这也是保证区块链数据安全性的重要原因。但是在节点逐渐增多,数据内容也在不断扩大的时候,区块链的节点会逐渐增大,节点数量也会逐渐增加,那么对于每个节点的广播或者同步的时间就会逐渐增加,造成参与效率低,耗费节点的cpu。现有的区块链技术通常通过隔离认证、utxo和扩容等技术实现。但是这些方式无法从数据源节省,只能在一定程度上减少区块的数据量或者扩大区块的数据容纳量。



技术实现要素:

本发明的目的在于:针对现有技术中区块中数据量庞大而造成的节点参与效率低的问题,本发明提供了一种基于区块链的大数据分析方法及系统。

为了到达上述目的,本发明采用的技术方案如下:

本发明实施例从一方面提供了一种基于区块链的大数据分析方法,包括:

由节点判断数据的合法性并发送合法的所述数据;

接收合法的数据并将合法的数据写入区块链;

由节点同步区块链并获得合法的数据;

所述将合法的数据写入区块链中,其中合法的数据以索引形式写入区块链中。

本发明实施例可能的一个设计中,具体地,其中合法的数据以索引形式写入区块链中包括:

获取合法的数据对应的索引值;

将所述索引值转换为树形结构,所述树形结构包括至少三层叶子点,一层叶子点中包含的叶子点数量为至少一个,中间层各叶子点中一个叶子点对应的内容为一个待存储索引的索引值段,且由根叶子点至一叶子点的上一叶子点的路径所关联的叶子点的内容,与所述索引值相应;

按照预设映射规则,确定所述树形结构的中间层各叶子点的内容相应的映射值,一个节点的内容的长度大于相应的映射值的长度;

将中间层各叶子点的内容替换为相应的映射值,存储替换后的所述树形结构。

本发明实施例可能的一个设计中,具体地,,所述将索引值转换为树形结构的过程包括:

按照预设切分规则,将所述索引值进行等长切分,得到各待存储索引对应的至少两个长度相等的索引值段;

按照切分后的各索引值段在相应待存储索引中的排列顺序,确定所述切分后的各索引值段在中间层的分层,所述索引值段对应的分层不同;

对于各待存储索引,将切分后的各索引值段按照所确定的分层,分层存储在中间层中;

在树形结构的叶子节点层的叶子节点中存储所述索引值,由根节点至任一叶子节点的上一节点的路径所关联的节点的内容,与所述索引值相应。

本发明实施例可能的一个设计中,具体地,所述由节点判断数据的合法性包括:

生成节点的第一地址,所述第一地址为其他节点识别所述节点的唯一标识;

生成节点的第二地址,所述第二地址接收第一地址发送第一合法的所述数据;

生成节点的第三地址,所述第三地址接收第二地址发送第二合法的所述数据;

第一地址和第二地址之间存储有预设的第一数据验证条件,第二地址和第三地址存储有预设的第二数据验证条件;第一合法指所述数据满足第一数据验证条件;第二合法指所述数据满足第二数据验证条件。

本发明实施例可能的一个设计中,具体地,所述第一数据验证条件为数据占用空间小于或等于1m,所述第二数据验证条件为数据格式是否为索引形式。

本发明实施例从另一方面提供了一种基于区块链的大数据分析系统,包括:

服务器:断数据的合法性并发送合法的所述数据;

数据库:接收并写入合法的数据并将合法的数据;

所述服务器:同步区块链并获得合法的数据;

其中所述将合法的数据写入区块链中,其中合法的数据以索引形式写入区块链中。

本发明实施例可能的一个设计中,具体地,所述数据库包括:

索引值获取模块:获取合法的数据对应的索引值;

转换模块:将所述索引值转换为树形结构,所述树形结构包括至少三层节点,一层节点中包含的节点数量为至少一个,中间层各节点中一个节点对应的内容为一个待存储索引的索引值段,且由根节点至一叶子节点的上一节点的路径所关联的节点的内容,与所述索引值相应

映射值获取模块:确定所述树形结构的中间层各节点的内容相应的映射值,一个节点的内容的长度大于相应的映射值的长度;

替换模块:将中间层各节点的内容替换为相应的映射值,存储替换后的所述树形结构。

本发明实施例可能的一个设计中,具体地,所述转换模块包括:

切分单元:按照预设切分规则,将所述索引值进行等长切分,得到各待存储索引对应的至少两个长度相等的索引值段;

确定单元:按照切分后的各索引值段在相应待存储索引中的排列顺序,确定所述切分后的各索引值段在中间层的分层,所述索引值段对应的分层不同;

存储单元:对于各待存储索引,将切分后的各索引值段按照所确定的分层,分层存储在中间层中,在树形结构的叶子点层的叶子点中存储所述索引值,由根叶子点至任一叶子点的上一叶子点的路径所关联的叶子点的内容,与所述索引值相应。

本发明实施例可能的一个设计中,具体地,所述服务器包括:

第一地址生成模块:生成节点的第一地址,所述第一地址为其他节点识别所述节点的唯一标识;

第一验证模块:验证第一地址生成模块向第二地址生成模块发送的所述数据是否满足第一数据验证条件,满足第一数据验证条件,则所述数据是第一合法的数据;

第二地址生成模块:生成节点的第二地址,所述第二地址接收第一地址发送的第一合法的数据;

第二验证模块:验证第二地址生成模块向第三地址生成模块发送的所述数据是否满足第二数据验证条件,满足第二数据验证条件,则所述数据是第二合法的数据;

第三地址生成模块:生成节点的第三地址,所述第三地址接收第二地址发送第二合法的所述数据。

本发明实施例可能的一个设计中,具体地,所述第一数据验证条件为数据占用空间小于或等于1m,所述第二数据验证条件为数据格式是否为索引形式。

综上所述,由于采用了上述技术方案,本发明的有益效果是:

1、本发明实施例由于将数据以索引形式至区块链中,减少了数据在区块中的存储空间,从数据源节省了存储空间,避免了区块数据过于庞大,从而提高了节点的参与效率;

2、本发明实施例中严格限制一个节点的内容的长度大于相应的映射值的长度,从而更大程度上节省了数据的占用空间;

3、本发明实施例还通过节点双重自身验证数据,避免了现有这一节点将无效数据发送至下一节点而造成下一节点的负担问题,同时减少了空间中的无效数据,且双重自身验证通过地址发送的方式自动进行,避免了手动验证等效率较低。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。附图并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本发明的主旨。

图1是本发明实施例方法的流程图;

图2是本发明实施例系统的模块图;

图3是本发明实施例转换模块的示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明主要是通过将数据以索引形式写入至区块链中,减少了数据在区块中的存储空间,从数据源节省了存储空间,避免了区块数据过于庞大,从而提高了节点的参与效率。

实施例一

本实施例提供了一种基于区块链的大数据分析方法,结合图1进行分析,包括:

由节点判断数据的合法性并发送合法的所述数据;

接收合法的数据并将合法的数据写入区块链;

由节点同步区块链并获得合法的数据;

所述将合法的数据写入区块链中,其中合法的数据以索引形式写入区块链中。

实施例二

在实施例一的基础上,其中合法的数据以索引形式写入区块链中包括:

获取合法的数据对应的索引值;

将所述索引值转换为树形结构,所述树形结构包括至少三层叶子点,一层叶子点中包含的叶子点数量为至少一个,中间层各叶子点中一个叶子点对应的内容为一个待存储索引的索引值段,且由根叶子点至一叶子点的上一叶子点的路径所关联的叶子点的内容,与所述索引值相应;

按照预设映射规则,确定所述树形结构的中间层各叶子点的内容相应的映射值,一个节点的内容的长度大于相应的映射值的长度;

将中间层各叶子点的内容替换为相应的映射值,存储替换后的所述树形结构。

实施例三

在实施例二的基础上,所述将索引值转换为树形结构的过程包括:

按照预设切分规则,将所述索引值进行等长切分,得到各待存储索引对应的至少两个长度相等的索引值段;

按照切分后的各索引值段在相应待存储索引中的排列顺序,确定所述切分后的各索引值段在中间层的分层,所述索引值段对应的分层不同;

对于各待存储索引,将切分后的各索引值段按照所确定的分层,分层存储在中间层中;

在树形结构的叶子节点层的叶子节点中存储所述索引值,由根节点至任一叶子节点的上一节点的路径所关联的节点的内容,与所述索引值相应。

实施例四

在实施例三的基础上,所述由节点判断数据的合法性包括:

生成节点的第一地址,所述第一地址为其他节点识别所述节点的唯一标识;

生成节点的第二地址,所述第二地址接收第一地址发送第一合法的所述数据;

生成节点的第三地址,所述第三地址接收第二地址发送第二合法的所述数据;

第一地址和第二地址之间存储有预设的第一数据验证条件,第二地址和第三地址存储有预设的第二数据验证条件;第一合法指所述数据满足第一数据验证条件;第二合法指所述数据满足第二数据验证条件。

实施例五

在实施例四的基础上,所述第一数据验证条件为数据占用空间小于或等于1m,所述第二数据验证条件为数据格式是否为索引形式。此处只是举例说明验证条件,但是实际验证条件有很多种类型,不受限制。

实施例六

在实施例一至五任一所述的基础上,本发明实施例从另一方面提供了一种基于区块链的大数据分析系统,结合图2来说明,包括:

服务器:断数据的合法性并发送合法的所述数据;

数据库:接收并写入合法的数据并将合法的数据;

所述服务器:同步区块链并获得合法的数据;

其中所述将合法的数据写入区块链中,其中合法的数据以索引形式写入区块链中。

实施例七

在实施例六的基础上,所述数据库包括:

索引值获取模块:获取合法的数据对应的索引值;

转换模块:将所述索引值转换为树形结构,所述树形结构包括至少三层节点,一层节点中包含的节点数量为至少一个,中间层各节点中一个节点对应的内容为一个待存储索引的索引值段,且由根节点至一叶子节点的上一节点的路径所关联的节点的内容,与所述索引值相应

映射值获取模块:确定所述树形结构的中间层各节点的内容相应的映射值,一个节点的内容的长度大于相应的映射值的长度;

替换模块:将中间层各节点的内容替换为相应的映射值,存储替换后的所述树形结构。

实施例八

在实施例七所述的的基础上,结合图3所示,所述转换模块包括:

切分单元:按照预设切分规则,将所述索引值进行等长切分,得到各待存储索引对应的至少两个长度相等的索引值段;

确定单元:按照切分后的各索引值段在相应待存储索引中的排列顺序,确定所述切分后的各索引值段在中间层的分层,所述索引值段对应的分层不同;

存储单元:对于各待存储索引,将切分后的各索引值段按照所确定的分层,分层存储在中间层中,在树形结构的叶子点层的叶子点中存储所述索引值,由根叶子点至任一叶子点的上一叶子点的路径所关联的叶子点的内容,与所述索引值相应。

实施例九

在实施例八所述的基础上,所述服务器包括:

第一地址生成模块:生成节点的第一地址,所述第一地址为其他节点识别所述节点的唯一标识;

第一验证模块:验证第一地址生成模块向第二地址生成模块发送的所述数据是否满足第一数据验证条件,满足第一数据验证条件,则所述数据是第一合法的数据;

第二地址生成模块:生成节点的第二地址,所述第二地址接收第一地址发送的第一合法的数据;

第二验证模块:验证第二地址生成模块向第三地址生成模块发送的所述数据是否满足第二数据验证条件,满足第二数据验证条件,则所述数据是第二合法的数据;

第三地址生成模块:生成节点的第三地址,所述第三地址接收第二地址发送第二合法的所述数据。

具体地,所述第一数据验证条件为数据占用空间小于或等于1m,所述第二数据验证条件为数据格式是否为索引形式。

以下针对可读介质进行说明:

所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。

本发明的存储介质其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在服务器设备上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、rf等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何属于本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

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