Project TitleImplement iroha-cpp library for Hyperledger Iroha 1.*, refactor iroha-cli, document changes
Status

COMPLETED

Difficulty

MEDIUM  

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

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


  File Modified
PDF File IrohaPresentationAndrzejGruntowski.pdf Nov 20, 2022 by Grzegorz Bazior
Multimedia File GMT20221118-113231_Recording_2560x1440.mp4 Nov 20, 2022 by Grzegorz Bazior
Multimedia File GMT20221118-113231_Recording.m4a Dec 06, 2022 by Ry Jones
File GMT20221118-113231_Recording.transcript.vtt Dec 06, 2022 by Ry Jones