Description
Hyperledger Iroha 1 is blockchain implemented in C++. To interact with Irohas' nodes (perform commands and queries) there are few client libraries - iroha-python, iroha-javascript, iroha-java, iroha-ios. Despite the fact that Iroha has implemented iroha-cli in C++ there is no client library in C++. What is more iroha-cli is deprecated and not all commands are fully supported.
The internship project in short words is to refactor iroha-cli and extract from its iroha-cpp library. Using the library would require project of entire library (inspiration are rest of libraries).
Optionally the library should be compatible with C language (extern "C") to make it easy to use the library from multiple programming languages.
Additional Information
- Hyperledger Iroha (documentation, chat, wiki, source code)
- Iroha-python library
- Iroha-java library
- Iroha-javascript library
- Iroha-ios library
- iroha-scala (Scala SDK) (deprecated)
- iroha-dotnet (.Net SDK) (deprecated)
Learning Objectives
The mentee will be able to learn:
- architecture of Iroha (1.x),
- work in true spirit of open-source, communicating with Iroha community, joining calls,
- writing documentation,
- following rules of open-source code of Hyperledger Iroha,
- creating automatic tests of code,
- projecting of library architecture
- making library portable across multiple systems and compilers with CMake
Expected Outcome
- Implemented iroha-cpp library
- Refactored iroha-cli, which would use the library and support all commands and queries
- Documentation to changes above
- Examples of using the library
- Tests
Relation to Hyperledger
Hyperledger Iroha (documentation, chat, wiki) and its client libraries (as inspiration)
Education Level
undergraduate or graduate, but mentee should be able to project and implement library.
Skills
- Reading English documentation
- C++ advanced
- git
- basic knowledge of Protobuf
- CMake
- Python (optionally)
- JSON
Future plans
Further improvement of the stability of the tool and the library, updating its when protobuf files would change. Hopefully another member or HL Iroha community.
Preferred Hours and Length of Internship
Full-time of part-time.
Mentor(s) Names and Contact Info
Grzegorz Bazior (AGH University of Science and Technology)
email: bazior[you know what]agh.edu.pl
Telegram: @baziorek
Discord: baziorek#9186
Piotr Pawłowski
email: ppiotru@gmail.com
Telegram: @pawlak00
Final report
GMT20221118-113231_Recording_2560x1440.mp4