Iroha 2: Java SDK feature completeness, improvements and refactoring
Description
This project aims to immerse the intern into the Iroha Java team. We expect the mentee to learn the coding practices of a professional software engineering team. Instead of having a set task, we hope the mentee will perform several optimisations and refactorings ranging from very easy to state-of-the-art. The mentee will also participate in upgrading the Iroha Java SDK after a significant change in the core Iroha API.
Additional Information
Current Iroha-java branch.
Learning Objectives
The mentee will improve their understanding of Java and code refactoring while practising with an SDK designed in Java for a Rust library.
Expected Outcome
The precise outcomes are flexible and depend on the experience of the mentee and the goals set by the mentors during the initial meeting. For now, we provide a list of issues provided by the JavaSDK team that the mentee can work on.
- The Blockstream feature will allow monitoring of the appearance of the new blocks.
- The Java model generation needs to support Iroha
JSON
schemas better. For that to work, the code generator needs additional code to work with generic types. - The internal serialiser code needs refactoring, and the deserialiser code needs fixing before that: it will allow for turning Java models into the genesis file and vice versa.
- The genesis configuration capabilities must be extended using
WithIroha
annotation and current mechanics to make the testing code more flexible. For example, there should be a feature to pass the Genesis file intoWithIroha
instead of a class. - Testers should be able to run Java SDK tests on a local environment. The mentee must implement the new code to configure one’s Iroha peer and keys for this feature.
Relation to Hyperledger
Iroha Java is part of Hyperledger Iroha and the preferred method of interaction for Android developers.
Mentee Skills
Experience in Java or Kotlin.
It will help if the mentee has experience with the following tools:
Future plans
After the updates are ready, they'll be an actively supported part of Iroha 2 SDK.
Mentor(s) Names and Contact Info
Mentor(s) Names and Contact Info
- Andrey Kostiuchenko: kostiuchenko@soramitsu.co.jp, @anrdey
- Timur Guskov: guskov@soramitsu.co.jp, @g1timur