Inspiration

People often have a passion for a product, a subject, or they share a common problem set. A group like this typically has a natural desire to collaborate and build up a shared base of knowledge. However, this rarely happens effectively today because it is difficult for potential members of the group to believe their contributions will be treated fairly and that the group will have true ownership of the knowledge base they produce. The Stratis Platform has the potential to solve that problem.

What it does

The knowledge base is controlled by smart contracts that capture questions group members pose to each other and proposed answers to those question. The contract are used to select the best answer based on ranked choice voting using the minimax voting system. This system ensures that selection of the best answer reflects a broad and fair consensus of the total group. The actual content of the questions and answers is stored on the Interplanetary File System (IPFS) so that the content of the questions and answers referenced in the contracts have ensured access, are free from tampering or modification, and are permanent as long as someone, somewhere has an interest in them.

How we built it

The smart contracts are written in C# and deploy to the Cirrus side chain. The application used to access the contracts is a Progress Web App (PWA) created using Blazor WASM and using the MudBlazor component library. An IPFS node is also installed locally. The system is intended to be decentralized with no dependency on a central server.

Challenges we ran into

CORS restrictions were a significant problem. A small proxy app was created to run on the local machine and allow the browser based app to access the Cirrus node. However, this will make widespread distribution of the app much more difficult than requiring only the PWA even though the Proxy does nothing except act as a pass through to the API.

Accomplishments that we're proud of

The WASM based client for the contracts turned out better than expected given the very short development time. It still needs work and is probably buggy, but it looks reasonably nice and works smoothly with the contracts.

What we learned

The basic concept of using token generation as a mechanism to fairly redistribute the groups funds based on their contributions seems sound though the particulars will need to be refined with experience. The Stratis Smart Contracts were easy to create with C# and worked reliably.

What's next for Group Knowledge Builder

  • Find a better solution to the CORS problem.
  • Conduct extensive testing of the application using simulations of long term use scenarios.
  • Make use of the Smart Contract logging capability and improve error handling and feed back to users.
  • Move from only plain text based questions and answers to limited rich text and some media capability.

Built With

  • .net6.0
  • blazor
  • c#
  • ipfs
  • mudblazor
  • stratus/cirrus
Share this project:

Updates