PBFT算法中的视图切换方法、共识节点和区块链系统技术方案

技术编号:39046940 阅读:24 留言:0更新日期:2023-10-10 11:59
本申请一个或多个实施例提供一种PBFT算法中的视图切换方法、共识节点和区块链系统,该方法应用于区块链系统中的任一目标共识节点,包括:响应于本轮共识满足了ViewChange条件,接收其他共识节点发送的ViewChange消息;其中,ViewChange消息包含其他共识节点已经共识通过的最新区块的第一区块号,以及最新区块的共识通过证明;响应于接收到的其他共识节点发送的ViewChange消息,确定本节点已经共识通过的最新区块的第二区块号,是否小于ViewChange消息包含的第一区块号;如果第二区块号小于第一区块号,向其他共识节点同步第一目标区块的共识通过证明,并在本地存储第一目标区块的共识通过证明;其中,第一目标区块为区块号大于第二区块号并且不大于第一区块号的区块。的区块。的区块。

【技术实现步骤摘要】
PBFT算法中的视图切换方法、共识节点和区块链系统


[0001]本申请一个或多个实施例涉及区块链
,尤其涉及一种PBFT算法中的视图切换方法、共识节点和区块链系统。

技术介绍

[0002]区块链(Blockchain)是分布式数据存储、点对点传输、共识协议、加密算法等计算机技术的新型应用模式。区块链系统中按照时间顺序将数据区块以顺序相连的方式组合成链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。由于区块链具有去中心化、信息不可篡改、自治性等特性,使得区块链的应用越来越广泛。

技术实现思路

[0003]本申请一个或多个实施例提供一种PBFT算法中的视图切换方法、共识节点和区块链系统,包括:
[0004]本申请提供一种PBFT算法中的视图切换方法,所述方法应用于区块链系统中的任一目标共识节点,包括:
[0005]响应于本轮共识满足了ViewChange条件,接收其他共识节点发送的ViewChange消息;其中,所述ViewChange消息包含所述其他共识节点已经共识通过的最新区块的第一区块号,本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种PBFT算法中的视图切换方法,所述方法应用于区块链系统中的任一目标共识节点,包括:响应于本轮共识满足了ViewChange条件,接收其他共识节点发送的ViewChange消息;其中,所述ViewChange消息包含所述其他共识节点已经共识通过的最新区块的第一区块号,以及所述最新区块的共识通过证明;响应于接收到的所述其他共识节点发送的ViewChange消息,确定本节点已经共识通过的最新区块的第二区块号,是否小于所述ViewChange消息包含的所述第一区块号;如果所述第二区块号小于所述第一区块号,向其他共识节点同步第一目标区块的共识通过证明,并在本地存储所述第一目标区块的共识通过证明;其中,所述第一目标区块为区块号大于所述第二区块号并且不大于所述第一区块号的区块。2.如权利要求1所述的方法,向其他共识节点同步第一目标区块的共识通过证明,并在本地存储所述第一目标区块的共识通过证明,包括:向其他共识节点发送同步请求消息;其中,所述同步请求消息用于向所述其他共识节点同步所述第一目标区块的共识通过证明;获取所述其他共识节点返回的与所述同步请求消息对应的同步响应消息;其中,所述同步响应消息包含所述第一目标区块的共识通过证明;响应于所述同步响应消息,将所述同步响应消息包含的所述第一目标区块的共识通过证明在本地进行存储。3.如权利要求1所述的方法,所述方法还包括:响应于接收到的所述其他共识节点发送的ViewChange消息,将所述ViewChange消息包含的共识通过证明在本地进行存储。4.如权利要求1所述的方法,所述方法还包括:响应于本轮共识满足了ViewChange条件,向其他共识节点发送ViewChange消息;其中,所述ViewChange消息包含所述第二区块号,以及所述最新区块的共识通过证明。5.如权利要求4所述的方法,向其他共识节点发送ViewChange消息之前,还包括:确定本地存储的共识通过证明中,是否存在对应的区块号相对于所述第二区块号保持连续递增的共识通过证明集合;如果存在,确定所述共识通过证明集合中的各个共识通过证明对应的区块号中的最大区块号,并基于所述最大区块号对所述第二区块号进行更新。6.如权利要求1所述的方法,所述方法还包括:如果本节点被选举为视图切换之后的新的主节点,从接收到的至少2f+1个ViewChange消息包含的区块号中确定出起始区块号h;其中,所述共识节点中的至少一个诚实节点发送的ViewChange消息包含的区块号,不小于所述起始区块号;确定本地存储的共识通过证明中,是否存在对应的区块号相对于所述起始区块号保持连续递增的共识通过证明集合;如果存在,确定所述共识通过证明集合中的各个共识通过证明对应的区块号中的最大区块号,并将该最大区块号确定为与所述起始区块号对应的结束区块号H;向其他共识节点发送NewView消息;其中,所述NewView消息包含所述结束区块号,以及位于区间[h,H]之内的各个区块号和与其对应的区块的共识通过证明之间的映射关系。
7.如权利要求6所述的方法,从接收到的至少2f+1个ViewChange消息包含的区块号中确定出起始区块号h,包括:将接收到的至少2f+1个ViewChange消息包含的区块号,按照从大到小的顺序进行排序,并获取排序后的区块号中的第f+1个区块号作为起始区块号h;其中,f表示PBFT算法对于共识节点的容错阈值。8.如权利要求6所述的方法,确定本地存储的共识通过证明中,是否存在对应的区块号相对于所述起始区块号保持连续递增的共识通过证明集合之前,还包括:确定所述第二区块号是否小于所述起始区块号;如果是,向其他共识节点同步第二目标区块的区块数据和共识通过证明;其中,所述第二目标区块为区块号大于所述第二区块号并且不大于所述起始区块号的区块。9.如权利要求6所述的方法,所述方法还包括:如果本...

【专利技术属性】
技术研发人员:荣康徐文博
申请(专利权)人:蚂蚁区块链科技上海有限公司
类型:发明
国别省市:

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

1