TitleBuild a distributed platform for citizens to collaborate in a region implemented on Hyperledger Fabric
Status

COMPLETED

Difficulty

MEDIUM  

Description 

Introduction and Problem Statement:

Many city councils want to know the voice of citizens whenever a change is implemented. Usually when a city approves a plan, there are always a small minority affected/opposing it.The city always wants feedback from the citizens on their decisions and they never have a proper channel to do so. Though the usage of online forums are common in developed and developing countries,  its usually challenging to get public agree on a common platform as the platforms are controlled by individual companies/government bodies. Also, public is worried about privacy and safety of the platform. Further, there are also situations like some NGOs who host the platform have financial challenges and hence discontinue their services.

Proposed Solution:

In a distributed platform like hyperledger, its possible to decentralize the ownership. This gets to a situation where the platform is by the people and for the people. Also, due to the immutable nature of the hyperledger, there is one source of truth existing in the system. The Endorsement policies handle the privacy part and Certificate-Authorities provide safe and
secure platform. When the hyperledger components are shared among the NGOs/government/Universities/private-bodies, the ownership is distributed.

Proposed Architecture:

Orderers and Peers:

Orderers and Peers are distributed and hosted across government, NGOs and private bodies

Endorsement policy:

Combination of Private date implicit collections/Key-level endorsement policies are implemented

Proposed high-level workflow:

  1. Automatic enrolment with bank identification through CA
  2. Add/modify/delete opinions and votes. Note that delete can only reset the latest value
    in the block and DB. But the history is saved in blockchain

Additional Information

1. Understanding endorsement policies in Hyperledger Fabric v2.x - https://hyperledger-fabric.readthedocs.io/en/release-2.0/endorsement-policies.html
2. Understanding chaincode - https://hyperledger-fabric.readthedocs.io/en/release-2.0/chaincode4noah.html
3. Understand channel manipulations (adding/removing/etc.) - https://hyperledger-fabric.readthedocs.io/en/release-2.0/channel_update_tutorial.html

Learning Objectives

1. Understanding of hyperledger fabric concepts
2. Learn to manage (write/install/execute) hyperledger smart contracts (chaincode)
3. Good exposure to DLT technologies
4. Understand De-centralised transaction endorsement concepts
5. Gain Hands-on experience with opensource software development

Expected Outcome

1. An end-2-end working solution (Finland region):

  • User enrollment through CA with BankId tupas authentication
  • Enrolled users are able to create topic, create comment, poll vote
  • Enrolled users are able to modify/delete one's own topic, comment, vote
  • Ability to enroll newer peers with less manual steps

2. Good documentation with diagrams in github
3. Unit and integration tests for the implementation

Relation to Hyperledger 

1. Hyperledger Fabric
2. Hyperledger Cello

Education Level

Any

Skills

1. Interest in distributed systems
2. Coding skills required to implement chaincode in golang, nodejs or java
3. Familiarity with bash is a plus
4. Knowledge on container technologies like Docker is also an advantage

Future plans

1. Generalize the implementation to configure it to use for any kind of collaborative distributed applications

Preferred Hours and Length of Internship

Part-time (20 hours a week for 24 weeks starting in summer and ending in fall) 

Mentor(s) Names and Contact Info

Anoop Vijayan, anoop@tuxera.com Karthik Sundaramoorthy, karthik@cloudronics.com

Mentee Name and Contact Info

Hritik Gupta, Hritik Guptahritikgupta9@gmail.com

Project Results

Final Report

Lightening Talk Recording

A fully distributed citizens pulse platform for state:city councils - with Hyperledger Fabric.mp4