适用于电力设备数据上链的共识方法、装置和服务器与流程

文档序号:33560177发布日期:2023-03-22 13:56阅读:50来源:国知局
适用于电力设备数据上链的共识方法、装置和服务器与流程

1.本技术涉及数据处理技术领域,具体涉及一种适用于电力设备数据上链的共识方法、装置、服务器和计算机可读存储介质。


背景技术:

2.能源数据的计量认证是能源互联网实现开放与公平的重要基础。传统电力数据的计量认证方案的关键步骤就是将电力设备的数据上传至中心化设施从而进行收集、统计和计算。这种传统方案缺少一种透明、可追溯的技术手段,不能保证数据不被私自篡改。为电力能源计量数据提供认证保障服务,在保证数据安全可靠的同时,确保其数据的可信度和权威性就显得尤为重要。
3.区块链的去中心化数据存储的架构与技术本身带有透明性与可追溯性,十分适用于对电力数据的计量认证及交换等需要第三方中心化组织及担保的场合。区块链在机制上能够实现可信任与自组织,对未来能源系统中的多方协作发展具有重要意义。共识是区块链分布式计算的核心问题。在区块链系统中,共识就是各个节点对交易执行结果与其顺序达成一致的过程。区块链的共识算法总体可以分为两类,一类是无信任节点之间的共识算法,另一类是受信任节点之间的共识算法。
4.目前常用的共识算法是pbet共识算法,其中pbft共识算法可以在少数节点作恶的场景中达成共识,它采用签名验证与哈希等密码学算法确保消息传递过程中的防篡改性、防伪造性、不可抵赖性。pbft是一种确定性共识算法,其不会产生分叉,所有节点都在相同的配置下运行,且有一个领导节点,其他节点作为普通节点。领导节点负责对客户端的请求进行排序,按顺序发送给普通节点。
5.然而,对于电力设备数据上链,其具有数据量庞大、数据上链周期短、上链频率高的特点,传统的pbft共识算法已不能满足性能上的要求,需在其基础上进一步改进,以提高共识效率。


技术实现要素:

6.有鉴于此,本技术实施例中提供了一种适用于电力设备数据上链的共识方法、装置、服务器和计算机可读存储介质,以克服现有技术上链效率低的问题。
7.第一方面,本技术实施例提供了一种适用于电力设备数据上链的共识方法,该方法包括:
8.接收区块链中领导节点广播的交易集的摘要;
9.根据所述交易集的摘要确定是否缺少交易;
10.在缺少交易时,从所述领导节点索取缺少的交易,以形成完整交易集;
11.将所述完整交易集的摘要广播至区块链中的各普通节点,以供各所述普通节点进行交易集共识;
12.收集各所述普通节点广播的交易集投票,在达到法定人数条件时,完成出块。
13.第二方面,本技术实施例提供了一种适用于电力设备数据上链的共识装置,该装置包括:
14.摘要接收模块,用于接收区块链中领导节点广播的交易集的摘要;
15.缺少交易确定模块,用于根据所述交易集的摘要确定是否缺少交易;
16.交易索取模块,用于在缺少交易时,从所述领导节点索取缺少的交易,以形成完整交易集;
17.广播模块,用于将所述完整交易集的摘要广播至区块链中的各普通节点,以供各所述普通节点进行交易集共识;
18.交易投票模块,用于收集各所述普通节点广播的交易集投票,在达到法定人数条件时,完成出块。
19.第三方面,本技术实施例提供了一种服务器,包括:存储器;一个或多个处理器,与所述存储器耦接;一个或多个应用程序,其中,一个或多个应用程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个应用程序配置用于执行上述第一方面提供的适用于电力设备数据上链的共识方法。
20.第四方面,本技术实施例提供了一种计算机可读取存储介质,计算机可读取存储介质中存储有程序代码,程序代码可被处理器调用执行上述第一方面提供的适用于电力设备数据上链的共识方法。
21.本技术实施例提供的适用于电力设备数据上链的共识方法、装置、服务器和计算机可读存储介质,接收区块链中领导节点广播的交易集的摘要;根据交易集的摘要确定是否缺少交易;在缺少交易时,从领导节点索取缺少的交易,以形成完整交易集;将完整交易集的摘要广播至区块链中的各普通节点,以供各普通节点进行交易集共识;收集各普通节点广播的交易集投票,在达到法定人数条件时,完成出块。
22.本技术实施例提供的适用于电力设备数据上链的共识方法,领导节点以及各普通节点在共识时只发送交易集的摘要,并不发送交易的实际内容,大大减少了数据的传输量和传输时间,提高了共识的效率。
附图说明
23.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
24.图1为本技术实施例提供的适用于电力设备数据上链的共识方法的应用场景示意图;
25.图2为本技术一个实施例提供的适用于电力设备数据上链的共识方法的流程示意图;
26.图3为本技术一个实施例提供的sha-map树结构示意图;
27.图4为本技术一个实施例中提供的适用于电力设备数据上链的共识装置的结构示意图;
28.图5为本技术一个实施例中提供的服务器的结构示意图;
29.图6为本技术一个实施例中提供的计算机可读存储介质的结构示意图。
具体实施方式
30.下面将对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
31.为了更详细说明本技术,下面结合附图对本技术提供的一种适用于电力设备数据上链的共识方法、装置、服务器和计算机可读存储介质,进行具体地描述。
32.请参考图1,图1示出了本技术实施例提供的适用于电力设备数据上链的共识方法的应用场景(即区块链系统结构)的示意图,该应用场景包括本技术实施例提供的区块链系统,该区块链系统包含了多个节点102。各个节点102可以是安装有区块链软件程序的服务器、服务器组以及终端设备等设备实现,或这些设备中的多种构成的分布式处理系统实现。节点102之间通过点对点网络通信连接以实现相互信息收发。其中,点对点网络(peer-to-peer,p2p),又称对等式网络,是无中心服务器、依靠用户群(peers)交换信息的互联网体系,它的作用在于减低以往网路传输中的节点,以降低资料遗失的风险。与有中心服务器的中央网络系统不同,对等网络的每个用户端既是一个节点,也可承担服务器的功能。
33.其中,终端设备可以是具有显示屏的各种电子设备,包括但不限于智能手机和计算机设备,其中计算机设备可以是台式计算机、便携式计算机、膝上型计算机、平板电脑、个人计算机等设备中的至少一种。本领域技术人员可以知晓,上述终端设备的数量可以更多或更少。比如上述终端设备可以仅为几个,或者上述终端设备为几十个或几百个,或者更多数量,本技术实施例对终端设备的数量和类型不加以限定。
34.需要说明的是上述示例中所展示的节点102虽然呈现为服务器、终端设备等实体设备,但是实质上这些实体设备仅为载体,其主要是通过安装并运行区块链软件程序的情况下来实现节点102的功能,例如实现节点102之间的共识机制等,故不需限制实体设备的类型。
35.另外,节点可以为多核终端设备,区块链系统中包括有一个领导节点和多个普通节点,其中领导节点可以向各普通节点广播交易集等。普通节点可以执行本技术实施例中提供的一种适用于电力设备数据上链的共识方法。
36.基于此,本技术实施例中提供了一种适用于电力设备数据上链的共识方法。请参阅图2,图2示出了本技术实施例提供的一种适用于电力设备数据上链的共识方法的流程示意图,以该方法应用于图1中的服务器(即普通节点)为例进行说明,包括以下步骤:
37.步骤s110,接收区块链中领导节点广播的交易集的摘要。
38.具体来说,区块链中包含有领导节点和普通节点,领导节点主要用于从交易池中不断提取交易;并判断交易集达到了广播条件后,开始提案自己的交易集,广播交易集的摘要给其他普通节点。
39.在一个实施例中,接收区块链中领导节点广播的交易集的摘要之前,包括:从各客户端收集交易,并将收集的交易放置于交易池,以供领导节点从交易池中提取交易集,并在达到广播条件后广播的交易集的摘要。
40.其中,客户端可以是用户、设备厂商、供电局等用户提交交易的渠道。
41.交易主要包括设备的资产编码、检定时间、运行时长等相关数据。
42.具体地,区块链各普通节点从客户端收集交易,并将收集的交易放置在交易池中;领导节点从交易池中不断提取交易;领导节点判断交易集达到了广播条件后,开始提案自己的交易集,广播交易集的摘要给其他节点。
43.步骤s120,根据交易集的摘要确定是否缺少交易。
44.在一个实施例中,交易集的摘要包括sha-map树的树根摘要,sha-map树为基数树与默克尔树融合形成的树;根据交易集的摘要确定是否缺少交易,包括:根据sha-map树的树根摘要来确定是否缺少交易。
45.在一个实施例中,sha-map树包括多层结构,每一层结构中的节点称为子树节点;根据sha-map树的树根摘要来确定是否缺少交易,包括:根据sha-map树的树根摘要在预先配置的数据库中查找是否存在sha-map树的树根实体;在不存在树根实体时,从普通节点中请求获取树根实体;基于树根实体,分别检测每一个子树节点,并记录各子树节点的摘要;根据各子树节点的摘要确定是否缺少交易。
46.在一个实施例中,每一层结构中包括一个树节点和若干个叶子节点,或若干个叶子节点;下一层结构中的树节点和若干个叶子节点分别与上一层的树节点相连,每一层结构中的树节点和叶子节点称为子树节点;每一层结构的树节点为下一层结构中树节点的父亲树节点,且为上一层结构中树节点的孩子树节点;其中,交易集的摘要分别为各叶子节点的索引,一个交易的摘要为一个叶子节点的索引,各孩子树节点的摘要合集为父亲树节点的索引。
47.在一个实施例中,基于树根实体,分别检测每一个子树节点,并记录各子树节点的摘要,包括:当子树节点是叶子节点时,则从预先配置的数据库确认节点实体存在;当子树节点是树节点时,继续查找树节点的子树节点,直至在预先配置的数据库中无法找到树节点,记录无法找到的树节点的摘要值。
48.请参照图3所示,各个普通节点将交易构造成一个sha-map树,sha-map树融合基数树与默克尔树的特性,总共有多层(例如64层),包含树节点(又称内部树节点)与叶子节点两种树节点,树节点最多包含多个(例如16个)孩子树节点,叶子树节点不能包含孩子树节点,每一层结构中包括一个树节点和若干个叶子节点,或若干个叶子节点;下一层结构中的树节点和若干个叶子节点分别与上一层的树节点相连,每一层结构中的树节点和叶子节点称为子树节点;每一层结构的树节点为下一层结构中树节点的父亲树节点,且为上一层结构中树节点的孩子树节点;其中,交易集的摘要分别为各叶子节点的索引,一个交易的摘要为一个叶子节点的索引,各孩子树节点的摘要合集为父亲树节点的索引。sha-map树的特性是可以根据索引快速定位到树节点在树上的位置,从而加快查询、修改的流程。领导节点在广播交易集时只广播sha-map树的树根摘要。各个共识节点基于这个树根摘要进行交易集转发、校验及共识。
49.当节点收到领导节点广播的sha-map树的树根摘要时,节点会根据这个摘要在本地数据库中查找是否已经存储了树根实体,如果不存在,先向其它节点请求这个树根实体,形成sha-map树的基础。
50.基于sha-map树实体,去分别检查它的16个子树节点,如果子树节点是叶子树节
点,则直接在预先配置的数据库中确认节点实体的存在;如果子树节点是个树节点(即内部节点)就继续检查这个内部节点的子树节点,依次类推,确认在本地数据库中无法找到的所有树节点,记录节点对应的摘要值。
51.步骤s130,在缺少交易时,从领导节点索取缺少的交易,以形成完整交易集。
52.其中,对于普通节点缺失的树节点,可以批量从领导节点索要。
53.步骤s140,将完整交易集的摘要广播至区块链中的各普通节点,以供各普通节点进行交易集共识。
54.在一种可选的实施方式中,在共识初始阶段,各个普通节点接收各交易时,可以按照接收各交易的顺序只对其进行简单校验后就转发给网络上与它相连的所有节点。例如节点a收到了客户端按顺序提交的tx1-tx4四笔交易。节点a在收集到了tx1后,对其通过简单验证后,立刻将其转发给节点b。随后的交易tx2-tx4同理。四笔交易的验证与转发流程可以是并行的,之间不存在关联。
55.步骤s150,收集各普通节点广播的交易集投票,在达到法定人数条件时,完成出块。
56.在完成出块时,各普通节点根据交易集生成带有验证的区块并广播,同时开始下一区块的交易集共识阶段。并且各普通节点收集到法定人数个验证,区块达成共识。
57.本技术实施例提供的适用于电力设备数据上链的共识方法,领导节点以及各普通节点在共识时只发送交易集的摘要,并不发送交易的实际内容,大大减少了数据的传输率,提高了共识的效率。另外,本技术实施例子所涉及的改进共识算法在传统共识算法的基础上大幅减少了网络中冗余的数据包,在保障交易消息尽量能到达所有节点的同时提升了网络效率。
58.在一个实施例中,从领导节点索取缺少的交易,以形成完整交易集之后,还包括:根据索取到的新的树根摘要,更新预先配置的数据库。
59.具体地,当要到新的树节点后,更新本地数据库,重新检查树上是否有缺失的树节点,循环往复,直到本地没有缺失的树节点为止。
60.应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
61.上述本技术公开的实施例中详细描述了一种适用于电力设备数据上链的共识方法,对于本技术公开的上述方法可采用多种形式的设备实现,因此本技术还公开了对应上述方法的适用于电力设备数据上链的共识装置,下面给出具体的实施例进行详细说明。
62.请参阅图4,为本技术实施例公开的一种适用于电力设备数据上链的共识装置,主要包括:
63.摘要接收模块410,用于接收区块链中领导节点广播的交易集的摘要;
64.缺少交易确定模块420,用于根据交易集的摘要确定是否缺少交易;
65.交易索取模块430,用于在缺少交易时,从领导节点索取缺少的交易,以形成完整
交易集;
66.广播模块440,用于将完整交易集的摘要广播至区块链中的各普通节点,以供各普通节点进行交易集共识;
67.交易投票模块450,用于收集各普通节点广播的交易集投票,在达到法定人数条件时,完成出块。
68.在一个实施例中,交易集的摘要包括sha-map树的树根摘要,sha-map树为基数树与默克尔树融合形成的树;缺少交易确定模块420,用于根据sha-map树的树根摘要来确定是否缺少交易。
69.在一个实施例中,sha-map树包括多层结构,每一层结构中的节点称为子树节点;缺少交易确定模块420,用于根据sha-map树的树根摘要在预先配置的数据库中查找是否存在sha-map树的树根实体;在不存在树根实体时,从普通节点中请求获取树根实体;基于树根实体,分别检测每一个子树节点,并记录各子树节点的摘要;根据各子树节点的摘要确定是否缺少交易。
70.在一个实施例中,每一层结构中包括一个树节点和若干个叶子节点,或若干个叶子节点;下一层结构中的树节点和若干个叶子节点分别与上一层的树节点相连,每一层结构中的树节点和叶子节点称为子树节点;每一层结构的树节点为下一层结构中树节点的父亲树节点,且为上一层结构中树节点的孩子树节点;其中,交易集的摘要分别为各叶子节点的索引,一个交易的摘要为一个叶子节点的索引,各孩子树节点的摘要合集为父亲树节点的索引。
71.在一个实施例中,缺少交易确定模块420,用于当子树节点是叶子节点时,则从预先配置的数据库确认节点实体存在;当子树节点是树节点时,继续查找树节点的子树节点,直至在预先配置的数据库中无法找到树节点,记录无法找到的树节点的摘要值。
72.在一个实施例中,装置还包括:更显模块,用于从领导节点索取缺少的交易,以形成完整交易集之后,还包括:根据索取到的新的树根摘要,更新预先配置的数据库。
73.在一个实施例中,装置还包括交易收集模块,用于从各客户端收集交易,并将收集的交易放置于交易池,以供领导节点从交易池中提取交易集,并在达到广播条件后广播的交易集的摘要。
74.关于适用于电力设备数据上链的共识装置的具体限定可以参见上文中对于方法的限定,在此不再赘述。上述装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于服务器中的处理器中,也可以以软件形式存储于服务器中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
75.请参考图5,图5其示出了本技术实施例提供的一种服务器的结构框图。本技术中的服务器50可以包括一个或多个如下部件:处理器52、存储器54以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器54中并被配置为由一个或多个处理器52执行,一个或多个应用程序配置用于执行上述应用于适用于电力设备数据上链的共识方法实施例中所描述的方法。
76.处理器52可以包括一个或者多个处理核。处理器52利用各种接口和线路连接整个服务器50内的各个部分,通过运行或执行存储在存储器54内的指令、程序、代码集或指令集,以及调用存储在存储器54内的数据,执行服务器50的各种功能和处理数据。可选地,处
理器52可以采用数字信号处理(digital signal processing,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、可编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来实现。处理器52可集成中央处理器(central processing unit,cpu)、图形处理器(graphics processing unit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器52中,单独通过一块通信芯片进行实现。
77.存储器54可以包括随机存储器(random access memory,ram),也可以包括只读存储器(read-only memory)。存储器54可用于存储指令、程序、代码、代码集或指令集。存储器54可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储服务器50在使用中所创建的数据等。
78.本领域技术人员可以理解,图5中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的服务器的限定,具体的服务器可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
79.综上,本技术实施例提供的服务器用于实现前述方法实施例中相应的适用于电力设备数据上链的共识方法,并具有相应的方法实施例的有益效果,在此不再赘述。
80.请参阅图6,其示出了本技术实施例提供的一种计算机可读取存储介质的结构框图。该计算机可读取存储介质60中存储有程序代码,程序代码可被处理器调用执行上述适用于电力设备数据上链的共识方法实施例中所描述的方法。
81.计算机可读取存储介质60可以是诸如闪存、eeprom(电可擦除可编程只读存储器)、eprom、硬盘或者rom之类的电子存储器。可选地,计算机可读取存储介质60包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读取存储介质60具有执行上述方法中的任何方法步骤的程序代码62的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码62可以例如以适当形式进行压缩。
82.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
83.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1