Skip to content

robin-thomas/multiverse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

multiverse

License

Table of Contents

  1. Introduction
  2. Features
  3. Tech

Introduction

Social networks, once a fun and novel way to connect with friends and interests online, have turned into monolithic giants that holds a sway on how we create and consume data, and interact on the web. These services play fast and loose with our data, take political sides and even let bots run riot across their services.

Could decentralized web technologies be the key for breaking their hold over our online social lives, all the while protecting our data? Multiverse is one such attempt, with no central authority and users own their data.

Features

  • Create an account with just a username
  • Profile:
    • About you
    • Profile picture (and change it when required)
    • Friend list with avatars
    • Posts
    • Share a profile (with LinkedIn, Twitter and so on)
  • Search
    • supports searching profiles using address
  • Posts
    • Text
    • Photo albums
    • Likes and Comments
      • Add or delete a like/comment
      • See the like/comment
      • See the list of likers/commenters
      • Real-time updates if logged-in
      • Avatar and timestamp of like/comment
    • Visibility (private, friends and public)
    • Post is stored in encrypted form in 3Box public storage (or private if visibility is private). Its encrypted using a symmetric key, that is shared in plaintext form (if visibility is public). If not, the key is encrypted using the encryption key of poster (which friends do have access to)
  • Friend Request
    • Send friend request to anyone
    • If the request is denied, the requestor is added to the block list of the recipient
    • If the recipient removes from the block list, friend request can be received again
    • It's used for exchange of encryption keys and creating chat thread
  • Chat
    • Chat can be done only between friends
    • It uses a private thread

Tech

  • "multiverses.crypto" domain from Unstoppable Domains
  • React app hosted in IPFS using Fleek
  • 3Box:
    • Built a cache layer (for optimization) in front of 3Box. All write requests within 30 seconds will be batched up and sent as one request
    • Subscriptions for various 3Box threads for live updates while the user is logged in (like chat messages, likes & comments and so on)
    • Using 3Box for:
      • storing profile data (also uses private and public storge)
      • storing post metadata (in encrypted form)
      • open thread for sending/receiving friend requests
      • open thread per post for likes and comments
      • private member thread for chats
  • Textile:
    • Images are split into chunks of 256KB, encrypted (for post images) and stored in buckets
    • Creates and store an identity in the browser localStorage
    • Using Textile Buckets for:
      • Post images. One bucket per post
      • Profile pictures. One common bucket for all users

About

Decentralized Social Network

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors