We are currently working on a dApp that will store user profile data and let its users query them. We haven't been able to figure out how to do that efficiently so far, and therefore we need to ask the questions below:

1- We want to store status data such as a user being online/offline, available/unavailable. These will be updated constantly by the clients. There will also be data that won't get updated regularly such as gender, zodiac sign. Is using a blockchain for storing and querying both kinds of data feasible?

2- If the answer to the above Q1 is a no, is integrating with a storage blockchain (such as filecoin or arweave) a solution? We couldn't find anything wrt to using them as databases. Can we run queryable databases on such blockchains?

3- If the answer to Q2 is a no, are there any decentralized solutions that meet our requirements? We see OrbitDB and GUN are the most recommended solutions. Unfortunately we have the below concerns against using them:

  • OrbitDB has not received any commits for a long time. Also the docs say: NOTE! OrbitDB is alpha-stage software. It means OrbitDB hasn't been security audited and programming APIs and data formats can still change. We encourage you to reach out to the maintainers if you plan to use OrbitDB in mission critical systems.

  • From what we understand, GUN uploads the whole database to any client that queries it. Given the database in our case will be big, wouldn't it mean a very bad user experience?

4- If there aren't any applications that meet our expectations, what kind of approach should we be investigating? Maybe we could come up with an IPFS-based solution? If you can outline a general approach to this problem, we can work on details.

Thank you,

  • 1
    you cannot store the data of users on a public blockchain. First, it is costly and slow to save, query and update, and they are public and available for everyone (even if the data is encrypted, it will still have the risk of exposing if someone got the encryption keys or the encryption algorithm is compromised in 10 or 20 years).
    – Majd TL
    Sep 9, 2021 at 14:22
  • @MajdTL I was thinking the same. I think dapps are limited in a way and you end up having centralized databases anyway. Because as you say even if you encrypt the data there's always a risk and there's no way to delete that data. You could of course use blockchain but there will always be gas fee whenever you want to update something, so you have to spend your ETH or whatever if you want to change your username for example. This is where well secured centralized systems have an advantage.
    – Konrad
    Oct 27, 2021 at 15:31
  • Is there a way we can use IPFS for this purpose? Such as getting user data based on his metamask address or something similar?
    – MarBVI
    Mar 10, 2023 at 18:58


Your Answer

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