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:
- Automatic enrolment with bank identification through CA
- 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