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
Mentor | Mentor | Mentee |
---|---|---|
Peter Somogyvari PDT (UTC-7) | Grzegorz Baz CEST (UTC+2) | Han Xu EST (UTC-5) |
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 |
|
|
Week 3 - Week 6 Jun 19 - July 9 July 9: Midterm Quarter Evaluation |
|
|
Week 6 - Week 10 July 10 - July 30 July 30: 3rd Quarter Evaluation |
|
|
Week 10 July 31 - Aug 10 Aug 20-31: Final Evaluation |
|
|
* Will wrap up all codes-relevant stuff by Aug 5.
Timeline
Week | Task | Weekly Slide |
---|---|---|
1 (Jun 1 - Jun 6) |
| |
2 (Jun 7 - Jun 13) |
| |
3 (Jun 14 - Jun 20) |
| |
4 (Jun 21- Jun 27) |
| |
5 (Jun 28- July 4) |
| |
6 (July 5 - July 11) |
| |
7 (July 12 - July 18) |
| |
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 | Current implementation | Expected improvements | Difficulty level |
---|---|---|---|
Iroha connector plugin | 1 Call Engine is not implemented. (made the transaction rejected within the ledger, and thus rejected in the test case. ) | Implement Call Engine command in the connector. | |
2 SetSettingValue is not implemented. (returned http 405 Error) | Implement SetSettingValue command in the connector. | ||
3 removePeer is not implemented because a valid Iroha testnet is required to use this function. | Able to manipulate Iroha testnet (>= 3 Iroha nodes are recommended) Building on top of that, implement removePeer command in the connector. | 4/5 | |
4 fetchCommits is not implemented. | fetchCommits could be implemented as something similar to Besu connector's WatchBlockV1. | 3/5 | |
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) | 4/5 | ||
Iroha-Javascript library | 1 I used iroha-helper-ts, but it could be further optimized. | 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. | 2/5 |
Iroha docker container | 1 The test cases rely on a modified Iroha v1.2.0 all-in-one (AIO) docker image. | Iroha version should be upgraded to improve Iroha ledger's performance. | 2/5 |
2 Embedded Iroha Python SDK inside the Iroha AIO docker image. 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. | 2/5 | |
3 Each Iroha docker container relies on a corresponding Postgres database container to store information. | The Postgres database docker container could be replaced by RocksDB ( needs just one folder - it should be docker volume - to keep data between different runs of image.) | 3/5 | |
Documentation | 1 For docs/source/support/iroha.md, the test link is not guaranteed to be valid. | Updating the test link to be a valid link once the current Iroha PR gets merged/released. | 1/5 |