I'm creating a decentralized social media protocol and have begun trying to figure out the right data storage scheme. It feels like storing directly on chain would prove costly, inefficient, and wouldn't scale, but maybe I'm wrong. I'm wondering which of two systems would be ideal or if there are any other options I am missing.

The first is pure Ethereum (or StarkNet). Have storage contracts for posts, users, etc and functionality contracts that interact with them. Images for posts would be stored on IPFS and the hash would be stored with the other post info in the storage contract.

The second is a more disintermediated version. Have storage contracts for posts, users, etc that instead of holding information like address, follower count, etc, just holds an IPFS hash pointing to a json file with that info. This feels like it would be cheaper but be much more of a headache to read and write for.

Which of these do you guys think is better or do you have another suggestion?

  • "Images for posts would be stored on IPFS" nothing is stored in IPFS. IPFS is a cache for other storages. It is not a permanent storage. Oct 13, 2021 at 7:53
  • @MikkoOhtamaa I mean, in terms of real-world use you're just playing a semantics game there. It's a content linked storage system. You can call it what you want but that's what it's used as. Do you have any helpful suggestions or not?
    – Matt
    Oct 14, 2021 at 0:55
  • Arweave. Storj. Filecoin. SIA Network. Oct 14, 2021 at 8:30
  • Also, I am not playing semantics games, because IPFS is just a content addressing system and cache so you are wrong. In the real world use. In the end you "pin" the content on some centralised server and it that server disappears your content is gone. It is not decentralised a single bit. Oct 14, 2021 at 8:31


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Browse other questions tagged or ask your own question.