Document overview

This document contains the roadmap of activities to accomplish the topics proposed by the 2020 internship project named Build a university course on Hyperledger Fabric using Hyperledger Umbra

Motivation for this internship

A growing part of our community is our partnership with academia. Hyperledger Fabric and other Hyperledger projects are being incorporated in to research and education in universities more and more all over the world. Hyperledger can aid the growth by preparing study materials, sample lab experiments and quizzes and tests that teach computer science students about distributed systems and consensus algorithms and cryptography. Hyperledger Umbra has streamlined the process of setting up a full Hyperledger Fabric network running on a single computer. It provides an ideal environment for students to learn Hyperledger Fabric administration as well as use it for running lab experiments and learning exercises. This mentorship is focused on producing a "classroom-in-a-box" for an introductory computer science course on distributed systems and algorithms that can be offered to universities that wish to use Hyperledger Fabric in their curriculum.

End Goal of this internship

Build a self-contained master level university course that can be leveraged to teach enterprise blockchain technologies.


Course Motivation & Overview

Provide a reliable basis for university students to learn blockchain through Hyperledger Fabric, and, optionally, other Hyperledger technologies.

This course is a 6-7.5 ECTS master level course that assumes 3 hours of theory per week + 1.5 weeks of practical classes (laboratory) per week. Each lab takes approximately 1.5h of work, plus autonomous study. Assuming 1 ECTS = 24 hours of work, the total effort predicted solely from lab classes is  48-60 hours.

The course is divided into two module: Module I introduces the technology (labs 1-4), and Module II focuses on Hyperledger Fabric (labs 5-9). For universities using trimesters, the course can be separated into the two modules (1 per trimester). For universities using semesters, the whole course (labs 1-9) can be taught in that semester.


At the end of this course I will:

  1.  Understand the concepts in which blockchain is based (labs 1 and 2), what is blockchain, and which problems it can solve (lab 3)
  2. Know how Ethereum and Hyperledger Besu work. I will be able to write simple smart contracts and deploy them on several networks (lab 4)
  3. Know Hyperledeger Fabric's components in detail, as well as its architecture and transactional model (labs 5,6,7)
  4. Be able to write smart contracts (chaincode) for Hyperledger Fabric, and bootstrap a Hyperledger Fabric network running those contracts (labs 5,6,7)
  5. Understand advanced concepts on the area of consensus, using Hyperledger Umbra (labs 8, 9)

Course Requirements

 

Project plan


Schedule

Activity

Deliverables

As a Student, I will learn:

Week 1 - Week 2

June 1 - June 15

  • Contact possible contributors to this project
  • Setup project infrastructure
  • Delineate project plan
  • Skim through Hyperledger Fabric and Hyperledger Umbra documentation
  • Syllabus draft


  • Project plan
  • Course syllabus draft

Week 3 - Week 4

June 15 - June 29

  • Design Lab 1: Fundamentals on Distributed Systems
  • Lab 1 guide
  • Basics of Distributed Systems
  • RAFT consensus algorithm

Week 5 - Week 6

June 29 - July 13

July 10: First Quarterly Evaluation

  • Design Lab 2: Fundamentals on Cryptography and Security
  • Lab 2 guide
  • Lab 2 support files
  • Basics of Cryptography and Security 
  • RSA Algorithm
Report on the First Quarterly EvaluationAll activities defined for weeks 1-6 were successfully conducted. All projected deliveries were published. 

Week 7 - Week 8

July 13 - July 27

  • Design Lab 3: A Primer on Blockchain


  • Lab 3 guide
  • Lab 3 support files

Week 9 - Week 10

July 27 - August 3

  • Design Lab 3: A Primer on Blockchain
  • Create simple blockchain for teaching purposes
  • Lab 3 support files 

Week 11 - Week 12

August 3 - August 17

  • Read Hyperledger Fabric 2.0 documentation
  • Design Lab 4: Hyperledger Fabric
  • Lab 4 guide
  • Lab 4 support files
  • Fabric Project Proposal

Report on the Second Quarterly EvaluationAll activities up to week 12 were successfully conducted. A minor change in the project plan took place. The first pre-release of the course is available: https://github.com/hyperledger-labs/university-course/releases/tag/0.1 

Week 13 - Week 14

August 17 - August 31

August 21: Second Quarterly Evaluation

  • Design Lab 5: Hyperledger Fabric
  • Lab 5 guide
  • Lab 5 support files

Week 15 - Week 16

August 31 - September 14

  • Design Lab 6: Hyperledger Fabric
  • Lab 6 guide
  • Lab 6 support files

Week 17 - Week 18

September 14 - September 28

  • Read Hyperledger Umbra documentation
  • No deliverable

Week 19 - Week 20

September 28 - October 12

October 2: Third Quarterly Evaluation

  • Discuss collaboration with Umbra maintainers
  • Design Lab 7: Hyperledger Umbra
  • Lab 7 guide
  • Lab 7 support files

Week 21 - Week 22

October 12 - October 26

  • Design Lab 8: Hyperledger Umbra (note: not developed due to external dependencies)
  • Lab 8 guide
  • Lab 8 support files
  • Update previous deliverables

Week 23 - Week 24

October 26 - November 9

  • Polish lab guides and support files
  • Final course syllabus



Week 24 

November 9 - November 13

November 13: Fourth Quarterly Evaluation

  • Project conclusion
  • Project presentation
  • Project dissemination
  • Final presentation
  • Articles for project promotion (e.g., on Medium)



Processes


Future Work:


Extra (If time allows):


  1. Read Hyperledger Besu documentation
  2. Read Ethereum documentation
  3. Design Lab 4: Hyperledger Besu and Ethereum