Minds is an open source social network with a goal to becoming more decentralized. The current market consists of solutions that are either federated (still centralized but more diverse) or fully blockchain based (slow, expensive and everyone is storing everyone else's data).
What it does
Nomad utilizes the blockchain for when consistency is needed by the entire community. For example, Usernames need to be known by everyone and provide metadata about the user.
However, it is not important that the entire community is aware of all the posts of all users, instead they just need to be able to verify the authenticity. By using the DAT protocol all posts are versioned and contain signatures. We achieve this via Ethereums signing functionality by confirming the signature of the post matches the ethereum address connected to the username.
How I built it
- Solidity contract for the usernames component
- DAT for peer-to-peer file transfer of posts and assets
- React app for quick and simple interface
Challenges I ran into
- Time constraints leading to pulling back certain featured
- Inefficient collecting of feeds (if users have 1000's of posts this will add a lot of latency at the fetch stage. caching is needed)
- Poor wifi resulted in not being able to deploy to rinkeby testnet
Accomplishments that I'm proud of
- Working newsfeed, posts and validation as well as onchain username registration.
- Forkable registration flow. All users have a copy of their own application and can make modifications.
What I learned
- Ethereum signing and message validation
- Web3.js library
What's next for Nomad
- Sorted newsfeed
- More efficient storage
- Better user interface