Project Plan - expand minifabric with k8s operator

Mentor and Mentee

Mentor: Tong Li

Timezone: EDT

Discord (hyperledger): tongliofcary#5114

Mentee: Christopher Ryan Humphrey

Timezone: EDT

Fork of official repository for this project: https://github.com/hyperledger-labs/minifabric

Deliverables

  • Review/Get familiar with technologes:
    • Docker
    • K8S
    • Git/Yaml/Ansible
    • K8S operator
    • Blockchain/Hyperledger Fabric
  • Setup Fabric network using Minifabric in docker env.
    • deploy example chaincode
    • create channel
    • run operations like join new org, add new node, upgrade chaincode
  • Add option to deploy fabric onto K8S (currently deploy onto docker and K8S but using a file indicator rather than an explicit flag)
  • Deploy Fabric K8S operator controller
  • Deploy Fabric hyperledger fabric peer and orderer nodes onto K8S using fabric operator
  • Expose peer and orderer nodes outside of K8S cluster

Milestones

Evaluation 1:

  • Familiar with technologies

Evaluation 2:

  • Run minifabric in docker env to ensure fabric network is up running.
    • chaincode can be installed
    • channel can be created, peers can be joined
    • transactions can be made

Evaluation 3:

  • New option is added to deploy fabric k8s operator controller to k8s
  • operator controller can be deployed onto k8s cluster
  • peer and orderer nodes are deployed

Evaluation 4:

  • Operators such as channel,chaincode can be operated on against the fabric running on k8s cluster
  • Write a complete documentation for the project

Timeline

Week #

Week

Activity

Status

1-2

July 11 - July 22

Evaluation 1

familiar with the technologies and tools needed as these skills were required to successfully complete the project, here is a list of things:

Docker, K8S, git, yaml, ansible, K8S operator, Blockchain, Hyperledger Fabric etc.

  •  

3

July 25 - July 29

Evaluation 2

Run Minifabric locally, setup env to run Minifabric in docker env so that Fabric network is up running, deploy an example chain code, create channels, and run all other operations such as join new org, add new node, upgrade chain code.


5-6

Aug 1 - Aug 12

Add flag to run Minifabric command against k8s env instead of against docker, deploy Fabric K8S operator controller onto K8S

7-9

Aug 15 - Sept 2

Evaluation 3.1

Deploy peer node  onto K8S


9 - 10

Sept 5 -  Sept 16

Evaluation 3.2

Deploy Orderer node onto K8S


11 - 12

Sept 19 - Sept 30

Evaluation 3.3

Expose node endpoints outside of K8S clusters (this task can be combined with deploy nodes)


13 - 15

Oct 3 - Oct 21

Evaluation 4.1

Modify existing channel create command to support channel creation against the nodes running in k8s (using operator way), join nodes to the channel, chain code operations


16 - 17

Oct 24 - Nov 4

Evaluation 4.2

Modify existing org join commands to support org join, peer join.


18 - 21

Nov 7 - Dec 2

Evaluation 4.3

Provide tests, documentation, videos


22-24

Dec 5 - Dec 23

Evaluation 4.4

Bug fixes


Methodology

We will be using Agile development model, git PR should be created and reviewed, then merged after review. design should be discussed and confirmed with mentors. Test cases should be created when new code is added, code without tests should not be merged. Using git issue tracking to track issues and provide fixes.