Project Plan - Implement iroha-cpp library for Hyperledger Iroha 1
Abstract
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++.
The project is about implementing the iroha-cpp library.
Optionally the library should be compatible with C language (extern "C") to make it easy to use the library from multiple programming languages.
Mentors
Name | Time zone | Discord ID | Telegram ID | Email ID |
---|---|---|---|---|
Grzegorz Bazior | CEST | baziorek#9186 | @baziorek | bazior@agh.edu.pl |
Piotr Pawłowski | CEST | @pawlak00 | ppiotru@gmail.com |
Mentee
Name | Time zone | Discord ID | Telegram ID | Email ID |
---|---|---|---|---|
Andrzej Gruntowski | CEST | Byte#5828 | andrzejggru@gmail.com |
Communication channel: Discord + Telegram + Email + Github
Project repo: TBD
Deliverables
- Approved library design and flow
Merged PR's
Final Project Presentation:
- It was presented during Iroha-BI-Weekly community meeting on 18th November 2022 (link):
Milestones
Eval 1:
- Configured environment to handle development library inside Hyperledger Iroha's main repository
- Prepared final design of external library
Eval 2:
- Completed external Iroha library in C++
Eval 3:
- Completed well defined documentation
Eval 4:
- *Clean up, refactoring and debugging Iroha-lib
- Present final results
Timeline
Dates | Tasks/Plan | Status |
---|---|---|
June 1 - June 14 | Getting familiar with Iroha documentation and starting example database. Building and running Iroha from code. Mentee intro with the mentor. Introduction to the concepts of Hyperledger Iroha 1. Build and run Hyperledger Iroha node (Irohad) and Iroha-cli from source. Send sample commands and queries via Iroha-cli with succeed. | Done |
June 15 - June 28 | Send sample command and queries via Iroha-Python and Iroha-Java library. Reading Iroha code. Getting familiar with iroha transactions, queries and statuses. | Done |
June 29 - July 12 | Design interface of Iroha-cpp library. | Done |
July 13 - July 26 | Start implementing iroha-cpp library. Introduce working draft/concept of the interface. Resolving current issues. | Done |
July 27 - Aug 9 | Refactor current implementation. Possible contact with the iroha developers on monthly meetings in order to verify current progress, design and approach of the implementation. Create a separate directory/module for iroha-cpp client library in iroha main repository. Independence from iroha transaction/query/status implementation. Implement own methods in order to handle auto-generated protobufs. | Done |
Aug 10 - Aug 23 | Implement grpc client in order to send a transaction/query/status to the iroha server. Create a separate repository (iroha-cpp). Create first PR to review. | Done |
Aug 24 - Sept 6 | Working on newly created draft pull request. Improvements/refactoring/testing. https://github.com/hyperledger/iroha/pull/2660 Added atomic to Batch Transactions. | Done |
Sept 7 - Sept 20 | Response to all comments from PR. Contact with Iroha Hyperledger developers/architect. Possible additional training(s) related to the project (on Udemy platform). | Done |
Sept 21 - Oct 4 | Update the description. Add more samples. Reply and modify all comments from draft pull request. Rebase commits on top of current develop. Resolve all conflicts with develop branch. Squash all 56 commits into 1. Mark Pull Request as a Ready for review. | Done |
Oct 5 - Oct 18 | Resolve/reply to all comments during the review. Pull Request successfully merged and closed. | Done |
Oct 19 - Nov 1 | Prepare more detailed README file with functionalities of the library. New PR with readme file created. Attend to biweekly Iroha meetings to be up to date with the latest changes and updates. | Done |
Nov 2 - Nov 12 | New PR with some improvements -> https://github.com/hyperledger/iroha/pull/2935 → Approved & Merged. Final evaluation. Presentation of project final results to Iroha Team on bi-weekly meeting (link) and presentation of project. | Done |
Methodology
TBD
Project results
- Merge Requests:
Presentation
IrohaPresentationAndrzejGruntowski.pdf