Scaling Real World Hyperledger Fabric Deployments
Description
Summary: AID:Tech builds real world Blockchain applications using Hyperledger Fabric. With this internship you'll have the opportunity to work on scaling real world deployments build on our award winning platform.
Company background: AID:Tech's Transparency Engine and TraceDonate products are now being used by some of the world's most impactful organisations. We've brought transparency to the delivery of aid, traceability to donations and channeled remittances towards socially responsible services. Our platform is now positioned for growth and scaling to handle high volumes of users.
Additional Information
Aside from being a socially impactful organisation, our team comprises members of strong start-up pedigree, including Techstars and Entrepreneur First alumni. We also pride ourselves on being highly selective in who we take in by performing agile but thorough QA on our future colleagues and interns.
Technically, our team has contributed to multiple Linux Foundation projects, including Hyperledger Composer, the Fabric CA, Helm (including Charts for deploying Hyperledger Fabric and Composer) and have even open-sourced a library for deploying Hyperledger Fabric on Kuberntes, Nephos.
Furthermore, we have been active in helping educate the community, by releasing:
- A Composer chapter on the EdX course Blockchain for Business
- A course on Packt, Udemy and O’Reilly called Hyperledger for Blockchain Applications
- A webinar on deploying Hyperledger Fabric on Kubernetes
- A workshop (see video below) on the Hyperledger Global Forum
Learning Objectives
In this internship you will have the opportunity to learn/improve a number of the following skills:
- How to use and manage Kubernetes and Helm charts, by using our open-source library Nephos for deploying Hyperledger Fabric.
- How the Fabric Certificate Authority manages identities of blockchain nodes and agents, and enables the creation and signing of their cryptographic material (private and public keys).
- How to configure and update a Hyperledger Fabric network by managing the consortium configuration through the use of Fabric CLI tools configtxgen and configtxlator.
- Solid test-driven development (TDD) practice in Python and/or Node.js, giving you confidence in the code you write by leveraging frameworks like pytest and mocha/chai.
- Some DevOps by using TravisCI to ensure that code built passes stringent quality control and is automatically packaged, documented and analysed for security and code-style issues.
- Some front-end skills, by leveraging the React/Redux/Node.js stack for easing the management of configuration files of the blockchain network.
Expected Outcome
Depending on the relative skills of the potential intern, we are likely to work on one or more of several objectives:
- Expansion of the capabilities of Nephos, our open source python library to deploy Hyperledger Fabric networks to Kubernetes.
- Improvements to our Helm charts for deploying Hyperledger Fabric components to Kubernetes.
- Contributing to our Fabric Node.js connector SDK, for simplifying access to Fabric capabilities, including installation, management and instantiation of chaincode.
Relation to Hyperledger
Hyperledger Fabric, Composer, Chaincode, Kubernetes/Helm.
Education Level
Suitable for Undergraduate or Masters level.
Skills
Our tech stack is Linux-centric (so it's great if you know bash/zsh), and we use a lot of JavaScript (Node.js) and related front and back-end tools, as well as Python (3.x). We also use Microservices via container (Docker) orchestration (Kubernetes/Helm). Some knowledge/interest in Cryptography/Blockchain also won't go amiss.
We don't expect you to master our entire tech stack. With a decent amount of motivation you can pick up missing tech skills over the course of the internship.
But we do expect you to be passionate about computer science and building robust, well-tested software (through solid documentation and unit and functional tests), and know how to develop it in a robust and agile way while collaborating with others (we are using trunk-based development). We'd love to see one of the hobby projects you hacked in your free time.
Future plans
The end of the internship does not need to mean an end to collaboration. It may well be your stepping stone to a permanent role at AID:Tech or you may wish to continue collaborating with us on the open-source outcomes of the internship.
Preferred Hours and Length of Internship
Full-time for Summer
Mentor(s) Names and Contact Info
Alejandro (Sasha) Vicente Grabovetsky, alexvicegrab, AID:Tech sasha@aid.technology
Nicola Paoli, nicolapaoli, AID:Tech nicola@aid.technology
Niall Dennehy, AID:Tech niall@aid.technology
Mentee Name
Inzamam Iqbal, inzamam.15@cse.mrt.ac.lk
Project Plan
Summary Report
Inzamam_Iqbal - Scaling Real World Hyperledger Fabric Deployments.pdf