第1章
1.1 分布式系统是什么. . . . . . . . . . . . . . . . . . . . . 1
1.2 本书概览. . . . . . . . . . . . . . . . . . . . . . . . . . 2
第2章 容错问题和Paxos 算法
2.1 客户端/服务器. . . . . . . . . . . . . . . . . . . . . . . 6
2.2 Paxos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
延伸阅读:Paxos漫谈
第3章 共识机制
3.1 两个朋友约饭局. . . . . . . . . . . . . . . . . . . . . . . 27
3.2 共识. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.3 共识的不可能性. . . . . . . . . . . . . . . . . . . . . . . 29
3.4 随机共识. . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.5 共享硬币. . . . . . . . . . . . . . . . . . . . . . . . . . 41
第4章 拜占庭协定
4.1 有效性. . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.2 有多少个拜占庭节点. . . . . . . . . . . . . . . . . . . . 49
4.3 国王算法. . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.4 “轮”数的下界. . . . . . . . . . . . . . . . . . . . . . . 55
4.5 异步模式下的拜占庭协定算法. . . . . . . . . . . . . . 56
第5章 认证的协定
5.1 利用认证的协定. . . . . . . . . . . . . . . . . . . . . . . 62
5.2 Zyzzyva . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
第6章 仲裁系统
6.1 负载和工作量. . . . . . . . . . . . . . . . . . . . . . . . 82
6.2 网格仲裁系统. . . . . . . . . . . . . . . . . . . . . . . . 85
6.3 容错. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
6.4 拜占庭仲裁系统(Byzantine Quorum Systems) . . . . . . 92
第7章 最终一致性以及比特币
7.1 一致性、可用性,以及分区. . . . . . . . . . . . . . . . 102
7.2 比特币. . . . . . . . . . . . . . . . . . . . . . . . . . . 104
7.3 智能合约(Smart Contracts) . . . . . . . . . . . . . . . . 113
7.4 弱一致性. . . . . . . . . . . . . . . . . . . . . . . . . . 117
延伸阅读:PoW vs. BFT
第8章 分布式系统
8.1 一致性哈希(Consistent Hashing) . . . . . . . . . . . . . 128
8.2 超立方体网络(Hypercubic Networks) . . . . . . . . . . . 131
8.3 DHT & Churn . . . . . . . . . . . . . . . . . . . . . . . 140