Hi, I've developed a simple set of tools to explore blocks, TX's and addresses locally, without the need for an external API.
Here's a sample using test data* :
How it WorksIt imports raw block files (blkXXXXX.dat) files into a local database using a C++ layer that is linked straight to Bitcoin Core.
After the data is imported you can write any sort of query you wish, build custom apps on top of it and so on.
Use Any DBThe database interface is abstracted into a DAO layer so you can easily implement a different underlying DB like Neo4J or Cassandra. Right now I've been playing with it using MySQL. The MySQL layer is functional in this initial release.
Python ScriptedA separate Python implementation is provided so you can explore the local DB using some example scripts.
Since most of these functions don't access low level Bitcoin Core functions, this part of Toolbox is independent from the C++ code.
You can roll your own Python scripts easily by simply writing code around the DAO. A base implementation of the DAO is provided. Other language interfaces can be easily implemented by using the Python layer as a prototype.
E.g. This reference implementation can be easily extended to run analysis using Spark or Hadoop, for example.
In Sync with Bitcoin CoreBy linking the C++ tree straight to Bitcoin Core, the code is always up to date with the latest BIP's, new block formats, forks, etc.
Code / Docs / MetaGithubDocumentation / Toolbox HomeLicense : MIT
Hope you enjoy playing with it!
Regards, Jose
* Perhaps you noticed that the genesis block didn't display any transactions on the provided screenshot. That's because during my first tests the genesis block was inserted by hand and not parsed from blk files, so it was left empty on my test data (TX data not imported). Don't worry, when you import the blk files Satoshi's very first coins will be shown correctly.