CN114866562A - 面向电力能源系统的区块链共识方法及系统 - Google Patents
面向电力能源系统的区块链共识方法及系统 Download PDFInfo
- Publication number
- CN114866562A CN114866562A CN202210590312.7A CN202210590312A CN114866562A CN 114866562 A CN114866562 A CN 114866562A CN 202210590312 A CN202210590312 A CN 202210590312A CN 114866562 A CN114866562 A CN 114866562A
- Authority
- CN
- China
- Prior art keywords
- leader
- node
- block
- nodes
- group
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1051—Group master selection mechanisms
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y04—INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
- Y04S—SYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
- Y04S10/00—Systems supporting electrical power generation, transmission or distribution
- Y04S10/50—Systems or methods supporting the power network operation or management, involving a certain degree of interaction with the load-side end user applications
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明公开了面向电力能源系统的区块链共识方法及系统;区块链节点接收客户端发送的交易入块请求,对所有的节点进行分组,并在每个小组内部选举出领导者节点;组外共识阶段:区块提议者节点向其他小组的领导者节点进行广播;区块提议者节点和其他小组的领导者节点进入预准备状态;每个领导者节点将准备消息发送给其他领导者节点,所有的领导者节点进入准备状态;每个领导者节点将提交消息发送给其他领导者节点,所有领导者节点进入提交状态;组内共识阶段:组内的领导者将日志内容广播到组内以使组内共识节点复制当前日志条目;组内选举出新的领导者节点,组内保持主从节点日志的一致性;组内的领导者节点完成提交过程,将结果反馈给客户端。
Description
技术领域
本发明涉及区块链技术领域,特别是涉及面向电力能源系统的区块链共识方法及系统。
背景技术
本部分的陈述仅仅是说明了与本发明相关的背景技术,并不必然构成现有技术。
如何优化区域能源互联网中的能源市场化管理,即优化复杂的多能流网络优化调度与运行,使得能源本身以及附加服务的交易收益能够最大化,是能源区块链行业的核心问题。但是由于供需不平衡、运行物理条件的约束以及网络安全条件的约束等问题,传统集中式电能管理模式已逐渐不能满足当今区域能源互联网的数据安全需求。
新兴的区块链技术为电力能源系统提供了更高的安全性。由于区块链网络中的每个对等节点都包含一份账本,因此与集中式数据体系结构相比,不存在单点故障,区块链环境中的身份与特定消费者/生产者的身份之间没有直接联系,这样降低了恶意攻击的脆弱性,因此电力能源区块链系统更具弹性,从而提高电力能源系统的恢复能力。一旦一项能源交易数据被包含在区块链中,就很难出于非法目的更改或删除该交易,从而形成一个非常安全和强健的系统。电力能源系统应用的加密证券化与共识机制相结合,提供了区块链中包含的数据的不变性。
在区域能源互联网中,一些已知的区块链技术和方法并不实用,例如PoW共识方法巨大的能源消耗负担或基于PoS股权的限制。PBFT共识方法以及后来改进PBFT添加动态验证器后的IBFT(Istanbul-BFT Consensus Algorithm),在实际应用中由于通信开销巨高,在节点扩展性差强人意。而对于Raft共识方法,每个用户节点都需要认证,只能预防系统中非拜占庭故障,很难在实际能源互联网中施展应用。
该共识过程从任何用户都可以发起的事务请求开始。然后将事务广播给网络中的所有用户。验证过程在所有节点通过哈希验证事务的情况下进行。一旦验证完成,交易将包含在一个新区块内,该区块与之前的区块链相连,使其具有渗透性且不可更改。哈希的使用提供了保护区块链的有效方法。然而,在超高速计算机的帮助下,黑客可以在单个块中更改信息,然后在几分钟内重新计算链中块的所有哈希值。
发明内容
为了解决现有技术的不足,本发明提供了面向电力能源系统的区块链共识方法及系统;以解决现有的区域能源互联网领域中,用户节点通信开销大、安全性以及可扩展性问题。
第一方面,本发明提供了面向电力能源系统的区块链共识方法;
面向电力能源系统的区块链共识方法,包括:
区块链节点接收客户端发送的交易入块请求,区块链网络开始新一轮的区块共识,区块链网络对所有的节点进行分组,并在每个小组内部选举出领导者节点;
组外共识阶段:接收客户端请求的节点所在小组的领导者节点,作为区块提议者节点,向其他小组的领导者节点进行广播;区块提议者节点进入预准备的状态;其他小组的领导者节点在收到预准备消息后也进入预准备状态;每个领导者节点将准备消息发送给其他领导者节点,所有的领导者节点由预准备状态进入准备状态;每个领导者节点将提交消息发送给其他领导者节点,然后所有领导者节点由准备状态进入提交状态;
组内共识阶段:组内的领导者将自己的日志内容广播到组内以使组内共识节点复制当前日志条目;组内选举出新的领导者节点,组内保持主从节点日志的一致性;组内的领导者节点完成提交过程,将结果反馈给客户端。
第二方面,本发明提供了面向电力能源系统的区块链共识系统;
面向电力能源系统的区块链共识系统,包括:共识模块;所述共识模块被配置为:
区块链节点接收客户端发送的交易入块请求,区块链网络开始新一轮的区块共识,区块链网络对所有的节点进行分组,并在每个小组内部选举出领导者节点;
组外共识阶段:接收客户端请求的节点所在小组的领导者节点,作为区块提议者节点,向其他小组的领导者节点进行广播;区块提议者节点进入预准备的状态;其他小组的领导者节点在收到预准备消息后也进入预准备状态;每个领导者节点将准备消息发送给其他领导者节点,所有的领导者节点由预准备状态进入准备状态;每个领导者节点将提交消息发送给其他领导者节点,然后所有领导者节点由准备状态进入提交状态;
组内共识阶段:组内的领导者将自己的日志内容广播到组内以使组内共识节点复制当前日志条目;组内选举出新的领导者节点,组内保持主从节点日志的一致性;组内的领导者节点完成提交过程,将结果反馈给客户端。
与现有技术相比,本发明的有益效果是:
通过已知的两种算法来获得本发明的区块链共识方法。共识的过程包括在将交易添加到区块链之前对交易进行验证。这使区块链得以增长,而无需担心区块或其中的信息被操纵。保证了区块链数据的安全性。在电力能源系统中,该共识方法的性能分析如下:
(1)通信开销:在现有的区块链共识方法中,IBFT共识每个节点都需要相互交互,通信开销很大,随着节点增多,这个弊端就会更加明显。通过本发明的双层共识模式,组外共识的每个代表节点都会代表一部分节点去参与外层共识,将大大减少了区块链网络的通信开销,以更适于应用到实际区域电力能源的区块链网络。
(2)安全性:IBFT共识的视图更改和区块锁定机制负责检查区块有效性,保证共识达成,而Raft状态机复制机制和领导者心跳机制以及系统定时重启,负责保证区块链的活性;本发明还在组内共识部分增加了观察者节点,以弥补了Raft共识方法的拜占庭容错缺陷,保证了区块链的安全性,以便更好地应用在电力能源领域,满足节点通信的实时性和数据安全性。
在这样一个环境中,所有用户节点对操作负责,并且可以实现可靠的事务吞吐量,以满足业务需求,同时容忍拜占庭式故障并确保系统可操作性。IBFT方法保证了共识一致性,区块链分组内的Raft协议状态复制机制保障了最终一致性。在拜占庭容错范围F≤(f-1)/3内可以保证组外IBFT共识阶段能够进行。当非拜占庭节点数F≤(n-1)/2可以保证组内Raft共识阶段也可以进行。其中f是全网节点数,n是组内节点数。
(3)可扩展性:由于本发明采用两阶段共识,因此大大的解决了IBFT算法由于过高的通信量而造成的节点扩展限制,通信开销减少,网络节点增多的情况下,事务处理延迟降低,因此能有效解决系统节点扩展性的问题,使该共识方法能真正落地到电力能源区块链项目。
附图说明
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
图1为本发明实施例一的一种应用于电力能源系统的区块链共识方法的流程图;
图2(a)和图2(b)为本发明实施例一的IBFT共识和Raft共识的节点结构图;
图3为本发明实施例一的应用该共识方法的电力能源系统节点实体结构示意图;
图4为本发明实施例一的基于一种区块链共识方法的电力能源系统交易流程图。
具体实施方式
应该指出,以下详细说明都是示例性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
本实施例所有数据的获取都在符合法律法规和用户同意的基础上,对数据的合法应用。
术语解释:
Istanbul-BFT Consensus Algorithm与PBFT(实用拜占庭容错算法)的区别是PBFT有一个固定的leader节点打包交易,当leader节点故障的时候会使用视图更换view-change子协议更换leader。而在IBFT中,leader是轮换的,每提交n个块(可以配置n)leader会轮换成下一个节点;动态节点验证器会验证每个打包的区块消息是否为当前视图需要处理的消息,保证了IBFT协议中的块是最终的。
实施例一
本实施例提供了面向电力能源系统的区块链共识方法;
如图1所示,面向电力能源系统的区块链共识方法,包括:
S101:区块链节点接收客户端发送的交易入块请求,区块链网络开始新一轮的区块共识,区块链网络对所有的节点进行分组,并在每个小组内部选举出领导者节点;
S102:组外共识阶段:接收客户端请求的节点所在小组的领导者节点,作为区块提议者节点,向其他小组的领导者节点进行广播;区块提议者节点进入预准备的状态;其他小组的领导者节点在收到预准备消息后也进入预准备状态;每个领导者节点将准备消息发送给其他领导者节点,所有的领导者节点由预准备状态进入准备状态;每个领导者节点将提交消息发送给其他领导者节点,然后所有领导者节点由准备状态进入提交状态;
S103:组内共识阶段:组内的领导者将自己的日志内容广播到组内以使组内共识节点复制当前日志条目;组内选举出新的领导者节点,组内保持主从节点日志的一致性;组内的领导者节点完成提交过程,将结果反馈给客户端。
图4为本发明实施例一的基于一种区块链共识方法的电力能源系统交易流程图。
进一步地,所述区块链节点接收客户端发送的交易入块请求;具体包括:
当客户端向区块链网络的某个节点发送交易入块请求,假设区块链网络共有F个恶意节点,开始一个新的轮次(round),round=0,块高(sequence)=当前区块链高度+1,状态(state)置为接受请求状态StateAcceptRequest,启动round的计时器。其中轮次和块高绑定在一起组成视图(view)。
进一步地,所述区块链网络对所有的节点进行分组,并在每个小组内部选举出领导者节点;具体包括:
计算节点的重要性;
对节点的重要性进行归一化处理;
根据归一化处理后的节点的重要性进行小组划分,将重要性差值小于设定阈值的节点划分为一组。
进一步地,所述计算节点的重要性,是对节点的相关性、节点的计算能力和节点的存储容量进行加权求和得到。
示例性地,所述计算节点的重要性,是对节点的相关性、节点的计算能力和节点的存储容量进行加权求和得到;具体包括:
公式(1)从节点相关性等角度引入了初始划分小组重要性的概念。
节点相关性RS由公式(2)表示:
qin是节点访问量和qout是节点输出量。
CS表示节点的计算能力,也是衡量节点重要性的关键因素。计算能力强的节点参数可以设置为5,没有计算能力的节点参数可以设置为0。
SS表示节点的存储容量,类似于计算能力,范围设置在[0,5]之间。
最后,对节点的重要性进行归一化,以便于划分节点,并用公式(3)表示
通过划分节点形成小组后,接收客户端请求的节点所在小组,选出领导者(leader节点)作为组外区块提议者,进入组外共识阶段。
应理解地,区块链具有弱集中和相似拓扑结构的特征。由于区块链中节点之间的差异,不可能保持一致的计算能力和存储能力,因此节点会被区分,并与社区用电网络上的用户节点相对应。基于节点之间的映射关系,以及节点需要大量数据互联等因素,考虑到频繁的数据交互存在安全隐患和通信负担,区块链采用分片网络结构。
应理解地,根据电力能源互联网中的具体网络环境采用分片的思想,将节点进行分组,其中的节点分为共识节点和用随机函数选出的观察员节点。然后根据观察员节点的具体位置映射到不同的分组中,以便抵抗组内Raft共识带来的拜占庭恶意节点攻击。
客户端随机向某个节点发送请求,新一轮(round)区块共识开始,区块链网络根据实际情况利用网络分片原理进行动态节点分组,每个小组内选举出领导者(leader)。
进一步地,所述S102:组外共识阶段:接收客户端请求的节点所在小组的领导者节点,作为区块提议者节点,向其他小组的领导者节点进行广播;区块提议者节点进入预准备的状态;其他小组的领导者节点在收到预准备消息后也进入预准备状态;具体包括:
S102a1:区块提议者节点(Proposer)打包交易提出一个区块proposal,将交易广播给其它小组的领导者节点(副本leader节点),然后进入预准备(PRE-PREPARED)状态;将区块提议者节点视为主领导节点;将其它小组的领导者节点视为副领导节点;
S102a2:每一个领导者节点leader节点到预准备(PRE-PREPARED)状态,一旦收到预准备(PRE-PREPARED)信息并且伴随着以下情况:区块proposal是来自于有效的区块提议者节点proposer、区块头有效、区块proposal的块高(sequence)和视图(round)与leader节点的状态匹配;则区块提议者节点广播准备消息(PREPARE message)给其它小组的领导者节点。
S102a3:区块提议者节点交区块请求,区块链系统中保存未来消息的模块设计一个优先队列,该模块收到请求后判断是否是未来消息,未来消息,即当前视图还未达成共识提交区块时,之后产生的交易达成共识过程中发来的预准备消息。如果是未来消息,则保存该请求到待处理请求的优先队列中,否则发送给其他领导者节点预准备(PRE-PREPARED)消息。区块提议者节点把当前视图序号View(round sequence)和区块请求包装成预准备(pre-prepare)消息,广播给其他领导者节点,广播前对消息进行签名处理。
进一步地,所述S102:每个领导者节点将准备消息发送给其他领导者节点,所有的领导者节点由预准备状态进入准备状态;具体包括:
S102b1:其他领导者节点收到pre-prepare消息后对消息进行处理,如果验证区块提案时发现这是一个未来区块,未来区块,即当前视图还未达成共识提交区块时,之后产生的交易达成共识过程中区块提议者节点打包的预准备pre-prepare消息,则把它放到积压消息的优先队列中,等到区块链最高的块高加一后与视图块高一致时处理,如果区块哈希值Hash被锁定且一致,则每个领导者节点发送提交区块commit消息给其他领导者节点。如果验证区块是非未来区块以及区块哈希未被锁定,则切换视图(round)的state状态为预准备状态(StatePre-parepared),每个领导者节点并发送prepare消息给其他领导者节点。
S102b2:每个领导者节点把视图序号View(round sequence)和哈希值Hash包装成prepare消息,广播给其他领导者节点,广播前会对消息进行签名处理。
S102b3:假设全网共有3f个用户节点,当主领导节点leader收到2f+1个验证的预准备消息(PREPARE messages)之后进入预准备(PREPARED)状态。有效的预准备信息需要满足以下条件:参与共识的节点块高(sequence)和视图(round)一致;交易hash一致;信息是来自已知的副领导节点leader;然后主领导leader节点广播区块提交COMMIT message消息给副领导节点leader。
S102b4:每个领导者节点收到准备prepare消息后处理消息,检查视图round、块高sequence确保消息的有效性,验证消息签名的正确性,当其他领导者节点收到2f+1条消息后,锁定哈希值Hash、切换视图的state状态为准备状态StatePrepared,每个领导者节点并发送提交commit消息给其他领导者节点。
S102b5:每个领导者节点把视图序号View(round sequence)和哈希值Hash包装成提交commit消息,广播出去,广播前对消息进行签名处理。
进一步地,所述S102:每个领导者节点将提交消息发送给其他领导者节点,然后所有领导者节点由准备状态进入提交状态;具体包括:
S102c1:每个领导者节点收到提交commit消息后处理提交消息,检查视图(round)、块高(sequence)来确保消息的有效性,验证消息签名的正确性,当收到2f+1条消息后,锁定哈希值Hash并提交。
S102c2:主领导者节点leader收到2f+1个有效的提交(COMMIT)信息,以此进入提交(COMMITTED)状态。有效的COMMIT信息,需要满足以下条件:块高(sequence)和视图(round)一致;区块哈希值(block hash)一致;信息是来自已知副本leader节点。
其中,S102c1和S102c2采用轮次发生更改(round change)机制和区块锁定机制对共识方法进行保护。
导致轮次发生更改(round change)的三个条件:视图更改(round change)计时器到期;无效的预准备消息(PREPREPARE message);区块插入失败。
区块锁定的触发条件:每个领导者节点锁定在区块B。视图序号B(round numberB)的含义是指,当前领导者节点只能对区块B的信息投commit票。当一个领导者节点收到了超过三分之二个对区块B的准备阶段(PREPARE)投票后,该节点进入准备(PREPARED)状态。此时,节点被锁定,等待接收其他节点的提交(commit)投票信息,锁定的视图(round)即当前视图(round);
区块锁定机制:除了共识起始阶段,当收到当前区块链块高大于视图块高的同步数据时,或当前高度成功产生区块并达成共识时,锁定被状态重置为非锁定状态,并开始新一轮对更高区块共识。如未能在锁定期间收到超过三分之二个指定round和区块的commit投票,则触发视图更改(round change)。
组外共识阶段继承IBFT共识方法(Istanbul-BFT Consensus Algorithm)。接收客户端请求的节点所在小组的leader,即区块提议者(proposer),向其他小组的leader广播,接着区块提议者proposer节点进入到预准备状态(pre-prepare),其他leader节点收到有效的预准备消息后进入到预准备状态。
之后每个leader都会将准备(prepare)消息广播给其他的leader节点,并等待接收超过三分之二的有效的准备消息从而进入到prepare状态。
然后每个leader都将提交(commit)消息广播给其他leader节点,并等待接收超过三分之二的有效的准备消息从而进入到commit状态。
进一步地,所述S103:组内共识阶段:组内的领导者将自己的日志内容广播到组内以使组内共识节点复制当前日志条目;组内选举出新的领导者节点,组内保持主从节点日志的一致性;组内的领导者节点完成提交过程,将结果反馈给客户端;具体包括:提交阶段至最终提交阶段;
所有leader节点将自己的日志内容广播到组内让其他组内共识节点复制这条日志条目,组内开始根据Raft算法选举出新的leader节点,但是观察员节点不参与leader节点选举并且具有匿名性,新的leader节点必须包含commit日志。
leader节点的选举因为遵循Raft算法而实现了每个组内都进行日志复制,但是由于没有拜占庭容错,每个分组的观察员节点将收到近邻两组的leader节点发送的日志进行比较。若不一致,则该组commit无效,系统针对恶意节点做出处理;若一致,则观察员节点不进行任何操作。
每个组新的leader节点把2f+1个请求提交(commitment)签名放进区块头的哈希值额外字段(extraData)并且尝试将区块插入区块链。当插入区块成功,主leader节点进入最终提交状态(FINAL COMMITTED状态)。
视图切换state状态为提交状态(StateCommitted),然后每个leader节点整理共识数据并插入区块的额外字段(extra)中,如果插入失败,启动当前区块的下一轮round共识。
进一步地,所述方法还包括:
S104:最终提交阶段至新的视图开始阶段;
客户端有新的请求并且开始一个新的视图(NEW ROUND)。
其中采用共识证明(consensus proof)目前的存储机制对共识方法进行保护。
共识证明consensus proof:区块上链前,每个leader节点需要收集2f+1个提交封装(committed seal)以构成一个consensus proof(共识证明)。
一旦主leader节点接收到超过2f+1个提交封装(committed seal),就将提交封装信息存储于区块头的哈希值额外(extraData)字段中伊斯坦布尔额外字段(IstabulExtra)结构中提交封装(CommittedSeal)字段中,并重新计算哈希值额外(extraData)字段,然后将区块插入到区块链中。
进入组内共识阶段,leader将自己的日志内容广播到组内让其他组内共识节点复制这条日志条目,组内开始根据Raft算法选举出新的leader节点,新的leader必须包含commit日志,且根据规则需要有超过至少组内一半节点的投票,然后使组内保持主从日志的一致性。leader节点完成commit过程将结果返回给客户端,然后就实现了组内共识。
为了保证该共识过程的安全性,每个小组有观察员节点,来解决Raft共识不能对抗拜占庭恶意行为的问题。组内根据Raft算法心跳机制来判断实时动态小组的leader是否为宕机状态,组外通过周期重启机制来抵抗系统非拜占庭问题。图2(a)和图2(b)为本发明实施例一的IBFT共识和Raft共识的节点结构图;图3为本发明实施例一的应用该共识方法的电力能源系统节点实体结构示意图。
本发明在有电力交易需求的社区中,建立一个基于区块链的可交互式的电力交易平台,该平台开发了基于新的共识方法的区块链系统,电力能源供应用户和需求用户可以通过该平台进行电力交易。加入该平台的用户统一安装区块链客户端,实现了平台中用户的通信以及交易共识。
实施例二
本实施例提供了面向电力能源系统的区块链共识系统;
面向电力能源系统的区块链共识系统,包括:共识模块;所述共识模块被配置为:
区块链节点接收客户端发送的交易入块请求,区块链网络开始新一轮的区块共识,区块链网络对所有的节点进行分组,并在每个小组内部选举出领导者节点;
组外共识阶段:接收客户端请求的节点所在小组的领导者节点,作为区块提议者节点,向其他小组的领导者节点进行广播;区块提议者节点进入预准备的状态;其他小组的领导者节点在收到预准备消息后也进入预准备状态;每个领导者节点将准备消息发送给其他领导者节点,所有的领导者节点由预准备状态进入准备状态;每个领导者节点将提交消息发送给其他领导者节点,然后所有领导者节点由准备状态进入提交状态;
组内共识阶段:组内的领导者将自己的日志内容广播到组内以使组内共识节点复制当前日志条目;组内选举出新的领导者节点,组内保持主从节点日志的一致性;组内的领导者节点完成提交过程,将结果反馈给客户端。
在电力能源系统中,用户在业务系统上通过智能合约促成链上交易,买卖双方进行交易前采用地址模糊化进行处理,处理后需求方和供应方进行稳定匹配,交易结算时通过多重签名机制确保交易安全,该交易通过P2P网络进行广播,用户节点对产生的交易达成共识,最后生成新的区块存储在链上,最终交易完成。
进一步地,所述系统还包括:业务模块、合约模块和存储模块;
所述业务模块,其被配置为:前端业务层包括一体化能源系统行为评估、优化、调度、控制、管理。
所述合约模块,其被配置为:智能合约包含了用户数据交易规则,包括交易前的沟通、买卖方匹配以及交易结算法。
1.在确定交易伙伴之前,用户通常需要公布自己的供需情况。在这个过程中,需要确保安全并保护用户的隐私。有一种简单的方法可以隐藏用户的实际地址,即匿名地址,其中为每个事务生成一个新的假名地址,采用匿名地址使地址模糊化;
2.在能源需求释放后,交易节点需要根据自己的需求和当前的市场状况获取偏好列表。然后,选择最合适的交易对象进行匹配。利用偏好列表的分布式稳定匹配算法,获得一个匹配,使得每个需求方和供应方都满意他们的分配。这种分布式查询和匹配系统通常避免了服务器上集中式匹配的潜在隐私和安全隐患;
3.下一步是交易双方之间的结算过程。采用多重签名算法来保证事务的有效性。基本上就是找别人来证明双方都没有作弊。如果第三方未能使双方满意,则可以更换第三方来证明事务有效性。
所述存储模块,其被配置为:共识过程完成后存储过程,区块链将数据打包成区块存储在链上。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.面向电力能源系统的区块链共识方法,其特征是,包括:
区块链节点接收客户端发送的交易入块请求,区块链网络开始新一轮的区块共识,区块链网络对所有的节点进行分组,并在每个小组内部选举出领导者节点;
组外共识阶段:接收客户端请求的节点所在小组的领导者节点,作为区块提议者节点,向其他小组的领导者节点进行广播;区块提议者节点进入预准备的状态;其他小组的领导者节点在收到预准备消息后也进入预准备状态;每个领导者节点将准备消息发送给其他领导者节点,所有的领导者节点由预准备状态进入准备状态;每个领导者节点将提交消息发送给其他领导者节点,然后所有领导者节点由准备状态进入提交状态;
组内共识阶段:组内的领导者将自己的日志内容广播到组内以使组内共识节点复制当前日志条目;组内选举出新的领导者节点,组内保持主从节点日志的一致性;组内的领导者节点完成提交过程,将结果反馈给客户端。
2.如权利要求1所述的面向电力能源系统的区块链共识方法,其特征是,所述区块链网络对所有的节点进行分组,并在每个小组内部选举出领导者节点;具体包括:
计算节点的重要性;
对节点的重要性进行归一化处理;
根据归一化处理后的节点的重要性进行小组划分,将重要性差值小于设定阈值的节点划分为一组。
3.如权利要求1所述的面向电力能源系统的区块链共识方法,其特征是,所述计算节点的重要性,是对节点的相关性、节点的计算能力和节点的存储容量进行加权求和得到。
4.如权利要求1所述的面向电力能源系统的区块链共识方法,其特征是,组外共识阶段:接收客户端请求的节点所在小组的领导者节点,作为区块提议者节点,向其他小组的领导者节点进行广播;区块提议者节点进入预准备的状态;其他小组的领导者节点在收到预准备消息后也进入预准备状态;具体包括:
区块提议者节点打包交易提出一个区块,将交易广播给其它小组的领导者节点,然后进入预准备状态;将区块提议者节点视为主领导节点;将其它小组的领导者节点视为副领导节点;
每一个领导者节点到预准备状态,一旦收到预准备信息并且伴随着以下情况:区块是来自于有效的区块提议者节点、区块头有效、区块的块高和视图与领导者节点的状态匹配;则区块提议者节点广播准备消息给其它小组的领导者节点;
区块提议者节点交区块请求,区块链系统中保存未来消息的模块设计一个优先队列,该模块收到请求后判断是否是未来消息,未来消息,即当前视图还未达成共识提交区块时,之后产生的交易达成共识过程中发来的预准备消息;如果是未来消息,则保存该请求到待处理请求的优先队列中,否则发送给其他领导者节点预准备消息;区块提议者节点把当前视图序号和区块请求包装成预准备消息,广播给其他领导者节点,广播前对消息进行签名处理。
5.如权利要求1所述的面向电力能源系统的区块链共识方法,其特征是,每个领导者节点将准备消息发送给其他领导者节点,所有的领导者节点由预准备状态进入准备状态;具体包括:
其他领导者节点收到消息后对消息进行处理,如果验证区块提案时发现这是一个未来区块,未来区块,即当前视图还未达成共识提交区块时,之后产生的交易达成共识过程中区块提议者节点打包的预准备消息,则把它放到积压消息的优先队列中,等到区块链最高的块高加一后与视图块高一致时处理,如果区块哈希值被锁定且一致,则每个领导者节点发送提交区块消息给其他领导者节点;如果验证区块是非未来区块以及区块哈希未被锁定,则切换视图的状态为预准备状态,每个领导者节点并发送消息给其他领导者节点;
每个领导者节点把视图序号和哈希值包装成消息,广播给其他领导者节点,广播前会对消息进行签名处理;
假设全网共有3f个用户节点,当主领导节点收到2f+1个验证的预准备消息之后进入预准备状态;有效的预准备信息需要满足以下条件:参与共识的节点块高和视图一致;交易一致;信息是来自已知的副领导节点;然后主领导节点广播区块提交消息给副领导节点r;
每个领导者节点收到准备消息后处理消息,检查视图、块高确保消息的有效性,验证消息签名的正确性,当其他领导者节点收到2f+1条消息后,锁定哈希值、切换视图的状态为准备状态,每个领导者节点并发送提交消息给其他领导者节点;
每个领导者节点把视图序号和哈希值包装成提交消息,广播出去,广播前对消息进行签名处理。
6.如权利要求1所述的面向电力能源系统的区块链共识方法,其特征是,每个领导者节点将提交消息发送给其他领导者节点,然后所有领导者节点由准备状态进入提交状态;具体包括:
每个领导者节点收到提交消息后处理提交消息,检查视图、块高来确保消息的有效性,验证消息签名的正确性,当收到2f+1条消息后,锁定哈希值Hash并提交;
主领导者节点收到2f+1个有效的提交信息,以此进入提交状态;有效的提交信息,需要满足以下条件:块高和视图一致;区块哈希值一致;信息是来自已知副领导者节点。
7.如权利要求1所述的面向电力能源系统的区块链共识方法,其特征是,采用轮次发生更改机制和区块锁定机制对共识方法进行保护;
导致轮次发生更改的三个条件:视图更改计时器到期;无效的预准备消息;区块插入失败;
区块锁定的触发条件:每个领导者节点锁定在区块B;区块B的含义是指,当前领导者节点只能对区块B的信息投票;当一个领导者节点收到了超过三分之二个对区块B的准备阶段投票后,该节点进入准备状态;此时,节点被锁定,等待接收其他节点的提交投票信息,锁定的视图为当前视图;
区块锁定机制:除了共识起始阶段,当收到当前区块链块高大于视图块高的同步数据时,或当前高度成功产生区块并达成共识时,锁定被状态重置为非锁定状态,并开始新一轮对更高区块共识;如未能在锁定期间收到超过三分之二个指定轮次和区块的投票,则触发视图更改。
8.如权利要求1所述的面向电力能源系统的区块链共识方法,其特征是,组内共识阶段:组内的领导者将自己的日志内容广播到组内以使组内共识节点复制当前日志条目;组内选举出新的领导者节点,组内保持主从节点日志的一致性;组内的领导者节点完成提交过程,将结果反馈给客户端;具体包括:提交阶段至最终提交阶段;
所有领导者节点将自己的日志内容广播到组内让其他组内共识节点复制这条日志条目,组内开始根据Raft算法选举出新的领导者节点,但是观察员节点不参与领导者节点选举并且具有匿名性,新的领导者节点必须包含提交日志;
领导者节点的选举因为遵循Raft算法而实现了每个组内都进行日志复制,但是由于没有拜占庭容错,每个分组的观察员节点将收到近邻两组的领导者节点发送的日志进行比较;若不一致,则该组提交无效,系统针对恶意节点做出处理;若一致,则观察员节点不进行任何操作;
每个组新的领导者节点把2f+1个请求提交签名放进区块头的哈希值额外字段并且尝试将区块插入区块链;当插入区块成功,主领导者节点进入最终提交状态;
视图切换state状态为提交状态,然后每个leader节点整理共识数据并插入区块的额外字段中,如果插入失败,启动当前区块的下一轮共识。
9.如权利要求1所述的面向电力能源系统的区块链共识方法,其特征是,所述方法还包括:最终提交阶段至新的视图开始阶段;
客户端有新的请求并且开始一个新的视图;
采用共识证明目前的存储机制对共识方法进行保护;
区块上链前,每个leader节点需要收集2f+1个提交封装以构成一个共识证明;一旦主leader节点接收到超过2f+1个提交封装,就将提交封装信息存储于区块头的哈希值额外字段中伊斯坦布尔额外字段结构中提交封装字段中,并重新计算哈希值额外字段,然后将区块插入到区块链中。
10.面向电力能源系统的区块链共识系统,其特征是,包括:共识模块;所述共识模块被配置为:
区块链节点接收客户端发送的交易入块请求,区块链网络开始新一轮的区块共识,区块链网络对所有的节点进行分组,并在每个小组内部选举出领导者节点;
组外共识阶段:接收客户端请求的节点所在小组的领导者节点,作为区块提议者节点,向其他小组的领导者节点进行广播;区块提议者节点进入预准备的状态;其他小组的领导者节点在收到预准备消息后也进入预准备状态;每个领导者节点将准备消息发送给其他领导者节点,所有的领导者节点由预准备状态进入准备状态;每个领导者节点将提交消息发送给其他领导者节点,然后所有领导者节点由准备状态进入提交状态;
组内共识阶段:组内的领导者将自己的日志内容广播到组内以使组内共识节点复制当前日志条目;组内选举出新的领导者节点,组内保持主从节点日志的一致性;组内的领导者节点完成提交过程,将结果反馈给客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210590312.7A CN114866562B (zh) | 2022-05-27 | 2022-05-27 | 面向电力能源系统的区块链共识方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210590312.7A CN114866562B (zh) | 2022-05-27 | 2022-05-27 | 面向电力能源系统的区块链共识方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114866562A true CN114866562A (zh) | 2022-08-05 |
CN114866562B CN114866562B (zh) | 2023-06-09 |
Family
ID=82642090
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210590312.7A Active CN114866562B (zh) | 2022-05-27 | 2022-05-27 | 面向电力能源系统的区块链共识方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114866562B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115250277A (zh) * | 2022-08-09 | 2022-10-28 | 西安邮电大学 | 适用于基于联盟链的边缘缓存系统的共识机制 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109246194A (zh) * | 2018-08-13 | 2019-01-18 | 佛山市顺德区中山大学研究院 | 基于多领导节点的实用拜占庭容错区块链共识方法及系统 |
CN110365735A (zh) * | 2019-05-28 | 2019-10-22 | 国网浙江省电力有限公司杭州供电公司 | 应用于分布式新能源系统的基于raft算法的区块链共识方法 |
CN113141414A (zh) * | 2021-05-07 | 2021-07-20 | 大连理工大学 | 一种cnfs协议中区块链节点的分组多链异步共识方法 |
CN113609229A (zh) * | 2021-08-18 | 2021-11-05 | 东北大学 | Fabric区块链中的快速日志复制方法及装置 |
CN114050904A (zh) * | 2022-01-11 | 2022-02-15 | 天津眧合数字科技有限公司 | 一种基于两层级领导节点分片结构的共识系统及方法 |
US11343313B1 (en) * | 2021-01-28 | 2022-05-24 | International Business Machines Corporation | Fault tolerant periodic leader rotation for blockchain |
-
2022
- 2022-05-27 CN CN202210590312.7A patent/CN114866562B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109246194A (zh) * | 2018-08-13 | 2019-01-18 | 佛山市顺德区中山大学研究院 | 基于多领导节点的实用拜占庭容错区块链共识方法及系统 |
CN110365735A (zh) * | 2019-05-28 | 2019-10-22 | 国网浙江省电力有限公司杭州供电公司 | 应用于分布式新能源系统的基于raft算法的区块链共识方法 |
US11343313B1 (en) * | 2021-01-28 | 2022-05-24 | International Business Machines Corporation | Fault tolerant periodic leader rotation for blockchain |
CN113141414A (zh) * | 2021-05-07 | 2021-07-20 | 大连理工大学 | 一种cnfs协议中区块链节点的分组多链异步共识方法 |
CN113609229A (zh) * | 2021-08-18 | 2021-11-05 | 东北大学 | Fabric区块链中的快速日志复制方法及装置 |
CN114050904A (zh) * | 2022-01-11 | 2022-02-15 | 天津眧合数字科技有限公司 | 一种基于两层级领导节点分片结构的共识系统及方法 |
Non-Patent Citations (2)
Title |
---|
HONGBIN LEE等: "A Visualization Quality Evaluation Method For Multiple Sequence Alignments", IEEE * |
张俊等: "运行于区块链上的智能分布式电力能源系统 需求、概念、方法以及展望", 自动化学报 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115250277A (zh) * | 2022-08-09 | 2022-10-28 | 西安邮电大学 | 适用于基于联盟链的边缘缓存系统的共识机制 |
CN115250277B (zh) * | 2022-08-09 | 2023-09-05 | 西安邮电大学 | 将共识机制适用于基于联盟链的边缘缓存系统的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114866562B (zh) | 2023-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109871669B (zh) | 一种基于区块链技术的数据共享解决方法 | |
Baudet et al. | State machine replication in the libra blockchain | |
Zheng et al. | An overview of blockchain technology: Architecture, consensus, and future trends | |
CN109889382B (zh) | 一种基于区块链混合共识的域名信息维护系统 | |
CN109493050B (zh) | 基于区块链主链加并行多子链的转账方法 | |
Sheng et al. | BFT protocol forensics | |
CN109472572B (zh) | 基于区块链主链加并行多子链的合约系统 | |
CN111131209B (zh) | 一种改进的高效共识方法、系统、计算机设备及存储介质 | |
CN113395363B (zh) | 基于区块链的数据处理方法、装置、设备及存储介质 | |
CN112541758A (zh) | 基于区块链的多轮投票式容错排序共识机制与方法 | |
CN112615847B (zh) | 基于区块链的数据共享和隐私保护方法 | |
Yadav et al. | A comparative study on consensus mechanism with security threats and future scopes: Blockchain | |
CN109493052B (zh) | 一种基于主链加并行多子链的跨链合约系统 | |
CN112583858B (zh) | 一种基于区块链pbft算法的统一身份鉴权方法 | |
Neu et al. | The availability-accountability dilemma and its resolution via accountability gadgets | |
CN113726913B (zh) | 骨干节点接入方法和区块链系统 | |
CN111737104A (zh) | 区块链网络服务平台及其测试用例共享方法、存储介质 | |
Xue et al. | STBC: A novel blockchain-based spectrum trading solution | |
Guo et al. | A hierarchical and location-aware consensus protocol for iot-blockchain applications | |
CN114866562B (zh) | 面向电力能源系统的区块链共识方法及系统 | |
Yang et al. | A hybrid consensus algorithm for master–slave blockchain in a multidomain conversation system | |
Berger et al. | Sok: Scalability techniques for BFT consensus | |
Wang et al. | A fast and secured peer-to-peer energy trading using blockchain consensus | |
CN115987697A (zh) | 基于事件订阅机制的多层级情报数据共享方法及系统 | |
Ozdayi et al. | Instachain: Breaking the sharding limits via adjustable quorums |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |