Lectures Publications Theses Events

HS18

Distributed Systems Advanced & Blockchain (DSA)

alt text

DSA Challenge Task HS 2018 Winner

The winning group is: Dumeni Vincenz, Fabio Rosetto, Alessandro Bonomo.

The jury and students were impressed by their innovative solution to use the IOTA blockchain as a signaling layer for WebRTC. Their chat application met all the requirements and showed how a truly decentralized solution could be built.

The contents of the lecture are still being defined. Thus, topics below are just an indication. The PDFs and other files are accessible within the HSR network. If you want to access these files from home, use VPN.

NrDatePreliminary TopicsWhoFiles
0118.09.2018Admin / Miniproject / Repetition VSSThomas BocekDSA-HS18-01-Admin_v2.pdf, DSA-HS18-01-VSS_v3.pdf
0225.09.2018Repetition VSS / TomP2P BasicsThomas BocekDSA-HS18-02-TomP2P_v1.pdf, tomp2ptest.zip
0302.10.2018WebRTC / TomP2P recapThomas BocekDSA-HS18-03-WebRTC_v1.pdf, DSA-HS18-02-TomP2P-2_v1.pdf
0409.10.2018Security Considerations / EthereumThomas BocekDSA-HS18-02-Security_v3.pdf, DSA-HS18-04-Ethereum_v2.pdf
0516.10.2018Ethereum II / SecurityRoman Blum / Thomas BocekDSA-HS18-05-SmartContracts_v1.pdf
0623.10.2018ICOs / NEOThomas BocekDSA-HS18-06-ICO_v1.pdf, DSA-HS18-06-NEO_v2.pdf
0730.10.2018IOTA / Bazo PoS and Bazo ShardingRoman Blum / Thomas BocekDSA-HS18-06-IOTA_v4.pdf, DSA-HS18-07-ConsensusScalability_v3.pdf
0806.11.2018Protocol Details - Noise, RLPx, QUIC / Kademlia broadcastThomas BocekDSA-HS18-08-Protocol_v3.pdf
0913.11.2018vDHT / Raft / Paxos / Applied CryptographyThomas BocekDSA-HS18-09-Consensus-Classic_v1.pdf, DSA-HS18-09-ECC_v1.pdf
1020.11.2018MoneroSebastian Küngmonero.pdf
1127.11.2018Bitcoin AdvancedJames Chiangteachbitcoin.github.io Due to the restructuring of the course material, no questions about this topic will be asked in the exam
1204.12.2018Blockchain Voting
Cryto Mining
Admin(challenge task, exam, feedback)
08:10-08:55 Christian Killer, Raphael Matile
09:05-09:30 Nello Tolino
09:35-09:50 Thomas Bocek
provotum.pdf
Mining_Lecture.pdf
DSA-HS18-12-Admin_v1.pdf
1311.12.2018Challenge Task PresentationsStudents
1418.12.2018Fragestunde und FeedbackThomas Bocek/Roman BlumDSA-HS18-14-Admin_v1.pdf
1508.01.2019BeratungswocheThomas Bocek/Roman Blum

Questions that were asked during the exam

Challenge Task HS 2018

This semester's challenge task (CT) is the design and implementation of a fully-distributed, P2P messaging application with an integrated, blockchain-based notary service.

The system consists of two parts:

  1. The first part will be similar to a instant messaging application such as Bleep, Signal, or Telegram, where users are able to message other application's users. The application should have the notion of a contact list composed of friends. A friend is defined as being another application's user that accepted to appear within a respective user's contact list -- therefore the friendship is bi-directional, meaning that users should send requests to other users asking permission to be added. Once the permission is granted, the specific user becomes available in the contact list. Moreover, a user should be able to chat with one or more friends (supporting group chat) when the respective users are online. In order to achieve this, the user's contact lists as well as the user's status (online or offline) should be stored in a distributed manner. Optionally, the application should be able to support offline messages, meaning that offline users are able to receive either chat messages when they go online (at any time). Each student's group is free to decide about specifics of building the P2P messaging application and how to organize the information within the distributed network.
  2. The second part consists of a fully decentralized, persistent notary service (Eingeschriebener Brief). A user has the option to send a message and the recipient has to acknowledge its reception. The user on the receiving end should have the possibility to accept or reject such a message. The proof of reception needs to be globally and permanent available. Thus, even when sender and recipient are colluding are denying a message, it should still be provable by any other peer that the message was received.

Requirements

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

  1. Full decentralization and P2P mechanisms: The solution shall not contain any central elements (besides bootstrapping peers) and the solution shall be based on peer-to-peer mechanisms. Any peer can be used for bootstrapping. The solution can enable access from multiple peers and the solution shall be robust against peer or link failure.
  2. Send messages between peers. The application must support one-to-one and group communication.
  3. Quickly and easily verify messages. Each participating user of the network is connected to a wallet. Users can create verified messages from their connected wallet.

Further requirements are:

Libraries and Tools

The items below represent supporting libraries, tools, or references that are recommended to be taken into consideration.

Organization

Milestones

There will be one milestone during the CT. The milestone shall include a fully distributed P2P system, preferably including basic messaging functionality.

Please send your source code to your supervisors until November 6th 23:59. Make sure that your submission includes setup instructions. If the supervisors are not able to run your application using the instructions given, you will be disqualified from winning an award. However, you will be given a second chance to submit your source code a week later in order to still pass the attestation. If you fail the second chance, you won't be able to attend the examination.

Presentation and Evaluation

Challenge task presentations and demonstrations will take place on December 11th. On these dates, the groups will present and demonstrate their results, which will be evaluated by a jury. Presentations and demos on dates will start at 08:10 in 3.114, and we will continue at 10:10 in room 1.263.

Note: The participation of the CT is mandatory for the permission to attend the exam. There will be no grade and you can only pass or fail the CT. However, keep in mind that participation will greatly reduce the effort you have to spend studying for the exam.

Results

NrFiles
01das-p2pchat-remo-keerthikan.pdf, das-p2pchat-remo-keerthikan.zip
02dsa-blockchat-martin-tobias-pascal.pdf, dsa-blockchat-martin-tobias-pascal.zip
03dsa-challenge-task-lukas-rolf.pdf, dsa-challenge-task-lukas-rolf.zip
04dsa-chat-elias-alexander-pascal.pdf, dsa-chat-elias-alexander-pascal.zip
05dsa-chat-matthias-sandro-raffael.zip, dsa-chat-server-matthias-sandro-raffael.zip, dsa-chat-matthias-sandro-raffael.pdf
06dsa-chat-micha-ben-zarko.pdf, dsa-chat-micha-ben-zarko.zip
07dsa-chatski-jan-gabriel-fabian.pdf, dsa-chatski-jan-gabriel-fabian.zip
08dsa-chatter-andi-jonas.pdf, dsa-chatter-andi-jonas.zip
09dsa-dcas-lukas-demian-patrick.pdf, dsa-dcas-lukas-demian-patrick.zip, dsa-gotary-lukas-demian-patrick.zip
10dsa-iota-messenger-alessandro-dumeni-fabio.pdf, dsa-iota-messenger-alessandro-dumeni-fabio.zip
11dsa-p2p-chat-dominik-cyrill.pdf, dsa-p2p-chat-dominik-cyrill.zip
12dsa-p2p-messaging-cyril-roman.pdf, dsa-p2p-messaging-cyril-roman.zip
13dsa-peerjs-chat-pirmin-yannick-matthias.pdf, dsa-peerjs-chat-pirmin-yannick-matthias.zip