Scheda programma d'esame
PEER TO PEER SYSTEMS
LAURA EMILIA MARIA RICCI
Academic year2016/17
CourseCOMPUTER SCIENCE
Code261AA
Credits6
PeriodSemester 2
LanguageEnglish

ModulesAreaTypeHoursTeacher(s)
SISTEMI PEER TO PEERINF/01LEZIONI48
EMANUELE CARLINI unimap
LAURA EMILIA MARIA RICCI unimap
Obiettivi di apprendimento
Learning outcomes
Conoscenze

The course aims at providing a mix of foundations and advanced knowledge in the field of distributed computing  specifically targeting peer to peer applications. The course provides both theoretical knowledge and applications to real scenarios.

The main three topics of the course regard Distributed Hash Table, Complex Network Analysis and Blockchain technologies

Knowledge

Students are expected to acquire the knowledge of the most important P2P protocols and applications techniques and methodologies for the definition of distributed systems large network modelling.The whole set of arguments will be complemented by assignments which can be executed ay home. The correct and timely production of assignment solutions substitutes the oral exam.

 

 

Modalità di verifica delle conoscenze

Delivery: face to face, with the support of computer based tools (software blackboard, audio/video of lessons available through web)

Learning activities:

  • attending lectures
  • individual study
  • Laboratory work
  • Practical

Attendance: Not mandatory

Teaching methods:

  • Lectures
  • laboratory (bring you own device model)
  • project work
Assessment criteria of knowledge

Learning activities:

  • attending lectures
  • individual study
  • Laboratory work

Attendance: Not mandatory

Teaching methods:

  • Lectures
  • laboratory (bring you own device model)
  • project work
Capacità

The student will eventually be able to design, develop and tune  distributed applications using peer-to-peer simulator or practical programming frameworks.

Modalità di verifica delle capacità

Mid and final term exercises are assigned during the course and part of the exam consist in the preparation of a small project, to be designed, developed and tested throgh the tools presented in the cours

Prerequisiti (conoscenze iniziali)

JAVA programming

Network programming frameworks

Basic mathematica skills

Corequisiti

No corequisite.

Teaching methods

Delivery: face to face

Learning activities:

  • attending lectures
  • preparation of oral/written report
  • participation in discussions
  • individual study
  • Laboratory work

Attendance: Advised

Teaching methods:

  • Lectures
  • project work
Programma (contenuti dell'insegnamento)

P2P Topologies
- Peer to Peer (P2P) systems: general concepts
- Unstructured Overlays: Flooding, Random Walks, Epidemic Di usion
- Structured Overlays: Distributed Hash Tables (DHT), Routing on a DHT
-Case Studies:
 Bittorrent as a Content Distribution Network: KAD implementation of
the Kademlia DHT, game-based cooperation


 Complex Network for the analysis of P2P systems


- Network models
- Random Graphs and Small Worlds
- Small World navigability: Watts Strogatz and Kleinberg.
- Complex networks navigability


 Cryptocurrencies and Blockchains


Basic concepts:
- review of basic cryptographic tools (digital signatures, cryptographic hash,
Merkle trees.,..)
- blockchains: de nitions
- distributed consensus: de nitions
- the Bitcoin blockchains
-  Nakamoto consensus
- Bitcoin mining mechanism
- pseudoanonymity: traceability and mixing
- the Bitcoin P2P Network
- The Bitcoin ecosystem
- scalability issues
- Bitcoin Extensions/alternatives: altcoins, sidechains, the StellarConsensus Protocol


- Applications of blockchains
- Ethereum: programming smart contracts
- Blockchain 1.0: cryptocurrencies
- Blockchain 2.0: nancial instruments built on cryptocurrencies
- Blockchain 3.0: applications beyond cryptocurrencies (DNS, lotteries, voting, IoT...)

Syllabus

The course introduces the methodologies and techniques for the development of peer to peer systems. The course presents both the basic technologies and a set of formal tools for these systems. Some concrete examples will be shown, for instance the e-Mule, Spotify, BitTorrent P2P applications. Some lessons will be devoted to the use of P2P technologies in cloud environments, with special reference to highly scalable data storage (e.g.: Dynamo, Cassandra). The final part of the course presents a set of highly scalable simulators for P2P systems. It is possible to implement a didactic project requiring the development of a set of simulations. Every year a set of project proposals will be presented, but the student may also present an original propose which must be approved by the teacher. Alternatively, the student may choose a written examination.

Bibliografia e materiale didattico

Slides of the course

Tutorials and papers available on the web.

 

Bibliography

Recommended reading includes:

  • "P2P and Blockchains Course notes", by Laura Ricci PDF available at https://elearning.di.unipi.it/course/view.php?id=89
  • apers and tutorials avaialable online relative to the different parts of the course
Indicazioni per non frequentanti

All the taching material is published on the age of the course

Modalità d'esame

(wrtten exam OR project) + oral test

if the student pass both mid and final term the oral proof, he/she is exempted from the oral examination

Stage e tirocini
  1. Analysis of the Bitcoin Transaction Graphs
    discovering economic phenomena through graph analysis
    implementing distributed access control policies through
  2. blockchains methodologies exploiting the Ethereum blockchain
  3. vertex centric algorithms for the analysis of complex graphs:
    current flow betweeness: graphs as electric circuits
Updated: 22/05/2017 14:13