Lectures Publications Theses Events

FS21

Challenge Task Winner Distributed Systems & Blockchain FS 2021

The winning group is: Andy Pfister, Leandro Ceriani, Michael Brändli

Andy, Leandro, and Michael implemented MegaMeme, which is a voting meme platform with Svelte and Ruby on Rails. They used 3 locations to run their platform redundantly, used docker swarm, and for a unified filesystem GlusterFS. For the database they used CockroachDB. (Announcement)

The price is sponsored by Axelra, a tech venture builder that accelerates digital business models.

Important dates

Distributed Systems & Blockchain (DS1)

NrDate LectureDate ExerciseTopicsSlidesMilestones
0123.02.2021-Admin, Introduction-Group forming, idea for services
0202.03.202102/03.03.2021Protocols, Basics-Group forming, idea for services
0309.03.202109/10.03.2021Containers and VMs-Information flow, setup dev environment
0416.03.202116/17.03.2021Distributed Applications: load balancing-Load balancer
0523.03.202123/24.03.2021Authorization (basic, digest, session-based, JWT, OAuth)-JWT Authorization
0630.03.202130/31.03.2021Application Protocols and RPC-Storage backend
07--Eeaster Vacations-
0813.04.202113/14.04.2021Distributed Version Control : git-
0920.04.202120/21.04.2021Deployment I, Blockchain, Bitcoin I-
1027.04.202127/28.04.2021Deployment II, Blockchain, Bitcoin II-Frontend
1104.05.202104/05.05.2021Blockchain, Bitcoin, Ethereum III-Connecting everything
1211.05.202111/12.05.2021Real-world examples-
1318.05.202118/19.05.2021Challenge Task Presentations I-
1425.05.202125/26.05.2021Challenge Task Presentations II-
1501.06.2021-Challenge Task Award Winner Announcement, Q&A-
1610.08.2021-Beratungswoche

Online lectures

Due to COVID-19, the DS1 lecture will be held online. I'm preparing online videos as a replacement for the lectures on Tuesdays 13:10 - 14:50. The length of the videos will be ~ 80 - 100 minutes (2 x 45min. lectures) divided into segments. For the exercises, I will be available online on Tuesday from 15:10 - 16:50 and Wednesday 10:10 - 16:50 on MS Teams. Team code: ngh0p3h. Please contact me if you have any questions regarding the challenge task or also just to say Hi :) During exercises, you can work on your challenge task.

The online lectures and PDFs can be accessed from outside (also on Youtube), the excercise material only with VPN.

Lecture 1

Admin News
Introduction

The admin part gives an overview over this lecture and presents the challenge task for this course (Slides: DS1-FS21-01-Admin.pdf). The second video is the segment "distributed systems in the news", where I present recent articles and blog posts related to distributed systems and blockchains. This video presents a rant involving ECC by Linus Torvalds, a scaling advice, and about the technical complexity in blockchain projects (Slides: DS1-FS21-01-News.pdf). The third video starts with the distributed systems introduction (Slides: DS1-FS21-01-Intro.pdf). [116min]

Lecture 2

Admin News
8 Fallacies Protocols

The admin part is about the challenge task and the groups (Slides: DS1-FS21-02-Admin.pdf). The second video is the segment "distributed systems in the news", where I talk about Kubernetes complexity and that SSD will eventually fail (Slides: DS1-FS21-02-News.pdf). The third video starts with 8 fallacies (on slide 21) of distributed systems and the fourth video presents protocols (Slides: DS1-FS21-01-Intro_v2.pdf, DS1-FS21-02-Proto_v2.pdf). [117min]

Lecture 3

Admin News
Containers and VMs

The admin part is about the challenge task and the groups (Slides: DS1-FS21-03-Admin.pdf). The second video is the segment "distributed systems in the news", with an article about bitsquatting and a reminder that hardware in outer space needs to be built much more robust. The third article is about the GPU shortage and potential solutions. The fourth article is a reminder that speed matters and the last article is a nice example of a HTTP server in golang (Slides: DS1-FS21-03-News.pdf).The third video introduces Containers and VMs (Slides: DS1-FS21-03-Virtualization.pdf). [99min]

Lecture 4

News
Load Balancing

The first video is the segment "distributed systems in the news", with an articles about cryptominers, EIP-1559, expensive cloud services, and the fire at SBG2 (Slides: DS1-FS21-04-News.pdf). The second video introduces Load Balancing (Slides: DS1-FS21-04-Loadbalancing.pdf). [96min]

Lecture 5

News
Authentication

The first video is the segment "distributed systems in the news", with an a discussion about complexity and some performance number of Stack Exchange. The next article is about migrating a load balancer at Slack, following the $60 million auction of an digital image with an NFT, with some interesting insights (Slides: DS1-FS21-05-News.pdf). The second video introduces Authentication (Slides: DS1-FS21-05-Auth.pdf). [87min]

Lecture 6

Admin News
Application Protocols and RPC

The admin part shows the current planning and gives an update on round-robin load-balancing with Traefik and Nginx. (Slides: DS1-FS21-06-Admin.pdf). The second video is the segment "distributed systems in the news" with more NFTs and DeFi news and articles (Slides: DS1-FS21-06-News.pdf). The third video presents application protocols and RPC mechanisms. (Slides: DS1-FS21-06-App-proto.pdf). [118min]

Lecture 7

Easter Vacations...

Lecture 8

Admin News
Distributed Version Control

The admin part shows the current planning, gives an update on the challenge task hand-in, and provide more details on HTTP keep-alive, health checks, and distroless docker images. (Slides: DS1-FS21-08-Admin.pdf). The second video is the segment "distributed systems in the news" with Monero mining with Github Actions, Docker without Docker, and why hardware can fail (Slides: DS1-FS21-08-News.pdf). The third video presents distributed version control with git. (Slides: DS1-FS21-08-Git.pdf). [100min]

Lecture 9

News Deployment
Bitcoin/Blockchain

The first video is the segment "distributed systems in the news" with Firefox and Quick, CORS, and lots of blockchain news. (Slides: DS1-FS21-09-News.pdf). The second video is the first part of the deployment lecture (Slides: DS1-FS21-09-Deployment.pdf). The third video starts with Bitcoins and Blockchains. (Slides: DS1-FS21-09-Bitcoin-Blockchain.pdf). [121min]

Lecture 10

News Deployment II part 1
Bitcoin/Blockchain II Deployment II part 2

The first video is the segment "distributed systems in the news" with a tiny docker container, leaked credentials and Monero mining, and Thodex, a Turkish crypto exange. (Slides: DS1-FS21-10-News.pdf). The second video is the second part of the deployment lecture (Slides: DS1-FS21-10-Deployment2.pdf). The third video continues with Bitcoins and Blockchains. (Slides: DS1-FS21-10-Bitcoin-Blockchain2.pdf). [74min]

Lecture 11

News Bitcoin/Blockchain III
Admin

The first video is the segment "distributed systems in the news" with the Chia blockchain, more NFTs, and a library to build your own DNS server. (Slides: DS1-FS21-11-News.pdf). The second video is the third part of the blockchain lecture with Ethereum and Solidity. This video is the last lecture with content relevant for the exam, the lectures 12 and 15 will be shorter and lectures 13 and 14 will be the challenge task presentations. (Slides: DS1-FS21-11-Bitcoin-Blockchain3.pdf). The third video is the admin part. (Slides: DS1-FS21-11-Admin.pdf, DS1_Exam_2020-FS_v3.pdf). [147min]

Lecture 12

News Jani Helin, Moflix Dr. Guilherme Sperb Machado, AxLabs Axelra Team
swype with eSIM

The first video is the segment "distributed systems in the news" with the Chia blockchain, some critical thoughts about the crypto world, and the Pinecone overlay network for P2P communication. (Slides: DS1-FS21-12-News.pdf). The second video is the interview with Jani Helin, Technical Director at Moflixgroup, where Jani talkes about the architeckure of the Swype platform. The third video shows swype in action. The fourth video is the interview with Guilherme Sperb Machado, who is the founder of AxLabs. The fifth video is the interview with the Axelra team.[85min]

Lecture 13

News

The first video is the segment "distributed systems in the news" with Elon Musk and cryptocurrencies. (Slides: DS1-FS21-13-News.pdf). [XYmin]

Lecture 14

News

The first video is the segment "distributed systems in the news" with more tweets from Elon Musk, more cryptocurrencies, and a technical article from Vitalik Buterin on blockchain scalability. (Slides: DS1-FS21-14-News.pdf). [XYmin]

Lecture 15

News

The first video is the segment "distributed systems in the news" with the Chia cryptocurrency and the released specification of QUIC. (Slides: DS1-FS21-15-News.pdf). [XYmin]

Lecture 16

Beratungswoche

This is the Q&A session (Slides: DS1-FS21-16-Admin.pdf). [66min]

Challenge Task FS 2021

This semester's challenge task (CT) is the design and implementation of a simple distributed system, with the following components:

  1. Simple Frontend (e.g., HTML, Vue, React, Svelte)
  2. Loadbalancer(e.g., traefik, nginx, HAproxy, Caddy)
  3. Two instances of a service (your choice)
  4. One storage backend (Postgres, simple KV memory storage)
  5. JWT Authentication

VirtualBox Image

You can deploy on any machine you want (AWS, Azure, or your own machine). If you don't want to deploy on your maschine, you can use the following VirtualBox image (139MB). The alpine image is a VirtualBox image, that can be imported. Install VirtualBox and click on "File -> Import Appliance" to import the ova image. Once the image is started, you can login with root/ost12345 or ssh into the image with ssh root@localhost -p 2222. Since docker and docker-compose is already installed, you can try the command docker run hello-world. You should see a "Hello from Docker!".

To use password less login, use ssh-copy-id -p 2222 root@localhost, which copies your public key to your VM and on the next login, you don't need to provide a password.

Requirements

All requirements below must be met in order to pass the challenge task.

  1. Load balancing
  2. Scalable service
  3. JWT authentication
  4. Dockerized
  5. Use latest stable releases of chosen libraries and frameworks

Deliverables: 17.05.2021, 23:59 (CET) - well documented infrastructure, presentation (slides) of the application, also showing the architecture and design decisions via email to thomas.ost-at-bocek.ch (the OST mailserver cannot handle attachements with source code). The code and configuration should be easy to read and/or well documented, the presentation (slides or text) should show the architecture, components, and design decisions. During the weeks 18.05./25.05., you will present and demo your solutions via MS Teams.

You are allowed to use any language, framework, and platforms. However, the supervisors are familiar with those: Java, Golang, JavaScript, Linux.

Groups

There will be groups of 2 - 3 for the challenge task. During the challenge task, the group shall meet every week during exercise hours to work on the task and discuss the next steps. The groups shall utilize their homework times to work on the CT, besides the exercise time slots assigned on Tuesday/Wednesday. You do not have be physically present at the exercises. The groups shall determine and set-up an internal project plan and shall distribute the workload so that each group member gets a fair load of work. Results are only accessible via VPN.

NrName 1Name 2Name 3ProjectSourceSlidesVideo
01Berke T.Simon C.Zvonimir S.E-voting01-source.zip01-slides.pdf01-presentation.mp4
02Thomas Z.Marc Eb.SplitFair02-source.zip02-slides.pdf02-presentation.mp4
03Marco M.Christian R.Reto E.Nutrinfo03-source.zip03-slides.pdf03-presentation.mp4
04Andy P.Leandro C.Michael B.MegaMeme04-source.zip04-slides.pdf04-presentation.mp4
05Janis W.Marius Z.Simon H.CineShare05-source.zip05-slides.pdf05-presentation.mp4
06David K.Luzia K.Jamie M.Einkaufsliste06-source.zip06-slides.pdf06-presentation.mp4
07Denis N.Floris S.Jan H.Strategy Game07-source.zip07-slides.pdf07-presentation.mp4
08Joel P.André B.Impfpass
09Pascal H.Marcel J.Alexandre L.ChaosConnect09-source.zip09-slides.pdf09-presentation.mp4
10Jonas K.Joel H.Hangman10-source.zip10-slides.pdf10-presentation.mp4
11Philipp E.Joel Sch.Severin G.Cookie Clicker11-source.zip11-slides.pdf11-presentation.mp4
12Pascal K.Joel Su.BETtery12-source.zip12-slides.pdf12-presentation.mp4
13Lukas D.Nicolai D.Nathanael G.Foto OL13-source.zip13-slides.pdf13-presentation.mp4
14Michel M.Ruwen F.Leonie D.RPS Extreme14-source.zip14-slides.pdf14-presentation.mp4
15Timon E.Jari E.Gian F.Zelr, Inventory List15-source.zip15-slides.pdf15-presentation.mp4
16Pascal G.Igor C.Roman S.Gambling with Fortuna16-source.zip16-slides.pdf16-presentation.mp4
17Isaac W.Damian K.Frantic17-source.zip17-slides.pdf17-presentation.mp4
18Pascal C.Lukas R.Dominik C.eikona18-source.zip18-slides.pdf18-presentation.mp4
19Robin F.Linard V.Tobias R.QR/Einzahlungsscheine19-source.zip19-slides.pdf19-presentation.mp4
20Sven H.Lukas V.bloxz20-source.zip20-slides.pdf20-presentation.mp4
21Abinas K.Thomas H.Bob's your Uncle21-source.zip21-slides.pdf21-presentation.mp4
22Marc Em.Samuel L.Diluxion M.URL shortener22-source.zip22-slides.pdf22-presentation.mp4
23Pascal S.Manuel W.Marco Z.ToDo-List23-source.zip23-slides.pdf23-presentation.mp4