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

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


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”


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.


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.


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.


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.


  • 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.

2019 Summer Mentee Project Update: X.509 Certificate Transparency using Hyperledger Fabric Blockchain

By Blog, Hyperledger Fabric, Hyperledger Summer Mentorship Program


The 2019 Hyperledger Summer Mentorship program for full-time interns has came to an end. During this program my project was x509 certificate transparency using Hyperledger Fabric. This project aimed at

  • developing the Hyperledger Fabric infrastructure for ensuring SSL certificate transparency using blockchain (a.k.a. CTB)
  • setting up CTB over cloud.
  • making a Firefox extension for browser client application. 
  • benchmarking CTB-assisted SSL/TLS handshake duration.

Project Progress

While working on this project, I focused on feature-driven development and completed one task at a time. Timeline:

  • The project started with the paper provided by my mentors on design and logic behind CTB. Based on the architecture described in the paper, I created the initial version of CTB. 
  • Then I added blockchain explorer to CTB for monitoring transactions and blocks.
  • Next came creating a CA interface and rest API for interacting with CTB.
  • At this point, we were ready to deploy CTB. We started with one server on DigitalOcean.
  • Initially, we had bash scripts for testing query and invocation of the chaincode. Later, we moved to automated testing using Hyperledger Caliper.
  • To match real-world scenarios where CAs would be progressively joining CTB, I worked on addition of new organisation across multiple Docker environments.
  • Next, I created another droplet on DigitalOcean and bootstrapped the process of new CA org (on this server) joining CTB.
  • Then it was on to creating a Firefox extension.
  • Finally, it was time to  issue a self-signed certificate for ctb-testing.ml and another for hfctb.ml signed by letsencrypt on CTB. These are for demonstration purposes.

By the end of this project, different pieces of CTB started coming together. The final architecture of CTB is explained through the below diagram:


This internship has been an informative and skill-driven learning experience for me. I learned a lot from the Hyperledger community and gained critical experience and expertise in a number of areas, including: 

  • Working with openssl tool and certificates and understanding how PKI works.
  • Hands-on learning of Docker and cloud orchestration while deploying CTB.
  • Understanding the way identities are maintained within Hyperledger Fabric, role of peers and orderers, structure of crypto-config.
  • Writing chaincode and developing application for interaction with Fabric.
  • Using Hyperledger Fabric, blockchain-explorer and Hyperledger Caliper. While I was focused on Fabric, I also looked into Composer.

Future Plans

This project is still in development stage. With more functionalities and scaling, it can be used in production. Some of the tasks that we have in this project’s timeline are:

  • Revocation of certificate improvements: Currently when a certificate is revoked, the browser uses an extension to get status of certificate. A better solution is to directly integrate OCSP or OCSP stapling with CTB.
  • Chrome extension: Currently, Google Chrome does not provide an API to retrieve the SSL information including the domain certificates that the extension needs. Once it is available, we plan to build a Chrome extension too.
  • Scaling: Test different configuration of CTB on bigger network of servers.

For the full details, see my complete project report here.

I will continue to work on CTB in the future (post internship) and be a part of this great community!


First of all, none of this would not have been possible without my mentors (Mahavir Jhawar and Deva Madala) and other members of the Hyperledger community. Min Yu provided quick response to my queries and regular updates on the internship program. Hyperledger chat and Jira proved to be useful. So, a huge shout-out to them for helping and guiding me when I was clueless on how to proceed. While I was busy coding, my mentor oversaw the direction in which this project was going and pointed changes/additions to me. This kept me busy throughout the summer and helped me complete my project. 

Last, but not the least, I would like to thank my fellow applicants who also worked on developing Hyperledger Fabric, blockchain explorer and Hyperledger Caliper, which can be used in the next iteration of CTB.