Hyperledger Caliper testability and robustness improvement
Description
This mentorship project aims to significantly improve the testability, test coverage, and robustness of the Hyperledger Caliper blockchain benchmark platform. Hyperledger Caliper is a blockchain benchmark tool that allows users to measure the performance of a specific blockchain implementation with a set of predefined use cases. The project will involve assessing the current testing framework, identifying gaps in test coverage, designing and implementing comprehensive test suites, and integrating best practices for testing to ensure the platform's reliability and performance.
Learning Objectives
- Understanding of Blockchain Technologies: Gain a deep understanding of blockchain fundamentals and the Hyperledger Caliper framework.
- Proficiency in Test Development: Learn advanced techniques in software testing, including unit, integration, and end-to-end testing.
- Continuous Integration (CI) and Continuous Deployment (CD): Implement CI/CD pipelines to automate testing and ensure code quality.
- Open Source Collaboration: Experience working in an open-source environment, including using tools like GitHub for version control and collaboration.
Expected Outcome and Deliverables
- Comprehensive Test Suites: Develop and implement a suite of tests that cover all aspects of Hyperledger Caliper, ensuring high test coverage.
- Documentation: Provide detailed documentation on the testing framework, test cases, and guidelines for future contributions to maintain test quality.
- CI/CD Pipeline: A fully functional CI/CD pipeline that automates the testing process, ensuring that every contribution is thoroughly tested.
- Contributor documentation: A detailed documentation about the internal working of Caliper components to facilitate future contributions.
Relation to Hyperledger and Impact on the community
Improving the testability and robustness of Hyperledger Caliper directly contributes to the Hyperledger community's goals of providing high-quality, reliable blockchain tools. This project will:
- Enhance Platform Reliability: Ensure that Caliper remains a trustworthy tool for benchmarking blockchain performance.
- Encourage Contributions: A robust testing framework lowers the barrier for contributions, as developers can more easily ensure their changes do not introduce regressions.
- Enable a major release: This project would serve as a critical stepping stone toward the first major and stable release of Caliper.
Recommended Skills
- Programming Languages: Proficiency in JavaScript and familiarity with Node.js, as Hyperledger Caliper is developed in these technologies.
- Blockchain Knowledge: Basic understanding of blockchain principles and interest in learning more about Hyperledger technologies.
- Software Testing: Experience with software testing frameworks (e.g., Mocha, Chai) and an understanding of various testing methodologies.
- CI/CD Tools: Familiarity with CI/CD tools (e.g., Jenkins, Travis CI, GitHub Actions) is beneficial but not required.
Mentor(s) Names and Contact Info
Research Fellow @ Budapest University of Technology and Economics, Department of Measurement and Information Systems, Critical Systems Research Group (ftsrg)
Email: attila.klenik@vik.bme.hu
Discord handle: aklenik
Additional Information
Hyperledger Caliper repository: GitHub - hyperledger/caliper: A blockchain benchmark framework to measure performance of multiple blockchain solutions https://wiki.hyperledger.org/display/caliper