掌桥专利:专业的专利平台
掌桥专利
首页

能源区块数据的同步方法、装置、计算机设备和存储介质

文献发布时间:2023-06-19 10:11:51


能源区块数据的同步方法、装置、计算机设备和存储介质

技术领域

本申请涉及区块链技术领域,特别是涉及一种能源区块数据的同步方法、装置、计算机设备和存储介质。

背景技术

随着计算机技术的发展,区块链以其独有的不可篡改、可追溯、可靠性高以及去中心化的特点,被广泛应用于众多领域;但随着互联网交易数据的增多,区块链的区块数据处理容量面临瓶颈,导致区块链系统的吞吐量低,也就是区块链系统每秒处理的交易数量少,进而导致处理速度低。

为了提高区块链系统的吞吐量,现有技术中采用一种基于分区的方法,即将单链的分布存储变成多链的分布存储,由不同的分片进行并行交易处理,以增加交易处理和共识的并发度。

然而,上述基于分区的方法给数据同步带来困难,且很难实现统一管理和数据共享。

发明内容

基于此,有必要针对上述技术问题,提供一种能够实现分区后数据同步的能源区块数据的同步方法、装置、计算机设备和存储介质。

第一方面,提供一种能源区块数据的同步方法,该方法包括:

采用聚类算法对当前能源区块链上的历史区块数据进行处理,建立当前时间段内的多个目标分区;其中,每个目标分区包括至少一个与该历史区块数据相关的节点的标识以及该节点在当前时间段的预测能源交易量;

根据每个目标分区中包含的节点标识以及该节点在当前时间段的预测能源交易量,确定每个目标分区对应的区块子链;其中,该当前时间段内的所有区块子链并行运行;

对每条区块子链上的最后一个区块的哈希值进行合并,确定当前时间段的合并区块,并将该合并区块发送至当前区块链上;其中,该合并区块用于表征当前区块链上的所有区块数据。

在其中一个实施例中,对每条区块子链上的最后一个区块的哈希值进行合并,确定当前时间段的合并区块,包括:获取每条区块子链上的最后一个区块的哈希值;将每条区块子链上的最后一个区块的哈希值进行串联操作,得到串联字符;对该串联字符进行加密计算,得到该合并区块。

在其中一个实施例中,采用聚类算法对当前能源区块链上的历史区块数据进行处理,建立当前时间段内的多个目标分区,包括:获取上一历史时间段的历史合并区块,并根据该历史合并区块确定当前节点网络拓扑;其中,该历史合并区块用于表征上一历史时间段上的所有区块数据;获取当前区块链上的多个历史时间段内每个节点的历史能源交易量,并根据该多个历史时间段内每个节点的历史能源交易量,确定当前节点网络拓扑中每个节点在当前时间段的预测能源交易量;采用该聚类算法对当前节点网络拓扑进行聚类处理,得到多个初始分区;其中,每个初始分区包括该当前节点网络拓扑中部分节点的标识以及预测能源交易量;根据当前节点网络拓扑中每个节点的标识以及预测能源交易量对该多个初始分区进行优化处理,得到当前时间段内的多个目标分区。

在其中一个实施例中,根据该当前节点网络拓扑中每个节点的标识以及预测能源交易量对该多个初始分区进行优化处理,得到当前时间段内的多个目标分区,包括:将每个初始分区中每个节点的预测能源交易量求和,得到每个初始分区对应的预测能源交易总量;从每个初始分区中确定预测能源交易总量最小的第一初始分区和预测能源交易总量次小的第二初始分区,并获取该第一初始分区的预测能源交易总量和该第二初始分区的预测能源总量之和,得到参考能源交易总量;根据该参考能源交易总量和预设的合并门限,确定是否将该第一初始分区和该第二初始分区合并为一个目标分区。

在其中一个实施例中,根据该参考能源交易总量和预设的合并门限,确定是否将该第一初始分区和该第二初始分区合并为一个目标分区,包括:在该参考能源交易总量小于该合并门限的情况下,将该第一初始分区和该第二初始分区合并为一个目标分区;在该参考能源交易总量不小于该合并门限的情况下,将该第一初始分区确定为一个目标分区,将该第二初始分区确定为另一个目标分区。

在其中一个实施例中,根据当前节点网络拓扑中每个节点的标识以及预测能源交易量对该多个初始分区进行优化处理,得到当前时间段内的多个目标分区,还包括:从每个初始分区中确定预测能源交易总量最大的第三初始分区;在该第三初始分区的预测能源交易总量大于预设的分类门限去情况下,将该第三初始分区拆分为多个目标分区。

在其中一个实施例中,将该第三初始分区拆分为多个目标分区,包括:根据该第三初始分区中的节点数目以及每个节点的预测能源交易量,将该第三初始分区拆分为该多个目标分区;其中,该多个目标分区的预测能源交易总量的差值小于预设阈值。

在其中一个实施例中,采用该聚类算法对当前节点网络拓扑进行聚类处理,得到多个初始分区之前,还包括:获取上一历史时间段的第一历史能源交易总量;其中,上一历史时间段内并行运行多个历史区块子链,该第一历史能源交易总量包括多个历史区块子链的历史能源交易总量;从上一历史时间段内并行运行多个历史区块子链中确定历史能源交易总量最大的目标历史区块子链;根据该第一历史能源交易总量与该目标历史区块子链的历史能源交易量的商值,确定该初始分区的个数。

在其中一个实施例中,该合并区块还包括当前时间段内并行运行的区块子链的条数、每条区块子链上的节点的标识以及每条区块子链上的节点在当前时间段内的能源交易总量中的至少一个。

在其中一个实施例中,该方法还包括:从当前时间段的目标分区中获取预测能源交易总量最大的第一目标分区;根据该第一目标分区的预测能源交易总量与预设的随机数之和,乘以当前时间段内运行的区块子链的处理速率的乘积,确定当前时间段内所有区块子链的运行时长。

在其中一个实施例中,根据该多个历史时间段内每个节点的历史能源交易量,确定当前节点网络拓扑中每个节点在当前时间段的预测能源交易量,包括:采用线性自回归算法和多个历史时间段内每个节点的历史能源交易量,对当前节点网络拓扑中每个节点在当前时间段的预测能源交易量进行估计,得到当前节点网络拓扑中每个节点在当前时间段的预测能源交易量。

第二方面,提供一种能源区块数据的同步装置,该装置包括:

建立模块,用于采用聚类算法对当前能源区块链上的历史区块数据进行处理,建立当前时间段内的多个目标分区;其中,每个目标分区包括至少一个与该历史区块数据相关的节点的标识以及该节点在当前时间段的预测能源交易量。

第一确定模块,用于根据每个目标分区中包含的节点标识以及该节点在当前时间段的预测能源交易量,确定每个目标分区对应的区块子链;其中,当前时间段内的所有区块子链并行运行。

第二确定模块,用于对每条区块子链上的最后一个区块的哈希值进行合并,确定当前时间段的合并区块,并将该合并区块发送至当前区块链上;其中,该合并区块用于表征当前区块链上的所有区块数据。

第三方面,提供一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行该计算机程序时实现以下步骤:

采用聚类算法对当前能源区块链上的历史区块数据进行处理,建立当前时间段内的多个目标分区;其中,该每个目标分区包括至少一个与该历史区块数据相关的节点的标识以及该节点在当前时间段的预测能源交易量;

根据每个目标分区中包含的节点标识以及该节点在当前时间段的预测能源交易量,确定每个目标分区对应的区块子链;其中,该当前时间段内的所有区块子链并行运行;

对每条区块子链上的最后一个区块的哈希值进行合并,确定当前时间段的合并区块,并将该合并区块发送至当前区块链上;其中,该合并区块用于表征当前区块链上的所有区块数据。

第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以下步骤:

采用聚类算法对当前能源区块链上的历史区块数据进行处理,建立当前时间段内的多个目标分区;其中,该每个目标分区包括至少一个与该历史区块数据相关的节点的标识以及该节点在当前时间段的预测能源交易量;

根据每个目标分区中包含的节点标识以及该节点在当前时间段的预测能源交易量,确定每个目标分区对应的区块子链;其中,该当前时间段内的所有区块子链并行运行;

对每条区块子链上的最后一个区块的哈希值进行合并,确定当前时间段的合并区块,并将该合并区块发送至当前区块链上;其中,该合并区块用于表征当前区块链上的所有区块数据。

上述能源区块数据的同步方法、装置、计算机设备和存储介质,采用聚类算法对当前能源区块链上的历史区块数据进行处理,建立当前时间段内的多个目标分区;其中,每个目标分区包括至少一个与该历史区块数据相关的节点的标识以及该节点在当前时间段的预测能源交易量;并根据每个目标分区中包含的节点标识以及该节点在当前时间段的预测能源交易量,确定每个目标分区对应的区块子链;其中,该当前时间段内的所有区块子链并行运行;以及对每条区块子链上的最后一个区块的哈希值进行合并,确定当前时间段的合并区块,并将该合并区块发送至当前区块链上;其中,该合并区块用于表征当前区块链上的所有区块数据;也就是说,本申请实施例中在当前时间段内,根据当前能源区块链上的历史区块数据建立多个目标分区,每个目标分区分别对应一个区块子链,在当前时间段内的所有区块子链并行运行,之后再将每条区块子链合并成一个合并区块,连接到当前区块链上,根据该合并区块,可以获取到当前区块链上的所有区块数据;因此,通过该合并区块能够实现对各个分区对应的子链中的能源交易数据的同步,以及实现链间数据的共享和统一管理,以及方便实现对并行子链的相关区块的认证、加密和信息共享。

附图说明

图1为一个实施例中能源区块数据的同步方法的应用环境图;

图2为另一个实施例中能源区块数据的同步方法的流程示意图;

图3为另一个实施例中能源区块数据的同步方法的流程示意图;

图4为另一个实施例中能源区块数据的同步方法的流程示意图;

图5为一个实施例中能源区块数据的同步装置的结构框图;

图6为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

由于广泛接入分布式可再生能源发电以及区域微网能源共享机制,能源互联网需要实现频繁、泛在的局部能源交易。由于此类交易的交易量小且具有短时性和分散性,传统的交易方式将产生大量的成本开销,而基于共识机制的区块链交易技术能够显著减少能源交易开销并保证交易的安全性和公正性,可以在能源互联网等能源网络得到广泛推广。

但采用多方共识的机制,导致区块链的区块数据处理容量存在瓶颈,每秒处理的区块数目十分有限,也就是区块链系统的吞吐量低,这对大范围的分布式能源交易需求可能会造成一定的限制甚至影响其正常运行。

为了提高区块链系统的吞吐量,现有技术中已有一种基于分区(Sharding)的方法,将单链分布存储变成多链分布存储;将拥有整个区块链网络中的所有节点划分成若干个子网络,每个子网络中包含一部分节点,每个子网络也就是一个分片(Sharding);同时网络中的交易也会被划分到不同的分片中去处理,这样每个分片的节点只需要处理一小部分传入的交易,不同的分片可以并行处理交易,即可增加交易处理和共识的并发度,从而提升整个区块链网络的吞吐量;但该方法给网络中的数据同步带来困难,且很难实现统一管理和数据共享。

本申请提出一种能源区块数据的同步方法,可以基于对各节点分别在下一阶段的能源交易量的预测,通过鲁棒的分区和合并迭代算法,将网络划分为合适的区域,然后通过并行子链技术,实现分区能源区块链交易,每段并行子链在一定交易时间段内负责一个区域的交易,交易时间长度可以根据估计能源交易量动态确定,使得最大限度地保障所有子链的交易完成;在每个并行结束时间点插入一个合并区块,以实现对各个节点间信息的同步。

本申请提供的能源区块数据的同步方法,可以应用于能源区块链系统,该能源区块链系统可以包括多个节点,每个节点可以是计算机设备,该计算机设备可以是服务器或者终端,该服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机和平板电脑等;在具体执行下述方法的各个实施例时,可以是每个节点分别执行,也可以是多个节点的共识节点来执行,还可以是多个节点中的部分节点来执行,本申请实施例对此并不做限定。

在一个实施例中,如图1所示,提供了一种能源区块数据的同步方法,以该方法应用于上述计算机设备为例进行说明,包括以下步骤:

步骤101,采用聚类算法对当前能源区块链上的历史区块数据进行处理,建立当前时间段内的多个目标分区;其中,每个目标分区包括至少一个与该历史区块数据相关的节点的标识以及该节点在当前时间段的预测能源交易量。

在初始能源区块链上,每个被验证通过的历史能源交易数据均以区块的形式按照时间先后顺序串联连接在一条单链上,随着能源交易数据的增多,该能源区块链的总的交易量也在逐渐增多,对于新增的能源交易数据,由于能源区块链系统每秒处理的区块数目有限,导致能源区块链的数据处理效率变低;因此,可选地,在该能源区块链的能源交易数据达到预设的能源交易阈值时,可以将该区块链上的所有节点数据分成多个不同的区域,每个区域对应一条子链,每条子链并行运行,使得每条子链只需要负责记录和存储一个区域的能源交易。

在本申请的一个可选的实施例中,可以采用聚类算法对当前能源区块链上的历史区块数据进行处理,建立当前时间段内的多个目标分区;可选地,可以预先设置目标分区的个数,该目标分区的个数可以是随机选取,也可以是通过大数据分析后得到的目标分区的个数,还可以是其他的选择方式,本申请对如何确定的目标分区的个数的方法并不做限定;在建立多个目标分区后,每个目标分区中可以包括至少一个与该历史区块数据相关的节点的标识以及该节点在当前时间段的预测能源交易量;可选地,该节点在当前时间段的预测能源交易量可以是根据该节点在历史的能源交易总量与该节点的交易运行时长的比值得到该节点在单位时间内的能源交易量,并根据该节点在单位时间内的能源交易量来确定该节点在当前时间段的预测能源交易量。

步骤102,根据每个目标分区中包含的节点标识以及该节点在当前时间段的预测能源交易量,确定每个目标分区对应的区块子链;其中,该当前时间段内的所有区块子链并行运行。

在本申请的一个可选的实施例中,在上述得到的多个目标分区中,每个目标分区均包含至少一个节点的节点标识和每个节点在当前时间段的预测能源交易量,以及每个节点的能源交易数据区块;可选地,对于每一个目标分区,可以分别对应一条区块子链,该区块子链中包含该目标分区内的所有节点对应的能源交易数据区块,且该目标分区内的所有节点对应的能源交易数据区块以串联形式形成该目标分区在当前时间段内的区块子链;每个目标分区分别对应的区块子链,在当前时间段内并行运行,且每条区块子链负责记录和存储该区块子链所在的区域的能源交易;另外,共识节点可以在该区域范围内随机选取。

步骤103,对每条区块子链上的最后一个区块的哈希值进行合并,确定当前时间段的合并区块,并将该合并区块发送至当前区块链上;其中,该合并区块用于表征当前区块链上的所有区块数据。

在本申请的一个可选的实施例中,在当前时间段的时间结束后,可以从当前区块链的所有节点中选择其中一个节点作为合并节点,该节点可以是工作量最多的节点,也可以是网络中的任一节点,本申请实施例对此并不做限定;通过该合并节点对每条区块子链上的最后一个区块的哈希值进行合并,确定当前时间段的合并区块,并将该合并区块发送至当前区块链上;其中,该合并区块可以用于表征当前区块链上的所有区块数据;可选地,该合并节点可以获取每条区块子链上的最后一个区块的哈希值,并将每条区块子链上的最后一个区块的哈希值进行串联操作,得到串联字符,对该串联字符进行加密计算,将加密后的数据保存到该合并区块中;可选地,对每条区块子链上的最后一个区块的哈希值进行合并并加密的过程可以采用同态加密技术以及多路身份认证信息串联连接处理的机制实现,生成该合并区块的数据。

在本申请的一个可选的实施例中,该合并区块还可以包括当前时间段内并行运行的区块子链的条数、每条区块子链上的节点的标识以及每条区块子链上的节点在当前时间段内的能源交易总量中的至少一个。

上述能源区块数据的同步方法中,采用聚类算法对当前能源区块链上的历史区块数据进行处理,建立当前时间段内的多个目标分区;其中,每个目标分区包括至少一个与该历史区块数据相关的节点的标识以及该节点在当前时间段的预测能源交易量;并根据每个目标分区中包含的节点标识以及该节点在当前时间段的预测能源交易量,确定每个目标分区对应的区块子链;其中,该当前时间段内的所有区块子链并行运行;以及对每条区块子链上的最后一个区块的哈希值进行合并,确定当前时间段的合并区块,并将该合并区块发送至当前区块链上;其中,该合并区块用于表征当前区块链上的所有区块数据;也就是说,本申请实施例中在当前时间段内,根据当前能源区块链上的历史区块数据建立多个目标分区,每个目标分区分别对应一个区块子链,在当前时间段内的所有区块子链并行运行,之后再将每条区块子链合并成一个合并区块,连接到当前区块链上,根据该合并区块,可以获取到当前区块链上的所有区块数据;因此,通过该合并区块能够实现对各个分区对应的子链中的能源交易数据的同步,以及实现链间数据的共享和统一管理,以及方便实现对并行子链的相关区块的认证、加密和信息共享。

图2为另一个实施例中能源区块数据的同步方法的流程示意图。本实施例中涉及的是采用聚类算法对当前能源区块链上的历史区块数据进行处理并建立当前时间段内的多个目标分区的一种可选的实现过程。在上述实施例的基础上,如图2所示,上述步骤101包括:

步骤201,获取上一历史时间段的历史合并区块,并根据该历史合并区块确定当前节点网络拓扑;其中,该历史合并区块用于表征上一历史时间段上的所有区块数据。

在本申请的一个可选的实施例中,在当前区块链上存在多个历史时间段的并行子链运行和在每个时间段结束之后的历史合并区块,由于每个历史合并区块均包含了当前区块链在每个历史时间段结束后的所有区块数据;因此,可以获取上一历史时间段的历史合并区块,该历史合并区块可以表征上一历史时间段上的所有区块数据,根据该历史合并区块可以确定当前节点网络拓扑,该当前节点网络拓扑表征了当前区块链中所有节点的交易连接关系。

步骤202,获取当前区块链上的多个历史时间段内每个节点的历史能源交易量,并根据该多个历史时间段内每个节点的历史能源交易量,确定当前节点网络拓扑中每个节点在当前时间段的预测能源交易量。

在本申请的一个可选的实施例中,根据上述步骤201的描述,在当前区块链上存在多个历史时间段的并行子链运行和在每个时间段结束之后的历史合并区块;可以获取当前区块链上的多个历史时间段内每个节点的历史能源交易量,可选地,根据上述步骤103的描述,每个合并区块中可以包括每条区块子链上的节点在当前时间段内的能源交易总量;也就是,可以推断出每个历史时间段的并行子链运行结束后的历史合并节点中包括有这个历史时间段内每条区块子链上的节点在该历史时间段内的能源交易总量;因此,根据多个历史合并区块可以获取当前区块链上的多个历史时间段内每个节点的历史能源交易量;并根据该多个历史时间段内每个节点的历史能源交易量,确定当前节点网络拓扑中每个节点在当前时间段的预测能源交易量;可选地,可以采用线性自回归算法和多个历史时间段内每个节点的历史能源交易量,对当前节点网络拓扑中每个节点在当前时间段的预测能源交易量进行估计,得到当前节点网络拓扑中每个节点在当前时间段的预测能源交易量;例如:可以获取3个历史时间段内每个节点的历史能源交易量,以其中一个节点为例,该节点在3个历史时间段内历史能源交易量分别为P1、P2、P3,通过线性自回归算法可以得到该节点在当前时间段的预测能源交易量可以为P4=a

可选地,可以设置一个交易量的上限值,在该节点在当前时间段的预测能源交易量大于该上限值的情况下,可以将该节点在当前时间段的预测能源交易量设置为该上限值。

步骤203,采用该聚类算法对当前节点网络拓扑进行聚类处理,得到多个初始分区;其中,每个初始分区包括该当前节点网络拓扑中部分节点的标识以及预测能源交易量。

在本申请的一个可选的实施例中,可以根据预设分类个数采用聚类算法对当前节点网络拓扑进行聚类处理,得到预设分类个数的初始分区;可选地,可以采用自适应聚类(K-means)算法,首先产生预设分类个数的随机聚类中心,基于最短距离将所有节点分配到不同的中心,并基于距离平均机制计算新的聚类中心,如此迭代直到分区变化率小于特定值或达到一定的迭代次数为止,得到预设分类个数的初始分区;其中,每个初始分区包括该当前节点网络拓扑中部分节点的标识以及预测能源交易量。

步骤204,根据当前节点网络拓扑中每个节点的标识以及预测能源交易量对该多个初始分区进行优化处理,得到当前时间段内的多个目标分区。

在本申请的一个可选的实施例中,根据当前节点网络拓扑中每个节点的标识以及预测能源交易量,将每个初始分区中每个节点的预测能源交易量求和,得到每个初始分区对应的预测能源交易总量;从每个初始分区中确定预测能源交易总量最小的第一初始分区和预测能源交易总量次小的第二初始分区,可选地,该预测能源交易总量次小的第二初始分区可以为与该第一初始分区为相邻区域中的预测能源交易总量最小的区域;并获取该第一初始分区的预测能源交易总量和该第二初始分区的预测能源总量之和,得到参考能源交易总量;可选地,可以根据该参考能源交易总量和预设的合并门限,确定是否将该第一初始分区和该第二初始分区合并为一个目标分区;可选地,在该参考能源交易总量小于该合并门限的情况下,可以将该第一初始分区和该第二初始分区合并为一个目标分区;在该参考能源交易总量不小于该合并门限的情况下,可以将该第一初始分区确定为一个目标分区,将该第二初始分区确定为另一个目标分区。

在本申请的一个可选的实施例中,也可以从每个初始分区中确定预测能源交易总量最大的第三初始分区;在该第三初始分区的预测能源交易总量大于预设的分类门限的情况下,其中,该预设的分类门限应超过上述合并门限的2倍,可以将该第三初始分区拆分为多个目标分区;可选地,可以根据该第三初始分区中的节点数目以及每个节点的预测能源交易量,将该第三初始分区拆分为该多个目标分区;其中,该多个目标分区的预测能源交易总量的差值小于预设阈值;例如:该第三初始分区包括节点A、节点B、和节点C,节点A的预测能源交易量为40、节点B的预测能源交易量为50、节点C的预测能源交易量为100,可以将该第三初始分区分为两个目标分区,这两个目标分区可以以下三种不同的情况,如表1所示:

表1

在该预设阈值为50的情况下,将该第三初始分区分为两个目标分区后,根据上表可以看出,情况1对应的两个目标分区的预测能源交易总量的差值小于预设阈值,因此,可以将情况1对应的分区结果作为该第三初始分区拆分后的最优结果。

可选地,在进行初始分区的优化时,可多次进行上述分区的合并或者拆分动作,直到分区不发生变化为止,最终得到优化后的多个目标分区;另外,上述合并门限和分类门限可以通过历史能源交易量和/或预测能源交易量采用大数据分析来确定。

本实施例中,通过获取上一历史时间段的历史合并区块,并根据该历史合并区块确定当前节点网络拓扑;以及获取当前区块链上的多个历史时间段内每个节点的历史能源交易量,并根据该多个历史时间段内每个节点的历史能源交易量,确定当前节点网络拓扑中每个节点在当前时间段的预测能源交易量;采用该聚类算法对当前节点网络拓扑进行聚类处理,得到多个初始分区;根据当前节点网络拓扑中每个节点的标识以及预测能源交易量对该多个初始分区进行优化处理,得到当前时间段内的多个目标分区;也就是说,本实施例根据当前节点网络拓扑采用聚类算法进行初始分区,再根据各个节点的历史能源交易量预测各个节点在当前时间段的预测能源交易量;进一步地,根据各个节点在当前时间段的预测能源交易量对初始分区进行优化,得到多个目标分区,能够大大提高对目标分区的准确性和最优性,进而提高能源区块链系统的运行效率。

图3为另一个实施例中能源区块数据的同步方法的流程示意图。本实施例中涉及的是确定上述初始分区的个数的一种可选的实现过程。在上述实施例的基础上,如图3所示,上述步骤203之前还包括:

步骤301,获取上一历史时间段的第一历史能源交易总量;其中,上一历史时间段内并行运行多个历史区块子链,该第一历史能源交易总量包括多个历史区块子链的历史能源交易总量。

在本申请的一个可选的实施例中,可以通过上一历史时间段的历史合并区块,根据该历史合并区块中包含的每条区块子链上的节点在该历史时间段内的能源交易总量之和,可以得到上一历史时间段内所有节点的历史能源交易总量,作为上一历史时间段的第一历史能源交易总量。

步骤302,从上一历史时间段内并行运行多个历史区块子链中确定历史能源交易总量最大的目标历史区块子链。

在本申请的一个可选的实施例中,可以通过上一历史时间段的历史合并区块,根据该历史合并区块中包含的每条区块子链上的节点在该历史时间段内的能源交易总量,可以得到上一历史时间段内每个并行运行的历史区块子链的历史能源交易总量,并从每个历史区块子链的历史能源交易总量中选择历史能源交易总量最大的历史区块子链作为目标历史区块子链。

步骤303,根据该第一历史能源交易总量与该目标历史区块子链的历史能源交易量的商值,确定该初始分区的个数。

在本申请的一个可选的实施例中,可以根据该第一历史能源交易总量与该目标历史区块子链的历史能源交易量的商值,确定该初始分区的个数;可选地,在该商值为非整数的情况下,可以采用任意一种取整的方法对该商值进行取整后,将该取整后的整数作为该初始分区的个数。

本实施例中,通过上一历史时间段的第一历史能源交易总量,和上一历史时间段内并行运行多个历史区块子链中历史能源交易总量最大的目标历史区块子链,并根据该第一历史能源交易总量与该目标历史区块子链的历史能源交易量的商值,确定该初始分区的个数;相比较随机设置初始分区个数来说,能够大大提高初始分区的合理性和准确性,提高初始分区的效率。

图4为另一个实施例中能源区块数据的同步方法的流程示意图。本实施例中涉及的是确定当前时间段内所有区块子链的运行时长的一种可选的实现过程。在上述实施例的基础上,如图4所示,上述方法还包括:

步骤401,从当前时间段的目标分区中获取预测能源交易总量最大的第一目标分区。

在本申请的一个可选的实施例中,可以根据当前时间段内的每个目标分区中包含的节点和各个节点分别在当前时间段的预测能源交易量,分别确定每个目标分区的预测能源交易总量,并根据每个目标分区的预测能源交易总量,选择预测能源交易总量最大的目标分区作为第一目标分区。

步骤402,根据该第一目标分区的预测能源交易总量与预设的随机数之和,乘以当前时间段内运行的区块子链的处理速率的乘积,确定当前时间段内所有区块子链的运行时长。

在本申请的一个可选的实施例中,该预设的随机数可以是2到5之间的随机整数,通过将该第一目标分区的预测能源交易总量与预设的随机数进行求和,并在求和后,与当前时间段内运行的区块子链的处理速率进行相乘,根据相乘后的乘积确定当前时间段内所有区块子链的运行时长。

本实施例中,通过从当前时间段的目标分区中获取预测能源交易总量最大的第一目标分区,并根据该第一目标分区的预测能源交易总量与预设的随机数之和,乘以当前时间段内运行的区块子链的处理速率的乘积,确定当前时间段内所有区块子链的运行时长;采用当前时间段内的各个目标分区中预测能源交易总量的最大值,再加上一个随机数之后,再与区块子链的处理速率进行相乘,得到当前时间段内所有区块子链的运行时长,能够确保该当前时间段内的所有目标分区内的能源交易数据在该运行时长内能够完成对能源交易数据的处理,最大限度地保障了所有子链的交易处理的完成度。

在本申请的一个可选的实施例中,在当前时间段内的多个目标分区中,如果存在跨区域的能源交易,也就是,一个目标分区内的节点与另一个目标分区内的节点之间的能源交易,可以设立一个中间代理节点,该中间代理节点可以是一个新增的节点设备,也可以是一个专用的中间代理节点;该中间节点扮演中间商的角色可以分别代理双方间的交易,且可以被同时划分为交易双方所在的两个区域的从属节点(也可以是公共节点),可以通过与交易节点双方分别签订智能合约以实现跨区域的能源交易;本申请实施例可以保证区域间交易时各个区域的独立性,且不影响区域间的能量交易。

在本申请的一个可选的实施例中,在当前时间段的运行时长结束后,如果子链上存在未处理完的能源交易,可以将剩余的未处理的交易量加入到下一时间段的预测能源交易量之中,并在下一时间段内完成对该剩余的未处理的交易量的处理。

应该理解的是,虽然图1-4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-4中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图5所示,提供了一种能源区块数据的同步装置,包括:建立模块501、第一确定模块502和第二确定模块503,其中:

建立模块501,用于采用聚类算法对当前能源区块链上的历史区块数据进行处理,建立当前时间段内的多个目标分区;其中,每个目标分区包括至少一个与该历史区块数据相关的节点的标识以及该节点在当前时间段的预测能源交易量。

第一确定模块502,用于根据每个目标分区中包含的节点标识以及该节点在当前时间段的预测能源交易量,确定每个目标分区对应的区块子链;其中,当前时间段内的所有区块子链并行运行。

第二确定模块503,用于对每条区块子链上的最后一个区块的哈希值进行合并,确定当前时间段的合并区块,并将该合并区块发送至当前区块链上;其中,该合并区块用于表征当前区块链上的所有区块数据。

在其中一个实施例中,上述第二确定模块503,具体用于获取每条区块子链上的最后一个区块的哈希值;将每条区块子链上的最后一个区块的哈希值进行串联操作,得到串联字符;对该串联字符进行加密计算,得到该合并区块。

在其中一个实施例中,上述建立模块501,具体用于获取上一历史时间段的历史合并区块,并根据该历史合并区块确定当前节点网络拓扑;其中,该历史合并区块用于表征上一历史时间段上的所有区块数据;以及获取当前区块链上的多个历史时间段内每个节点的历史能源交易量,并根据该多个历史时间段内每个节点的历史能源交易量,确定当前节点网络拓扑中每个节点在当前时间段的预测能源交易量;采用该聚类算法对当前节点网络拓扑进行聚类处理,得到多个初始分区;其中,每个初始分区包括该当前节点网络拓扑中部分节点的标识以及预测能源交易量;并根据当前节点网络拓扑中每个节点的标识以及预测能源交易量对该多个初始分区进行优化处理,得到当前时间段内的多个目标分区。

在其中一个实施例中,上述建立模块501,具体用于将每个初始分区中每个节点的预测能源交易量求和,得到每个初始分区对应的预测能源交易总量;从每个初始分区中确定预测能源交易总量最小的第一初始分区和预测能源交易总量次小的第二初始分区,并获取该第一初始分区的预测能源交易总量和该第二初始分区的预测能源总量之和,得到参考能源交易总量;根据该参考能源交易总量和预设的合并门限,确定是否将该第一初始分区和该第二初始分区合并为一个目标分区。

在其中一个实施例中,上述建立模块501,具体用于在该参考能源交易总量小于该合并门限的情况下,将该第一初始分区和该第二初始分区合并为一个目标分区;在该参考能源交易总量不小于该合并门限的情况下,将该第一初始分区确定为一个目标分区,将该第二初始分区确定为另一个目标分区。

在其中一个实施例中,上述建立模块501,还用于从每个初始分区中确定预测能源交易总量最大的第三初始分区;在该第三初始分区的预测能源交易总量大于预设的分类门限去情况下,将该第三初始分区拆分为多个目标分区。

在其中一个实施例中,上述建立模块501,具体用于根据该第三初始分区中的节点数目以及每个节点的预测能源交易量,将该第三初始分区拆分为该多个目标分区;其中,该多个目标分区的预测能源交易总量的差值小于预设阈值。

在其中一个实施例中,上述装置还包括:第三确定模块;该第三确定模块,用于获取上一历史时间段的第一历史能源交易总量;其中,上一历史时间段内并行运行多个历史区块子链,该第一历史能源交易总量包括多个历史区块子链的历史能源交易总量;以及从上一历史时间段内并行运行多个历史区块子链中确定历史能源交易总量最大的目标历史区块子链;并根据该第一历史能源交易总量与该目标历史区块子链的历史能源交易量的商值,确定该初始分区的个数。

在其中一个实施例中,该合并区块还包括当前时间段内并行运行的区块子链的条数、每条区块子链上的节点的标识以及每条区块子链上的节点在当前时间段内的能源交易总量中的至少一个。

在其中一个实施例中,上述装置还包括:第四确定模块;该第四确定模块,用于从当前时间段的目标分区中获取预测能源交易总量最大的第一目标分区;并根据该第一目标分区的预测能源交易总量与预设的随机数之和,乘以当前时间段内运行的区块子链的处理速率的乘积,确定当前时间段内所有区块子链的运行时长。

在其中一个实施例中,上述建立模块501,具体用于采用线性自回归算法和多个历史时间段内每个节点的历史能源交易量,对当前节点网络拓扑中每个节点在当前时间段的预测能源交易量进行估计,得到当前节点网络拓扑中每个节点在当前时间段的预测能源交易量。

关于能源区块数据的同步装置的具体限定可以参见上文中对于能源区块数据的同步方法的限定,在此不再赘述。上述能源区块数据的同步装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器或者终端,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储该计算机设备的能源交易数据或者能源区块链数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种能源区块数据的同步方法。

本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:

采用聚类算法对当前能源区块链上的历史区块数据进行处理,建立当前时间段内的多个目标分区;其中,每个目标分区包括至少一个与该历史区块数据相关的节点的标识以及该节点在当前时间段的预测能源交易量;

根据每个目标分区中包含的节点标识以及该节点在当前时间段的预测能源交易量,确定每个目标分区对应的区块子链;其中,该当前时间段内的所有区块子链并行运行;

对每条区块子链上的最后一个区块的哈希值进行合并,确定当前时间段的合并区块,并将该合并区块发送至当前区块链上;其中,该合并区块用于表征当前区块链上的所有区块数据。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取每条区块子链上的最后一个区块的哈希值;将每条区块子链上的最后一个区块的哈希值进行串联操作,得到串联字符;对该串联字符进行加密计算,得到该合并区块。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取上一历史时间段的历史合并区块,并根据该历史合并区块确定当前节点网络拓扑;其中,该历史合并区块用于表征上一历史时间段上的所有区块数据;获取当前区块链上的多个历史时间段内每个节点的历史能源交易量,并根据该多个历史时间段内每个节点的历史能源交易量,确定当前节点网络拓扑中每个节点在当前时间段的预测能源交易量;采用该聚类算法对当前节点网络拓扑进行聚类处理,得到多个初始分区;其中,每个初始分区包括该当前节点网络拓扑中部分节点的标识以及预测能源交易量;根据当前节点网络拓扑中每个节点的标识以及预测能源交易量对该多个初始分区进行优化处理,得到当前时间段内的多个目标分区。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:将每个初始分区中每个节点的预测能源交易量求和,得到每个初始分区对应的预测能源交易总量;从每个初始分区中确定预测能源交易总量最小的第一初始分区和预测能源交易总量次小的第二初始分区,并获取该第一初始分区的预测能源交易总量和该第二初始分区的预测能源总量之和,得到参考能源交易总量;根据该参考能源交易总量和预设的合并门限,确定是否将该第一初始分区和该第二初始分区合并为一个目标分区。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:在该参考能源交易总量小于该合并门限的情况下,将该第一初始分区和该第二初始分区合并为一个目标分区;在该参考能源交易总量不小于该合并门限的情况下,将该第一初始分区确定为一个目标分区,将该第二初始分区确定为另一个目标分区。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:从每个初始分区中确定预测能源交易总量最大的第三初始分区;在该第三初始分区的预测能源交易总量大于预设的分类门限去情况下,将该第三初始分区拆分为多个目标分区。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据该第三初始分区中的节点数目以及每个节点的预测能源交易量,将该第三初始分区拆分为该多个目标分区;其中,该多个目标分区的预测能源交易总量的差值小于预设阈值。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取上一历史时间段的第一历史能源交易总量;其中,上一历史时间段内并行运行多个历史区块子链,该第一历史能源交易总量包括多个历史区块子链的历史能源交易总量;从上一历史时间段内并行运行多个历史区块子链中确定历史能源交易总量最大的目标历史区块子链;根据该第一历史能源交易总量与该目标历史区块子链的历史能源交易量的商值,确定该初始分区的个数。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:该合并区块还包括当前时间段内并行运行的区块子链的条数、每条区块子链上的节点的标识以及每条区块子链上的节点在当前时间段内的能源交易总量中的至少一个。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:从当前时间段的目标分区中获取预测能源交易总量最大的第一目标分区;根据该第一目标分区的预测能源交易总量与预设的随机数之和,乘以当前时间段内运行的区块子链的处理速率的乘积,确定当前时间段内所有区块子链的运行时长。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:采用线性自回归算法和多个历史时间段内每个节点的历史能源交易量,对当前节点网络拓扑中每个节点在当前时间段的预测能源交易量进行估计,得到当前节点网络拓扑中每个节点在当前时间段的预测能源交易量。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

采用聚类算法对当前能源区块链上的历史区块数据进行处理,建立当前时间段内的多个目标分区;其中,每个目标分区包括至少一个与该历史区块数据相关的节点的标识以及该节点在当前时间段的预测能源交易量;

根据每个目标分区中包含的节点标识以及该节点在当前时间段的预测能源交易量,确定每个目标分区对应的区块子链;其中,该当前时间段内的所有区块子链并行运行;

对每条区块子链上的最后一个区块的哈希值进行合并,确定当前时间段的合并区块,并将该合并区块发送至当前区块链上;其中,该合并区块用于表征当前区块链上的所有区块数据。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取每条区块子链上的最后一个区块的哈希值;将每条区块子链上的最后一个区块的哈希值进行串联操作,得到串联字符;对该串联字符进行加密计算,得到该合并区块。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取上一历史时间段的历史合并区块,并根据该历史合并区块确定当前节点网络拓扑;其中,该历史合并区块用于表征上一历史时间段上的所有区块数据;获取当前区块链上的多个历史时间段内每个节点的历史能源交易量,并根据该多个历史时间段内每个节点的历史能源交易量,确定当前节点网络拓扑中每个节点在当前时间段的预测能源交易量;采用该聚类算法对当前节点网络拓扑进行聚类处理,得到多个初始分区;其中,每个初始分区包括该当前节点网络拓扑中部分节点的标识以及预测能源交易量;根据当前节点网络拓扑中每个节点的标识以及预测能源交易量对该多个初始分区进行优化处理,得到当前时间段内的多个目标分区。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:将每个初始分区中每个节点的预测能源交易量求和,得到每个初始分区对应的预测能源交易总量;从每个初始分区中确定预测能源交易总量最小的第一初始分区和预测能源交易总量次小的第二初始分区,并获取该第一初始分区的预测能源交易总量和该第二初始分区的预测能源总量之和,得到参考能源交易总量;根据该参考能源交易总量和预设的合并门限,确定是否将该第一初始分区和该第二初始分区合并为一个目标分区。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:在该参考能源交易总量小于该合并门限的情况下,将该第一初始分区和该第二初始分区合并为一个目标分区;在该参考能源交易总量不小于该合并门限的情况下,将该第一初始分区确定为一个目标分区,将该第二初始分区确定为另一个目标分区。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:从每个初始分区中确定预测能源交易总量最大的第三初始分区;在该第三初始分区的预测能源交易总量大于预设的分类门限去情况下,将该第三初始分区拆分为多个目标分区。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据该第三初始分区中的节点数目以及每个节点的预测能源交易量,将该第三初始分区拆分为该多个目标分区;其中,该多个目标分区的预测能源交易总量的差值小于预设阈值。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取上一历史时间段的第一历史能源交易总量;其中,上一历史时间段内并行运行多个历史区块子链,该第一历史能源交易总量包括多个历史区块子链的历史能源交易总量;从上一历史时间段内并行运行多个历史区块子链中确定历史能源交易总量最大的目标历史区块子链;根据该第一历史能源交易总量与该目标历史区块子链的历史能源交易量的商值,确定该初始分区的个数。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:该合并区块还包括当前时间段内并行运行的区块子链的条数、每条区块子链上的节点的标识以及每条区块子链上的节点在当前时间段内的能源交易总量中的至少一个。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:从当前时间段的目标分区中获取预测能源交易总量最大的第一目标分区;根据该第一目标分区的预测能源交易总量与预设的随机数之和,乘以当前时间段内运行的区块子链的处理速率的乘积,确定当前时间段内所有区块子链的运行时长。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:采用线性自回归算法和多个历史时间段内每个节点的历史能源交易量,对当前节点网络拓扑中每个节点在当前时间段的预测能源交易量进行估计,得到当前节点网络拓扑中每个节点在当前时间段的预测能源交易量。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

相关技术
  • 能源区块数据的同步方法、装置、计算机设备和存储介质
  • 区块链的数据同步方法、装置、计算机设备及存储介质
技术分类

06120112457155