大数据分散上链方法及系统与流程

文档序号:24972147发布日期:2021-05-07 22:43阅读:104来源:国知局
大数据分散上链方法及系统与流程

本发明涉及大数据领域,可应用于区块链技术领域和金融领域,尤指一种大数据分散上链方法和系统。



背景技术:

在区块链的处理系统上,数据上链通常是把数据都保存到所有的区块链节点上,所有的区块链节点都拥有相同的数据。这种状况会带来的冗余存储问题,造成了存储空间不必要的浪费,特别是对于大数据上链,存储空间的浪费更为严重,且带来上链的效率问题,急需一种新型的数据上链方法解决这个问题。



技术实现要素:

本发明目的在于提供一种大数据分散上链方法和系统,把大数据切割为小块数据,把小块数据逐个上链,每个小块只存储在区块链网络某个节点上,不同节点存储的数据不一样不重复,予以解决区块链数据冗余存储问题,同时提高了数据上链的效率。

为达上述目的,本发明所提供的大数据分散上链方法,具体包含:获取用户的上链请求和待上传的数据文件,根据所述上链请求通过哈希算法计算所述数据文件获得第一哈希值;将所述第一哈希值与所述上链请求中携带的哈希值比较,当比较一致时,按预设规则将所述数据文件分割为多个连续的数据块,并通过散列算法计算各数据块的第二哈希值;通过各数据块的第二哈希值将所述数据块组成链式结构,将所述链式结构中各数据块上传至区块链网络中不同节点进行共识存储。

在上述大数据分散上链方法中,优选的,通过各数据块的第二哈希值将所述数据块组成链式结构包含:将数据块的第二哈希值存放于相邻的后续数据块的块头,将所述数据块组成连续的链式结构。

在上述大数据分散上链方法中,优选的,将所述链式结构中各数据块上传至区块链网络中不同节点进行共识存储还包含:将待上传的数据文件的文件名和所有数据块的哈希清单上链至区块链网络;将待上传的数据文件的文件名、第一哈希值、各数据块的第二哈希值、块号、各数据块在数据文件中的偏移位置、数据块总数打包为交易数据;将所述交易数据上传至区块链网络中不同节点进行共识存储。

在上述大数据分散上链方法中,优选的,将所述链式结构中各数据块上传至区块链网络中不同节点进行共识存储还包含:获取区块链网络中各节点的负载情况,根据所述负载情况将所述链式结构中各数据块上传至区块链网络中不同节点进行共识存储。

在上述大数据分散上链方法中,优选的,所述方法还包含:接收数据查询请求,根据所述数据查询请求于所述区块链网络中获得所述查询请求对应的数据文件的哈希信息、查据文件拆分后的数据块的哈希信息和数据块信息;根据所述数据块信息于所述区块链网络中对应节点获得对应的数据块;根据获取的数据块拼接成查询数据文件,并通过散列算法计算拼接的数据文件的第三哈希值;将第一哈希值和第三哈希值比较,根据比较结果获得数据查询请求对应的数据文件。

在上述大数据分散上链方法中,优选的,根据获取的数据块拼接成查询数据文件还包含:获取所述数据块在数据文件中的偏移位置和对应的第二哈希值,根据所述第二哈希值验证所述数据块;当验证通过后,根据所述偏移位置将所述数据块写入文件中对应位置,生成查询数据文件。

本发明还提供一种大数据分散上链系统,所述系统包含前置节点和多个共识节点;所述前置节点用于获取用户的上链请求和待上传的数据文件,根据所述上链请求通过哈希算法计算所述数据文件获得第一哈希值;将所述第一哈希值与所述上链请求中携带的哈希值比较,当比较一致时,按预设规则将所述数据文件分割为多个连续的数据块,并通过散列算法计算各数据块的第二哈希值;通过各数据块的第二哈希值将所述数据块组成链式结构,将所述链式结构中各数据块上传至区块链网络中不同的共识节点;所述共识节点用于根据接收到的数据块执行预设规则的共识存储。

在上述大数据分散上链系统中,优选的,所述前置节点包含集散模块,所述集散模块用于将数据块的第二哈希值存放于相邻的后续数据块的块头,将所述数据块组成连续的链式结构;以及,接收数据查询请求,根据所述数据查询请求于所述区块链网络中获得所述查询请求对应的数据文件的哈希信息、查据文件拆分后的数据块的哈希信息和数据块信息;根据所述数据块信息于所述区块链网络中对应节点获得对应的数据块;根据获取的数据块拼接成查询数据文件,并通过散列算法计算拼接的数据文件的第三哈希值;将第一哈希值和第三哈希值比较,根据比较结果获得数据查询请求对应的数据文件。

在上述大数据分散上链系统中,优选的,所述前置节点包含上链模块,所述上链模块用于将待上传的数据文件的文件名和所有数据块的哈希清单上链至区块链网络;将待上传的数据文件的文件名、第一哈希值、各数据块的第二哈希值、块号、各数据块在数据文件中的偏移位置、数据块总数打包为交易数据;将所述交易数据上传至区块链网络中不同节点进行共识存储。

在上述大数据分散上链系统中,优选的,所述上链模块还包含:获取区块链网络中各节点的负载情况,根据所述负载情况将所述链式结构中各数据块上传至区块链网络中不同节点进行共识存储。

本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。

本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。

本发明的有益技术效果在于:把一个大数据切割为小数据块,利用散列算法生成小数据块的哈希值,通过哈希值把小数据块形成一个链式结构,然后把小数据块一个一个上传到区块链系统,每个小数据块只存储在区块链网络中的某一个节点,不但避免了数据冗余存储,还提高了数据上链的效率。因为小数据块系列被组织为类似区块链blockchain的数据结构,具有区块链blockchain数据结构的不可篡改性,保证了区块链数据的安全性。再者,通过本发明所提供的大数据分散上链方法及系统,往现有区块链网络中加入新的共识节点,就可以水平横向扩展区块链网络的存储容量。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:

图1为本发明一实施例所提供的大数据分散上链方法的流程示意图;

图2为本发明一实施例所提供的数据块上传至区块链网络的流程示意图;

图3为本发明一实施例所提供的大数据查询的流程示意图;

图4为本发明一实施例所提供的大数据分散上链系统的结构示意图;

图5为本发明一实施例所提供的大数据分散上链系统的网络结构示意图;

图6为本发明一实施例所提供的前置节点的结构示意图;

图7为本发明一实施例所提供的交易节点的结构示意图;

图8a为本发明一实施例所提供的区块block结构的结构示意图;

图8b为本发明一实施例所提供的小数据块链式的结构示意图;

图9为本发明一实施例所提供的上链阶段的流程示意图;

图10为本发明一实施例所提供的查询阶段的流程示意图;

图11为本发明一实施例所提供的扩容阶段的流程示意图;

图12为本发明一实施例所提供的电子设备的结构示意图。

具体实施方式

以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。

另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

请参考图1所示,本发明所提供的大数据分散上链方法,具体包含:

步骤s101获取用户的上链请求和待上传的数据文件,根据所述上链请求通过哈希算法计算所述数据文件获得第一哈希值;

步骤s102将所述第一哈希值与所述上链请求中携带的哈希值比较,当比较一致时,按预设规则将所述数据文件分割为多个连续的数据块,并通过散列算法计算各数据块的第二哈希值;

步骤s103通过各数据块的第二哈希值将所述数据块组成链式结构,将所述链式结构中各数据块上传至区块链网络中不同节点进行共识存储。

其中,通过各数据块的第二哈希值将所述数据块组成链式结构包含:将数据块的第二哈希值存放于相邻的后续数据块的块头,将所述数据块组成连续的链式结构。由此,通过把大数据切割为小块数据,运用散列算法计算小数据块的哈希,把小数据块组织成一个链式结构,然后把小数据块一个一个上传到区块链网络,每个小数据块只存储在区块链网络中的某个节点上,区块链网络不同节点存储不同的数据;从而避免了数据冗余存储,还提高了数据上链的效率。

请参考图2所示,在本发明一实施例中,将所述链式结构中各数据块上传至区块链网络中不同节点进行共识存储还包含:

步骤s201将待上传的数据文件的文件名和所有数据块的哈希清单上链至区块链网络;

步骤s202将待上传的数据文件的文件名、第一哈希值、各数据块的第二哈希值、块号、各数据块在数据文件中的偏移位置、数据块总数打包为交易数据;

步骤s203将所述交易数据上传至区块链网络中不同节点进行共识存储。

由此,通过将上述信息存放于区块链网络上可有效提高后续查询效率,实现文件索引,同时因记录了各数据块的偏移位置,可便于在查询过程中有效实现数据文件的拼接,具体拼接方式将在后续实施例中详细说明,在此就不再一一详举。

在本发明另一实施例中,将所述链式结构中各数据块上传至区块链网络中不同节点进行共识存储还包含:获取区块链网络中各节点的负载情况,根据所述负载情况将所述链式结构中各数据块上传至区块链网络中不同节点进行共识存储。亦即,在分散存储于各个节点时,可进一步利用负载均衡技术识别各节点的运行状态,根据各节点的运行状态确定所述数据块的存储位置进行存储,可有效提高存储效率。

请参考图3所示,在本发明一实施例中,所述方法还包含:

步骤s301接收数据查询请求,根据所述数据查询请求于所述区块链网络中获得所述查询请求对应的数据文件的哈希信息、查据文件拆分后的数据块的哈希信息和数据块信息;

步骤s302根据所述数据块信息于所述区块链网络中对应节点获得对应的数据块;根据获取的数据块拼接成查询数据文件,并通过散列算法计算拼接的数据文件的第三哈希值;

步骤s303将第一哈希值和第三哈希值比较,根据比较结果获得数据查询请求对应的数据文件。

其中,根据获取的数据块拼接成查询数据文件还包含:获取所述数据块在数据文件中的偏移位置和对应的第二哈希值,根据所述第二哈希值验证所述数据块;当验证通过后,根据所述偏移位置将所述数据块写入文件中对应位置,生成查询数据文件。

请参考图4所示,本发明还提供一种大数据分散上链系统,所述系统包含前置节点和多个共识节点;所述前置节点用于获取用户的上链请求和待上传的数据文件,根据所述上链请求通过哈希算法计算所述数据文件获得第一哈希值;将所述第一哈希值与所述上链请求中携带的哈希值比较,当比较一致时,按预设规则将所述数据文件分割为多个连续的数据块,并通过散列算法计算各数据块的第二哈希值;通过各数据块的第二哈希值将所述数据块组成链式结构,将所述链式结构中各数据块上传至区块链网络中不同的共识节点;所述共识节点用于根据接收到的数据块执行预设规则的共识存储。实际工作中,如图5所示,所述大数据分散上链系统可由一个前置节点1、一个存储设备2和多个共识节点3组成。

其中前置节点1与存储设备2之间、前置节点1与所有共识节点3、所有交易节点3相互之间进行网络连接。

所述前置节点1可为一台服务器,负载接入用户或者第三方应用的连接,处理大数据上链或者查询获取大数据等请求。

所述存储设备2为一个nfs网络文件系统服务器,提供大数据文件存储功能,通过远程过程调用rpc协议挂载到前置节点1上,实现前置节点1对存储设备2的远程访问能力。

所述共识节点2是指区块链中对交易进行接收、广播、共识、执行和存储的网络节点,一般是各区块链成员的可信服务器、工作站等,负责把用户的请求封装成交易再广播到其他交易节点,或者根据区块链共识算法的规则对其他交易节点广播的交易进行共识,对于共识通过的交易会进行智能合约处理,最后根据处理的结果生成区块并进行持久化保存。共识节点2持久化存储上链的数据,区块保存了历史交易数据,而世界状态保存了账本明细信息。

在本发明另一实施例中,所述前置节点包含集散模块,所述集散模块用于将数据块的第二哈希值存放于相邻的后续数据块的块头,将所述数据块组成连续的链式结构;以及,接收数据查询请求,根据所述数据查询请求于所述区块链网络中获得所述查询请求对应的数据文件的哈希信息、查据文件拆分后的数据块的哈希信息和数据块信息;根据所述数据块信息于所述区块链网络中对应节点获得对应的数据块;根据获取的数据块拼接成查询数据文件,并通过散列算法计算拼接的数据文件的第三哈希值;将第一哈希值和第三哈希值比较,根据比较结果获得数据查询请求对应的数据文件。进一步的,所述前置节点包含上链模块,所述上链模块用于将待上传的数据文件的文件名和所有数据块的哈希清单上链至区块链网络;将待上传的数据文件的文件名、第一哈希值、各数据块的第二哈希值、块号、各数据块在数据文件中的偏移位置、数据块总数打包为交易数据;将所述交易数据上传至区块链网络中不同节点进行共识存储。其中,所述上链模块还包含:获取区块链网络中各节点的负载情况,根据所述负载情况将所述链式结构中各数据块上传至区块链网络中不同节点进行共识存储。

具体的,在实际工作中,所述前置节点的结构可参考图6所示,所述前置节点1包含:集散模块11、通讯模块12、上链模块13、存储模块14。

所述集散模块11负责对原始大数据切割为小数据块,或者将小数据块集合组装为原始的大数据。在大数据上链的时候,集散模块11将大数据切换为小数据块,运用散列算法,生成各个小块的哈希,最终将小数据块系列组织为链式结构,使其具有防篡改性。在查询大数据的时候,集散模块11将小数据块组装为原始大数据,并校验其正确性。

所述通讯模块12负责与各个共识节点2建立rpc(remoteprocedurecall,远程过程调用)网络连接,把上链等请求发送到交易节点2,在收到交易节点应答后做相应的处理。

所述上链模块13负责大数据上链的处理逻辑。上链模块13定时采集所有共识节点3的信息,包括网络连接信息、cpu负载信息、数据存储量等。上链模块还记录了大数据上链的过程,记录上链的断点信息,支持断点重新开始继续上链的功能。

所述存储模块14负责访问存储设备2,将数据存储在nfs文件系统上。

请参考图7所示,本发明所提供的共识节点可包含通讯模块31、共识模块32、执行模块33、数据存储模块34。

所述通讯模块31分别与前置节点1、其他共识节点3建立网络连接。与前置节点建立restful网络连接,共识节点3作为服务端,接收来自前置节点的交易请求,然后通过与其他共识节点3建立rpc网络连接,把交易广播到其他共识节点3,进行后续的区块链共识处理。

所述共识模块32是交易共识处理的逻辑装置,根据业务规则对交易的合法性进行判断,在合法性验证通过后,与其他共识节点3根据约定好的共识算法对交易进行共识处理,这里的共识算法可以是pow(proofofwork,工作量证明)、pos(proofofstake,股权证明)、dpos(delegatedproofofstake,委托股权证明)、pbft(practicalbyzantinefaulttolerance,实用拜占庭容错)等,最后根据共识的结果确定交易的执行顺序,把交易打包成区块,并把区块交给执行模块33执行。

所述执行模块33负责把区块中的交易按顺序执行。

所述数据存储模块34负责持久化存储交易执行的结果。

区块链技术特点之一是数据不可篡改性,每个节点都拥有相同的数据的。区块链底层数据结构是由一系列区块block构成的链式结构,每一个区块均含有其前一个区块的摘要信息(哈希信息),以令历史数据难以篡改。区块链网络节点数据相同意味着每个区块block的数据(技术上)相同,而要实现区块block的数据(技术上)相同,只要采用相同的散列算法和用来计算哈希值的数据是相同的即可。请参考图8a所示,本发明所提供的区块block中一个块包含块头和块体,具体的,块头包括:

(i)块的版本号。

(ii)merkle树根哈希:世界状态的根节点的哈希值。

(iii)时间戳:从1970年1月1日开始到当前时间经过的秒数。

(iv)元数据:包含一些辅助信息。

(v)nonce非哈希数据:不需要生成哈希的额外数据。

(vi)父块哈希:一个256位的哈希值,指向前面的块。

块体由交易数组组成。一个块可以容纳的交易的最大数量依赖于块大小和每个交易的大小。由上面可见,nonce非哈希数据将作为节点的私有数据区,存储了有大数据切割出来的小数据块,不参与该区块block哈希值的计算,这样既存储私有的小块数据,又能保证了各个节点数据的(技术上)一致性。

本发明把大数据切割为小数据块系列,必须保证小数据块没有被篡改或者在被篡改后能检测出来,这样才能保证后期查询获取得到的大数据完整性。前置节点1的集散模块11负责切割大数据为小数据块系列,并且把这些小数据块系列组织为链式结构,上链模块13把这些小数据块系列上传到区块链上由不同的节点分散保存起来,分散存储的特点进一步加强了小数据块的不可篡改性。如图8b所示,上述数据块的链式结构中,一系列小数据块通过哈希值链接起来,同时每个小数据块都有一个块号blocknumber。在查询获取到整个文件后,从小数据块链式数据结构的最后一个节点开始,检查上一个小块的哈希跟当前块中的父哈希字段是否一致,不一致则说明被篡改,需要根据小块的块号或者哈希值重新查询该小块的数据回来,写到大文件的对应偏移位置。

为便于理解本发明所提供的上述大数据分散上链方法及系统,以下将以实际工作为例,对上述实例做整合应用说明,本领域相关技术人员当可知,该说明仅为便于理解上述实施例的组合应用方式,并不对其做任何限定。

如图9一种大数据分散上链系统的流程图,在用户把一个大数据文件上传到区块链网络的时,前置节点1、存储设备2和共识节点的处理步骤如下:

步骤s901:用户把一个大数据文件上传到存储设备2上。存储设备2上运行着一个ftp服务器,用户通过ftp客户端把大数据文件上传到存储设备2上。

步骤s902:存储设备2保存了用户上传的大数据文件。

步骤s903:用户对要上链的大数据文件生成哈希值。生成哈希值的算法可以采用md5或者crc等。

步骤s904:用户调用上链restful接口,把包含要上链的文件名和文件的哈希值等要素信息的请求报文发送到前置节点1。

步骤s905:前置节点1接受到用户上链请求报文,根据请求报文的文件名,从存储设备2上读取大数据文件,使用跟步骤903相同的哈希算法生成文件哈希值,跟请求报文里面的文件哈希值对比。

步骤s906:前置节点1对比存储设备2上保存的文件哈希值和请求报文里面的哈希值,是否一致。如果不一致,则文件上传出现问题,本次大文件上链失败,本流程结束。如果一致,则继续处理下一个步骤。

步骤s907:前置节点1把大数据文件拆分为一系列的小数据块,一个小数据块大小可以为1m或者2m等,这个根据实际情况调整。一个大数据文件拆分为一系列连续的小数据块,一个小数据块链着下一个小数据块,同时计算小数据块的哈希值,前一个小数据块的哈希保存在下一个小数据块头中,形成一个链式数据结构,如图5所示。

步骤s908:前置节点1把文件信息和小数据块总体哈希清单上链。前置节点1把大数据文件名、文件哈希值和拆分后的小数据块系列哈希值、块号、在文件中的偏移位置、小数据块总数等信息打包为一个交易,发送到区块链网络上链。小数据块的哈希值和块号起着索引作用,根据小数据块的哈希值或者块号可以快速检索到小数据块。

步骤s909:所有共识节点3根据约定好的共识算法对交易进行共识处理,最后根据共识的结果确定交易的执行顺序,把交易打包成区块,并把区块交给执行模块33执行。

步骤s910:所有共识节点3的数据存储模块34,持久化存储了交易执行的结果,更新小数据块哈希值、块号等信息到世界状态。至此,所有共识节点3都保存了大数据文件信息以及拆分后的小数据块系列信息。

步骤s911:前置节点1把小数据块系列上链。前置节点1从第一个小数据块开始,一直到最后的一个小数据块,逐个把每个小数据块发送到区块链网络上请求入链。

步骤s912:前置节点1判断是否所有小数据块都上链完毕。如果是,则结束本次流程。如果否,则继续读取下一个小数据块,发送到区块链网络入链。

步骤s913:前置节点1的上链模块13根据共识节点3数据存储空间、cpu负载情况,选中一个综合负载值较轻的共识节点3,把当前要上链的小数据块发送到此共识节点3上。前置节点1的上链模块13定时采集了共识节点3的数据存储情况等。

步骤s914:某个共识节点3收到前置节点1发送的小块数据上链请求后,从请求报文中解析获取到小数据块,作为私有数据保存在本地磁盘上,以备后续上链存储之用。然后把去掉小数据块的请求报文广播到所有共识节点3。

步骤s915:所有共识节点3,根据约定好的共识算法对交易进行共识处理,最后根据共识的结果确定交易的执行顺序,把交易打包成区块,并把区块交给执行模块33执行。

步骤s916:所有共识节点3的数据存储模块34,持久化存储了交易执行的结果。在步骤s914中最早接受到请求报文包的共识节点3,会把保存在本地磁盘的私有数据,加到区块的nonce字段(见图8a),然后持久化该区块。其他的共识节点直接持久化该区块即可,无须修改nonce字段。同时更新小数据块哈希值对应的区块高度到世界状态;至此,一个小数据块上链完成。

以上流程描述了一个大数据文件切割为小数据块系列以及小数据块分散上链的步骤和过程;一个大数据文件化整为零分散存储于区块链的各个节点上,区块链节点的单个节点无法获取这个大数据文件的完整内容,需要所有的区块链节点协力合作才能输出完整的文件内容。下面结合图9,对查询恢复本发明系统的大数据文件完整内容的方法流程,进行详细说明。

如图10一种大数据上链系统在查询阶段的流程图,在用户提起查询获取某个文件时,前置节点1、存储设备2和共识节点3协同合作,输出完整的大数据文件内容,供用户下载。在查询阶段的处理步骤如下:

步骤s1001:用户发起查询获取大数据文件的请求,把以文件名为条件的请求报文发送到前置节点1。

步骤s1002:前置节点1随机向区块链网络中的一个节点请求该文件对应的哈希信息,以及拆分后的小数据块系列哈希信息、块号、小数据块总数等。

步骤s1003:共识节点3根据文件名查询世界状态,获取到该文件对应的哈希信息,以及拆分后的小数据块系列哈希信息、块号、小数据块总数等,返回给请求方前置节点1。

步骤s1004:前置节点1获取到大数据文件的哈希,以及拆分后的小数据块相关信息后,从第一个小数据块开始,一直到最后的一个小数据块,逐个从区块链网络请求每个小数据块的内容。前置节点1把包含了小数据块哈希值的请求报文广播给区块链的所有共识节点3。

步骤s1005:前置节点1判断是否所有小数据块已经查询完毕。如果是则跳到步骤s1009,如果否则跳到s1006。

步骤s1006:共识节点3收到查询小数据块的请求报文,根据小数据块哈希值查询世界状态信息,获取到该小数据块所在区块block高度,然后从对应的区块block里面解析出小块数据块内容以及对应的文件偏移位置,把小数据块哈希值和数据内容一起返回给前置节点1。

步骤s1007:前置节点1收到小数据块的数据后,运用散列算法,生成该小数据块的哈希值,跟在步骤s1003已经获取到的小数据块的哈希值对比。在对比一致后,再根据小数据块在文件中的偏移位置,把小数据块内容写到文件对应的偏移位置。

步骤s1008:存储设备2把小数据块内容写入到文件中。

步骤s1009:前置节点1在查询到所有的小数据块拼成一个完整的文件之后,运用散列算法,生成大数据文件的哈希值,跟在步骤s1003中获取的文件哈希对比是否一致,一致说明获取大数据文件成功,不一致则说明获取大数据文件失败。

步骤s1010:前置节点1返回生成的大数据文件所在目录地址给用户。

步骤s1011:用户从存储设备2获取到大数据文件。

在需要对存储空间扩容时,可参考图11所示,在现有的区块链网络中新增一个共识节点,可以扩展区块链网络的存储容量,具体步骤如下:

步骤s1101:在现有的区块链网络中新增一个共识节点3。

步骤s1102:新增的共识节点3将触发数据同步机制。区块链网络的去中心特性在于每个节点都拥有相同的数据,基于这个特性,新增的共识节点3必须也拥有跟其他共识节点相同的数据,区块链的数据同步机制把其他共识节点的数据同步到新增的共识节点3。这里的数据同步包括区块和世界状态。如图8a一种区块block结构所示,数据同步不包括nonce字段,nonce字段为私有数据区,为各个节点独有的数据,在计算区块block哈希时,也会排除掉nonce字段,所以各个节点的数据从哈希值角度看是一样的。

步骤s1103:新数据上链,根据图9一种大数据上链系统在上链阶段的流程的步骤s913操作,前置节点1定时采集各个共识节点的状态,新增的共识节点3是区块链网络中负载最小的节点,前置节点1优先向新增的共识节点3发送请求,新增的共识节点3获得更多机会存储新上链的小数据块,最终使得区块量网络中所有共识节点3的数据存储量最后达到平衡。从以上流程看,新增共识节点横向扩展了区块链网络的存储容量。

本发明的有益技术效果在于:把一个大数据切割为小数据块,利用散列算法生成小数据块的哈希值,通过哈希值把小数据块形成一个链式结构,然后把小数据块一个一个上传到区块链系统,每个小数据块只存储在区块链网络中的某一个节点,不但避免数据了冗余存储,还提高了数据上链的效率。因为小数据块系列被组织为类似区块链blockchain的数据结构,具有区块链blockchain数据结构的不可篡改性,保证了区块链数据的安全性。再者,通过本发明所提供的大数据分散上链方法及系统,往现有区块链网络中加入新的共识节点,就可以水平横向扩展区块链网络的存储容量。

本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。

本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。

如图12所示,该电子设备600还可以包括:通信模块110、输入单元120、音频处理单元130、显示器160、电源170。值得注意的是,电子设备600也并不是必须要包括图12中所示的所有部件;此外,电子设备600还可以包括图12中没有示出的部件,可以参考现有技术。

如图12所示,中央处理器100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器100接收输入并控制电子设备600的各个部件的操作。

其中,存储器140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器100可执行该存储器140存储的该程序,以实现信息存储或处理等。

输入单元120向中央处理器100提供输入。该输入单元120例如为按键或触摸输入装置。电源170用于向电子设备600提供电力。显示器160用于进行图像和文字等显示对象的显示。该显示器例如可为lcd显示器,但并不限于此。

该存储器140可以是固态存储器,例如,只读存储器(rom)、随机存取存储器(ram)、sim卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为eprom等。存储器140还可以是某种其它类型的装置。存储器140包括缓冲存储器141(有时被称为缓冲器)。存储器140可以包括应用/功能存储部142,该应用/功能存储部142用于存储应用程序和功能程序或用于通过中央处理器100执行电子设备600的操作的流程。

存储器140还可以包括数据存储部143,该数据存储部143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器140的驱动程序存储部144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。

通信模块110即为经由天线111发送和接收信号的发送机/接收机110。通信模块(发送机/接收机)110耦合到中央处理器100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。

基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)110还经由音频处理器130耦合到扬声器131和麦克风132,以经由扬声器131提供音频输出,并接收来自麦克风132的音频输入,从而实现通常的电信功能。音频处理器130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器130还耦合到中央处理器100,从而使得可以通过麦克风132能够在本机上录音,且使得可以通过扬声器131来播放本机上存储的声音。

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

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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