Distributed Computing
ETH Zurich

Distributed Systems (HS 2020)

Course Catalogue

Note: This course is part of the course "Computer Systems" (252-0217-00L). Visit the page of the full course held together with Professor Roscoe here.

This course introduces the fundamentals of distributed systems. We study different protocols and algorithms that allow for fault-tolerant operation, and discuss practical systems that implement these techniques. The objective of the course is for students to understand the theoretical principles and practical considerations of distributed systems. This includes the main models of fault-tolerant distributed systems (crash failures, byzantine failures, and selfishness), and the most important algorithms, protocols and impossibility results. By the end of the course, students should be able to reason about various concepts such as consistency, durability, availability, fault tolerance, and replication.

Topics: client-server, serialization, two-phase protocols, three-phase protocols, paxos, two generals problem, crash failures, impossibility of consensus, byzantine failures, agreement, termination, validity, byzantine agreement, king algorithm, asynchronous byzantine agreement, authentication, signatures, reliable and atomic broadcast, eventual consistency, blockchain, cryptocurrencies such as bitcoin and ethereum, proof-of-work, proof-of-*, smart contracts, quorum systems, fault-tolerant protocols such as piChain or pbft, distributed storage, distributed hash tables, physical and logical clocks, causality, selfishness, game theoretic models, mechanism design.

Course pre-requisites: None.

Course language: English.

Lecture by Roger Wattenhofer, Monday or Friday 10.15-12.00 @ Zoom (Meeting ID: 997 3143 5696 with Password: DustyWires).

Exercises Friday 14.15-16.00 @ Zoom (Meeting ID: 997 3143 5696 with Password: DustyWires). Exercises only take place in the weeks with a lecture.

Organization by Zeta Avarikioti.

Learning Task: The learning task, as mentioned in the performance assessment in the course catalogue, has been cancelled due to the change in the nature of the course (online).

Corona information: Both the lectures and the exercise sessions will be held exclusively over Zoom (Meeting ID: 997 3143 5696 with Password: DustyWires). We can use the eduApp for cklicker questions, but please use Zoom's chat feature to ask questions. We will record the lectures and exercise sessions, and we will make any future recordings available here.

Script 2020: You can fine the script for 2020 here.

Word of advice from the professor: Instead of attending this course, you can also just read The Saddest Moment by James Mickens, the guy who continuously tried to convince me that having vodka shots at a local Denny's at 3am is how I should spend my nights. Just reading Mickens will not give you any credits though.

Lecture Material

Lecture material and exercise sheets will be uploaded here as the lecture progresses. Note that chapter numbers are aligned with the course "Computer Systems".

Title Lecture Notes Exercises Assistants Additional Material
Chapter 14
Introduction
2020-11-02 (Monday)
PDF
PDF 2-on-1
--- Karolis
---
Chapter 15
Fault Tolerance & Paxos
2020-11-02 (Monday)
PDF
PDF 2-on-1
--- Karolis
Lecture Recording
Chapter 16
Consensus
2020-11-06 (Friday)
PDF
PDF 2-on-1
Exercises
Solutions
Karolis
Exercise Slides
Exercise Session Recording
Lecture Recording
Chapter 17
Byzantine Agreement
2020-11-09 (Monday)
PDF
PDF 2-on-1
--- Ard
Lecture Recording
Chapter 18
Broadcast & Shared Coins
2020-11-13 (Friday)
PDF
PDF 2-on-1
Exercises
Solutions
Ard
Exercise Slides
Exercise Session Recording
Lecture Recording
Chapter 19
Consistency & Logical Time
2020-11-16 (Monday)
PDF
PDF 2-on-1
--- Simon
Lecture Recording
Chapter 20
Time, Clocks & GPS
2020-11-20 (Friday)
PDF
PDF 2-on-1
Exercises
Solutions
Simon
Exercise Slides
Exercise Session Recording
Lecture Recording
Chapter 21
Quorum Systems
2020-11-23 (Monday)
PDF
PDF 2-on-1
--- Ard
Lecture Recording
Chapter 22
Eventual Consistency & Bitcoin
2020-11-27 (Friday)
PDF
PDF 2-on-1
Exercises
Solutions
Ard
Exercise Slides
Exercise Session Recording
Lecture Recording
Chapter 23
Game Theory
2020-11-30 (Monday)
PDF
PDF 2-on-1
--- Karolis
Lecture Recording
Chapter 24
Distributed Storage
2020-12-04 (Friday)
PDF
PDF 2-on-1
Exercises
Solutions
Karolis
Exercise Slides
Exercise Session Recording
Lecture Recording
Chapter 25
Advanced Blockchain
2020-12-07 (Monday)
PDF
PDF 2-on-1
--- Ye
Ethereum white paper
Lecture Recording
Chapter 26
Authenticated Agreement
2020-12-11 (Friday)
PDF
PDF 2-on-1
Exercises
Solutions
Ye
No Consensus Slides
Exercise Slides
Exercise Session Recording
Lecture Recording
Current Research
2020-12-14 (Monday)
--- --- Tejaswi
Ye
Zeta
Overview
Off-chain Protocols (slides)
Decentralized Exchange (slides)
Asynchronous Byzantine Agreement in Incomplete Networks (slides)
Asynchronous Byzantine Agreement in Incomplete Networks (paper)
Lecture Recording
No lecture or exercise session
2020-12-18 (Friday)
--- --- --- ---

References

[BCS] Blockchain Science: Distributed Ledger Technology
Roger Wattenhofer
Inverted Forest Publishing, 2019, ISBN 978-1793471734

Exam Preparation

The written exam takes place on Thursday, January 28th at 14:30, in HIL G 61. It lasts 90 minutes and no written or electronic aids are permitted.

All material covered by lectures and exercises may be tested in the exam. We did not discuss Sections 19.4, 19.5, and 25.5, so the content of these sections is not part of the exam. We did not discuss some of the hypercubic networks (24.12-24.16), and we only discussed the f-opaque quorum system (21.4) on a high level.

Do not memorize the details of the remarks (e.g., what year UTC was established, or how the UTC format looks like; but you should know that UTC exists). Also, there is no need to learn all details of the algorithms and proofs. However, you should understand their concepts and ideas, so that you could explain them, or discuss variants.

To get an idea for the style of questions in the exam, you may consult exams from previous years: HS09, HS10, HS11, HS12, HS13, HS14, HS15, HS16, HS18, HS19. Beware that the topics covered have shifted around a little over the years, so some older exams have questions about topics that are not in the lecture anymore. Some of the older exams are in German, but this year’s exam is in English.

Q&A: For any questions you may have, please contact the corresponding assistant of each chapter, or Zeta Avarikioti. You can find the moodle discussion from the CompSys course here.

You can find the Q&A recording here.