Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: added practical presentation (not the same as on project site)

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

...

MentorMentorMentee

Peter Somogyvari

PDT (UTC-7)

peter.somogyvari@accenture.com

Grzegorz Baz

CEST (UTC+2)

g.bazior@yodiss.pl

Han Xu

EST (UTC-5)

hongkexuhan@gmail.com

Communication channel: Telegram/ RocketChat/ Public Channels/ Emails/ Microsoft Teams

Project reporepository: 

https://github.com/hyperledger/cactus (main)

https://github.com/hyperledger/iroha

Project pull requests:

https://github.com/hyperledger/cactus/pull/1183

https://github.com/hyperledger/cactus/pull/1169 

Practical presentation of completed project (not the same presentation as on project site) - how to use result of the internship:

View file
nameIroha Meeting Presentation HanXu - 2021_v2.pdf
height250

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 example of Iroha and Cactus integration. (Nice-to-have)
  •  2 examples of Iroha and Cactus integration. (Optional)
  •  2 examples of Iroha and Fabric integration. (Optional)

...

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)
  •  Implementation progress: Iroha commands -> 19/20; Iroha queries -> 14/15; in total: 33/35 (~94%)
  •  Working on rebasing
  •  Took a look at the Iroha Testnet 
W8 Slide.pdf
9 (July 26 - Aug 1)
  •  Finished rebasing
  •  Drafted pull request with Peter; fixed most feedback from Peter (11/12)
  •  Finished my own Dockerfile; shrinked the size to 120MB; 85% improvement (thanks to help from Iroha community and Greg)
  •  Delivered presentation to the Iroha community this morning
  •  Explored the issue behind grpc error “GOAWAY unavailable” (get pending transaction)
10 (Aug 2 - Aug 8)
  •  Responded to all feedback from Peter for my 2nd PR
  •  Look into the pending transaction issue
11 (Aug 9 - Aug 15)
  •  Finished rebasing
  •  Drafted pull request with Peter; fixed most feedback from Peter (11/12)
  •  Finished my own Dockerfile; shrinked the size to 120MB; 85% improvement (thanks to help from Iroha community and Greg)
  •  Delivered presentation to the Iroha community this morning
  •  Explored the issue behind grpc error “GOAWAY unavailable” (get pending transaction)
  • Iroha-Iroha transfer example (including passing randomly generated admin/node key pairs)
  •  Finished the irohaBaseConfig interface for the request
  •  Tweaked Iroha docker healthcheck via Python SDK
  •  Tried best to remove magical strings (e.g., changing the strings to enum; randomly generate admin/node key pairs; uuidv4())
  •  Responded to most of the feedback
12 (Aug 16 - Aug 20)
  •  Fixed the crash issue with Iroha-Iroha transfer example (will not crash if pass in no
    parameter)
  •  Updated comments and documentation (e.g., readme.md)
  •  Removed magical strings for all files; responded to all PR feedback
  •  Completed the “Recommendations for future work” list
  •  Added tls:boolean option inside the baseConfig interface (tls is not implemented)

...