So, obviously MetaMask interacts with public, distributed ledgers in order to show my balances, however, from a technical perspective, do certain parts of the application use centralised databases? Such as storing my user preferences (current set language/locale etc)?

If so, is it possible to create a truly decentralised application which stores all things in a decentralised way, or would this simply not work as I'd have to wait for a transaction to complete each time I saved my profile? I guess UniSwap would be another good example, are ALL parts of the ecosystem run in a decentralised way, or just the swapping aspect?

I guess a DAO (not THE DAO) would be a better example, as, surely ALL parts of the ecosystem would have to be run and stored in a distributed way in order for it to be a fully autonomous.. or maybe my limited understanding in terms of DAO structures, and how data storage and transactions work on Ethereum is incorrect here.

1 Answer 1


It is possible to build a completely decentralized application, but how exactly to do this and on which DLT platform: Ethereum, Quorum, Hyperledger Fabric or whatever depends on your specific business case.

  • But how do you store things like user preferences without slowing down the app (or it becoming too expensive to use due to high gas prices, which I'd imagine the app owner would have to shoulder)
    – timhc22
    Commented Jan 8, 2021 at 14:11
  • 1
    To speed up your application, you can use a caching database. To reduce the cost of data storage, you can use decentralized file systems, for example, IPFS. In some cases, you can use not a public, but your own private network on the same Ethereum with PoA consensus or Quorum. Specific architectural solutions are determined by a specific case. If you are interested - you can ask your question to the experts of the kekker.com team for free - the "Contact Us" button at kekker.com/faq
    – Mad Jackal
    Commented Jan 8, 2021 at 14:48
  • Very interesting point, yes I could see how this could work with a caching database. In terms of format of how my user settings would be stored, would they be stored as a merkle root, on which zkproofs could be used for performing relevant calculations (such as updating my preferences which would then be encrypted and stored one again on the blockchain)?
    – timhc22
    Commented Jan 8, 2021 at 14:59
  • 1
    If you just want to store user settings, then for each user you can store a link to the settings file, which, for example, is placed in IPFS or Ethereum Swarm and encrypted. For a public Ethereum, it will be much cheaper.
    – Mad Jackal
    Commented Jan 9, 2021 at 15:46

Your Answer

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

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