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:
- Understand the concepts in which blockchain is based (labs 1 and 2), what is blockchain, and which problems it can solve (lab 3)
- Know how Ethereum and Hyperledger Besu work. I will be able to write simple smart contracts and deploy them on several networks (lab 4)
- Know Hyperledeger Fabric's components in detail, as well as its architecture and transactional model (labs 5,6,7)
- Be able to write smart contracts (chaincode) for Hyperledger Fabric, and bootstrap a Hyperledger Fabric network running those contracts (labs 5,6,7)
- Understand advanced concepts on the area of consensus, using Hyperledger Umbra (labs 8, 9)
- Basic programming skills
- Basic Linux literacy (Bash)
- Basic understanding of Docker
|As a Student, I will learn:|
Week 1 - Week 2
June 1 - June 15
Week 3 - Week 4
June 15 - June 29
Week 5 - Week 6
June 29 - July 13
July 10: First Quarterly Evaluation
|Report on the First Quarterly Evaluation||All activities defined for weeks 1-6 were successfully conducted.||All projected deliveries were published.|
Week 7 - Week 8
July 13 - July 27
Week 9 - Week 10
July 27 - August 3
Week 11 - Week 12
August 3 - August 17
|Report on the Second Quarterly Evaluation||All 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
Week 15 - Week 16
August 31 - September 14
Week 17 - Week 18
September 14 - September 28
Week 19 - Week 20
September 28 - October 12
October 2: Third Quarterly Evaluation
Week 21 - Week 22
October 12 - October 26
Week 23 - Week 24
October 26 - November 9
November 9 - November 13
November 13: Fourth Quarterly Evaluation
- The project will be publicly available as an Hyperleder Lab (including but not limited to source code, class guides, LATEX files, and presentation files).
- Coordination with related Hyperledger Internship programmes will be hold (Adding Network Fuzzing Capabilities to Hyperledger Umbra and Scaling Experiments with Hyperledger Umbra) so that the outcome of this internship can benefit from up-to-date efforts regarding Umbra.
- Quarter basis review according to the Hyperledger Internship Programme schedule
- Internal communication and updates:
- Rocket Chat/Email for communication
- Weekly meeting for project discussion
- Fix issues from the repository (which correspond to complete the course)
- Add Lab 8 on Umbra
Extra (If time allows):
- Provide theoretical classes materials that support the laboratory classes.
- Provide a diagnosis evaluation
- Formative evaluation quizzes, e.g., for labs 4, 7, and 9.
- Design Ethereum lab:
- Read Hyperledger Besu documentation
- Read Ethereum documentation
- Design Lab 4: Hyperledger Besu and Ethereum