Skip to content

Decentralized Instagram built on Ethereum smart contracts

License

Notifications You must be signed in to change notification settings

kevinfjiang/DeInsta

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DeInsta

Decentralized Insta clone built on Ethereum smart contracts and IPFS file share

License Lcommit

Premise:

DeInsta takes the image sharing feature of instagram and adds the storage capabilities on the blockchain so users have more control of what they can post and share. It also allows for direct exchange of photos through IPFS, a peer-to-peer file share system. Intended as a proof of concept and testing of decentralized platforms. Currently a work in proogress

Tech/Design choices:

Go: Favorite backend language right now, Geth auto encodes targets from Solidity => Go

Solidity: Language of Ethereum smart contracts

Ethereum: Language has smart contracts

React: UI, pretty self explanatory. Has some nice options to interact with a Go backend

IPFS: Peer to peer file share, much cheaper than storing on the blockchain, which is more secure but crazy expensive. This way, we ensure that posting is cheap-ish

TODO:

Personal stuff for Kevin to organize and show what's currently accocmplished in the project

Project TODOs

Blockchain/DB

  • Write Contract Solidity code
  • Enable deletes and write the registry
  • Enable votes, posts, comments
  • Finish writing Solidity code
  • Expand character limit, consider allowing html

Backend

  • Create bindings for Solidity to Go with Geth
  • Enable the blockchain to emit events
  • Develop the backend for the interactions between posts
  • Develop the algorithm for top active posts

Frontend

  • Develop front end that is passable
  • Choose a frontend from existing builds and modify the API to be workable with golang

CREDITS:

Credit goes to Sandermoen.

Front end is inspired by this repo https://github.com/Sandermoen/instaclone.