Project Plan: Iroha 2: Blockchain Explorer Update

Abstract


Iroha 2 Blockchain Explorer development stopped when Iroha was of version `2.0.0-pre-rc.9`, primarily because of the early stage of Iroha 2 itself. Some pages on the frontend side were not implemented, and the backend missed some APIs needed for the front end to implement the required design. The beginning of mentorship starts with Iroha version `2.0.0-pre-rc.16`. There were many API updates, so the Blockchain Explorer project should be revisited with the reconsideration of the current situation with Iroha and the features to be implemented.

The primary goal of the mentorship is to update the explorer to the most recent version of Iroha. Refactoring will entail significant changes in code logic, which requires decent knowledge and practice in Rust. Considering that the mentee is not an experienced Rust developer and that Rust's learning curve is quite steep, we expect that the whole refactoring will take all the time of the mentorship.

Refactoring might include changes in the backend API as well. It will involve learning:

  • how HTTP and Web services work;
  • how to develop asynchronous logic and how concurrency works;
  • how to build a convenient and efficient API for the front end.

Iroha 2 is updated frequently: new versions appear approximately every month. The latest versions contain breaking changes sometimes. Therefore, we could expect the mentor to update the explorer accordingly to the most recent updates of the Iroha API.

If the mentor succeeds with the primary goal, we will give them an opportunity to run the extra mile. It might include:

- Research the current mismatch between the explorer's design (what we can see as users) and what Iroha 2 provides in reality. E.g. the design of the transaction details page might have displayed fields which have information that is not available in Iroha at all.
- Implement missing pages in the front end, e.g. the asset page
- Implement missing features in the backend, e.g. fuzzy search or filtering of entities
- Additional potential code updates depending on the progress and direction of the mentorship

Milestones

Eval 1:

  • Configure the environment
  • Analyze the initial state of the project, plan the initial updates
  • Perform the initial code updates
  • Document what was changed

Eval 2:

  • Conduct the manual testing and analyze what further fixes are needed
  • Implement other code updates to reach better functionality

Eval 3:

  • Refactor the code, check what high-priority tickets can be implemented in a reasonable time
  • Update the codebase with selected tickets
  • Conduct manual testing
  • Address the code bugs

Eval 4:

  • Document the mentorship results
  • Present final results


Timeline

Dates

Tasks/Plan

Status

June 1 - June 14



June 15 - June 28



June 29 - July 12



July 13 - July 26

July 27 - Aug 9

Aug 10 - Aug 23

Aug 24 - Sept 6

Sept 7 - Sept 20

Sept 21 - Oct 4

Oct 5 - Oct 18

Oct 19 - Nov 1

Nov 2 - Nov 12

Mentors

Name

Time zone

Discord ID

Telegram ID

Email ID

Dmitry BalashovUTC+9i_use_arch_btw@quacumquedbalashov@soramitsu.co.jp

Mentees

Name

Time zone

Discord ID

Telegram ID

Email ID

Kshitij Roodkee
N/Ahorizenightkshitijroodkee1@gmail.com

Merged PRs