【技术实现步骤摘要】
一种新型区块链共识算法RBFT的实现方法
本专利技术涉及区块链
,具体涉及一种新型区块链共识算法RBFT的实现方法。
技术介绍
现有区块链系统共识算法存在的问题:(1)能容忍恶意节点,但性能低下。目前区块链系统常见的提供安全性保障的共识算法,如pow共识算法,pbft共识算法。他们都能容忍一定数量的恶意节点,但是性能较低,无法使用在大规模的应用场景中。(2)性能较高,但不能容忍恶意节点。目前区块链系统常见的提供高效处理性能的共识算法,如raft共识算法,基于kafka的背书验证共识算法。他们都能提供很高的共识性能,但是却无法防止共识节点中的恶意节点作恶。
技术实现思路
针对现有技术中的上述不足,本专利技术提供的一种新型区块链共识算法RBFT的实现方法解决了现有区块链系统的共识算法在安全与性能上的矛盾关系的问题。为了达到上述专利技术目的,本专利技术采用的技术方案为:一种新型区块链共识算法RBFT的实现方法,包括以下步骤:S1、通过客户端的共识请求完成共识;S2、当检测到 ...
【技术保护点】
1.一种新型区块链共识算法RBFT的实现方法,其特征在于,包括以下步骤:/nS1、通过客户端的共识请求完成共识;/nS2、当检测到心跳超时或共识失败时,进行主节点的视图切换;/nS3、对视图切换后的主节点落后的副节点进行同步,完成RBFT共识算法。/n
【技术特征摘要】
1.一种新型区块链共识算法RBFT的实现方法,其特征在于,包括以下步骤:
S1、通过客户端的共识请求完成共识;
S2、当检测到心跳超时或共识失败时,进行主节点的视图切换;
S3、对视图切换后的主节点落后的副节点进行同步,完成RBFT共识算法。
2.根据权利要求1所述的新型区块链共识算法RBFT的实现方法,其特征在于,所述步骤S1的具体步骤为:
S11、通过客户端将共识请求Request<channel,env>发送给任意一个orderer节点;
其中,channel为交易所属的通道ID,env为交易实体;
S12、当收到客户端请求的orderer节点不是当前共识集群的leader节点,则通过该orderer节点将共识请求转发给leader节点,否则,判断leader节点能否出块,若出块则进入步骤S13,否则返回步骤S11;
S13、将区块数据追加到本地日志,并通过leader节点向自己和其他follower节点广播日志追加信息Append<MsgApp,height,term,blockData,sig,cert>;
其中,MsgApp为追加日志的消息类型,height为当前共识的区块高度,term为当前主节点任期,blockData为区块数据,sig为节点对(height,blockData)的签名,cert为身份证书;
S14、通过leader节点和follower节点对所有节点发送广播消息AppResp<MsgAppResp,height,blockHash,sig1,cert>;
其中,MsgAppResp为追加响应消息类型,blockHash为区块数据的hash值,sig1为发送方对(height,blockHash)的签名;
S15、当leader节点和follower节点在收到法定人数的AppResp广播消息后提交区块到本地账本,完成本轮共识。
3.根据权利要求1所述的新型区块链共识算法RBFT的实现方法,其特征在于,所述步骤S2的具体步骤为:
S21、当检测到心跳超时,或共识失败时,触发视图切换;
S22、组装消息<<id,term+1,voteMsgType>,sign<id,term+1,voteMsgType>>,并将该消息广播给共识集群内的其他节点;
其中,id为发起换主的节点号,term为下一个主节点的任期,voteMsgType为投票消息类型,sign为使用私钥对id+term+voteMsgType进行签名后的数据;
S23、当节点收到组装消息后,验证组装消息的签名,当验证未通过则丢弃该组装消息,否则判断term+1与本地的localTerm相同,则发送...
【专利技术属性】
技术研发人员:韩虎,苏云龙,白健,安红章,
申请(专利权)人:中国电子科技网络信息安全有限公司,
类型:发明
国别省市:四川;51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。