首页 / 专利库 / 资料储存系统 / 分布式账本 / 区块链 / 区块链账本 / 用于数据流通的区块链构建方法及装置、存储介质、服务器

用于数据流通的链构建方法及装置、存储介质、服务器

阅读:234发布:2020-05-13

专利汇可以提供用于数据流通的链构建方法及装置、存储介质、服务器专利检索,专利查询,专利分析的服务。并且一种用于数据流通的 区 块 链 构建方法及装置、存储介质、 服务器 ,所述区块链构建方法包括:接收数据流通过程中的账本信息;对区块链中的 节点 进行划分,以创建分区;将所述账本信息进行合并汇总,以得到汇总后数据;将所述汇总后数据写入所述区块链中与所述汇总后数据对应的分区,与所述汇总后数据对应的分区包括与所述汇总后数据关联的供方节点、需方节点、交易中心节点和清算中心节点。通过本 发明 提供的技术方案能够提供一种用于数据流通领域的快速入链、节省网络开销和存储空间的区块链,以满足高并发、海量数据实时配送的应用要求。,下面是用于数据流通的链构建方法及装置、存储介质、服务器专利的具体信息内容。

1.一种用于数据流通的链构建方法,其特征在于,包括:
接收数据流通过程中的账本信息;
对区块链中的节点进行划分,以创建分区;
将所述账本信息进行合并汇总,以得到汇总后数据;
将所述汇总后数据写入所述区块链中与所述汇总后数据对应的分区,与所述汇总后数据对应的分区包括与所述汇总后数据关联的供方节点、需方节点、交易中心节点和清算中心节点;
其中,与所述汇总后数据对应的分区不包括与数据交易不相关的其它区块链节点。
2.根据权利要求1所述的区块链构建方法,其特征在于,所述账本信息中包含汇总主键,所述汇总主键用于标识供方节点、需方节点和交易价格的组合。
3.根据权利要求2所述的区块链构建方法,其特征在于,所述将所述账本信息进行合并汇总,以得到汇总后数据的步骤包括:将所述账本信息按照所述汇总主键进行合并汇总,以得到所述汇总后数据,其中,所述汇总主键相同的账本信息汇总至同一汇总后数据。
4.根据权利要求3所述的区块链构建方法,其特征在于,所述将所述账本信息按照汇总主键进行合并汇总,以得到所述汇总后数据的步骤包括:
将所述账本信息按照所述汇总主键每隔第一时间周期进行合并汇总,以得到初步汇总后数据,其中,所述汇总主键相同的账本信息汇总至同一初步汇总后数据;
将所述初步汇总后数据按照所述汇总主键每隔第二时间周期进行再汇总,以得到所述汇总后数据,其中,所述汇总主键相同的初步汇总后数据汇总至同一汇总后数据,所述第二时间周期大于所述第一时间周期。
5.根据权利要求4所述的区块链构建方法,其特征在于,所述将所述初步汇总后数据按照所述汇总主键每隔第二时间周期进行再汇总的步骤包括:
将所述初步汇总后数据分别写入队列和重做日志文件中;
每隔所述第二时间周期,清空所述重做日志文件和所述队列中已完成再汇总的初步汇总后数据;
每隔所述第二时间周期,从所述队列中取出未完成再汇总的初步汇总后数据进行再汇总。
6.根据权利要求5所述的区块链构建方法,其特征在于,所述将所述初步汇总后数据按照所述汇总主键每隔第二时间周期进行再汇总的步骤还包括:重启时,根据所述重做日志文件中的初步汇总后数据恢复所述队列;
清空所述重做日志文件和所述队列中已完成再汇总的初步汇总后数据;
每隔所述第二时间周期,从所述队列中取出未完成再汇总的初步汇总后数据进行再汇总。
7.根据权利要求2所述的区块链构建方法,其特征在于,所述账本信息中还包含以下一项或多项:所述供方节点的签名、所述需方节点的签名和时间戳,所述时间戳以所述供方节点的时间为准。
8.根据权利要求2所述的区块链构建方法,其特征在于,所述汇总后数据包括以下一项或多项:所述汇总主键、所述供方节点的签名、所述需方节点的签名和时间戳,所述时间戳以所述供方节点的时间为准。
9.根据权利要求1至8任一项所述的区块链构建方法,其特征在于,所述对区块链中的节点进行划分,以创建分区的步骤包括:
基于Linux命名空间,对所述区块链中的单个节点进行划分,以创建单个节点的隔离分区;
基于发现算法和共识算法创建所述汇总后数据对应的分区。
10.一种用于数据流通的区块链构建装置,其特征在于,包括:
接收模块,适于接收数据流通过程中的账本信息;
分区模块,适于对区块链中的节点进行划分,以创建分区;
汇总模块,适于将所述账本信息进行合并汇总,以得到汇总后数据;
入链模块,适于将所述汇总后数据写入所述区块链中与所述汇总后数据对应的分区,与所述汇总后数据对应的分区包括与所述汇总后数据关联的供方节点、需方节点、交易中心节点和清算中心节点;
其中,与所述汇总后数据对应的分区不包括与数据交易不相关的其它区块链节点。
11.根据权利要求10所述的区块链构建装置,其特征在于,所述账本信息中包含汇总主键,所述汇总主键用于标识供方节点、需方节点和交易价格的组合。
12.根据权利要求11所述的区块链构建装置,其特征在于,所述汇总模块包括:汇总子模块,适于将所述账本信息按照汇总主键进行合并汇总,以得到所述汇总后数据,其中,汇总主键相同的账本信息汇总至同一汇总后数据。
13.根据权利要求12所述的区块链构建装置,其特征在于,所述汇总子模块包括:
第一汇总单元,适于将所述账本信息按照所述汇总主键每隔第一时间周期进行合并汇总,以得到初步汇总后数据,其中,汇总主键相同的账本信息汇总至同一初步汇总后数据;
第二汇总单元,适于将所述初步汇总后数据按照所述汇总主键每隔第二时间周期进行再汇总,以得到所述汇总后数据,其中,汇总主键相同的初步汇总后数据汇总至同一汇总后数据,所述第二时间周期大于所述第一时间周期。
14.根据权利要求13所述的区块链构建装置,其特征在于,所述第二汇总单元包括:
写入子单元,适于将所述初步汇总后数据分别写入队列和重做日志文件中;
第一清空子单元,每隔第二时间周期统计所述重做日志文件,所述第一清空单元适于清空所述重做日志文件和所述队列中已完成再汇总的初步汇总后数据;
第一取出子单元,每隔所述第二时间周期,所述第一取出子单元适于从所述队列中取出未完成再汇总的初步汇总后数据进行再汇总。
15.根据权利要求14所述的区块链构建装置,其特征在于,所述第二汇总单元还包括:
恢复子单元,重启时,所述恢复子单元适于根据写入所述重做日志文件中的初步汇总数据恢复所述队列;
第二清空子单元,适于清空所述重做日志文件和所述队列中已完成再汇总的初步汇总后数据;
第二取出子单元,每隔所述第二时间周期,所述第二取出子单元适于从所述队列中取出未完成再汇总的初步汇总后数据进行再汇总。
16.根据权利要求11所述的区块链构建装置,其特征在于,所述账本信息中还包含以下一项或多项:所述供方节点的签名、所述需方节点的签名和时间戳,所述时间戳以所述供方节点的时间为准。
17.根据权利要求11所述的区块链构建装置,其特征在于,所述汇总后数据包括以下一项或多项:所述汇总主键、所述供方节点的签名、所述需方节点的签名和时间戳,所述时间戳以所述供方节点的时间为准。
18.根据权利要求10至17任一项所述的区块链构建装置,其特征在于,所述分区模块包括:
第一分区子模块,适于基于Linux命名空间,对所述区块链中的节点进行划分,以创建单个节点隔离分区;
第二分区子模块,基于发现算法和共识算法创建所述汇总后数据对应的分区。
19.一种存储介质,其上存储有计算机指令,其特征在于,所述计算机指令运行时执行权利要求1至9任一项所述的区块链构建方法的步骤。
20.一种服务器,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机指令,其特征在于,所述处理器运行所述计算机指令时执行权利要求1至9中任一项所述的区块链构建方法的步骤。

说明书全文

用于数据流通的链构建方法及装置、存储介质、服务器

技术领域

[0001] 本发明涉及数据流通领域,具体地涉及一种用于数据流通的区块链构建方法及装置、存储介质、服务器。

背景技术

[0002] 在数据流通领域中,基于数据资产的特殊性,广泛存在着数据提供者和数据需求者在数据交易过程中的互信问题,例如数据供需双方在账本信息的记录与保存的过程中可能存在互信问题。为解决数据流通过程中出现的互信问题,可以采用具有安全性高、不可抵赖性、不可删除性等特性的区块链技术。然而,如果直接将传统区块链技术引入数据流通领域,那么在数据实时配送过程中,传统区块链技术将存在以下问题:
[0003] (1)数据实时配送过程中,存在海量数据交易信息,如果采用传统区块链,其共识机制耗时过长,那么将无法达到数据的入链速度需求,也达不到数据实时配送的应用要求;
[0004] (2)传统区块链技术在数据交易过程中需要广播数据包以实现数据共识,这将大大增加网络开销;
[0005] (3)传统区块链技术的数据通过广播保存于网络中的每个区块链节点上,数据量庞大,存储空间耗费大。
[0006] 由此可见,在数据流通领域中,亟需要一种快速入链、节省网络开销和存储空间的区块链的技术方案,以满足高并发、海量数据实时配送的应用要求。

发明内容

[0007] 本发明解决的技术问题是如何设计一种快速入链、节省存储空间的区块链,以满足数据流通领域高并发、海量数据实时配送的应用要求。
[0008] 为解决上述技术问题,本发明实施例提供一种用于数据流通的区块链构建方法,所述区块链构建方法包括:接收数据流通过程中的账本信息;对区块链中的节点进行划分,以创建分区;将所述账本信息进行合并汇总,以得到汇总后数据;将所述汇总后数据写入所述区块链中与所述汇总后数据对应的分区,与所述汇总后数据对应的分区包括与所述汇总后数据关联的供方节点、需方节点、交易中心节点和清算中心节点。
[0009] 可选的,所述账本信息中包含汇总主键,所述汇总主键用于标识供方节点、需方节点和交易价格的组合。
[0010] 可选的,所述区块链构建方法将所述账本信息进行合并汇总,以得到汇总后数据的步骤包括:将所述账本信息按照所述汇总主键进行合并汇总,以得到所述汇总后数据,其中,所述汇总主键相同的账本信息汇总至同一汇总后数据。
[0011] 可选的,所述区块链构建方法将所述账本信息按照汇总主键进行合并汇总,以得到所述汇总后数据的步骤包括:将所述账本信息按照所述汇总主键每隔第一时间周期进行合并汇总,以得到初步汇总后数据,其中,所述汇总主键相同的账本信息汇总至同一初步汇总后数据;将所述初步汇总后数据按照所述汇总主键每隔第二时间周期进行再汇总,以得到所述汇总后数据,其中,所述汇总主键相同的初步汇总后数据汇总至同一汇总后数据,所述第二时间周期大于所述第一时间周期。
[0012] 可选的,所述区块链构建方法将所述初步汇总后数据按照所述汇总主键每隔第二时间周期进行再汇总的步骤包括:将所述初步汇总后数据分别写入队列和重做日志文件中;每隔所述第二时间周期,清空所述重做日志文件和所述队列中已完成再汇总的初步汇总后数据;每隔所述第二时间周期,从所述队列中取出未完成再汇总的初步汇总后数据进行再汇总。
[0013] 可选的,所述区块链构建方法将所述初步汇总后数据按照所述汇总主键每隔第二时间周期进行再汇总的步骤还包括:重启时,根据所述重做日志文件中的初步汇总后数据恢复所述队列;清空所述重做日志文件和所述队列中已完成再汇总的初步汇总后数据;每隔所述第二时间周期,从所述队列中取出未完成再汇总的初步汇总后数据进行再汇总。
[0014] 可选的,所述账本信息中还包含以下一项或多项:所述供方节点的签名、所述需方节点的签名和时间戳,所述时间戳以所述供方节点的时间为准。
[0015] 可选的,所述汇总后数据包括以下一项或多项:所述汇总主键、所述供方节点的签名、所述需方节点的签名和时间戳,所述时间戳以所述供方节点的时间为准。
[0016] 可选的,所述区块链构建方法对区块链中的节点进行划分,以创建分区的步骤包括:基于Linux命名空间,对区块链中的单个节点进行划分,以创建单个节点的隔离分区;基于发现算法和共识算法创建所述汇总后数据对应的分区。
[0017] 为解决上述技术问题,本发明实施例还提供一种用于数据流通的区块链构建装置,包括:接收模块,适于接收数据流通过程中的账本信息;分区模块,适于对区块链中的节点进行划分,以创建分区;汇总模块,适于将所述账本信息进行合并汇总,以得到汇总后数据;入链模块,适于将所述汇总后数据写入所述区块链中与所述汇总后数据对应的分区,与所述汇总后数据对应的分区包括与所述汇总后数据关联的供方节点、需方节点、交易中心节点和清算中心节点。
[0018] 可选的,所述账本信息中包含汇总主键,所述汇总主键用于标识供方节点、需方节点和交易价格的组合。
[0019] 可选的,所述汇总模块包括:汇总子模块,适于将所述账本信息按照汇总主键进行合并汇总,以得到所述汇总后数据,其中,汇总主键相同的账本信息汇总至同一汇总后数据。
[0020] 可选的,所述汇总子模块包括:第一汇总单元,适于将所述账本信息按照所述汇总主键每隔第一时间周期进行合并汇总,以得到初步汇总后数据,其中,汇总主键相同的账本信息汇总至同一初步汇总后数据;第二汇总单元,适于将所述初步汇总后数据按照所述汇总主键每隔第二时间周期进行再汇总,得到所述汇总后数据,其中,汇总主键相同的初步汇总后数据汇总至同一汇总后数据,所述第二时间周期大于所述第一时间周期。
[0021] 可选的,所述第二汇总单元包括:写入子单元,适于将所述初步汇总后数据分别写入队列和重做日志文件中;第一清空子单元,每隔第二时间周期统计所述重做日志文件,所述第一清空单元适于清空所述重做日志文件和所述队列中已完成再汇总的初步汇总后数据;第一取出子单元,每隔所述第二时间周期,所述第一取出子单元适于从所述队列中取出未完成再汇总的初步汇总后数据进行再汇总。
[0022] 可选的,所述第二汇总单元还包括:恢复子单元,重启时,所述恢复子单元适于根据写入所述重做日志文件中的初步汇总数据恢复所述队列;第二清空子单元,适于清空所述重做日志文件和所述队列中已完成再汇总的初步汇总后数据;第二取出子单元,每隔所述第二时间周期,所述第二取出子单元适于从所述队列中取出未完成再汇总的初步汇总后数据进行再汇总。
[0023] 可选的,所述账本信息中还包含以下一项或多项:所述供方节点的签名、所述需方节点的签名和时间戳,所述时间戳以所述供方节点的时间为准。
[0024] 可选的,所述汇总后数据包括以下一项或多项:所述汇总主键、所述供方节点的签名、所述需方节点的签名和时间戳,所述时间戳以所述供方节点的时间为准。
[0025] 可选的,所述分区模块包括:第一分区子模块,适于基于Linux命名空间,对区块链中的单个节点进行划分,以创建单个节点隔离分区;第二分区子模块,基于发现算法和共识算法创建所述汇总后数据对应的分区。
[0026] 为解决上述技术问题,本发明实施例还提供一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述区块链构建方法的步骤。
[0027] 为解决上述技术问题,本发明实施例还提供一种服务器,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行上述区块链构建方法的步骤。
[0028] 与现有技术相比,本发明实施例的技术方案具有以下有益效果:
[0029] 本发明实施例提供的技术方案首先从数据交易过程中接收账本信息并可以确定与所述账本信息关联的供方节点、需方节点以及交易中心节点和清算中心节点;然后可以基于区块链为所述供方节点、所述需方节点、所述交易中心节点和所述清算中心节点创建分区,该分区只包括与所述账本信息关联的区块链节点,并只将所述账本信息保存在关联的区块链节点上,通过改进传统区块链的底层机制,避免了传统区块链中的节点全部参与数据共识,大大节省了数据流通过程中的网络开销和所述账本信息的存储空间,尤其适用于保密性要求高且针对少量节点参与的数据流通领域;其次可以在所述分区内,将所述账本信息进行合并汇总,从而得到所述汇总后数据,以便进一步降低数据存储量,并且因汇总后数据降低了数据量,可以实现快速入链;接着将所述汇总后数据写入所述供方节点、所述需方节点、所述交易中心节点和所述清算中心节点,各个区块链节点只需要保存与自己的数据交易相关的数据即可达成共识,从而可以提高所述分区中各个节点达成共识的效率,进一步加速数据入链速度。
[0030] 进一步,所述账本信息中包含汇总主键,所述汇总主键用于标识供方节点、需方节点和交易价格的组合。根据所述汇总主键可以将数据流通中的供方节点和需方节点一致,且交易价格一致的账本信息进行合并汇总,从而可以减少存储空间的消耗。
[0031] 进一步,所述区块链构建方法可以将所述初步汇总后数据分别写入队列和重做日志文件中,所述队列和所述重做日志文件分别保存所述初步汇总后数据,能够避免出现服务器宕机导致所述初步汇总后数据丢失的情况,能够保证数据的正确性和完整性。附图说明
[0032] 图1是本发明第一实施例的一种用于数据流通的区块链构建方法的流程图
[0033] 图2是图1中步骤S103的一个具体实施方式的流程图;
[0034] 图3是图2中步骤S1032的一个具体实施方式的流程图;
[0035] 图4是图2中步骤S1032的又一个具体实施方式的流程图;
[0036] 图5是本发明第二实施例的一种用于数据流通的区块链构建装置的结构示意图。

具体实施方式

[0037] 本领域技术人员理解,如背景技术所言,传统区块链技术的共识机制耗时长、网络开销大、存储空间耗费大,难以满足数据流通领域对数据的入链速度要求,也达不到数据实时配送的应用要求。
[0038] 本发明实施例提供的技术方案首先从数据交易过程中接收账本信息并可以确定与所述账本信息关联的供方节点、需方节点以及交易中心节点和清算中心节点;然后可以基于区块链为所述供方节点、所述需方节点、所述交易中心节点和所述清算中心节点创建分区,该分区只包括与所述账本信息关联的区块链节点,并只将所述账本信息保存在关联的区块链节点上,通过改进传统区块链的底层机制,避免了传统区块链中的节点全部参与数据共识,大大节省了数据流通过程中的网络开销和所述账本信息的存储空间,尤其适用于保密性要求高且针对少量节点参与的数据流通领域;其次可以在所述分区内,将所述账本信息进行合并汇总,从而得到所述汇总后数据,以便进一步降低数据存储量,并且因汇总后数据降低了数据量,可以实现快速入链;接着将所述汇总后数据写入所述供方节点、所述需方节点、所述交易中心节点和所述清算中心节点,各个区块链节点只需要保存与自己的数据交易相关的数据即可达成共识,从而可以提高所述分区中各个节点达成共识的效率,进一步加速数据入链速度。
[0039] 为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
[0040] 应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明实施例的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0041] 图1是本发明第一实施例的一种用于数据流通的区块链构建方法的流程图。图1所示的区块链构建方法可以包括以下步骤:
[0042] 步骤S101,接收数据流通过程中的账本信息;
[0043] 步骤S102,对区块链中的节点进行划分,以创建分区;
[0044] 步骤S103,将所述账本信息进行合并汇总,以得到汇总后数据;将所述汇总后数据写入所述区块链中与所述汇总后数据对应的分区,与所述汇总后数据对应的分区包括与所述汇总后数据关联的供方节点、需方节点、交易中心节点和清算中心节点。
[0045] 具体而言,在步骤S101中,从数据流通过程中接收数据供需双方的账本信息。所述账本信息可以是所述数据供需双方在进行数据交易时产生的,所述账本信息可以作为交易结算的依据。所述账本信息可以包括数据供需双方进行交易时的交易价格信息。进一步而言,所述需方节点可以向所述供方节点发送数据请求,所述需方节点可以记录数据请求对应的交易价格信息;然后,所述供方节点向所述需方节点反馈满足所述数据请求对应的数据;最后,所述需方节点接收到所述数据。在此次交易过程中产生的账本信息可以包括所述交易价格信息。
[0046] 在上述交易过程中,所述账本信息可以包含自身节点的签名信息和时间戳,还可以包含对方节点的签名信息和时间戳,也即包含所述供方节点的签名、所述需方节点的签名和时间戳。所述供方节点的签名和所述需方节点的签名可以是所述供方节点和所述需方节点使用的服务器的标识,例如可以是服务器的媒体访问控制(Media Access Control,简称MAC)地址,也可以是数据交易双方认可的服务器标识。
[0047] 进一步地,考虑到各个区块链节点之间的时间戳可能不一致或者网络延迟导致时间存在误差间隙,因而所述账本信息中的时间戳可以由数据交易双方约定的时间为准,例如以供方的时间戳为准,并允许存在时间误差间隙。此外,也可以允许交易价格信息和交易数据总量存在误差。只要在交易双方均允许的误差范围内,所述账本信息就可以计入清算范围。
[0048] 进一步地,所述账本信息中还可以包含汇总主键,所述汇总主键可以用于标识数据交易的供方节点、需方节点和交易价格的组合,也即不同的汇总主键对应于不同的组合,其中,不同的组合指的是供方节点、需方节点和交易价格中的至少一个不同。基于所述汇总主键(例如数据配送任务编号),可以较容易地将大数据量的账本信息进行合并汇总,得到的所述汇总后数据可以减少数据存储空间。
[0049] 在步骤S102中,对传统区块链中的区块链节点进行划分,以创建分区。一旦接收到所述账本信息,区块链就可以确定分区中包括的区块链节点。服务器可以将与所述账本信息关联的供方节点、需方节点、交易中心节点和清算中心节点划分在同一个分区。其中,所述分区不包括与数据交易不相关的其它区块链节点,所述账本信息仅保存在数据交易的供方节点、需方节点、所述交易中心节点和所述清算中心节点上,以便管理和维护所述数据交易的过程,辅助数据交易双方完成数据交易。通过将区块链节点分区,可以大大节省交易数据的存储空间。
[0050] 进一步地,在步骤S102中,可以基于Linux命名空间(Namespace)创建单个节点的隔离分区。Namespace是Linux内核对系统资源进行隔离和虚拟化的特性。Namespace可以进行资源隔离,所述资源可以包括进程标识(identifier,简称ID)、主机名、用户ID、网络访问、进程间通讯和文件系统等。在Namespace中,每一个进程都绑定在特定命名空间中,只允许查看和操作绑定在此命名空间的资源,因此,基于Namespace可以对区块链中的单个节点进行分区,实现不同数据交易产生的账本信息的隔离,也避免产生互信问题。
[0051] 具体地,在数据交易过程中,对区块链中的单个节点而言,是否采用Namespace创建分区可以依据是否与账本信息关联来确定。进一步地,区块链中的单个节点可以包含一台服务器或包含由多台服务器组成的服务器集群,仅存储与自身相关的账本信息、初步汇总后数据以及汇总后数据,大大节省了数据流通过程中的网络开销和所述账本信息的存储空间。在硬件配置和端口号允许的情况下,所述单个节点的分区可以支持动态扩充成多个Namespace,同一节点中的不同Namespace可以使用端口号区分,也可以在同一个端口中使用标志区分。例如,如果数据流通中新增供方节点A3,且供方节点A3同时向需方节点B3、需方节点B4供应数据,那么在供方节点A3中可以新增两个Namespace,其中一个Namespace分区用于保存供方节点A3与需方节点B3的交易数据(例如供方节点A3与需方节点B3的账本信息或初步汇总后数据或汇总后数据),另一个Namespace用于保存供方节点A3与需方节点B4的交易数据。同时在需方节点B3自动生成Namespace(用于保存需方节点B3与供方节点A3的交易数据),以及在需方节点B4自动生成Namespace(保存需方节点B4与供方节点A3的交易数据)。两个Namespace资源隔离,不进行数据共享,保密性高且降低数据存储空间。本发明技术方案通过改进传统区块链的底层机制,避免了传统区块链中的节点全部参与数据共识。
[0052] 进一步地,可以根据发现算法和共识算法实现对区块链中与所述账本信息关联的数据交易的供方节点、需方节点、所述交易中心节点和所述清算中心节点的分区。
[0053] 在步骤S103中,可以将所述账本信息进行合并汇总,以得到汇总后数据;将所述汇总后数据写入所述区块链中与所述汇总后数据对应的分区,也即分别写入需方节点、供方节点、交易中心节点和清算中心节点。合并汇总可以基于所述汇总主键对所述账本信息进行合并汇总,例如,根据所述汇总主键将数据流通中的供方节点和需方节点一致,且交易价格一致的账本信息进行合并汇总,从而可以减少存储空间的消耗。
[0054] 进一步地,在所述供方节点和/或所述需方节点得到汇总后数据之后,通过现算法和共识算法实现所述供方节点、所述需方节点、所述交易中心节点和所述清算中心节点的数据共识,完成数据入链。
[0055] 在实际应用中,本领域技术人员可以根据实际需要变化出更多实施例,例如,也可以采用客户化定制方式实现数据共识。所述客户化定制方式可以基于客户需求,从参与数据交易的区块链包含的各个节点中选定客户信任的节点,采用数据发现算法和数据共识算法实现数据共识。
[0056] 进一步地,数据交易也可以采用建立区块链子链的方式实现,但由于各个区块链子链彼此独立,各个节点不在同一个区块链中,当数据交易中心节点和清算中心节点统计数据信息(例如账本信息)时,无疑会增加统计复杂度。
[0057] 进一步地,所述汇总后数据与所述账本信息一致,显而易见地,所述汇总后数据可以包括以下一项或多项:所述汇总主键、所述供方节点的签名、所述需方节点的签名和时间戳,所述时间戳以所述供方节点的时间为准。关于所述汇总后数据包括的各项内容的具体含义,可以参照上述账本信息中的相关描述,这里不再赘述。
[0058] 由于在步骤S101中生成的账本信息的基本单位是单条数据,因而所述账本信息的数据量相当大。如果直接将所述账本信息写入区块链,则将消耗大量存储空间,因而不适合直接将所述账本信息作为账本区块链的数据记录,但可以采用定时(例如分钟级)汇总所述账本信息,以减少存储空间。作为一个非限制性实施例,参考图2,所述步骤S103可以包括以下步骤:
[0059] 步骤S1031,将所述账本信息按照所述汇总主键每隔第一时间周期进行合并汇总,以得到初步汇总后数据,其中,所述汇总主键相同的账本信息汇总至同一初步汇总后数据;
[0060] 步骤S1032,将所述初步汇总后数据按照所述汇总主键每隔第二时间周期进行再汇总,以得到所述汇总后数据,其中,所述汇总主键相同的初步汇总后数据汇总至同一汇总后数据,所述第二时间周期大于所述第一时间周期。
[0061] 具体而言,在步骤S1031中,可以基于所述汇总主键,定时对账本信息进行汇总,即每隔一段时间(例如第一时间周期),基于所述汇总主键统计所述供方发送的数据条目和所述需方节点接收的数据条目,将所述账本信息进行定时汇总,以得到所述初步汇总后数据。例如,可以基于所述汇总主键将同一台服务器上相同分区内的账本信息进行合并汇总,也可以基于所述汇总主键将不同服务器组成的服务器集群上的账本信息进行合并汇总,以得到所述初步汇总数据。
[0062] 在步骤S1032中,为进一步汇总数据,可以仍基于所述汇总主键定时将所述初步汇总后数据进行再汇总,例如每隔第二时间周期(该时间周期大于所述第一时间周期),将具有相同汇总主键的初步汇总后数据进行合并,汇总至同一汇总后数据。所述第一时间周期和所述第二时间周期均可以动态配置。当所述汇总后数据生成后,可以仅在数据交易的参与方(所述供方节点和所述需方节点)、交易中心节点和清算中心节点进行共识验证,这是由于一个完整的数据交易可以仅由上述四个节点参与完成,因而共识验证可以仅在上述四个节点中完成。由此可见,所述交易中心节点和所述清算中心节点需要保留各个数据交易生成的汇总后数据,但数据交易的参与方只需要保存与自己相关的账本信息,将大大节省存储空间。
[0063] 进一步地,将所述初步汇总后数据进行再汇总可以基于所述汇总主键将由同一节点(例如可以是供方节点、需方节点、数据交易中心节点、数据清算中心节点中的任一节点,每个节点可以是一台服务器或多个服务器组成的服务器集群)上相同分区内的初步汇总后数据进行合并汇总,以得到所述汇总后数据。
[0064] 进一步地,由于所述账本信息在入链前通过合并汇总得到汇总后数据,然后基于所述汇总后数据通过发现算法、共识算法在供方节点、需方节点、数据交易中心节点、数据清算中心节点中进行共识、入链,因而在入链前,需保证所述汇总后数据的完整性,以避免汇总过程中出现因服务器宕机丢失所述账本信息的问题。
[0065] 参考图3,作为一个非限制性实施例,所述步骤S1032可以包括以下步骤,以解决所述账本信息丢失问题:
[0066] 步骤S10321,将所述初步汇总后数据分别写入队列和重做日志文件中;
[0067] 步骤S10322,每隔所述第二时间周期,清空所述重做日志文件和所述队列中已完成再汇总的初步汇总后数据;
[0068] 步骤S10323,每隔所述第二时间周期,从所述队列中取出未完成再汇总的初步汇总后数据进行再汇总。
[0069] 进一步而言,在步骤S10321中,服务器将所述初步汇总后数据写入队列和重做日志文件中,所述重做日志文件还可以记录所述初步汇总数据在再汇总过程中的执行步骤。所述队列和所述重做日志文件均用于保存所述初步汇总后数据,以避免所述初步汇总后数据入链前因服务器宕机导致数据丢失的问题。所述队列可以独立放置于其它服务器中,以降低服务器宕机导致数据丢失的险。
[0070] 进一步地,服务器可以每隔一段时间(如每隔第二时间周期)对所述初步汇总后数据进行再汇总。此时,可以通过步骤S10322将在当前时间周期之前的汇总后数据清空,即可以清空所述重做日志文件和所述队列中已完成再汇总的初步汇总后数据。这是因为在当前时间周期之前完成再汇总的汇总后数据已经写入区块链节点,不会出现因服务器宕机导致数据丢失的问题,因而可以清空这些数据以减少无用数据的存储空间。
[0071] 进一步地,在步骤S10323中,服务器可以每隔所述第二时间周期,对所述初步汇总后数据进行再汇总,以得到所述汇总后数据,并写入区块链节点。对所述初步汇总后数据进行再汇总的步骤可以包括:首先,基于所述初步汇总后数据中的账本信息携带的时间戳,可以计算出在所述第二时间周期内进行再汇总的初步汇总后数据;然后,将这些初步汇总后数据从所述队列中依次取出并写入哈希表;最后,在所述第二时间周期,将哈希表中的初步汇总后数据按照所述汇总主键进行再汇总,以得到所述汇总后数据。
[0072] 作为另一个非限制性实施例,参考图4,当服务器宕机重启后,可以根据所述队列和所述重做日志文件对所述初步汇总后数据进行恢复,具体可以采用以下步骤恢复所述初步汇总后数据:
[0073] 步骤S10324,重启时,根据所述重做日志文件中的初步汇总后数据恢复所述队列;
[0074] 步骤S10325,清空所述重做日志文件和所述队列中已完成再汇总的初步汇总后数据;
[0075] 步骤S10326,每隔所述第二时间周期,从所述队列中取出未完成再汇总的初步汇总后数据进行再汇总。
[0076] 具体地,在步骤S10324中,当服务器宕机重启时,可以根据所述重做日志文件恢复所述队列,即可以将所述重做日志文件中的初步汇总后数据写入所述队列。
[0077] 进一步地,在步骤S10325中,将服务器宕机前已经完成再汇总但未及时清空的初步汇总后数据从所述重做日志文件和所述队列中清空,以减少无用数据的存储空间。
[0078] 进一步地,与步骤S10323类似,在步骤S10326中,每隔所述第二时间周期,从所述队列中取出未完成再汇总的初步汇总后数据进行再汇总。不同之处在于,由于服务器宕机导致哈希表丢失,因而在将所述队列写入哈希表之前,可以建立新的哈希表,并进行再汇总,具体步骤可以如下:首先,基于所述初步汇总后数据中的账本信息携带的时间戳,得到在所述第二时间周期内可以进行再汇总的初步汇总后数据;然后建立哈希表,并从所述队列中将可以在所述第二时间周期进行再汇总的初步汇总后数据写入所述哈希表;最后,可以按照步骤S10323在所述第二时间周期,将所述哈希表中的初步汇总后数据按照所述汇总主键进行再汇总,以得到所述汇总后数据。
[0079] 本领域技术人员理解,对所述账本信息进行初步汇总和再汇总均可以使用哈希表实现,但在实际应用中,并不局限于此。
[0080] 图5是本发明第二实施例的一种用于数据流通的区块链构建装置的结构示意图。本领域技术人员理解,本实施例所述区块链构建装置5可以用于实施上述图1至图4所示实施例中所述区块链构建方法技术方案。
[0081] 参见图5,所述区块链构建装置5可以包括:接收模块51、分区模块52、汇总模块53和入链模块54。
[0082] 所述接收模块51适于接收数据流通过程中的账本信息;所述分区模块52适于对区块链中的节点进行划分,以创建分区;所述汇总模块53适于将所述账本信息进行合并汇总,以得到汇总后数据;所述入链模块54适于将所述汇总后数据写入所述区块链中与所述汇总后数据对应的分区,与所述汇总后数据对应的分区包括与所述汇总后数据关联的供方节点、需方节点、交易中心节点和清算中心节点。
[0083] 优选地,所述账本信息中可以包含汇总主键,所述汇总主键可以用于标识供方节点、需方节点和交易价格的组合。
[0084] 进一步地,所述账本信息中还可以包含以下一项或多项:所述供方节点的签名、所述需方节点的签名和时间戳,所述时间戳以所述供方节点的时间为准。
[0085] 进一步地,所述汇总后数据包括以下一项或多项:所述汇总主键、所述供方节点的签名、所述需方节点的签名和时间戳,所述时间戳以所述供方节点的时间为准。
[0086] 优选地,所述分区模块52可以包括:第一分区子模块521,适于基于Linux命名空间,对区块链中的单个节点进行划分,以创建单个节点隔离分区;第二分区子模块522,基于发现算法和共识算法创建所述汇总后数据对应的分区。
[0087] 优选地,所述汇总模块53可以包括:汇总子模块531,适于将所述账本信息按照汇总主键进行合并汇总,以得到所述汇总后数据,其中,所述汇总主键相同的账本信息可以汇总至同一汇总后数据。
[0088] 作为一个非限定性的例子,所述汇总子模块531可以包括:第一汇总单元5311和第二汇总单元5312。
[0089] 所述第一汇总单元5311适于将所述账本信息按照所述汇总主键每隔第一时间周期进行合并汇总,以得到初步汇总后数据,其中,汇总主键相同的账本信息汇总至同一初步汇总后数据;所述第二汇总单元5312,适于将所述初步汇总后数据按照所述汇总主键每隔第二时间周期进行再汇总,以得到所述汇总后数据,其中,汇总主键相同的初步汇总后数据汇总至同一汇总后数据,所述第二时间周期大于所述第一时间周期。
[0090] 优选地,所述第二汇总单元5312可以包括:写入子单元53121、第一清空子单元53122和第一取出子单元53123。
[0091] 所述写入子单元53121适于将所述初步汇总后数据分别写入队列和重做日志文件中;每隔第二时间周期统计所述重做日志文件,所述第一清空单元53122可以适于清空所述重做日志文件和所述队列中已完成再汇总的初步汇总后数据;每隔所述第二时间周期,所述第一取出子单元53123可以适于从所述队列中取出未完成再汇总的初步汇总后数据进行再汇总。
[0092] 作为一个变化实施例,所述第二汇总单元5312还可以包括:恢复子单元53124、第二清空子单元53125和第二取出子单元53126。
[0093] 重启时,所述恢复子单元53124可以适于根据写入所述重做日志文件中的初步汇总数据恢复所述队列;第二清空子单元53125适于清空所述重做日志文件和所述队列中已完成再汇总的初步汇总后数据;每隔所述第二时间周期,所述第二取出子单元53126可以适于从所述队列中取出未完成再汇总的初步汇总后数据进行再汇总。
[0094] 关于所述区块链构建装置5的工作原理、工作方式的更多内容,可以参照上述对图1至图4所示实施例中的相关描述,这里不再赘述。
[0095] 进一步地,本发明实施例还公开了一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述图1至图4所示实施例所述区块链构建方法的步骤。优选地,所述存储介质可以包括计算机可读存储介质。优选地,所述存储介质可以包括ROM、RAM、磁盘或光盘等。
[0096] 进一步地,本发明实施例还公开了一种服务器,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行上述图1至图4所示实施例所述区块链构建方法的步骤。
[0097] 虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈