Iroha 2: Java SDK feature completeness, improvements and refactoring

Project TitleJava SDK feature completeness, improvements and refactoring
Status

UNSELECTED

Primary Focus

CODING 

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 into WithIroha 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