1.一种基于分布式存储的数据处理方法,其特征在于,所述方法由区块链节点执行;所述区块链节点包括共识层、执行层和存储层;所述方法包括:
在所述共识层通过区块共识功能对第一区块进行区块共识时,调用所述执行层执行所述第一区块中的k1个交易业务,得到所述k1个交易业务中的每个交易业务的交易执行结果;所述第一区块包括第一区块头信息、与所述k1个交易业务相关联的交易列表;所述k1为正整数;
将所述第一区块头信息、所述交易列表以及所述每个交易业务的交易执行结果,作为所述第一区块的第一块数据;
将所述第一块数据发送至所述存储层,以使所述存储层将所述第一块数据写入本地缓存和本地存储;所述本地缓存为在所述存储层中创建的系统内存,且所述本地存储为在所述存储层中所创建的用于进行数据存储的硬盘空间;
在将所述第一块数据写入所述本地缓存和所述本地存储时,通知所述共识层处理所述第一区块的下一区块,并通过第一刷新线程异步对所述存储层中的存储缓存池的第一区块处理空间进行空间检测,得到第一空间检测结果;所述存储缓冲池中包括n个待存块数据;所述n为非负整数,且所述n用于表征所述第一区块处理空间的待存区块数量;
若所述第一空间检测结果指示所述存储缓冲池具备处理所述第一区块的空间,则基于所述n个待存块数据将所述第一块数据写入所述存储缓冲池;
若所述第一空间检测结果指示所述存储缓冲池不具备处理所述第一区块的空间,则通知所述执行层对所述第一块数据进行存储等待。
2.根据权利要求1所述的方法,其特征在于,所述在所述共识层通过区块共识功能对第一区块进行区块共识时,调用所述执行层执行所述第一区块中的k1个交易业务,得到所述k1个交易业务中的每个交易业务的交易执行结果,包括:
在所述共识层通过区块共识功能对第一区块进行区块共识时,通过所述执行层接收由所述共识层发送的所述第一区块,获取所述第一区块中的k1个交易业务;所述第一区块是由所述共识层基于区块打包功能,在t1时刻时对所述k1个交易业务进行打包所得到的;
获取用于执行每个交易业务的业务合约,调用所述每个交易业务的业务合合约执行所述每个交易业务,得到所述每个交易业务的交易执行结果。
3.根据权利要求1所述的方法,其特征在于,所述存储层的持久化模块包括:与所述本地缓存相关联的存储缓冲池,且所述存储缓冲池的第一区块处理空间的缓冲区块处理阈值为nmax;所述第一区块是由所述共识层基于区块打包功能,在t1时刻时对所述k1个交易业务进行打包所得到的;
所述在将所述第一块数据写入所述本地缓存和所述本地存储时,通知所述共识层处理所述第一区块的下一区块,并通过第一刷新线程异步对所述存储层中的存储缓存池的第一区块处理空间进行空间检测,得到第一空间检测结果,包括:
在将第一区块的第一块数据写入所述本地缓存和所述本地存储时,通知所述共识层处理所述第一区块的下一区块;所述第一区块的下一区块为第二区块;所述第二区块是由所述共识层对基于所述区块打包功能,在t2时刻时对k2个交易业务进行打包后所得到的;所述k2为正整数;所述t2时刻为所述t1时刻之后的时刻;
在将第一区块的第一块数据写入所述本地缓存和所述本地存储时,通过第一刷新线程在当前时刻为所述t2时刻时,异步对所述存储层中的存储缓存池的第一区块处理空间进行空间检测;
在进行空间检测的过程中,统计所述存储缓冲池在所述t2时刻的待存块数据的数量,将统计到的待存块数据的数量确定为n个;
若所述n未达到所述nmax,则得到所述存储缓存池在所述t2时刻具备处理所述第一区块的空间的第一空间检测结果;
若所述n达到所述nmax,则得到所述存储缓存池在所述t2时刻不具备处理所述第一区块的空间的第一空间检测结果。
4.根据权利要求1所述的方法,其特征在于,若所述第一空间检测结果指示所述存储缓冲池具备处理所述第一区块的空间,则基于所述n个待存块数据将所述第一块数据写入所述存储缓冲池,包括:
若所述第一空间检测结果指示所述存储缓冲池具备处理所述第一区块的空间,则从所述存储缓冲池中获取所述n个待存块数据,在所述n个待存块数据中查找与第一块数据存在数据重叠的待存块数据;
若在所述n个待存块数据中未查找与第一块数据存在数据重叠的待存块数据,则将所述第一块数据写入所述存储缓冲池,且在所述存储缓冲池中对所述第一区块处理空间的待存区块数量进行递增处理;递增处理后的第一区块处理空间的待存区块数量为n+1。
5.根据权利要求4所述的方法,其特征在于,在所述将所述第一块数据写入所述存储缓冲池的过程中,所述方法还包括:
若所述区块链节点发生系统故障,则所述存储缓冲池中将存储有所述第一区块的部分块数据;所述第一区块处理空间的待存区块数量为n+1;
当所述区块链节点重启时,通过数据恢复线程重新接收所述第一区块,并调用所述执行层基于所述本地存储中所存储的备份数据,读取用于执行所述k1个交易业务的目标数据,基于读取到的目标数据继续执行所述k1个交易业务,得到重新生成的第一块数据;
在所述n+1个待存块数据中查找与所述重新生成的第一块数据在数据重叠的待存块数据;
若在所述n+1个待存块数据中查找到与所述重新生成的第一块数据存在数据重叠的待存块数据,则将查找到的待存块数据作为重合块数据;所述重合块数据为所述区块链节点在发生系统故障之前所存储至所述存储缓冲池的所述第一区块的部分快数据;
在所述n+1个待存块数据中将所述重合块数据替换为所述第一块数据,将替换后的n+1个待存块数据作为第一合并数据,将所述第一合并数据写入所述存储缓冲池;所述存储缓冲池中的第一区块处理空间中的待存区块数量为所述n+1个。
6.根据权利要求1所述的方法,其特征在于,所述第一区块的下一区块为第二区块;所述方法还包括:
在所述存储层接收到由所述执行层发送的所述第二区块的第二块数据时,将所述第二块数据写入所述本地缓存和所述本地存储;所述第二块数据是所述执行层在执行完所述k2个交易业务之后得到的;
通过所述第一刷新线程对所述存储缓存池的第一区块处理空间进行缓存刷新,得到缓冲刷新结果,且用所述缓冲刷新结果更新所述第一空间检测结果;
若更新后的第一空间检测结果指示刷新后的第一区块处理空间具备处理所述第二区块的空间,则将所述第二块数据添加至所述第一块数据所在的所述存储缓冲池。
7.根据权利要求1所述的方法,其特征在于,所述存储缓冲池中的待存数据包括所述n个待存块数据和所述第一块数据;所述存储层的持久化模块包含所述存储缓冲池对应的存储处理池;所述存储处理池用于存储与分布式数据库相关联的m个待反馈块数据,所述存储处理池的第二区块处理空间的反馈区块处理阈值为mmax;所述m为非负整数,且所述m用于表征所述第二区块处理空间的待反馈区块数量;
所述方法还包括:
通过第二刷新线程对与所述存储缓冲池相关联的存储处理池的第二区块处理空间进行空间检测,得到第二空间检测结果;
若所述第二空间检测结果指示所述m未达到所述mmax,则确定所述存储处理池的第二区块处理空间具有保存数据的空间;
确定所述待反馈区块数量和所述反馈区块处理阈值之间的数量差值,并基于所述存储缓冲池中的待存数据的区块高度,从所述存储缓冲池中获取与所述数量差值相符的块数据作为待合并块数据;
对所述待合并块数据和所述m个待反馈块数据进行重叠检测,将重叠检测后的数据写入所述分布式数据库。
8.根据权利要求7所述的方法,其特征在于,所述重叠检测后的数据为多个块数据;
在所述将重叠检测后的数据写入所述分布式数据库的过程中,所述方法还包括:
若接收到由所述分布式数据库返回的每个块数据中的对应数据的存储完毕反馈信息,则间接反映所述多个块数据中存在成功写入所述分布式数据库的数据,将成功写入所述分布式数据库的数据所对应的块数据确定为目标块数据;
接收所述分布式数据库反馈的所述目标块数据的数据完成量,基于所述数据完成量在块存储状态映射表中对所述目标块数据所对应的待存数据量进行递减处理,直到所述待存数据量达到0时,确定成功将所述目标块数据所对应的完整区块写入到所述分布式数据库。
9.根据权利要求7所述的方法,其特征在于,所述方法还包括:
若所述第二空间检测结果指示所述m达到所述mmax,则在确定所述存储处理池的第二区块处理空间并不具有保存数据的空间时,通知所述存储缓冲池对所述存储缓冲池中的待存数据进行存储等待;
通过所述第二刷新线程对所述存储处理池的第二区块处理空间进行处理刷新,得到处理刷新结果,且用所述处理刷新结果更新第二空间检测结果。
10.根据权利要求7所述的方法,其特征在于,所述方法还包括:
在所述存储层中扩展得到所述本地缓存、所述本地存储、所述存储缓冲池和存储处理池;所述本地缓存为所述区块链节点中所创建的本地缓存模块,所述本地缓存模块为所述区块链节点的系统内存;所述本地存储为所述存储层的灾备模块中具有持久化能力的本地存储单元;所述本地存储单元用于备份存储与所述本地缓存相同的块数据。
11.根据权利要求10所述的方法,其特征在于,所述本地存储所对应的本地数据库为硬盘数据库;所述分布式数据库中包括用于进行主备切换的主存储数据库和备用存储数据库;所述本地数据库的数据读取等级优于所述分布式数据库的数据读取等级。
12.根据权利要求10所述的方法,其特征在于,所述灾备模块包括:所述本地存储单元和数据打包单元;
所述方法还包括:
通过所述数据打包单元将所述第一区块中的n1个数据序列化成1个数据,得到数据v1,将所述第一区块的区块高度和所述数据v1构成键值对存入所述本地存储单元;所述n1个数据为所述第一区块的待存数据量,且所述n1个数据包括但不限于所述k1个交易业务的交易执行结果。
13.根据权利要求12所述的方法,所述灾备模块包括:块存储状态映射单元和持久化完毕块高单元所述块存储状态映射表单元;
所述方法还包括:
通过所述块存储状态映射单元存储所述第一区块的待存数据量,当所述第一区块的待存数据量为0时,所述区块链节点确定当前已经完成对所述第一区块的分布式存储;
通过所述持久化完毕块高单元存放所述分布式数据库中连续、且完整的区块的块数据。
14.一种计算机设备,其特征在于,包括:处理器和存储器;
所述处理器与存储器相连,其中,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以使得所述计算机设备执行权利要求1-13任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,该计算机程序适于由处理器加载并执行,以使得具有所述处理器的计算机设备执行权利要求1-13任一项所述的方法。