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:
- Make valuable contributions to the Hyperleger Cactus codebase - experiencing the OSS workflow end to end
- 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:
7 | BREAK ONE | - | - | 10 |
8 | Plugin Architecture | TBD | TBD | 15 |
9 | API Server | TBD | TBD | 15 |
10 | OpenAPI | TBD | TBD | 5 |
11 | OSS Project Governance | TBD | TBD | 5 |
12 | Test Development & Execution (All-In-One Container Images) | TBD | TBD | 10 |
13 | BREAK TWO | - | - | 10 |
14 | Deployment Architecture Flavors - Low Resource Usage (local development & testing) | TBD | TBD | 5 |
15 | Deployment Architecture Flavors - High Resource (simulated production-grade environment) | TBD | TBD | 5 |
16 | Hello World - Backend: Imported Library | TBD | TBD | 5 |
17 | Hello World - Frontend: API Client | TBD | TBD | 10 |
18 | Example Application - Supply Chain App (Should be extended with HTLCs by the time of the workshop) | TBD | TBD | 15 |
19 | Future of Hyperledger Cactus | Peter Somogyvari <peter.somogyvari@accenture.com> | Peter Somogyvari <peter.somogyvari@accenture.com> | 10 |
20 | Dedicated Q&A Session (Questions should be welcome throughout as well) | - | - | 20 |
Learning Objectives
- Learn how an open-source project works in general
- How to pull request reviews are done
- Acquire basic git know-how about managing branches, rebasing onto the upstream's main branch
- Responding to reviews/questions/change requests from maintainers and/or other community members
- Learn to present the work/results that have been accomplished to a large audience
- Become proficient in NodeJS/Typescript
- Understand how large scale open source projects are managed (monorepo, automated CI+testing infrastructure)
- Learn how to create slides, tutorial videos, and other digital learning materials
- Learn about the Hyperledger Cactus plugin architecture
The following documents are good references to learn about interoperability:
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
- Git
- Docker / containerization
- NodeJS
- Typescript
- HTTP/REST/ExpressJS
- Swagger/OpenAPI Specification
- VSCode
- GitHub
- Computer Science 101
- 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