Abstract
Caliper is built using NodeJS. The Workload Modules used for configuring transactions are also implemented in JavaScript at this point in time. Workload Module definition can be configured using the benchmark configuration file to some extent, but not completely.
This project would focus on:
- Building a YAML schema to define Workload Module behavior, hence reducing the amount of JS code required for the task.
- Possibly tuning the YAML specification for most frequent use cases.
Deliverables
Overarching goal: Specify/design a flexible and extendable YAML-based configuration schema for the declarative definition of complex workloads.
- Survey the workload definition capabilities of relevant workload generators/benchmark tools and typical workload requirements of relevant standards or existing workloads.
- Implement a built-in Caliper workload module capable of generating requests based on the defined YAML configuration.
- Thoroughly test the implemented module - Provide developer and user documentation for the schema and the implemented module.
- Port some of the Caliper microbenchmarks to the declarative schema as proof of concept.
Mentor and Mentee
Milestones/Timeline
Duration | Goals |
---|
Week 1 - Week 6 | - Research existing bench-marking solutions analyzing how they implement workload modules
- Understand Caliper environment
- Determine most frequently occurring use cases for Blockchain benchmarking
- Start designing the YAML configuration schema
|
Week 7 - Week 12 | - Analyze Caliper microbenchmarks and create the declarative schema for them
- Implement the schema and incrementally add more features to it
|
Week 13 - Week 18 | - Implementing value providers for the Caliper repository
- UniformRandomValueProvider
- VariableReferenceValueProvider
- ParameterReferenceValueProvider
- Writing Unit Tests for the above value providers
|
Week 19 - Week 24 | - Implementing value providers for the Caliper repository
- FormattedStringValueProvider
- ListElementValueProvider
- UniformRandomListElementValueProvider
- Writing Unit Tests for the above value providers
- Integrating Value Providers through contract and function classes (in progress)
- User and developer documentation
- Porting a microbenchmark to declarative schema
|
Pull Requests
Final Project Presentation
View file |
---|
name | project_presentation.pptx.pdf |
---|
height | 250 |
---|
|