1 |
|
Introduction and Logistics |
Google's Introduction to Distributed Systems Design.
Newcombe et al, Use of Formal Methods at AWS.
Leesatapornwongsa et al, SAMC: Semantic-Aware
Model Checking for Fast Discovery of Deep Bugs
in Cloud Systems, OSDI'14.
|
Review of Fundamental Results |
2 |
|
Asynchronous Model of a Distributed System
Failure Modes
Time - Ordering of events, Vector Clocks
|
Lamport, Time, Clocks, and the Ordering of Events in a Distributed System, CACM, 1978 |
3 |
|
Coordinated Attack (Two Generals) Problem
FLP Impossibility
CAP & PACELC |
Fischer et al, Impossibility of Distributed Consensus with One Faulty Process, JACM, 1985.
Chandra et al, The Weakest Failure Detector for Solving Consensus, JACM, 1996
Lynch et al, Brewer's Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services, ACM SIGACT News, 2002.
Abadi, Consistency Tradeoffs in Modern Distributed Database System Design: CAP is Only Part of the Story, IEEE Computer, 2012.
|
Review of Distributed Algorithms |
4 |
|
Two-Phase Commit (2PC) Introduction to TLA+ & PlusCal |
Hillel Wayne's TLA+ & PlusCal Tutorials.
Marc Brooker's Exploring TLA+ with two-phase commit.
Murat Demirbas's TLA+/Pluscal modeling of 2-phase commit transactions.
|
5 |
|
Introduction to TLA+ & PlusCal (contd.)
Liveness and Safety Properties |
Merz, Formal Specification and Verification, Concurrency: the Works of Leslie Lamport, 2019.
|
6 |
|
Paxos |
Lamport, Paxos Made Simple, ACM SIGACT News, 2001.
Chandra et al, Paxos Made Live: An Engineering Perspective, PODC'07.
|
7 |
|
Paxos (Contd.) |
Padon et al, Paxos Made EPR: Decidable Reasoning about Distributed Protocols, OOPSLA'17.
Sergey et al, Paxos Consensus, Deconstructed and Abstracted, ESOP'18.
|
8 |
|
Byzantine Generals Problem
BFT Consensus |
Lamport, The Byzantine Generals Problem, TOPLAS'82.
Malkhi et al, Byzantine Quorum Systems, Distributed Computing, 1998.
Castro et al, Practical Byzantine Fault Tolerance, OSDI'99.
|
Verification Techniques |
9 |
|
Hoare Logic Rely-Guarantee |
Chapters 1 & 2 of Mike Gordon's Background Reading on Hoare Logic.
Feng, Local Rely-Guarantee Reasoning, POPL'09.
|
10 |
|
Refinement Proof Technique Proof automation |
Lynch, Simulation Techniques for Proving Properties of Real-Time Systems, 1993.
|
Paper Discussions - Distributed Systems Verification |
11 |
|
Hawblitzel et al, IronFleet: Proving Practical Distributed Systems Correct, SOSP'15.
|
|
12 |
|
Wilcox et al, Verdi: A Framework for Implementing and Formally Verifying Distributed Systems, PLDI'15.
|
|
13 |
|
Padon et al, Ivy: Safety Verification by Interactive Generalization, PLDI'16
|
|
15 |
|
Gleissenthall et al, Pretend Synchrony: Synchronous Verification of Asynchronous Distributed Programs, POPL'19.
|
|
14 |
|
Padon et al, Reducing Liveness to Safety in First-Order Logic, POPL'18.
|
|
16 |
|
Ma et al, I4: Incremental Inference of Inductive Invariants for Verification of Distributed Protocols, SOSP'19.
|
|
From Distributed Systems to Distributed Applications |
17 |
|
Geo-Replication & Replicated Data Types |
DeCandia et al, Dynamo: Amazon’s Highly Available Key-Value Store, SOSP'07.
Shapiro et al, Conflict-free Replicated Data Types, 2011.
Kaki et al, Version Control is For Your Data Too, SNAPL'19.
|
Paper Discussions - Distributed Applications Verification |
18 |
|
Sivaramakrishnan et al, Declarative Programming over Eventually Consistent Data Stores, PLDI'15.
|
|
19 |
|
Bailis et al, Probabilistically Bounded Staleness for Practical Partial Quorums, VLDB'12.
|
|
20 |
|
1. Nakamoto, Bitcoin: A Peer-to-Peer Electronic Cash System, 2008
2. Garay et al, The Bitcoin Backbone Protocol: Analysis and Applications, EUROCRYPT'15.
|
|
21 |
|
Wood, Ethereum: A Secure Decentralised Generalised Transaction Ledger, 2014 |
Ethereum White Paper |
22 |
|
Brent et al, Ethainter: A Smart Contract Security Analyzer for Composite Vulnerabilities, PLDI'20.
|
Li et al, A Survey on the Security of Blockchain Systems, arXiv:1802.06993.
|
23 |
|
1. Bonneau et al, Coda: Decentralized Cryptocurrency at Scale, 2018.
2. Meckler, Snarky: A High-Level Language for Verifiable Computation, 2018.
|
|
24 |
|
Gilad et al, Algorand: Scaling Byzantine Agreements for Cryptocurrencies, SOSP'17.
|
|