I held a research period on bitcoin (thanks to this project I became fond of Bitcoin) with the release of the alpha software at December, I had to extract information for the construction of an information graph.
I believe in my opinion that there are really many ways to index information but I believe that the fastest ones are to use the same technique that uses bitcoins.
- Parser blk files
- Deserialize the information in a format of your choice and index it in DB
- query the DB and make a read in the appropriate file.
There are two very difficult things
- the construction of this indexing system
- if you want to access the id wallet you need to build a script decompiler or use the bitcoin node
ps: this is my experience, there can be other ways to build this information, which I don't know (mine is just a three-year thesis, my path has just begun)
This is a good parser for blk, one of the few compatible with Segregated Witness.
The abe project still works but his work times seem unacceptable with the current bitcoin dimension
If you have a big pc, this project is very fast (at least they say so)
Update 2021
The blockchain of Bitcoin grows over time and I think that the result of my work is SpyCBlock can be an efficient solution in terms of memory RAM, I don't know in terms of space.
SpyCBlock offers different deserialization methods like JSON, transactions graph, and a deprecated address graph that use Bitcoin Core to make some work. In addition, a method to deserialize in an efficient way the Bitcoin mempool is under development.
Please note that the software is an academics software, developed by only me, maybe can have some mistake and can be difficult to install all the dependencies, but if it will compile, it should be work fine with the integral bitcoin data.
P.S: The development of BlockSci is stopped in 2020, I don't know why, but I think because it is difficult to scale with the actual dimension of Bitcoin blockchain.