Technical Deep Dive Workshop Content Creation for Hyperledger Cactus

Project TitleTechnical Deep Dive Workshop Content Creation for Hyperledger Cactus
Status

COMPLETED

Difficulty

 HIGH

Motivation 

The emergence of blockchain interoperability is reducing the risk of investing in blockchain by avoiding vendor lock-in, leveraging interoperation with off-chain systems, and providing a truly open ecosystem, enabling a network of blockchains.  Interoperability allows decentralized applications to run in multiple blockchain platforms, making it easier to avoid data siloes and vendor-lock-in. As interoperability reduces the risk of investing in blockchain and allowing for a diverse range of functionalities to operate in bigger ecosystems, it unlocks economies of scale and further stimulates innovation. 

We are in the inception of interoperability, and Hyperledger Cactus plays a central role. In this internship, you will learn about blockchain interoperability and Hyperledger Cactus.

Description 

The project is about two main goals:

1) becoming knowledgeable in interoperability and an expert in Hyperledger Cactus

2) producing content for a ~4 hour-long interoperability workshop that the Cactus maintainers are planning on creating sometime in the fall of 2022.

Apart from creating content, the interns are encouraged to also contribute to Cactus' documentation and fix bugs that may come up during the production of the content itself. An example for the latter would be when the intern is trying to put together a tutorial for something and it turns out that the feature being demonstrated has a problem with it that needs fixing before the content can be presented.

The opportunity is two-fold:

  1. Make valuable contributions to the Hyperleger Cactus codebase - experiencing the OSS workflow end to end
  2. Have the opportunity to present/demonstrate certain parts of the framework in the workshop itself (if the intern is so inclined - this is definitely what the mentors will recommend they do of course)

Additional Information

There is a rough agenda that we are putting together as of the time of this writing and right now, the relevant part of it looks like this:

No.Topic Covered

Hours required
1

Introduction to Hyplerledger and HL Cactus

TBDTBD2
2The architecture of blockchain and blockchain-based  applicationsTBDTBD2
3Why do we need Hyperledger Cactus?TBDTBD1
4Understanding a few example use-casesTBDTBD4
5Architecture of Hyperledger CactusTBDTBD4
6An overview of the example application TBDTBD4

7

BREAK ONE--N/A
8Plugin ArchitectureTBDTBD15
9API ServerTBDTBD15
10OpenAPITBDTBD5
11OSS Project GovernanceTBDTBD5
12Test Development & Execution (All-In-One Container Images)TBDTBD10
13BREAK TWO--N/A
14Deployment Architecture Flavors - Low Resource Usage (local development & testing)TBDTBD5
15Deployment Architecture Flavors - High Resource (simulated production-grade environment)TBDTBD5
16Hello World - Backend: Imported LibraryTBDTBD5
17Hello World - Frontend: API ClientTBDTBD10
18Example Application - Supply Chain App (Should be extended with HTLCs by the time of the workshop)TBDTBD15
19Future of Hyperledger CactusPeter Somogyvari <peter.somogyvari@accenture.com>Peter Somogyvari <peter.somogyvari@accenture.com>10
20Dedicated Q&A Session (Questions should be welcome throughout as well)--20

Learning Objectives

  1. Learn how an open-source project works in general
    1. How to pull request reviews are done
    2. Acquire basic git know-how about managing branches, rebasing onto the upstream's main branch
    3. Responding to reviews/questions/change requests from maintainers and/or other community members
  2. Learn to present the work/results that have been accomplished to a large audience
  3. Become proficient in NodeJS/Typescript
  4. Understand how large scale open source projects are managed (monorepo, automated CI+testing infrastructure)
  5. Learn how to create slides, tutorial videos, and other digital learning materials
  6. Learn about the Hyperledger Cactus plugin architecture

The following documents are good references to learn about interoperability:

https://www.techrxiv.org/articles/preprint/Do_You_Need_a_Distributed_Ledger_Technology_Interoperability_Solution_/18786527/1

https://www.techrxiv.org/articles/preprint/A_Framework_to_Evaluate_Blockchain_Interoperability_Solutions/17093039

Visualization and Analysis of Cross-chain Transactions

Expected Outcome

Slides and videos where applicable for the topics that are selected to be in scope for the internship project.

It is not expected that the entire list of items within the agenda is covered by the internship project, we can determine how much is appropriate at the time based on the skills and experience of the intern at the start of the project.

Relation to Hyperledger 

  • Hyperledger Cactus

Education Level

Any computer science/self-taught programming background is great regardless of the highest level of achieved education.

Skills


  1. Git
  2. Docker / containerization
  3. NodeJS
  4. Typescript
  5. HTTP/REST/ExpressJS
  6. Swagger/OpenAPI Specification
  7. VSCode
  8. GitHub
  9. Computer Science 101
  10. YouTube

If you don't know any don't worry, we can help!

Future plans

If it is successful, more content would always be welcome especially given that documentation/videos/tutorials/etc. get outdated fast and so it always is a windmill type of fight. We also plan on releasing Cactus 2.0 this year which will need even more of this type of work.

Preferred Hours and Length of Internship

It must be full-time because otherwise the project could not be completed by the beginning of Fall, 2022 which is when we are planning on (roughly) having the workshop.

Mentor(s) Names and Contact Info


Name: Rafael Belchior

Company affiliation: Blockdaemon & INESC-ID, Técnico Lisboa

Chat ID (Discord): rafaelapb#6679


Name: Peter Somogyvari

Company affiliation: Accenture

Chat ID (Discord): peter_somogyvari#3365