So I'm looking into building a dApp with standard app I functionality like user login/posts/likes/comments etc. Along with harnessing the power of ethereum to support betting and donations. Here is the tech stack I have planned so far.

On the front end side I'm using Truffle suite's drizzle box and that's going fine and dandy.

However on the backend side of things I'm running into walls. I want to use IPFS to store my data. My plan is to use a redux-esque idea where I store the global state of my data on IPFS under a single IPNS hash, kind of like a database. Any CRUD functionality will result in a publish to IPNS and a new version of the data state. With that in mind, I don't want the client to have access to this data state nor do I want them downloading a huge JSON all the time, so I will use a graphql server to query the state and return specific data fields to the client. This way I can keep private information from existing on the client side and keep the IPNS hash away from users.

So my question. Is this stack feasible? Will it secure my data from client access, while also allowing me to provide global content to my users using my discretion? I want to be able to include features like a live feed and user profiles, but I don't want users to have access to other users private data.

  1. Why using IPFS if you want to keep your content private and restricted to your backend middleware only ? Just use a normal database with access control.

    IPFS is meant to distribute and share public content efficiently across a peer2p network.

  2. Second point in term of feasibility, you need to consider that publishing an IPNS takes currently a very long time (around 1-2 minutes) and is still unstable from my point of view.

  3. You mentioned Truffle and Drizzle, are you gonna use Ethereum ?

Sorry if my answer can sound a bit rude but building dApp is not all about technologies, it's mostly about building new economic and social models for the digital world.

  • 1. I'd like to use IPFS so I can ensure my users that their data is not held solely by a centralized entity. If I use a database, then I'm no better than Facebook or Google. I plan on using a db initially but I'd like to move the storage to IPFS. 2. Yeah IPNS is slow now. I'm banking on future updates or integrating subpub to handle speed requirements. Using GraphQL will also help with speed. 3. Yes! All the betting will be done with Ethereum and smart contracts. My problem right now is how to harness Ethereum and tech like IPFS to keep data decentralized and out of my control. – YoungKidWarrior Dec 21 '18 at 3:37
  • I should specify, I just want to keep data not related to Ethereum transactions private. I don't want X to be able to see Y unless user Y wants him too – YoungKidWarrior Dec 21 '18 at 5:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.