You are viewing an old version of this page. View the current version.
Compare with Current
View Page History
« Previous
Version 58
Next »
Overview
The main goal of the project is to create a documented Iroha (1.x) package for the Cactus project, which demonstrates the interoperability between Iroha and Cactus. The project also includes 3 documented examples of integration between Iroha and Cactus, and 2 documented examples of integration between Iroha and Fabric. The documentation will benefit the community so that people can understand this project.
Mentor and Mentee
Communication channel: Telegram/ RocketChat/ Public Channels/ Emails/ Microsoft Teams
Project repo:
https://github.com/hyperledger/cactus
https://github.com/hyperledger/iroha
Project Plan
Schedule | Task | Deliverable |
---|
Week 1 - Week 3 Jun 1 - Jun 18 Jun 18: 1st Quarter Evaluation | - Install Ubuntu 20.04 LTS and set up environment.
- Build Cactus.
- Build Iroha.
- Understand existing source code.
- Start the Iroha and Cactus integration.
| - Project Plan.
- Skeleton for Iroha and Cactus integration.
|
Week 3 - Week 6 Jun 19 - July 9 July 9: Midterm Quarter Evaluation | - Implement the Iroha and Cactus integration.
- Write tests for the Iroha and Cactus integration.
- Write documentation.
| - ~50% of the Iroha and Cactus integration package.
- Technical documentation for the package.
|
Week 6 - Week 10 July 10 - July 30 July 30: 3rd Quarter Evaluation | - Write tests for Iroha and Cactus integration.
- Write documentation.
| - Completed package for Iroha and Cactus integration.
|
Week 10 July 31 - Aug 10 Aug 20-31: Final Evaluation | - Wrap up documentation.
- Final report of the project.
- Final presentation of the project
| - Code for unit tests and integration tests. *
- Technical documentation for the entire project.
- Final report.
- Final presentation.
- 1 examples of Iroha and Cactus integration. (Nice-to-have)
- 2 examples of Iroha and Cactus integration. (Optional)
- 2 examples of Iroha and Fabric integration. (Optional)
|
* Will wrap up all codes-relevant stuff by Aug 5.
Timeline
Week | Task | Weekly Slide |
---|
1 (Jun 1 - Jun 6) | - Attend onboard meeting
- Attend 6/4 Iroha community meeting
- Read the project wiki page
| |
2 (Jun 7 - Jun 13) | - Install Ubuntu 20.04 LTS
- Set up environment
- Build Cactus
- Build Iroha
- Project Plan
| |
3 (Jun 14 - Jun 20) | - Skeleton code for Iroha and Cactus Integration
- Learn Typescript via Udemy course
| |
4 (Jun 21- Jun 27) | - Finished the Typescript Udemy course
- Stripped out files and functions for Iroha plugin
- Worked on current Tx test
- Tried to compile the package
| |
5 (Jun 28- July 4) | - Made sure the project compiles
- Used dockerode to run Iroha+Postgres docker image properly
- Modified based on v1.2.0 Iroha Docker image; posted on DockerHub
- Tried to run Iroha’s JS library
| |
6 (July 5 - July 11) | - Inquired Iroha community about Iroha docker health check + Iroha JS library response
- Switched to Iroha’s TS library, got output from all commands/queries
- Rewrote Cactus’s connector to manipulate Iroha’s TS library (able to pass commands and queries and get back response)
- Tried almost all Iroha’s commands+queries. (a shared Google Sheet is used to track the progress)
- Redesigned test cases, pushed to Github.
| |
7 (July 12 - July 18) | - Switched from connector to apiClient to run transactions for everything
- Progress: Commands -> 14/20; Queries -> 12/15; in total: 26/35 (~74%)
- Made code cleaner (used enum for Iroha commands/queries)
| |
8 (July 19 - July 25) |
|
|
Process
- Communication and updates:
- Telegram/ RocketChat/ Public Channels/ Emails/ Microsoft Teams are used as tools.
- Weekly check-in meetings between mentors and the mentee.
- Quarterly evaluations on Jun 18/ July 9/ July 30/ Aug 20.
Recommendations for future work:
Category | Detail | Mentee |
---|
Iroha connector plugin |
|
|
Iroha-Javascript library | - Improve the JS library. The JS library gives “undefined” as output. It would be better for us to do the testcases if it outputs tx status and tx hash. (Right now, I used iroha-helper-ts, but it could be further optimized)
|
|
Iroha docker container | - Upgrade Iroha version. Currently, using Iroha v1.2.0, should be upgraded to improve Iroha’s performance
- Although the current healthcheck mechanism works fine, it enlarges the docker image by ~100MB. The Iroha docker image could be shrinked once the Iroha team introduces the grpc healthcheck/ once the Iroha team make metrics page an option for v1.2.2.
- Potentially, the Postgres database docker instance could be replaced by RocksDB ( needs just one folder - it should be docker volume - to keep data between different runs of image.)
|
|
Documentation | - For docs/source/support/iroha.md, Updating the test link to be a valid link once the current Iroha PR gets merged/released.
|
|
Category | Current implementation | Expected improvements |
---|
Iroha connector plugin | 1 Call Engine is left as not implemented. (made the commit rejected within the ledger, and thus rejected in the test case. |
|
| 2 SetSettingValue is left as not implemented. (returned http 405 Error) |
|
| 3 removePeer is left as not implemented because a valid Iroha testnet is required to use this function. |
|
| 4 fetchCommits is left as not implemented. It could be implemented as something similar to Besu connector's WatchBlockV1. |
|
| 5 There is a problem with producing a pending transaction, the code will get stuck and fail the test suite. Peter looked into this issue, but seems like Iroha ledger itself is struggling to generate the pending transaction. (https://jira.hyperledger.org/browse/IR-1010) |
|
Iroha-Javascript library | 1 Improve the JS library. The JS library gives “undefined” as output. It would be better for us to do the testcases if it outputs tx status and tx hash. (Right now, I used iroha-helper-ts, but it could be further optimized) |
|
Iroha docker container | - Upgrade Iroha version. Currently, using Iroha v1.2.0, should be upgraded to improve Iroha’s performance
- )
|
|
| - Although the current healthcheck mechanism works fine, it enlarges the docker image by ~100MB. The Iroha docker image could be shrinked once the Iroha team introduces the grpc healthcheck/ once the Iroha team make metrics page an option for v1.2.2.
|
|
| Potentially, the Postgres database docker instance could be replaced by RocksDB ( needs just one folder - it should be docker volume - to keep data between different runs of image.) |
|
Documentation | - For docs/source/support/iroha.md, Updating the test link to be a valid link once the current Iroha PR gets merged/released.
|
|