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