Project Plan: Iroha 2: Blockchain Explorer Update

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

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 Balashov

UTC+9

i_use_arch_btw

@quacumque

dbalashov@soramitsu.co.jp

Mentees

Name

Time zone

Discord ID

Telegram ID

Email ID

Kshitij Roodkee

 

N/A

horizenight

kshitijroodkee1@gmail.com

Merged PRs