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 getPendingTransaction is not fully tested. There is an issue with producing a pending transaction, the code will get stuck and fail the test suite. It seems like Iroha ledger itself is struggling to generate the pending transaction. (https://jira.hyperledger.org/browse/IR-1010) | Able to produce a pending transaction in the test case. Able to validate the pending transaction via getPendingTrasaction query. | 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 |