Distributed Computing
ETH Zurich

Distributed Systems (HS 2024)

Course Catalogue

Note: This course is part of the course "Computer Systems" (252-0217-00L), but can also be taken as a standalone course: "Distributed Systems" 227-0555-00L. For the full course held together with Professor Roscoe visit the corresponding webpage and the corresponding internal moodle.

Registration Notice: You can register for the course without joining the exercise group. You can attend the exercises whether or not you have joined the group.

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.

Organization

The first session: The course will begin with a session on Monday, November 4 at 10:15-12:00 in CAB G61. During this session, Thomas Locher will introduce the course, explain the course structure, and provide a high-level overview, in particular of the two chapters of the first week, Fault Tolerance and Consensus.

This course partially follows the flipped classroom paradigm. You (the student) will self-study all important concepts by

For each topic, the whole class meets every week on Friday. Each class meeting is organized as follows:

We have weekly exercise sessions on Wednesday, with questions on the level of exam questions.

Moodle: This course shares a moodle page with Computer Systems where students can ask questions on a Q&A forum. If you are enrolled in Computer Systems or Distributed Systems, then you should be able to access the moodle page. If you cannot, then please contact Mose Mizrahi Erbes.

Last year's script: You can find last year's script here. Please note that we are updating the script quite substantially this year.

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.

Special Lecture

There will be a special lecture after the last quiz on December 20 where we will show how to write, deploy, and interact with a smart contract on the Internet Computer. Attendance is highly recommended!

Lecture Material

Alternate Video Link: The lecture videos are uploaded on Youtube. If you do not wish to use Youtube, or you wish to download the videos, you can also access the videos on polybox.

Title Lecture Notes Exercises Video Links Extra
Chapter 14
Introduction
04.11.2024
PDF
--- Introduction Video
---
Chapter 15
Fault Tolerance & Paxos
04.11.2024
PDF
--- Fault Tolerance & Paxos Playlist
State Replication
Paxos Explained
---
Chapter 16
Consensus
04.11.2024
PDF
Assignment
Solution
Slides
Recording
Consensus Playlist
The Two Generals Problem
Consensus in f+1 Rounds
Impossibility of Consensus
Randomized Consensus
---
Chapter 17
Byzantine Agreement
11.11.2024
PDF
--- Byzantine Agreement Playlist
Byzantine Agreement
The 3f+1 Bound of Byzantine Agreement
The King Algorithm
Asynchronous Byzantine Agreement
---
Chapter 18
Broadcast
11.11.2024
PDF
Assignment
Solution
Slides
Recording
Broadcast Playlist
Fault-Tolerant Broadcast
Reliable Broadcast
Reliable Broadcast with Erasure Coding
Reliable Broadcast with Low Communication Complexity
---
Chapter 19
Shared Coins
18.11.2024
PDF
--- Shared Coins Playlist
Random Oracles and Bit Strings
A Simple Shared Coin
Shared Coins on a Blackboard
Shared Coin via Threshold Cryptography
Shared Coin for Synchronous Byzantine Agreement
---
Chapter 20
Quorum Systems
18.11.2024
PDF
Assignment
Solution
Slides
Recording
Quorum Systems Playlist
Quorum Systems
Effcient Quorum Systems
Fault Tolerant Quorum Systems
---
Chapter 21
Approximate Agreement
25.11.2024
PDF
--- Approximate Agreement Playlist
Approximate Agreement
Asynchronous Approximate Agreement
---
Chapter 22
Consistency & Logical Time
25.11.2024
PDF
Assignment
Solution
Slides
Recording
Linearizability
Eventual Consistency
Logical Time
---
Chapter 23
Clock Synchronization
02.12.2024
PDF
--- Clock Synchronization Playlist
Clock Synchronization
Local Clock Synchronization
---
Chapter 24
Distributed Storage
02.12.2024
PDF
Assignment
Solution
Slides
Recording
Distributed Storage Playlist
The Hypercube
Overlay Networks
Hypercubic Networks
Distributed Hash Tables (DHTs)
---
Chapter 25
Game Theory
09.12.2024
PDF
--- Game Theory Playlist
The Prisoner's Dilemma
Selfish Caching and The Price of Anarchy
How Closing Roads Could Speed Up Traffic - The Braess Paradox
Second Price Auction & Mechanism Design
---
Chapter 26
Eventual Consistency & Bitcoin
09.12.2024
PDF
Assignment
Slides
Recording
Bitcoin Playlist
But how does bitcoin actually work?
Is Bitcoin Secure?
---
Chapter 27
Internet Computer
16.12.2024
PDF
--- Internet Computer Playlist
Internet Computer Overview
Abortable Broadcast
Internet Computer Consensus
Internet Computer State Machine Replication
Note: There will be a special lecture
on December 20 after the quiz.
Attendance recommended!

Exam Preparation

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, HS20, HS21, HS22, HS23. 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.