一种基于Raft-PBFT的区块链共识方法技术

技术编号:33290542 阅读:17 留言:0更新日期:2022-05-01 00:08
本发明专利技术涉及一种基于Raft

【技术实现步骤摘要】
一种基于Raft

PBFT的区块链共识方法


[0001]本专利技术属于区块链
,涉及一种基于Raft

PBFT的区块链共识方法。

技术介绍

[0002]区块链是一种分布式数据库技术,该技术在金融服务、能源贸易、供应链管理、物联网等各个领域都显示出巨大的应用潜力。区块链的核心技术包括共识机制、分布式存储技术、密码学和智能合约,其中,共识机制着重解决分布式系统的一致性问题,旨在保证所有节点维护的数据副本的一致性,避免数据不统一和信息不对称问题的发生。
[0003]为提高共识效率,区块链中常使用轻量的共识算法,如实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)和Raft等一致性共识算法。PBFT算法可在一定程度上实现区块链系统的拜占庭容错,该算法流程包括主节点广播预准备消息给副本节点,副本节点收到预准备消息后,广播准备消息,若副本节点收到不少于2f条来自不同节点的准备消息,则该节点广播提交消息。根据PBFT算法流程,若存在不超过1/3的恶意节点数目,该算法仍可实现节点共识。尽管PBFT算法在延迟、资源需求和节点复杂性方面表现出良好的性能,但其流程较为复杂,可扩展性差,难以适用于大规模网络场景。Raft是一种强领导者算法,其可分解为两个模块:领导者选举和日志复制。在基于Raft的区块链系统中,数据仅能从领导者到其他服务器单向流动,具有线性复杂度,共识效率高,Raft可以容忍不超过50%的停机故障,但其不具备拜占庭容错能力。针对PBFT及Raft算法的缺陷,亟需设计高效、复杂度较低且支持拜占庭容错的区块链共识机制。

技术实现思路

[0004]有鉴于此,本专利技术的目的在于提供一种基于Raft

PBFT的区块链共识方法。通过实现Raft与PBFT机制的高效融合,降低节点通信开销,支持拜占庭容错,提高共识效率和可扩展性。
[0005]为达到上述目的,本专利技术提供如下技术方案:
[0006]一种基于Raft

PBFT的区块链共识方法,该方法包括以下步骤:
[0007]S1:基于K均值算法将区块链网络节点划分为多个子集群;
[0008]S2:所有子集群主节点与监督节点构成主集群;
[0009]S3:客户端发送请求消息至主集群节点,重定向至监督节点;
[0010]S4:监督节点接收客户端请求消息,验证客户端请求消息签名及客户端身份是否合法;若消息签名或客户端身份验证未通过,则丢弃该请求消息;若验证通过,转至S5;
[0011]S5:主集群内基于改进的Raft协议执行第一轮共识协议;
[0012]S6:若主集群节点未达成共识,请求消息验证失败;
[0013]S7:若主集群节点达成共识,监督节点发送确认回复消息至客户端,并将回复证书发送至主集群节点;
[0014]S8:若主集群节点收到回复证书,转至S10;
[0015]S9:若主集群节点未收到回复证书,则在其子集群内触发视图切换,转至S10;
[0016]S10:各子集群内基于实用拜占庭容错PBFT算法执行第二轮共识;
[0017]S11:子集群判断是否达成共识,若是,对应子集群主节点发送确认回复消息至客户端,转至S14;
[0018]S12:若子集群未达成共识,判断视图切换次数是否大于门限值,若是,该子集群终止共识过程;否则,子集群触发视图切换,更新视图切换次数并执行第二轮共识,转至S11;
[0019]S13:若子集群达成共识,子集群主节点发送确认回复消息至客户端;
[0020]S14:若客户端收到不少于主集群半数的确认回复消息,客户端请求消息在集群内达成共识,区块链共识流程结束。
[0021]可选的,所述S1中,令Φ表示区块链网络节点集合,Φ={I1,I2,

,I
n
},其中,I
n
标识第n个区块链网络节点,1≤n≤N,N为区块链网络节点数,基于K均值算法构建区块链子集群过程如下:
[0022]S11:初始主节点选择:随机选择K个区块链节点作为初始主节点,得到初始主节点集合子集群成员集合
[0023]S12:主节点与子集群节点关联:定义网络性能为节点能耗与误码率的加权和,令Ψ
i,k
表示子集群节点I
i
∈Φ
cm
与主节点关联对应的成本,建模Ψ
i,k
为Ψ
i,k
=E
i,k
+ωδ
i,k
,其中,E
i,k
与δ
i,k
分别表示子集群节点I
i
发送消息至主节点I
k
对应的能耗及误码率,ω表示误码率对应的权重;根据公式E
i,k
=P
i,k
t
i,k
建模E
i,k
,其中,P
i,k
表示子集群节点I
i
向主节点I
k
传输数据的发射功率,t
i,k
表示子集群节点I
i
向主节点I
k
传输数据的时长,根据公式建模t
i,k
,其中,S
i,k
表示子集群节点I
i
向主节点I
k
传输的数据量,R
i,k
表示子集群节点I
i
向主节点I
k
传输数据时对应的传输数据速率,根据公式R
i,k
=B
k
log2(1+γ
i,k
)建模R
i,k
,其中,B
k
表示主节点I
k
进行子集群内通信的可用带宽,γ
i,k
表示子集群节点I
i
向主节点I
k
之间的信噪比,根据公式建模γ
i,k
,其中,h
i,k
表示子集群节点I
i
与主节点I
k
之间链路的信道增益,N0表示噪声功率;建模子集群节点I
i
与主节点I
k
之间链路的误码率为其中,α表示调制阶数;子集群节点I
i
基于成本函数优化选择主节点,即若有k
*
=argminΨ
ik
,则子集群节点I
i
与主节点关联进行信息传输,令Φ
k
表示第k个子集群的主节点及子集群节点集合;
[0024]S13:主节点更新:令表示第k个子集群的节点I
i
与子集群内其他节点之间进行信息传输的总成本,建模为若则k

为第k个子集群的主节点;
[0025]S14:重复S12~S13,直本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Raft

PBFT的区块链共识方法,其特征在于:该方法包括以下步骤:S1:基于K均值算法将区块链网络节点划分为多个子集群;S2:所有子集群主节点与监督节点构成主集群;S3:客户端发送请求消息至主集群节点,重定向至监督节点;S4:监督节点接收客户端请求消息,验证客户端请求消息签名及客户端身份是否合法;若消息签名或客户端身份验证未通过,则丢弃该请求消息;若验证通过,转至S5;S5:主集群内基于改进的Raft协议执行第一轮共识协议;S6:若主集群节点未达成共识,请求消息验证失败;S7:若主集群节点达成共识,监督节点发送确认回复消息至客户端,并将回复证书发送至主集群节点;S8:若主集群节点收到回复证书,转至S10;S9:若主集群节点未收到回复证书,则在其子集群内触发视图切换,转至S10;S10:各子集群内基于实用拜占庭容错PBFT算法执行第二轮共识;S11:子集群判断是否达成共识,若是,对应子集群主节点发送确认回复消息至客户端,转至S14;S12:若子集群未达成共识,判断视图切换次数是否大于门限值,若是,该子集群终止共识过程;否则,子集群触发视图切换,更新视图切换次数并执行第二轮共识,转至S11;S13:若子集群达成共识,子集群主节点发送确认回复消息至客户端;S14:若客户端收到不少于主集群半数的确认回复消息,客户端请求消息在集群内达成共识,区块链共识流程结束。2.根据权利要求1所述的一种基于Raft

PBFT的区块链共识方法,其特征在于:所述S1中,令Φ表示区块链网络节点集合,Φ={I1,I2,

,I
n
},其中,I
n
标识第n个区块链网络节点,1≤n≤N,N为区块链网络节点数,基于K均值算法构建区块链子集群过程如下:S11:初始主节点选择:随机选择K个区块链节点作为初始主节点,得到初始主节点集合子集群成员集合S12:主节点与子集群节点关联:定义网络性能为节点能耗与误码率的加权和,令Ψ
i,k
表示子集群节点I
i
∈Φ
cm
与主节点关联对应的成本,建模Ψ
i,k
为Ψ
i,k
=E
i,k
+ωδ
i,k
,其中,E
i,k
与δ
i,k
分别表示子集群节点I
i
发送消息至主节点I
k
对应的能耗及误码率,ω表示误码率对应的权重;根据公式E
i,k
=P
i,k
t
i,k
建模E
i,k
,其中,P
i,k
表示子集群节点I
i
向主节点I
k
传输数据的发射功率,t
i,k
表示子集群节点I
i
向主节点I
k
传输数据的时长,根据公式建模t
i,k
,其中,S
i,k
表示子集群节点I
i
向主节点I
k
传输的数据量,R
i,k
表示子集群节点I
i
向主节点I
k
传输数据时对应的传输数据速率,根据公式R
i,k
=B
k
log2(1+γ
i,k
)建模R
i,k
,其中,B
k
表示主节点I
k
进行子集群内通信的可用带宽,γ
i,k
表示子集群节点I
i
向主节点I
k
之间的信噪比,根据公式建模γ
i,k
,其中,h
i,k
表示子集群节点I
i
与主节点I
k
之间链路的信道增益,N0表示噪声功率;建模子集群节点I
i
与主节点I
k
之间链路的误码率
为其中,α表示调制阶数;子集群节点I
i
基于成本函数优化选择主节点,即若有k
*
=argminΨ
ik
,则子集群节点I
i
与主节点关联进行信息传输,令Φ
k
表示第k个子集群的主节点及子集群节点集合;S13:主节点更新:令表示第k个子集群的节点I
i
与子集群内其他节点之间进行信息传输的总成本,建模为若则k

为第k个子集群的主节点;S14:重复S12~S13,直至主节点集合以及主节点与子集群节点之间关联关系不再更新。3.根据权利要求2所述的一种基于Raft

PBFT的区块链共识方法,其特征在于:所述S3中,客户端发送请求消息至网络节点,若接收客户端请求的节点不为监督节点,则该节点发送监督节点标识至客户端,客户端接收消息后发送请求消息至监督节点;其中,请求消息包括消息类型、客户端标识、客户端执行操作类型、客户端发送请求消息的当前时间戳及客户端对请求消息的签名,令M表示客户端请求消息。4.根据权利要求3所述的一种基于Raft

PBFT的区块链共识方法,其特征在于:所述S4中,所主节点接收客户端发送的请求消息M,验证请求消息签名及客户端身份是否合法...

【专利技术属性】
技术研发人员:柴蓉杨锡政蒋汶航陈前斌
申请(专利权)人:重庆邮电大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1