Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Page properties


TitleIn this project mentor and mentee will work on creating a framework that will allow creation of custom commands for Iroha – easily and still without writing any smart contracts. researching the best options and refactoring the WSV storage
Status

Status
colourBlueRed
titleAccepting Applicationscancelled

Difficulty

Status
colourYellowRed
titleMediumhigh
  


Description 

HL Iroha has native commands to execute state changes on blockchain. New commands can be added according to network participants' needs, but currently it takes some serious knowledge of C++ and the source code of Iroha.
Custom commands framework will simplify process of new commands creation and will ease application development.
Framework is a code generator and build management type tool with user interface which should take care of boilerplate code generation and build configuration.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 compatibilityPlan:
0. Develop modular architecture for the framework
1. Templates for HL Iroha commands
2. Protobuf generation tool according to templates
3. Tool for C++ command interface & model generation tool
4. Tool for C++ business logic insertion into command
5. DB DML/SQL creation & integration tool
6. Permission creation tool
7. Ledger configuration tool.

Additional Information

Iroha docs

Iroha Commands docs

Advanced Iroha - this Bootcamp Session became an inspiration for the project, so with this framework there would be no need to do all that manual code workSQLite - one of the options that could be used

Learning Objectives

...

  1. First and foremost the mentee will learn how to be a positive collaborator and contributor in an active open source project

...

...

  1. Learn how to work within the Hyperledger open source ecosystem and culture

...

...

  1. Understand how to work with technologies widely used

...

  1. in

...

  1. blockchain space

...

...

  1. Learn about different database solutions and their use-cases
  2. Understand architectural concepts of modularity in blockchain
  3. Learn how different implementations of storage can affect performance

Expected Outcome

  1. Refactored code allowing connection to different storage solutions
  2. New storage solution embedded into the program itself
  3. Analysis of the performance before and after the change

Expected Outcome

...

Relation to Hyperledger 

HL Iroha is one of the main Hyperledger ecosystem projects. Development of a custom commands framework will open new opportunities for HL Iroha adoption and will ease customisationThis 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 the code generation and UI tools.relational databases

Future plans

This framework can be extended for other HL blockchains. Also there is a plan for extending it with command engines customisation framework.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

Yuriy VinogradovAndrei Lebedev, Soramitsu

email: vinogradov@soramitsu.co.jp
telegram: @iuriivv

Mikhail Boldyrev, Soramitsu

Telegram: @lebdron

andrei@soramitsuemail: boldrev@soramitsu.co.jp