一种区块链数据库的大数据处理系统转让专利

申请号 : CN201910954483.1

文献号 : CN110708380B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 朱小亮王幼林

申请人 : 广州峻林互联科技有限公司

摘要 :

本发明一种区块链数据库的大数据处理系统包括数据获取模块、数据拆分模块、第一发送模块、第一接收模块、第二发送模块,其用于存储有第二数据的节点将所述第二数据以第二方式加密并发送至区块链的其他节点上;第二接收模块;其中,若区块链中的其中一个节点参与的第一数据的传输发生重新根据预设规则选出记账节点并重复上述步骤的次数超过第二预设阈值,则将所述节点与区块链的其他节点断开。本发明由于拆分后的第二数据的接收和发送均是能够加密和解密验证的、组合出的第三数据的数据完成性通过哈希算法来验证的,因此,提升了区块链对于数据传输的安全性。

权利要求 :

1.一种区块链数据库的大数据处理系统,区块链包括A个互相连接的节点,其特征在于:节点包括数据获取模块,其用于输入第一数据,判定第一数据的容量是否超过第一预设阈值,若是,则根据哈希算法生成第一数据的第一哈希值;

数据拆分模块,其用于将第一数据拆分为B个第二数据,其中,A大于等于B,A、B均为非零自然数;

第一发送模块,其用于根据预设规则选出记账节点,并且,记账节点将第二数据以第一方式加密并发送至与其对应的节点上;

第一接收模块,其用于解密以第一方式加密的第二数据,并向记账节点发送第一解密回执,若第一解密回执为解密成功,则完成第二数据的传输,若第一解密回执为解密失败,则断开发送解密失败的节点与区块链中的其他节点的连接,记账节点重新选择节点发送该第二数据;

第二发送模块,其用于存储有第二数据的节点将第二数据以第二方式加密并发送至区块链的其他节点上;

第二接收模块,其用于将以第二方式加密的第二数据解密并发送第二解密回执,若第二解密回执为解密成功,则将第二数据以预设组合方式拼接为第三数据,并根据哈希算法生成第三数据的第三哈希值,若第三哈希值与第一哈希值一致,则向记账节点发送第一数据传输完成的回执;若第三哈希值与第一哈希值不一致,则重新根据预设规则选出记账节点并重复上述将第一数据拆分为B个第二数据的步骤;若第二解密回执为解密失败,则使数据拆分模块、第一发送模块、第一接收模块、第二发送模块、第二接收模块重新执行相应操作;

其中,若区块链中的其中一个节点参与的第一数据的传输发生上述重新执行相应操作的次数超过第二预设阈值,则将节点与区块链的其他节点断开;

记账节点将第二数据以第一方式加密并发送至与其对应的节点上的步骤中,包括如下步骤:采集区块链内的每个节点的处理器占用率和内存占用率;

将每个节点的处理器占用率和内存占用率中最高的数值转化为节点占用率;

将每个第二数据加密;

将区块链内的所有节点的节点占用率排名,并按照排名靠前的节点一一对应的存储B个第二数据;

每个节点用于解密并存储与其对应的第二数据;

将第一数据拆分为B个第二数据的步骤中,包括如下步骤:将第一数据平均拆分为B个第二数据,其中B为(A/2,A)之间的正整数;

用于根据预设规则选出记账节点包括如下步骤:

每个节点将第一数据和当前时间和随机数组合计算出记账哈希值,而最先计算出前5位为0的记账哈希值的节点为此次的记账节点;

第一预设阈值为(1kb,10Tb)之间的数;

第二预设阈值为(1,100)之间的数;

预设组合方式包括:

在其用于将第一数据拆分为B个第二数据的步骤中,根据每个第二数据的拆分顺序和第二数据与每个节点的存储对应情况而生成对应于第一数据的拆分列表;

拆分列表与每个第二数据共同存入节点内;

根据拆分列表,将第二数据拼接为第三数据。

说明书 :

一种区块链数据库的大数据处理系统

技术领域

[0001] 本发明涉及一种区块链技术,特别是涉及一种用于处理大数据的区块链技术。

背景技术

[0002] 区块链是比特币的重要思想。其去中心化、不可篡改等优势也被广泛地应用于各个场景。其中,区块链对于大数据的传输通常效率较低,若贸然提升效率,势必安全性也无法保证。
[0003] 因此,目前亟需一种能够保证安全性和速率的区块链大数据处理系统。

发明内容

[0004] 本发明要解决的技术问题是提供一种能够保证安全性和速率的区块链大数据处理系统。
[0005] 本发明一种区块链数据库的大数据处理系统,所述区块链包括A个互相连接的节点,其特征在于:所述节点包括
[0006] 数据获取模块,其用于输入第一数据,判定第一数据的容量是否超过第一预设阈值,若是,则根据哈希算法生成第一数据的第一哈希值;
[0007] 数据拆分模块,其用于将所述第一数据拆分为B个第二数据,其中,A大于等于B,A、B均为非零自然数;
[0008] 第一发送模块,其用于根据预设规则选出记账节点,并且,记账节点将所述第二数据以第一方式加密并发送至与其对应的节点上;
[0009] 第一接收模块,其用于解密并向记账节点发送第一解密回执,若第一解密回执为解密成功,则完成第二数据的传输,若第一解密回执为解密失败,则断开发送解密失败的节点与区块链中的其他节点的连接,记账节点重新选择节点发送该第二数据;
[0010] 第二发送模块,其用于存储有第二数据的节点将所述第二数据以第二方式加密并发送至区块链的其他节点上;
[0011] 第二接收模块,其用于将所述第二数据解密并发送第二解密回执,若第二解密回执为解密成功,则将所述第二数据以预设组合方式拼接为第三数据,并根据哈希算法生成第三数据的第三哈希值,若第三哈希值与第一哈希值一致,则向所述记账节点发送第一数据传输完成的回执;若第三哈希值与第一哈希值不一致,则重新根据预设规则选出记账节点并重复将所述第一数据拆分为B个第二数据的步骤;若第二解密回执为解密失败,则重新根据预设规则选出记账节点并重复将所述第一数据拆分为B个第二数据的步骤;
[0012] 其中,若区块链中的其中一个节点参与的第一数据的传输发生重新根据预设规则选出记账节点并重复上述步骤的次数超过第二预设阈值,则将所述节点与区块链的其他节点断开。
[0013] 本发明一种区块链数据库的大数据处理系统,其中所述记账节点将所述第二数据以第一方式加密并发送至与其对应的节点上的步骤中,包括如下步骤:
[0014] 采集区块链内的每个节点的处理器占用率和内存占用率;
[0015] 将每个节点的处理器占用率和内存占用率中最高的数值转化为节点占用率;
[0016] 将所述每个第二数据加密;
[0017] 将所述区块链内的所有节点的节点占用率排名,并按照排名靠前的节点一一对应的存储B个第二数据;
[0018] 每个节点用于解密并存储与其对应的第二数据。
[0019] 本发明一种区块链数据库的大数据处理系统,其中将所述第一数据拆分为B个第二数据的步骤中,包括如下步骤:
[0020] 将所述第一数据平均拆分为B个第二数据,其中B为(A/2,A)之间的正整数。
[0021] 本发明一种区块链数据库的大数据处理系统,其中所述用于根据预设规则选出记账节点包括如下步骤:
[0022] 每个节点将所述第一数据和当前时间和随机数组合计算出记账哈希值,而最先计算出前5位为0的记账哈希值的节点为此次的记账节点。
[0023] 本发明一种区块链数据库的大数据处理系统,其中所述第一预设阈值为(1kb,10Tb)之间的数。
[0024] 本发明一种区块链数据库的大数据处理系统,其中所述第二预设阈值为(1,100)之间的数。
[0025] 本发明一种区块链数据库的大数据处理系统,其中所述预设组合方式包括:
[0026] 在所述其用于将所述第一数据拆分为B个第二数据的步骤中,根据每个第二数据的拆分顺序和第二数据与每个节点的存储对应情况而生成对应于第一数据的拆分列表;
[0027] 所述拆分列表与每个第二数据共同存入节点内;
[0028] 根据所述拆分列表,将所述第二数据拼接为第三数据。
[0029] 本发明一种区块链数据库的大数据处理系统的处理方法,所述区块链包括A个互相连接的节点,包括如下步骤
[0030] 步骤1,输入第一数据,判定第一数据的容量是否超过第一预设阈值,若是,则根据哈希算法生成第一数据的第一哈希值;
[0031] 步骤2,将所述第一数据拆分为B个第二数据,其中,A大于等于B,A、B均为非零自然数;
[0032] 步骤3,根据预设规则选出记账节点,并且,记账节点将所述第二数据以第一方式加密并发送至与其对应的节点上;
[0033] 步骤4,解密并向记账节点发送第一解密回执,若第一解密回执为解密成功,则完成第二数据的传输,若第一解密回执为解密失败,则断开发送解密失败的节点与区块链中的其他节点的连接,记账节点重新选择节点发送该第二数据;
[0034] 步骤5,存储有第二数据的节点将所述第二数据以第二方式加密并发送至区块链的其他节点上;
[0035] 步骤6,将所述第二数据解密并发送第二解密回执,若第二解密回执为解密成功,则将所述第二数据以预设组合方式拼接为第三数据,并根据哈希算法生成第三数据的第三哈希值,若第三哈希值与第一哈希值一致,则向所述记账节点发送第一数据传输完成的回执;若第三哈希值与第一哈希值不一致,则重新根据预设规则选出记账节点并重复上述步骤;若第二解密回执为解密失败,则重新根据预设规则选出记账节点并重复上述步骤2~6;
[0036] 其中,若区块链中的其中一个节点参与的第一数据的传输发生重新根据预设规则选出记账节点并重复上述步骤2~6的次数超过第二预设阈值,则将所述节点与区块链的其他节点断开。
[0037] 本发明一种区块链数据库的大数据处理系统与现有技术不同之处在于本发明一种区块链数据库的大数据处理系统通过上述将第一数据拆分为第二数据的方式可利用分布式传输的方式将较大数据的量的第一数据拆分为较小的第二数据,并利用A个节点中的B个节点或B个以下的个数的节点来以将第二数据发送至区块链的其他节点内,从而提升了区块链对于大数据的发送效率,也就是说,从一对多变为多对多的方式发送。而由于拆分后的第二数据的接收和发送均是能够加密和解密验证的、组合出的第三数据的数据完成性通过哈希算法来验证的,因此,提升了区块链对于数据传输的安全性。
[0038] 下面结合附图对本发明的一种区块链数据库的大数据处理系统作进一步说明。

附图说明

[0039] 图1是一种区块链数据库的大数据处理系统的方法流程图。

具体实施方式

[0040] 如图1所示,本发明一种区块链数据库的大数据处理系统所述区块链包括A个互相连接的节点,其特征在于:所述节点包括
[0041] 数据获取模块,其用于输入第一数据,判定第一数据的容量是否超过第一预设阈值,若是,则根据哈希算法生成第一数据的第一哈希值;
[0042] 数据拆分模块,其用于将所述第一数据拆分为B个第二数据,其中,A大于等于B,A、B均为非零自然数;
[0043] 第一发送模块,其用于根据预设规则选出记账节点,并且,记账节点将所述第二数据以第一方式加密并发送至与其对应的节点上;
[0044] 第一接收模块,其用于解密并向记账节点发送第一解密回执,若第一解密回执为解密成功,则完成第二数据的传输,若第一解密回执为解密失败,则断开发送解密失败的节点与区块链中的其他节点的连接,记账节点重新选择节点发送该第二数据;
[0045] 第二发送模块,其用于存储有第二数据的节点将所述第二数据以第二方式加密并发送至区块链的其他节点上;
[0046] 第二接收模块,其用于将所述第二数据解密并发送第二解密回执,若第二解密回执为解密成功,则将所述第二数据以预设组合方式拼接为第三数据,并根据哈希算法生成第三数据的第三哈希值,若第三哈希值与第一哈希值一致,则向所述记账节点发送第一数据传输完成的回执;若第三哈希值与第一哈希值不一致,则重新根据预设规则选出记账节点并重复上述步骤;若第二解密回执为解密失败,则重新根据预设规则选出记账节点并重复上述步骤;
[0047] 其中,若区块链中的其中一个节点参与的第一数据的传输发生重新根据预设规则选出记账节点并重复上述步骤的次数超过第二预设阈值,则将所述节点与区块链的其他节点断开。
[0048] 本发明通过上述将第一数据拆分为第二数据的方式可利用分布式传输的方式将较大数据的量的第一数据拆分为较小的第二数据,并利用A个节点中的B个节点或B个以下的个数的节点来以将第二数据发送至区块链的其他节点内,从而提升了区块链对于大数据的发送效率,也就是说,从一对多变为多对多的方式发送。而由于拆分后的第二数据的接收和发送均是能够加密和解密验证的、组合出的第三数据的数据完成性通过哈希算法来验证的,因此,提升了区块链对于数据传输的安全性。
[0049] 其中,每个步骤的作用和效果如下:
[0050] 数据获取模块,其用于输入第一数据,判定第一数据的容量是否超过第一预设阈值,若是,则根据哈希算法生成第一数据的第一哈希值;
[0051] 本发明在采集第一数据之后可备份出第一哈希值,从而为了之后拼接出的第三哈希值的对比而做出铺垫。并且,上述需要满足第一数据的容量大于第一预设阈值的条件,从而在第一数据为较大容量的数据才可使用本方法,而第一数据为较小容量时,则直接通过传统的区块链方式处理即可。
[0052] 数据拆分模块,其用于将所述第一数据拆分为B个第二数据,其中,A大于等于B,A、B均为非零自然数;
[0053] 本发明将第一数据拆分为少于现有节点个数的第二数据,从而可让部分节点闲置作为后备力量的节点,而提升了区块链的安全性。
[0054] 第一发送模块,其用于根据预设规则选出记账节点,并且,记账节点将所述第二数据以第一方式加密并发送至与其对应的节点上;
[0055] 本发明中的预设规则,可以是传统的区块链算法中,随机挑选或靠算力竞争出的记账节点,这个记账节点负责将第二数据发送至与其对应的节点上,其中,于其对应可以是按顺序发送,也可是随机发送。但是每个节点尽量仅存储一个第二数据,从而便于其接下来的互相发送,而增加发送端的个数,而增加数据传输效率,提升区块链对于大数据的处理速度。
[0056] 第一接收模块,其用于解密并向记账节点发送第一解密回执,若第一解密回执为解密成功,则完成第二数据的传输,若第一解密回执为解密失败,则断开发送解密失败的节点与区块链中的其他节点的连接,记账节点重新选择节点发送该第二数据;
[0057] 本发明上述的方式类似于传统的区块链发送方式,而不同的是,若回执为解密失败,势必该节点存在不安全风险,而将其断开,记账节点重新选择节点发送第二数据,可表示,记账节点将所述第二数据以第一方式加密并发送至与其对应的节点上中改变了与第二数据对应的节点,也就是说,上述对应的节点可为原记账节点随机或按顺序配置的节点,而重新选择节点的话,则不会采用第一解密回执为解密失败的节点,而可以是随机地另一个节点或其后一个顺序的节点。
[0058] 第二发送模块,其用于存储有第二数据的节点将所述第二数据以第二方式加密并发送至区块链的其他节点上;
[0059] 本发明在多个节点同时发送第二数据至其他节点时,依旧采用并行分布式发送,而提升效率。
[0060] 第二接收模块,其用于将所述第二数据解密并发送第二解密回执,若第二解密回执为解密成功,则将所述第二数据以预设组合方式拼接为第三数据,并根据哈希算法生成第三数据的第三哈希值,若第三哈希值与第一哈希值一致,则向所述记账节点发送第一数据传输完成的回执;若第三哈希值与第一哈希值不一致,则重新根据预设规则选出记账节点并重复上述步骤;若第二解密回执为解密失败,则重新根据预设规则选出记账节点并重复上述步骤;
[0061] 本发明通过上述组合出的第三数据与第一数据的哈希值进行对比而判定此次是否传输的正确,从而可对于参与此次传输的节点构建信任。
[0062] 其中,若区块链中的其中一个节点参与的第一数据的传输发生重新根据预设规则选出记账节点并重复上述步骤的次数超过第二预设阈值,则将所述节点与区块链的其他节点断开。
[0063] 本发明通过未对构建出信任的节点,在其超过第二预设阈值之后,将其断开,而提升区块链的安全性。
[0064] 其中,在记账节点将所述第二数据发送至与其对应的节点上的步骤中,每个节点仅存储一个第二数据,并且,在解密回执为解密成功的情况下,每个节点上的第二数据互不相同。在解密回执为失败的情况下,部分节点的可存储有2个或2个以上的第二数据。
[0065] 具体地说,所述记账节点将所述第二数据以第一方式加密并发送至与其对应的节点上的步骤中,包括如下步骤:
[0066] 采集区块链内的每个节点的处理器占用率和内存占用率;
[0067] 将每个节点的处理器占用率和内存占用率中最高的数值转化为节点占用率;
[0068] 将所述每个第二数据加密;
[0069] 将所述区块链内的所有节点的节点占用率排名,并按照排名靠前的节点一一对应的存储B个第二数据;
[0070] 每个节点用于解密并存储与其对应的第二数据。
[0071] 本发明通过上述方法可根据每个节点的实际使用情况将剩余计算能力较强的节点来解密并存储第二数据可提升区块链的计算效率。
[0072] 其中,排名靠前的节点可理解为节点占用率较低的前多少个节点,其中,排名较低的前几个节点可代表其剩余计算力较多,而优先将这些节点接收拆分出的第二数据,将其解密并储存,从而提升整个区块链的速度。
[0073] 其中,在将所述区块链内的所有节点的节点占用率排名,并按照排名靠前的节点一一对应的存储B个第二数据的步骤中,可以是:根据拆分出的第二数据的顺序而将其与排名靠前的节点的排名一一对应,也可为随机一一对应,如果是按排名一一对应,则可便于其按照排名复原为第一数据或第三数据,而如果为随机,则可增加本发明的安全性。
[0074] 具体地说,将所述第一数据拆分为B个第二数据的步骤中,包括如下步骤:
[0075] 将所述第一数据平均拆分为B个第二数据,其中B为(A/2,A)之间的正整数。
[0076] 本发明可快速地将第一数据拆分为B个第二数据以提升区块链的速度。
[0077] 具体地说,所述用于根据预设规则选出记账节点包括如下步骤:
[0078] 每个节点将所述第一数据和当前时间和随机数组合计算出记账哈希值,而最先计算出前5位为0的记账哈希值的节点为此次的记账节点。
[0079] 本发明利用比特币的争夺记账节点的思想而配置本发明的记账节点,从而提升了本发明的安全性。
[0080] 具体地说,所述第一预设阈值为(1kb,10Tb)之间的数。
[0081] 本发明通过上述第一预设阈值可根据每个节点的总容量调配节点的第一预设阈值。第一预设阈值按照目前节点的存储容量的数量级可为1Gb。
[0082] 具体地说,所述第二预设阈值为(1,100)之间的数。
[0083] 本发明通过上述第二预设阈值可根据区块链的安全等级而配置第二预设阈值。其中,第二预设阈值优选为20。
[0084] 具体地说,所述预设组合方式包括:
[0085] 在所述其用于将所述第一数据拆分为B个第二数据的步骤中,根据每个第二数据的拆分顺序和第二数据与每个节点的存储对应情况而生成对应于第一数据的拆分列表;
[0086] 所述拆分列表与每个第二数据共同存入节点内;
[0087] 根据所述拆分列表,将所述第二数据拼接为第三数据。
[0088] 本发明通过与第二数据对应的记录有其拆分时和存储时的拆分列表而便于第二数据的拼接和组合,提升区块链的安全性。
[0089] 第二数据可理解为每个zip压缩包的分卷,而第一数据或第三数据则可为原数据或拼接复原出的数据,而拆分列表则可为记录如何拆分和如何存储的数据列表,从而便于数据的组合。
[0090] 本发明一种区块链数据库的大数据处理系统的处理方法,所述区块链包括A个互相连接的节点,包括如下步骤
[0091] 步骤1,输入第一数据,判定第一数据的容量是否超过第一预设阈值,若是,则根据哈希算法生成第一数据的第一哈希值;
[0092] 步骤2,将所述第一数据拆分为B个第二数据,其中,A大于等于B,A、B均为非零自然数;
[0093] 步骤3,根据预设规则选出记账节点,并且,记账节点将所述第二数据以第一方式加密并发送至与其对应的节点上;
[0094] 步骤4,解密并向记账节点发送第一解密回执,若第一解密回执为解密成功,则完成第二数据的传输,若第一解密回执为解密失败,则断开发送解密失败的节点与区块链中的其他节点的连接,记账节点重新选择节点发送该第二数据;
[0095] 步骤5,存储有第二数据的节点将所述第二数据以第二方式加密并发送至区块链的其他节点上;
[0096] 步骤6,将所述第二数据解密并发送第二解密回执,若第二解密回执为解密成功,则将所述第二数据以预设组合方式拼接为第三数据,并根据哈希算法生成第三数据的第三哈希值,若第三哈希值与第一哈希值一致,则向所述记账节点发送第一数据传输完成的回执;若第三哈希值与第一哈希值不一致,则重新根据预设规则选出记账节点并重复上述步骤;若第二解密回执为解密失败,则重新根据预设规则选出记账节点并重复上述步骤2~6;
[0097] 其中,若区块链中的其中一个节点参与的第一数据的传输发生重新根据预设规则选出记账节点并重复上述步骤2~6的次数超过第二预设阈值,则将所述节点与区块链的其他节点断开。
[0098] 以上所述的实施例仅仅是对本发明的优选实施方式进行描述,并非对本发明的范围进行限定,在不脱离本发明设计精神的前提下,本领域普通技术人员对本发明的技术方案作出的各种变形和改进,均应落入本发明权利要求书确定的保护范围内。