Hyperledger Mentorship program: Iroha 2 Blockchain Explorer
Kshitij Roodkee, December 2023.
Mentor: Dmitry Balashov.
Mentorship article on Hyperledger Wiki.
Introduction
Engaging in the Iroha Blockchain Explorer (backend code, frontend code) update through the Hyperledger Mentorship project (Mentorship program on Hyperledger Wiki) has been an exhilarating journey marked by technical challenges, continuous learning, and a profound sense of contributing to the broader technical community. As a mentee in this project, I immersed myself in various facets that enhanced my technical skills and offered valuable insights on becoming a more effective contributor to the open-source realm.
Project Overview: Iroha 2 Explorer
Iroha 2 Explorer is a web-based UI that inspects the entire state of an Iroha 2 blockchain. It helps users understand the structure of the blockchain by providing easy navigation through blocks, accounts, transactions and their details.
Project Goals
The main task was to update the Iroha 2 Explorer Backend from version RC.9 to RC.16. This update ensures that the explorer stays up-to-date with the latest improvements in Iroha 2. I also tackled some issues related to Rust and Iroha code architecture. The goal was to ensure the explorer works smoothly with the newest Iroha 2 release.
Current Project Status
The implementation of Iroha 2 Explorer Backend works with Iroha RC.16. In particular, a significant change in the logic for rejected transactions is no longer present in RC.16.
However, during the transition from RC.16 to RC.19, updating the backend, I encountered substantial challenges due to issues within Iroha.
I made progress on the frontend side by partially implementing the Block Details page in the Iroha 2 Explorer. As of now, this aspect of the project is still a work in progress.
Significant Challenge Faced
One of the prominent challenges encountered revolves around ensuring a smooth transition of the blockchain explorer to the latest releases. The continuous evolution in the logic of the primary API for the Iroha 2 library necessitates synchronization with the blockchain explorer backend. This synchronization introduces complexities, particularly in managing discrepancies between frontend requirements and the data supplied by the backend during the development and update processes to align with changes in Iroha logic.
I took the proactive approach to address this challenge, thoroughly examining merged pull requests to the Iroha 2 libraries and engaging in discussions and research with the mentor. This collaborative effort proved essential in overcoming obstacles and maintaining alignment between the blockchain explorer and the evolving Iroha logic.
What I’ve learned and accomplished
Proficiency in Rust
Embarking on this project with minimal familiarity with Rust, I dived into the world of this powerful and type-safe language. Throughout this mentorship project, I immersed myself in Rust, delving into its fundamentals. I honed my skills by studying professionally written code, running it, and collaborating with experienced Rust developers. This hands-on experience provided a solid understanding of Rust and showcased its practical applications in real-world scenarios.
Proficiency in Vue.js
Vue.js, a JavaScript framework prized for its simplicity and flexibility in building user interfaces, was an entirely new territory for me. I successfully learned and implemented Vue.js for the Iroha 2 Explorer project despite starting with zero knowledge. This learning journey involved grasping the basics of Vue.js, such as components and directives. Through active participation in the project, I gained proficiency in Vue.js and cultivated the skills necessary to craft interactive user interfaces.
Writing Good PRs and Collaboration:
A significant additional learning from this project was writing excellent pull requests, encompassing everything from the formatting of a pull request to the meticulous design of commits adhering to standardized practices for delivering high-quality contributions. This experience emphasized that success in blockchain technology relies not only on technical skills but also on effective communication, cooperation, and dedication to surmounting obstacles collectively.
What I gained from working with a mentor
Working closely with Dmitry Balashov as my mentor has been an invaluable experience, marked by comprehensive guidance and unwavering support. Through insightful meetings and meticulous pull request reviews, Dmitry’s mentorship elucidated intricate concepts and significantly expedited my learning journey. Their expertise honed my technical skills and fostered a profound appreciation for collaborative endeavours within the Hyperledger community.
Witnessing the dedicated spirit of the Iroha core team further inspired me to strive for excellence, encouraging a deeper engagement with the open-source spirit.
What comes next
Career Development
I am ready to take on more significant challenges in the Rust subspace, aiming to further refine my web development skills. I eagerly anticipate contributing to open-source solutions that revolutionize technology and play a role in designing a better world.
Advancing the Iroha Blockchain Explorer
Given the dynamic nature of the Iroha 2 APIs due to being in a pre-release state with frequent updates and changes, the project remains an ongoing endeavour. Ensuring a seamless upgrade of the blockchain explorer to the latest releases presents a continuous and challenging task, including updating the backend API to align with the current state of Iroha 2.
Moreover, the backend development must harmonize seamlessly with UI/UX designs, which entails creating and implementing screens for account details, asset details, transaction details, and other pertinent components. This ongoing development is crucial for maintaining synchronization with the evolving landscape of Iroha 2.
My engagement with the Hyperledger Iroha Blockchain Explorer project has been a pivotal and transformative chapter in my career. I anticipate sustaining my involvement in the Hyperledger community and contributing to the ongoing revolution in decentralized identity solutions.