OK, OK, I said the cursed "B" word. Feel free to mock me for being in the crypto space.<p>That said, I am in the process of building a blockchain (funded and all, not a hobby project) and I am exploring the various database options.<p>The only requirements (just lol) are:
- Must be completely local
- Must be very performant especially in concurrent reads and writes<p>I am using sqlite3 as a dummy but of course it is not suitable and not scalable enough.<p>I was wondering if PostgreSQL might be an idea but I am very basic in my knowledge of databases.<p>In your opinion, given the high throughput and concurrency, where should I start looking?<p>Bonus points if it is open source of course
The method of storage isn't a factor in something becoming a blockchain, only the fact that new records contain a hash of previous records, which themselves contain a hash of previous records, and so on. This is the "chain." How you store or retrieve it is up you. Any data storage method you like can be equally "blockchain-y."
Use sqlite3 until you actually cannot. It sounds like you're assuming it's bad, but it sounds ideal for your use-case since it is designed to be a fully-local database.
One option is LMDB [1], which is used succesfully in several blockchains.<p>[1] <a href="https://en.wikipedia.org/wiki/Lightning_Memory-Mapped_Data" rel="nofollow">https://en.wikipedia.org/wiki/Lightning_Memory-Mapped_Data</a>
It is amusing that you got funded while being clueless about what to do. The B word works, after all.<p>Why are you using a SQL-based database? Blockchain data is so simple you could use Redis.
What blockchain attributes are you looking for? ... your local requirement has removed decentralization, distributed-ledger, and transparency.<p>What's left? immutability?