I need to create a Dapp which stores information about companies in a private blockchain. There are different institutions that collect company information and then the information should be retrieved all together with the name of the company. I wanted to use a Ethereum private blockchain and I'm designing the solution now. My first approach was to store things in a smart contract. The idea is to have an addCompanyInfo function and then getCompanyInfo. I found different problems with this approach:

1) Data structures aren't enough to create a whole system. If I want to add an auto-complete feature to the company field in the form I'll need to develop a search algorithm by myself, which isn't a big deal but it's something more that could fail.

2) If the data grows I'll need to page the information and query based on some fields and again, I'll need to do it by myself.

The question: is there any way to connect Ethereum to a database without loosing all the good things about blockchain? I mean that the content in the database should be as verified as the data in the arrays..

  • I tell the one who downvote the post, do you understand my request? Do you know anything of developing software? Nov 10, 2016 at 16:32

2 Answers 2


It's possible to cache the data that's stored on the blockchain in a database and update it frequently (every block?). This can be done simply by querying the blockchain and retrieving an updated application state.

For example, EtherScan uses this method to improve the performance of etherscan.io, pulling out data for every new block and storing it in other database models which provide faster data retrieval. While many will tell you this violates the idealized model of blockchain applications (where the chain is THE database), it's easy to see that doing so still provides some of the advantages of a blockchain, such as immutability of data.

  • I'd suggest that, some sort of caching/replication where naturally the database would be a slave.
    – FRAGA
    Nov 10, 2016 at 15:18
  • But I'll have a central point (DB) and the data there won't be signed. I'll be exposed to DB attacks. I'd like to have a blockchain with a DB. Nov 10, 2016 at 16:35

It looks the solution is here: https://www.bigchaindb.com

I'll check it out.

  • Whilst this may theoretically answer the question, it would be preferable to include the essential parts of the answer here, and provide the link for reference.
    – q9f
    Dec 29, 2016 at 13:30

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