Tag

Hyperledger Summer Mentorship Program Archives – Page 2 of 3 – Hyperledger

2019 Summer Mentee Project Update: IoT and DLT in a telecom multi carriers architecture

By Blog, Hyperledger Summer Mentorship Program

Introduction

Hyperledger Indy is a public and permissioned chain platform designed for identity-related usage. In this project, we use Decentralized Identifiers (DIDs) and Verifiable Credentials combined with Indy ledger to realize Self-Sovereign Identity concept for IoT devices. Specifically, we designed a Decentralized Ledger Technology (DLT) architecture for supply chain process of telecom devices and implemented this architecture.

During this project, my mentor, Laura Spinaci, and I work on a design based on the proposal of Global System for Mobile Communications (GSMA), and utilized the unique properties of Hyperledger Indy.

Accomplishments

  1. Designed a DLT architecture for supply chain process of telecom devices.
  2. Implemented this architecture with DIDs, Verifiable Credentials and Hyperledger Indy Python packages. In this protocol, we have multiple Schema issuers and multiple Credential issuers due to the different roles of mobile network operators, manufacturers, quality assurance teams, and end users.
  3. Created the docker test environment (to be completed by 12/20/2019). In the test environment, we use different port in single computer to act like different nodes in the entire network.
  4. Provided API documents for telecom devices companies, and a simple front-end demo (to be completed by 12/20/2019)

What comes next

For IoT devices, the device-to-device access and communication can enhance the entire systems ability of, for example, using Google voice kit to automatically control the smart home devices. Additionally, design details for privacy and user-device interaction also need to be refined.

However, as the project timeline is quite limited, these parts are left for the further development. I am happy and willing to make further open source contributions to them, and to Indy and the entire Hyperledger ecosystem.

For detail project information, please check this wiki page.

2019 Summer Mentee Project Update: Running WebAssembly Smart Contracts in Fabric

By Blog, Hyperledger Summer Mentorship Program

I always wondered how it is like to be an open source contributor. I always wanted to work in an open source project, but I was hesitant about where to start. The Hyperledger Mentorship Program provided me with an opportunity to begin my journey in the open source world.

I had an enjoyable experience working with my mentors Swetha Repakula, Morgan Bauer and Jay Guo. They were really encouraging and very supportive throughout the period.  Although I was very new to the tech stack we used in this internship, my mentors helped a lot and were always there to resolve my doubts. 

Project goals

Hyperledger Fabric chaincode shims are only available in Golang, javascript, and java, which may limit developers around the world. For some, learning those languages and associated skill sets are a barrier to adoption of Hyperledger Fabric. 

My internship project Fabric Chaincode Wasm enables developers to use a wide variety of source languages for developing chaincodes by introducing a WebAssembly run time to Fabric users. WebAssembly exposes lots of languages for development, including C, Rust, and many more, because they can directly compile to WebAssembly.

You can find more information, reports and demo video here: https://wiki.hyperledger.org/display/INTERN/Running+Web+Assembly+Smart+Contracts+in+Fabric

Quick Technical Summary

As part of the project, we focused on creating an integration layer for deploying WebAssembly based chaincodes on Hyperledger Fabric without having none to minimal effect on Hyperledger Fabric core code. We achieved this by creating a Golang based chaincode named as wasmcc with an embedded WebAssembly Execution VM. This chaincode also exposes shim functions for WebAssembly chaincode developers to interact with Hyperledger Fabric networks and ledgers.

Here are some quick flow diagrams on how a WebAssembly chaincode is deployed and executed using this project.

Accomplishments

  • This project gave me a great chance to really learn WebAssembly and Golang.
  • My mentors guided me on various tools and best practices for open source community such as multiple Github features, which I never knew, the thinking process and creating CI/CD pipeline for open source projects. 
  • The most challenging part would be researching on WebAssembly and looking for a feasible WebAssembly based execution engine.

What comes next

This project has vast potential. It will allow people to quickly start adopting Hyperledger Fabric who were not able to due to technical language. Likewise, businesses can quickly start using Hyperledger Fabric without having to add to their teams’ existing available skill sets. By lowering these barriers to adoption, we’ve helped make Hyperledger Fabric an even more appealing choice as a blockchain platform. These features could also help in expanding the Hyperledger community.

Few of the technical improvement for future roadmaps:

  • Create minimal interfaces for languages that can be compiled to WebAssembly
  • Expose all other shim functions such as ACL for WebAssembly chaincodes
  • Try other WebAssembly execution engines as this area is evolving daily.
  • Create more examples using languages such as python, dotnet etc.

For all my fellow aspiring open source beginners, I only have one message for you: stop thinking and start engaging. You will find lots of encouraging people to guide you further. Take that Leap of Faith!

Lastly, I would like to thank the Linux Foundation committee for starting this mentorship program. I am sure it will be a life-turning experience for all my fellow mentees like me. I am also very thankful to Min Yu, my mentors and open source contributors for making this a smooth journey for me.

Please feel free to connect with me if you are interested in contributing to this project. You can find the repository under hyperledger labs, and you can always ping me at @shubham_aggarwal at rocketchat.

Mentorship in Action: Hyperledger 2019 Summer Program Recap

By Blog, Hyperledger Summer Mentorship Program

Summer is nearing its close and it’s time to give an update on the Hyperledger Mentorship Program. This year 17 projects proposed and approved by the community connected 25 mentors and 17 mentees from around the globe to contribute their enthusiasm, time, and experience toward building a sustainable Hyperledger community. The Hyperledger Mentorship Program is also a part of the broader effort at the Linux Foundation to increase community health and diversity through CommunityBridge.

The Hyperledger program has grown significantly in size and impact since its launch two  years ago:

  • The program has increased from six projects and mentees in 2017 to 17 in 2019.
  • The number of mentors has also grown from six in 2017 to 25 in 2019.
  • The pool of applicants has increased from approximately 60 in 2017 to 300+ in 2019.
  • This year’s 25 mentors come from organizations big and small, from startups and well established companies to nonprofits including academic institutions, volunteering their time to teach and mentor while sharing their passion for the technology.
  • The mentee cohort is also diverse as it includes students at every higher-education level from the community college to the post-graduate research program seeking hands-on learning opportunities to advance their academic and professional pursuits in the blockchain space. 
  • Projects this year range from adding a component to a current Hyperledger project to creating a brand new Hyperledger Labs project to improving the interoperability and scalability of existing Hyperledger projects.
  • Former mentees from 2017 and 2018 have landed jobs at RedHat and Facebook, become active contributors to Hyperledger Projects and maintainers of Hyperledger Labs, mentored this year’s mentees, and reflected thoughtfully about their experience and journey of becoming a Hyperledger contributor.   

The program is intentionally designed to help university student mentees, many of whom are first-time open source contributors, navigate what can initially seem like an overwhelmingly vast open source community so they can experiment, learn, and contribute effectively. These structural elements include: 

  • Mentor and mentee onboarding that emphasizes the learning outcome of immersing in open source tooling, infrastructure, culture, and norm to be an effective contributor
  • Crowdsourcing, documenting, and referencing explementary attributes of successful mentorship and effective menteeship 
  • Project planning that includes project goals, objectives, deliverables, milestones , and tasks to be worked out collaboratively between mentors and mentees during the first two weeks of the program and posted on the wiki. A well-defined project plan holds everyone accountable for what’s agreed upon and provides a clear framework toward progress in a transparent way. 
  • Requiring project presentations to an audience of other mentees, mentors, and Hyperledger staff to sharpen both presentation skills and to cultivate the ability to provide constructive feedback and critique that’s the norm in the open source community for developing technologies collaboratively and openly.
  • Evaluating work on a quarterly cadence tied to milestone deliverable schedules that help mentors and Hyperledger staff formalize and respond to progress.

Thanks to great guidance from the mentors and exceptional levels of motivation, independence, and resourcefulness on the part of the mentees, the eight  full-time mentees have recently completed their projects with flying colors, and the part-time mentees are on track to complete their projects mid-November. The eight  full-time mentees’ recently wrote about the projects and reflected on their experiences. You can read their individual closing blogs here.

I am also pleased to share that the mentees who successfully complete their projects this year will be invited to attend the 2020 Hyperledger Global Forum in Phoenix, Arizona. This is another element we intentionally put in place to help mentees professionalize, network, and forge the relationships needed for long term contributions in the community.

To close this blog, here are a few words from a 2019 mentor and mentee:

“In open source, I have found mentorship is very important, and I have had some great guidance from people inside IBM and outside. These people helped me find my voice and showed me how to navigate open source development to be a productive member of  the community.” – Swetha Repakula, mentor for Running Web Assembly Smart Contracts in Fabric

“Before this internship I mainly worked on theoretical blockchain and cryptography research at Purdue University, and this internship gave me a perfect balance between development and research.” – Jason You, mentee for Hyperledger Caliper visualization

If you’re from a Hyperledger member company, check out these mentees’ LinkedIn profiles and their outstanding work on the wiki. If you’re an aspiring university student or community member, check out this year’s projects and read about the mentees individual blogs as you imagine the possibility of joining us on this journey next year.

2019 Summer Mentee Project Update: Analyzing Hyperledger Fabric Ledger and Transactions using Elasticsearch and Kibana

By Blog, Hyperledger Fabric, Hyperledger Summer Mentorship Program

Introduction

This summer, I had the chance to work as a full-time intern at Hyperledger. I am writing this post to share my experiences about working with Hyperledger and to report on the project itself and the impact it can have on the Hyperledger community as well as on my personal development.

My mentor was Salman Baset, an active member of the Hyperledger community. I must emphasize what a great mentor he was, always available, communicative and helpful. He gave me a lot of hints and helped me out when I got stuck, but, still, I had the freedom to make technical and strategic decisions. I have learned a lot from him, and he (and this project) provided a huge boost for my personal improvement.

The goal of the project

The main goal of the project was to create a mechanism to analyze and display ledger data from both operational and data-oriented aspects (e.g., allow selection of a particular key and visualization of updates to it).

What I accomplished

The main components of the project:

  • An Elastic Beats agent (fabricbeat) written in Go that connects to peer(s), queries it, and ships its data to Elasticsearch and Kibana (core contribution of this project).
  • Three  different Fabric networks with chaincodes written in Go and Node.js (for testing).
  • Applications for user enrollment and transaction submission using the node SDK (for generating test data).
  • Elasticsearch cluster and Kibana server. (Docker Compose file is borrowed from an open source project.)
  • Generic Kibana dashboards similar to Hyperledger Explorer, plus data-centric dashboards (contribution of this project).

1. Architecture and basic data flow (the highlighted parts are the main contributions of this project)

The most exciting part of the project was learning a number of new technologies. I used Golang, Node.js, Elastic Beats, Elasticsearch, Kibana and, of course, Hyperledger Fabric. Designing the Beats agent and implementing the generic Kibana dashboards were  great professional challenges, too, and it was an extraordinary experience to see them working.

I also created demo setups that can be installed and run with only one make command. They demonstrate the main features of the project.

2. Operational dashboard (multiple fabricbeat agents can be run at the same time, we can select peer and channel from which we want to see the data)

3. Searching for all the transports that departed from “Factory0”

Suggestions

Hyperledger Fabric uses an approach that wraps the data into multiple layers of meta data, and stores this whole package on the ledger. This makes analysis quite painful, since we have to do a lot of processing and unwrapping to obtain the most valuable parts of this data. Having the data indexed in a NoSQL database would make analysis much easier.

Plans for the future

This project has a lot of potential. A few ideas on how it could be improved and used in the future:

  • The project provides a more customizable way for blockchain analysis than Hyperledger Explorer, with extended functionalities and data-centric analysis possibilities.
  • Hyperledger Fabric writes ledger data to a file by default. By replacing the ledger file with
  • Elasticsearch, MongoDB, CouchDB, or other appropriate database, the need for a separate Beats agent can potentially be eliminated. Further, having ledger data directly stored in a database (instead of a file) can potentially simplify Hyperledger Fabric deployment architecture in Production (e.g., by removing a separate instance of CouchDB per peer).
  • This project could be generalized to work with every kind of blockchain implementation, not only Hyperledger Fabric.

We submitted the project to  Hyperledger Lab, so further development is open for contribution. I am really excited to be a member of and work with the open source community!

For more details, please see my complete project report here.

2019 Summer Mentee Project Update: Constructing a Graphical User Interface (GUI) for Hyperledger Caliper

By Blog, Hyperledger Caliper, Hyperledger Summer Mentorship Program

What I worked on

The Hyperledger Caliper summer internship was a very fulfilling experience for me! It solidified my technological foundation on full-stack development, large-scale project integration, Hyperledger Blockchain configuration, and data visualization.

Before this internship, I mainly worked on theoretical blockchain and cryptography research at Purdue University, and this internship gave me a perfect balance between development and research.

I also gained many invaluable connections with those awesome contributors to Hyperledger projects!

The main objectives of this internship are:

  • Constructing a Graphical User Interface (GUI) for Hyperledger Caliper with real-time visualization functionalities.
  • Supporting Caliper test configuration file generating, editing, and saving functionalities on the Caliper GUI.
  • Connecting the GUI with databases by saving test results and configuration file objects into MongoDB.
  • Building backend server and API to get the network and test configuration files for Hyperledger blockchain tests.
  • Integrating Caliper GUI with Caliper core workflow and making Hyperledger Caliper more user friendly in the future.

I want to thank everyone that made my internship successful and meaningful, especially my awesome mentors: Feihu from Huawei and Klenik from Budapest University of Technology and Economics! I also want to give thanks for the help from Nick, who is also one of the major contributors to the Hyperledger Caliper project, and Baohua from Oracle, who gave me so much great advice on my internship and career in the blockchain industry!

What I learned or accomplished

 Technological accomplishments:

  • I learned many full-stack technologies that can support my future development efforts.
  • I started a project from scratch and was able to successfully develop it by learning a lot from many contributors in Hyperledger.
  • I fully understand and re-implemented the test mechanism of Caliper on different Hyperledger frameworks using the Caliper GUI.

Team work:

  • I learned to collaborate in an open-source project and successfully communicated with other members and helped solve their problems.
  • I circumvented integration obstacles and focused on things that can make progress.
  • While working with the team, I realized breaking tasks down into small modules was more efficient and accomplished my goals by working on them one by one.

The exciting part of this project is that it can help new users of Hyperledger blockchain frameworks get an intuitive understanding of their project performances. This will make all blockchain and Hyperledger technologies more approachable for users and developers!

What comes next­­

From here, there are many next steps to come for both me and this project.  I’m now looking for a full-time opportunity that can let me apply everything I learned in college and  from Hyperledger to the FinTech, blockchain, and machine learning industries. My goal is to make the world more efficient.

Technological Improvements I envision for the Caliper GUI include:

  • Dockerizing the GUI, which includes server, client, and database.
  • Using Electron JS package to make this GUI a desktop application.
  • Using Redux to build global state tree in the GUI front end, so that the variable states and visualization are absolutely real-time connected with the backend data flow from server and caliper-core.
  • Open source the GUI and get more contributions from the world.

For more of the Hyperledger Caliper GUI, read my full summer project report here.

2019 Summer Mentee Project Update: Developing Explorer Capabilities for Hyperledger Sawtooth

By Blog, Hyperledger Sawtooth, Hyperledger Summer Mentorship Program

Blockchain itself is, first of all, a back-end technology. That produces a lack of transparency: one can’t see a list of transactions, blocks and signers’ public keys without use of CLI or some node’s API. Both ways usually only let you see raw data with no handy navigation. That’s why there’s often an explorer for certain blockchains.

My project was to develop a Hyperledger Sawtooth explorer. I wanted not only to allow users to explore the blockchain data provided by the API through a nice graphical interface, but also to add some extra features to enhance Hyperledger Sawtooth transparency even more.

To build this app, I used the stack I’m most familiar with: Express.js with MongoDB for the back end and Vue.js with Vuetify for the front end. The main algorithm behind my explorer’s work can be described as this:

1. On launch, back end requests the node of an address that was put to an environment variable. The request is to subscribe for standard Sawtooth events: state-delta and block-commit. In that request, it asks node to send back all events that occurred after the last one known to it. On first launch this means all events.

2. Back end parses all events and saves received data in Mongo.

3. Back end also provides an API for the front end to fetch this data from the database.

4. Front end fetches all the needed data and shows it in according places also providing navigation between transactions/blocks/signers an so on.

As for the general impact of my project, I really hope it would make Hyperledger Sawtooth more transparent both for those who already are in Hyperledger community and for those who are yet to consider choosing Sawtooth as a tool for their projects.

The most vivid impression I have after working on a project related to Hyperledger Sawtooth is the responsiveness of the community members. Some issues I encountered took literally days to solve until I asked a question in Sawtooth RocketChat. That’s my advice for other new members of the community – do not hesitate to ask. If you’re polite, you’ll most probably get a helpful answer.

To sum up, I’d like to say that I was really happy to take part in this internship. It opened the world of open source to me and allowed to really improve as a developer. For that I’d like to thank Hyperledger and my mentors Andrew Backer and Ricardo Garcia from a company called ScanTrust. In short, they provide consumer-oriented businesses with smart blockchain-secure QR codes to stick on every selling piece to enable buyers to see whether this single item was produced, where it’s said to be or it is a counterfeit. If you are a business and looking for such kind of software, go check them out.

Thanks for reading! Find out more about my project here.

2019 Summer Mentee Project Update: Integration of EVM from Hyperledger Burrow into Hyperledger Iroha

By Blog, Hyperledger Burrow, Hyperledger Iroha, Hyperledger Summer Mentorship Program

Hello, my name is Ivan Tyulyandin. I am a student at Saint Petersburg State University. I took part in the Hyperledger Internship Program, working with Andrei Lebedev (my mentor), Iurii Vinogradov and Eugene Kovalev from the Hyperledger Iroha team.

Hyperledger Iroha is a straightforward distributed ledger technology, inspired by the Japanese Kaizen principle — eliminate excessiveness. Users can create and manage their assets via Iroha commands. Iroha is written using C++, Protobuf, Boost and GTest. There are no smart contracts in Iroha.

Introduction

Hyperledger Burrow provides a modular blockchain client with the possibility to change different parts of the system. One modular piece is a permissioned smart contract engine, partially developed to the specification of the Ethereum Virtual Machine (EVM). Burrow is developed using language Go.

The main purpose of this internship was to integrate EVM from Hyperledger Burrow into Hyperledger Iroha. Since Ethereum is de facto the most known platform for smart contract development, the integration will let Ethereum developers use Iroha as a new blockchain in distributed applications.

Project Components

The starting point was identifying the main components the project needed to address: 

  • First of all, there should be a way to pass data (such as Ethereum bytecode, caller and callee) from Hyperledger Iroha to Hyperledger Burrow EVM. For this purpose, a new command to Iroha has to be added.
  • Another issue is to connect Golang and C++ code to bind Iroha and EVM. 
  • The next step is to implement a special Burrow API to store EVM accounts data in Iroha.
  • The final requirement is new functionality testing.

Challenges

One of the challenges was to get deeper into the codebases of Hyperledger Burrow and Hyperledger Iroha. Existing integration examples of Burrow EVM to Fabric and Sawtooth gave me a nice understanding of what to do. From the Iroha side, Andrei Lebedev led me through the Iroha source code.

Results

With this information, I was able to develop a new command EngineCall. I made a wrapper using CGO (special go compiler mode that generates C library from Go source code) that Iroha uses to call Burrow EVM. Now an implementation of Burrow EVM API can send requests to Iroha for modification of its state via Protobuf messages. Every EVM account is stored in a technical account in Iroha. EVM account storage is emulated in the technical account details (which is key-value storage). All of this work was QA’d by writing and completing module and integration testing.

What comes next

More features can be added to this  integration. The first one is web3 interface implementation, which  will call remote EVM instance or use a local one. The next possible improvement is to add permissions to an Iroha account that represents an EVM account. Also, the current support of Burrow EVM in Iroha is not full, since there is no catching of EVM logs.

For more on this project, please read my full report.

2019 Summer Mentee Project Update: Integration of Hyperledger Iroha into Hyperledger Explorer

By Blog, Hyperledger Explorer, Hyperledger Iroha, Hyperledger Summer Mentorship Program

Hyperledger Iroha is a next-generation permissioned DLT initally contributed by Soramitsu. It provides asset and identity management, multi-signature and batch transactions. During the internship, I visited the Soramitsu office and communicated with Iroha development team.

Hyperledger Explorer is a tool that shows information from DLT networks. Initially, it was built to support for Hyperledger Fabric, with the expecting support for more DLTs would be added. Our goal was to add support for collecting and viewing Iroha transactions and Iroha-specific information to Hyperledger Explorer.

Accomplishments:

  • We implemented an integration of Hyperledger Iroha into Hyperledger Explorer. Now, Hyperledger Explorer shows information about Hyperledger Iroha peers, blocks, transactions, roles, domains, accounts.
  • We found and fixed some ambiguous statements in Hyperledger Iroha documentation.
  • We simplified code of our project by using open-source GraphQL framework developed by Facebook.

For a deeper dive into the work, read my full project report here.

I am very grateful for the support of my mentor, Ales Zivkovic, as well as Hyperledger for the opportunity to learn and contribute to open source Hyperledger projects.

2019 Summer Mentee Project Update: Raspberry Pi Indy Agent

By Blog, Hyperledger Aries, Hyperledger Indy, Hyperledger Summer Mentorship Program

My name is Zixuan Zeng, a CS student from Zhejiang University. This summer, I was happy to join the Hyperledger Internship Program and had a very fulfilling experience. I was fortunate to work with my mentor Adam Burdett from the Sovrin Foundation on a project focused on building a Raspberry Pi Indy agent on Raspberry Pi.This project’s goals was to develop a Hyperledger Indy agent running on Raspberry pi, producing a customized Raspbian image that provides easy access to GPIO pins, enabling it to interact with external sensors, LED matrix, etc. With the new Hyperledger Aries project, our implementation was an Aries-cloud-agent (previously indy-catalyst) that can interact with Indy pool and create more interesting applications. This project also includes an Aries RFC defining the message format for interactions with Sense-Hat extension board as well as its messaging module implementation.

What I learned:

  1. Open source community work style: Through this summer’s internship, I experienced the working style of open-source development from the Hyperledger community. For example, I opened a GitHub issue and got it resolved. 
  2. Blockchain knowledge: In this internship, I got to know more about not only the basic blockchain concept but its exciting applications in the future. I learned distributed ledger, zero-knowledge proof and decentralized identifiers during this summer. Additionally, I had the opportunity to set up and test blockchains myself.
  3. Programming experience on IoT devices: I also gained hands-on programming experience on Raspberry Pi. Since it has ARM architecture, even compiling the SDK was a tough task for me at first. After many tries and looking up the documents, I finally made it on Raspberry Pi. Using Python to control an external GPIO port was also a fun and new experience to me.
  4. Implementation of a working Hyperledger Indy agent: Working with Aries Cloud Agent, I developed messaging protocols and successfully implemented a working agent. Walking through the architecture of the agent project was really a learning experience for me. I felt very accomplished when I understood the structure of the whole project and developed sub-module based on that.

What comes next:

The next step for this project could be: 

  • Extend to other IoT devices
  • Add support for more add-on boards
  • Add support for more messaging types

After this fulfilling experience, I determined that my plan is to become a software engineer, especially in blockchain area. I am happy to join the Hyperledger family and hope I can make more contributions to this vibrant community in the future.

Below are some screenshots from my project. To read my full report, go here.

2019 Summer Mentee Project Update: Scaling Real World Hyperledger Fabric Deployments

By Blog, Hyperledger Fabric, Hyperledger Summer Mentorship Program

I got selected to the 2019 Hyperledger mentorship program for the project “Scaling Real World Hyperledger Fabric Deployments.” My mentors were Sasha and Nicola from Aid:Tech. Through this internship, I contributed several new features to “Nephos,” which is an open-source tool under Hyperledger Labs. Nephos helps to deploy and manage Hyperledger Fabric networks easily.

During my internship, I worked closely with the engineering team of Aid:Tech. My mentors, and I had several meetings to plan our tasks and to finalize the architectures. I made the following contributions to Nephos during my internship:

1. Stabilizing Nephos

During the first few weeks, I spent time on familiarizing myself with the relevant technologies and Nephos itself. During this time I fixed some known bugs in Nephos. Also during this phase, I improved the logging capability of Nephos through the native Python logger.

2. Support for multiple organizations

Nephos 0.3.X supported only one orderer organization and one peer organization. We wanted to allow the users to define as many organizations as they wanted. As some major changes had to be done that needed to be compatible with the future plans we have for Nephos, we discussed the architectures and changes in GitHub. Then we finalized the architecture and started working on it after an online meeting. Now, Nephos 0.4.X let multiple organizations to be defined.

3. Support for multiple channels

I also created a PR to let the user define multiple channels and precisely define which organizations belong to which channels so that, during the deployment, Nephos creates those channels and make the peers join the relevant channels. In order to achieve this, I also had to make changes to the “hlf-peer” helm charts in helm stable repository.

4. Support for Hyperledger Fabric 1.4

As Hyperledger Fabric 1.4 is the LTS version of Fabric, we made Nephos and the relevant helm charts support Fabric 1.4.

5. Support for TLS communication within nodes.

After supporting Fabric 1.4, we wanted to make sure that Nephos will work with RAFT ordering service, which is one the main feature we got by updating to Fabric 1.4. But, in order to support RAFT, we needed to support TLS communication between peers and orderers. I implemented this support, and now users can either use the TLS certificates generated by the cryptogen or they can ask Nephos to deploy a separate certificate authority to provide TLS certificates. In the latter case, Nephos will deploy a separate CA, generate all the relevant certificates, place the certificates in relevant pods and will use them for all the communication.

I hope to present my work at Hyperledger Global Forum 2020 in  Phoenix, Arizona. 

Experience gained

During my internship, I got a detailed understanding of how a Hyperledger Fabric network works, how to set it up, how to take advantage of its pluggable consensus model and how to make it secure. I also gained a lot of experience with Kubernetes and helm charts.

I have contributed to other open-source projects in the past, and Nepos is one of the most organized repositories I’ve seen. Working closely with my mentors, who built this open-source project from the ground up, gave me a lot of insights into how to effectively build and maintain an open-source project.

More details are available in my final project report.