The main goals of the Musing Protocol are the following:
  1. 1.
    Store Q&A and shared links content on a decentralized system.
  2. 2.
    Allow users to stake their tokens to good content creators.
  3. 3.
    Distribute tokens to the content creators.
  4. 4.
    Allow brands to advertise.
These goals will be achieved with the following basic technical components:
  1. 1.
    A decentralized file storage system
  2. 2.
    A set of smart contracts (the Musing Protocol)
  3. 3.
    Frontend Q&A apps that communicate with the protocol

Storage Layer

The main goal for Musing is to create a decentralized system where knowledge can be shared. In order to store the actual content, we will require a decentralized file storage system. We propose to use a system such as IPFS (InterPlanetary File System) to handle storage. Users can interact with a frontend, such as, and any questions or answers they post will be sent directly to IPFS for storage. A hash will be returned from IPFS, and that hash will then be stored on the blockchain.

Blockchain Layer

The blockchain layer will be responsible for several activities. As mentioned, content from the storage layer is stored as a hash on the blockchain. The purpose of storing the hashed content on-chain is that it associates a piece of content/knowledge with a particular user, since users will sign their content with their private keys. Staking activity for rewarding users is also stored on-chain. When a user decides to stake for a content creator, the recorded amount of staked tokens is recorded on-chain as well as the target user's public key. At a chosen interval (likely once a day), a job will run that looks at all the staked votes and calculates how much each content creator earns from the reward pool. The formula for this is simple - it simply creates a fraction for each user by looking at the tokens staked toward him or her divided by the total number of staked tokens
Lastly, the smart contracts will also store advertising campaigns for brands/ companies that want to advertise on Musing. This information will generally consist of the number of total Musing tokens they want to spend on advertising, the number of tokens spent to date on advertising for the campaign, the product or advertisement they want to advertise, and the frontends/applications that the brand wants to allow to advertise for them.

Frontend App Layer

The final layer of Musing is the frontend layer. These are the web or mobile applications that interface with the smart contracts (Musing Protocol). This layer is fairly straightforward. The important aspect of this layer is that the applications allow users to send requests directly to the smart contracts, and therefore, the servers that are owned by these frontends never see any private keys. A tool like Metamask will be used to handle logins. Note that since Musing is decentralized, the data on the blockchain is public, and therefore, anyone can create their own frontend to interface with Musing.