pbft协议
pbft算法是区块链公链项目中的一种共识机制。特点是不仅容错故障节点,同时容忍恶意节点的存在。
作恶节点不仅是,宕机引起的无法发送数据。甚至可能发送相反的回复或者伪造数据。
算法概要

- 客户端发送请求到primary节点,primary由公式p = V mod R决定,p是节点的编号,V是视图号,R是整个系统中节点的个数。请求的消息格式为<REQUEST,o,t,c>,其中o是请求的操作,t是客户端的本地时间,c是客户端;
- Primary广播请求消息到每一个backup节点;
- 所有节点(primary和backups)执行请求,把结果返回到客户端,返回的消息格式为<REPLY,v,t,c,i,r>,v是节点维持的当前的视图号,t是与请求消息中一样的时间,i是节点的编号,r是执行请求的结果;
- 如果客户端收到f+1个来自不同节点且t相同、r也相同的应答,则接受此应答。如果客户端一直没有收到应答,则客户端向每一个节点都发送此请求消息,如果此请求已经被执行,则直接把结果返回给客户端(每个节点保存上一个发送给客户端的应答);如果此请求还没执行,那么非primary节点把此请求转发给primary。如果primary一直不广播请求,backups收不到请求,则怀疑primary节点出错,导致

PBFT是一种区块链共识机制,能够容忍故障和恶意节点。算法涉及客户端请求、主节点与副本节点的角色分配,以及2/3节点善良比例的讨论。在主节点故障时,通过View Change流程确保系统持续运行。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



