赞
踩
BFT是区块链共识算法中,需要解决的一个核心问题。
以比特币和以太访为代表的POW,EOS为代表的DPOS,以及今后以太访逐渐替换的共识算法POS,这些都是公链算法,解决的是共识节点众多情况下的BFT;而PBFT是在联盟链共识节点较少的情况下BFT的一种解决方案。
PBFT算法由于每个副本节点都需要和其他节点进行P2P的共识同步,因此随着节点的增多,性能会下降的很快,但是在较少节点的情况下可以有不错的性能,并且分叉的几率很低。PBFT主要用于联盟链,但是如果能够结合类似DPOS这样的节点代表选举规则的话也可以应用于公链,并且可以在一个不可信的网络里解决拜占庭容错问题,TPS应该是远大于POW的。
作者:ether029
链接:https://www.jianshu.com/p/78e2b3d3af62
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
作者:ether029
链接:https://www.jianshu.com/p/78e2b3d3af62
来源:简书
首先了解一下几个基本概念:(从区块链的视角)
另外,primary是所有节点轮流做的,每个view上都会选出一个新的primary。
三阶段协议是PBFT的核心,参见下图:
从发起请求到最终收到reply,中间的共识过程需要经过3个阶段:
第一次等待超过2/3的节点广播,是为了确认“已经有超过2/3的节点收到区块了”。但是这只是你自己知道,别人并不知道啊,因此需要再发送一次广播,告诉别的节点“我已经确认有超过2/3的节点收到区块啦”;而第二次等待超过2/3的节点广播,则是为了确认“已经有超过2/3的节点确认(有超过2/3的节点收到区块啦)”,此时说明已经达成共识,可以把该区块写到链上了。
https://blog.csdn.net/kojhliang/article/details/71515199
里面有高低水位、checkpoint的解释
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。