我管拜占庭容错诞生直到比特币诞生这段时间内的所有BFT算法,包括像是后来诞生的但是还未受到比特币和区块链影响的BFT算法叫做传统BFT算法。这类算法包括著名的PBFT,也包括之前的不那么practical的BFT,和后PBFT时代中提出了“投机型”BFT的Zyzzyva。这类BFT算法的最大特点,就是他们并没有把区块链当做主要的应用场景(废话)。然后这类BFT算法我们又可以拿PBFT和Zyzzyva分成三个阶段。
既然决心要扩大知名度,那么免不了要偶尔蹭蹭热点,恰好我之前就已经给很多人说过Hotstuff,同时正好也在之前的专栏里介绍过BFT,所以正好可以顺理成章地讲一下LibraBFT。
系列四 — 区块链中的BFT及HotStuff BFT(Libra BFT)分析
上次我们讲到,比特币带来了一个新思路——用经济学和博弈论的原理约束节点,让他们不会作恶,于是整个问题重新回到了异步普通容错问题的轨道,于是整个问题的消息复杂度回到了O(N),即,可扩展。关于扩展性问题我们到以后的文章里再深入说,在这里我们只说它和O(N^2)消息复杂度的传统容错算法,例如PBFT,的最大区别。
Istanbul BFT实战 前端时间写了Istanbul BFT的一些原理,以及逻辑详情。今天想写一篇实战的技术文章,所以底层原理就不赘述了。
共识算法是实现自主产权区块链的必不可少的关键环节,本文列出相对成熟的区块链共识算法开源实现,包括BFT共识、Raft共识、 Paxos共识、PoW共识等,可供希望开发自主产权区块链的团队参考学习。
本文为tendermint paper: The latest gossip on BFT consensus的读书笔记, 本文旨在理清论文中所讲的BFT共识. 如果您在阅读过程中有任何意见可以发起ISSUE, 如果喜欢的话可以点击star.
star
异步拜占庭协议由于其对极端网络环境的容忍度很高,非常适用于节点规模相对较大、网络环境不可预测的场景,比如跨多个地域的数据中心、无线网络、物联网等。这类协议虽然看起来非常复杂,但比较容易进行模块化的设计,在工程实践中仍然有很大的优化空间。