Reworking WSV Storage
Description
HL Iroha currently uses a separate relational database (PostgreSQL) to store its state. That requires another process to start – so it takes resources and is not very efficient. In this project we offer you to try and switch a separate database to a module that would allow storing the state within the same process.
This will not only make the architecture neat, but also positively affect the performance.
Plan:
0.Do a little research: how can this be done? What key-value storage solution would work the best for storing World State View
1.Approve the solution found on stage 0
2.Refactor the code to decouple the storage and allow easier way of changing it
3.Execute the approved solution
4.Do a little research about how it affected the performance
5.Create a configuration parameter to allow backward compatibility
Additional Information
SQLite - one of the options that could be used
Learning Objectives
- First and foremost the mentee will learn how to be a positive collaborator and contributor in an active open source project
- Learn how to work within the Hyperledger open source ecosystem and culture
- Understand how to work with technologies widely used in blockchain space
- Learn about different database solutions and their use-cases
- Understand architectural concepts of modularity in blockchain
- Learn how different implementations of storage can affect performance
Expected Outcome
- Refactored code allowing connection to different storage solutions
- New storage solution embedded into the program itself
- Analysis of the performance before and after the change
Relation to Hyperledger
HL Iroha is one of the main Hyperledger ecosystem projects. This project will allow Iroha become faster and also provide better customisation of the WSV storage.
Education Level
The ideal mentee is a university student, someone with one or two years of experience with a solid background in Computer Science, especially C++
Skills
The following skills are required:
Working knowledge of C++
Understanding of relational databases
Future plans
With this refactoring, new options of WSV storage could be implemented and more projects could benefit the improved performance
Preferred Hours and Length of Internship
This project can be done by a full-time or part-time mentee.
Mentor(s) Names and Contact Info
Andrei Lebedev, Soramitsu
Telegram: @lebdron