The Bitcoin blockchain, currently 280 GB and growing, contains a massive amount of data that can give us insights into the Bitcoin ecosystem, including how users, businesses, and miners operate. BlockSci enables fast and expressive analysis of Bitcoin’s and many other blockchains. Current tools for blockchain analysis depend on general-purpose databases that provide "ACID" guarantees. But that’s unnecessary for blockchain analysis where the data structures are append-only. We take advantage of this observation in the design of our custom in-memory blockchain database as well as an analysis library. BlockSci’s core infrastructure is written in C++ and optimized for speed. (For example, traversing every transaction input and output on the Bitcoin blockchain takes only 1 second on our r5.4xlarge EC2 machine.) To make analysis more convenient, we provide Python bindings and a Jupyter notebook interface.
Features
- BlockSci consists of two major components: the parser, and the analysis library
- The parser generates the BlockSci Data files
- The analysis library can then be pointed at the generated data
- To parse the Bitcoin blockchain, BlockSci requires at least 60 GB of RAM
- For smaller blockchains using less RAM might be sufficient
- BlockSci currently is not compatible with Xcode 11.5 and above