What did you work on?
Project name: Optimizing the pipelines using Github Actions for Caliper and Caliper-Benchmarks
Hyperledger Caliper is a general-purpose benchmarking tool for distributed systems like DLTs with scalable workload generation, declarative workload definitions and comprehensive data analysis capabilities. The Caliper and Caliper-Benchmarks repositories had build systems to verify pull requests by running unit and integration tests and to deploy the latest packages to NPM and DockerHub. The objective of the project was to optimize the pipelines and reduce the build times to improve the experience of developers contributing to Caliper. The project was split into three phases:
- Migrate the Caliper repository from using Azure pipelines to GitHub Actions.
- Optimize the builds for Caliper and Caliper-Benchmarks.
- Enhance the builds of Caliper and Caliper-Benchmarks with new features.
I would like to thank my mentor David Kelsey from IBM for the guidance throughout the mentorship project.
What did you learn or accomplish?
Project-related learnings:
- I developed a good understanding of how Hyperledger Caliper works and, in general, how a benchmarking system is designed.
- I explored various ways of setting up a Hyperledger Fabric system from scratch.
- I learnt about various techniques to write unit tests in JavaScript.
- I explored various approaches for collecting metrics from a distributed system.
Miscellaneous learnings:
- I learnt about effectively breaking down a project into tasks and tracking them.
- I gained a lot of insight into the inner workings of Hyperledger Fabric from the discussions with my mentor.
- I got to discuss the recent developments in Fabric and the Fabric ecosystem with my mentor.
Accomplishments:
- The Caliper repositories no longer depend on Azure pipelines.
- The repository was migrated from lerna to NPM workspaces.
- The total time taken for the build pipelines were reduced by 60%.
- The pipelines only execute the tests of components that have been modified by a pull request.
The improvements in build times throughout the project:
What comes next?
In terms of the project,
- The build times could be further reduced by switching to a lightweight Hyperledger Fabric deployment like Microfab.
- Other miscellaneous improvements to the repository workflows like Dependabot could be integrated.
Personally,
- I plan on continuing to contribute added features to Hyperledger Caliper. I started working on new features towards the end of the mentorship.
- I also plan on being active in the Hyperledger community, attending various contributor meetings.