Enterprise Blockchain Technologies
Welcome to Enterprise Blockchain Technologies, a flexible, extensible, open-source course
This course aims at providing a reliable basis for university students to get started in enterprise blockchain.
This course contains the practical part of a university course on enterprise blockchain technologies. Typically, a university course is divided into theory and laboratory classes. The theory explains the theoretical foundations behind what is learned in the laboratories.
At the end of this course, you will:
Course Organization
The course is divided into two modules:
- Module I introduces enterprise blockchain (labs 1-4)
- Module II focuses on Hyperledger Fabric (labs 5-8).
Each laboratory is assumed to take 1.5h, supported by a teaching assistant. All laboratories assume 3h of theory classes. Thus, this course could be organized as a 7.5 ECTS university course.
For example:
- Universities using trimesters, a course on enterprise technologies uses 1 module (4.5 weekly hours for ~ 3 months).
For universities using semesters, a course on enterprise technologies uses 2 modules (4.5 weekly hours for ~ 5 months).
This course is flexible because you can pick the laboratories you wish to complete across modules. Currently, this course supports Hyperledger Fabric and Hyperledger Umbra but can be easily extended by adding modules.
Table of Contents
Module | Lab Number | Topic | Contents | Support files | Public Mirror |
---|---|---|---|---|---|
I | Lab 01 | Fundamentals on Distributed Systems | Guide Instructor's Guide |
||
I | Lab 02 | Fundamentals on Cryptography and Security | RSA implementation | Guide Instructor's Guide |
|
I | Lab 03 | A Primer on Blockchain | Blockchain4Students | Guide Instructor's Guide |
|
I | Lab 04 | Introduction to Hyperledger Fabric | Guide Instructor's Guide |
||
II | Lab 05 | Hyperledger Fabric: Infrastructure and Chaincode | Blockchain4Students Fabric Version | Guide Instructor's Guide |
|
II | Lab 06 | Hyperledger Fabric: Full-stack dApp | Blockchain4Students Fabric Version + Blockchain Client | Guide Instructor's Guide |
|
II | Lab 07 | Hyperledger Umbra: Introduction | Support Code | Guide Instructor's Guide |
|
II | Lab 08 | TBD | TBD | Support Code | Guide Instructor's Guide |
MODULE C | LAB X | CLASS ON Y | CONTENTS Z | SUPPORT MATERIALS W | Guides |
Folder organization
docs
- contains rendered labs
source
- contains the LaTeX sources for the labs and theory classes.
support
- contains the support files for the labs.
I want to attend this course
To participate in the course, do the following:
-
Fork this repository via Github UI.
-
Clone the repository to your machine: git clone https://github.com/YOUR_USERNAME/university-course
-
Access the guides (Guide and Instructor's Guide) either by:
- Public Mirrors (see the table of contents)
- Compile them at Overleaf or using a local LaTeX distribution. Create a .zip for the lab you want to attend. Upload that .zip to Overleaf following these instructions.
- Release files (contain compiled PDFs)
-
Do the lab. In case of doubts, open an issue at the official repository with the label "lab-question." In case of bugs, open an issue with the "bug" label.
-
The solutions are in the Instructors Guide file, available via step 3.
-
Share with your colleagues and provide feedback!
I want to teach this course
To teach this course, do the following steps:
-
Fork this repository via Github UI.
-
Clone the repository to your machine: git clone https://github.com/YOUR_USERNAME/university-course
-
Access the guides (Guide and Instructor's Guide):
- Using Overleaf. Create a .zip for the lab you want to attend. Upload that .zip to Overleaf following these instructions.
- Change the guides as needed (e.g., university logo, course's name, dates, etc.).
- Compile and download.
-
You can also leverage the support files for your students to experiment. In case of doubts, open an issue at the official repository with the label "lab-question". In case of bugs, open an issue with the "bug."
-
Share with your students and provide feedback!
I want to create my own materials and contribute to this course
This course is not a finished product and needs contributions. Your contributions are very welcome!
Note that contributions are not only code! There are a lot of tasks to build a successful open-source course for everyone. Generally, look for issues tagged with help-wanted. You can help to improve this project in the following ways:
-
Extend the course to other enterprise blockchain technologies. This can be done by adding a new Module. Since this course is modular, people, universities, and other learning institutions can build a customized course using various modules. Examples: Corda, Hyperledger Besu, Hyperledger Cactus, Hyperledger Sawtooth, Hyperledger Iroha, Cosmos, Polkadot, DAML.
-
Visually teach this course (e.g., YouTube tutorials, crash courses, Posters, flyers). You can use these materials for that!
-
Complete the current laboratories, as some labs are not 100% finalized. Some improvement options are present on the issues page.
-
Help improve the design of the lab guides.
-
Maintaining and disseminating this project. Contributions to disseminate and manage this project are welcome. Please contact Rafael Belchior <rafael.belchior (at) tecnico (dot) ulisboa (dot) pt>.
-
Contribute with technical expertise in the form of small articles, such as this introduction to the Libra Blockchain or this 2020 review on blockchain interoperability. Such articles can be added to a special module, in which students read and discuss them.
-
Add theory (slides, presentations, small videos) that can be used to complement the labs.
To contribute code, documentation, and others, please check the contributing guide.
List of contributors
- Rafael Belchior <rafael.belchior (at) tecnico (dot) ulisboa (dot) pt>
- Catarina Pedreira <catarina.pedreira (at) tecnico (dot) ulisboa (dot) pt>
- Iulia Mihaiu <iulia.mihaiu (at) student (dot) unitbv (dot) ro>
- Rafael Soares <joao.rafael.pinto.soares (at) tecnico (dot) ulisboa (dot) pt>
- Raphael Rosa (Raphaelvrosa) via the Hyperledger Umbra project
- banoris via the Hyperledger Umbra project
A list of university-level blockchain courses:
Legend:
Focus: Public Blockchains / Private Blockchains / Both
Maintainers
Mainteiner | Github | Rocket Chat | |
---|---|---|---|
Rafael Belchior | rafaelapb | rafaelapb | [email protected] |
Acknowledgements
This project is part of Hyperledger Labs and Hyperledger Summer Internships.
This project is idealized and greatly supported by:
- David Huseby - <dhuseby (at) linuxfoundation (dot) org>