Project TitleVisual Studio Code support for Hyperledger Caliper artifacts
Status

Difficulty

    Select a difficulty level and delete the others (e.g. code development would be considered less challenging than research-focused)


Description 

Performance benchmarking distributed systems (such as DLTs) is a challenging task, comprising of multiple aspects, such as scalable workload generation, representative workload definitions, and comprehensive data analysis.

Hyperledger Caliper is a general-purpose benchmarking tool with the goal of mitigating the aforementioned aspects of performance benchmarking:

  1. It provides a flexible architecture to allow scalable workload generation.
  2. It collects and reports results based on detailed client-observable execution traces.
  3. It allows the implementation/plug-in of custom workload behaviors to meet the diverse criteria of a wide range of business scenarios.

The flexible support of the aforementioned performance benchmarking aspects inherently makes the setup and configuration of a Caliper-based project cumbersome and error-prone:

The goal of the mentorship project is to deliver a Visual Studio Code extension that can help users perform the aforementioned tasks in an assisted and possibly automated manner.

The exact steps of the project are detailed in the Expected Outcome section.

Additional Information

Learning Objectives

Expected Outcome

The mentee must complete the following tasks by the end of the internship:

  1. Create a schema for the benchmark configuration file of Caliper.
  2. Create a schema for the Fabric network configuration file of Caliper.
  3. Create a schema for the Ethereum/Besu configuration file of Caliper.
  4. Create a schema for the runtime configuration file of Caliper.
  5. Implement code generators for various Caliper artifact skeletons (general project, workload module, connector, etc.).
  6. Thoroughly test the implemented artifacts
  7. Create a Visual Studio Code extension that integrates the implemented functionalities into Visual Studio Code.
  8. Provide developer and user documentation for the implemented artifacts.

Relation to Hyperledger 

Hyperledger Caliper: specification and implementation of an "extend-only" feature (meaning no blocking dependency on parallel implementation efforts).

Education Level

At least an ongoing B.Sc. study in software engineering is required.

Skills

Required skills:

Nice-to-have skills (the mentee can learn these during the internship):

Future plans

The project is an important stepping stone towards lowering the entry barrier for performance benchmarking DLTs using Caliper.

The project is intended as the basis and proof-of-concept for a Visual Studio Code extension package to help users set up Caliper-based performance benchmarks.

Preferred Hours and Length of Internship

Full-time (40 hours a week for 12 weeks during the summer)

Mentor(s) Names and Contact Info

Attila Klenik

Budapest University of Technology and Economics, Critical Systems Research Group

Email: attila.klenik@vik.bme.hu
GitHub handle: aklenik
Discord handle: klenik#9902