Lecture 6: Distributed Systems & Consensus