Select Page

Author: colinclark

Analyzing Bitcoin’s Blockchain – Part 2

In this post, I’ll walk you through installing BlockSci and converting the raw blockchain into a format that we can use in C++ and Python3 (with or without Jupyter). First, download and install BlockSci.  Follow the instructions on the installation page and when you get to the end, you might run into a few issues. When you get to the last few steps of the install and build - these steps: cd libs/bitcoin-api-cpp mkdir release cd release cmake -DCMAKE_BUILD_TYPE=Release .. make sudo make install cd ../../.. mkdir release cd release cmake -DCMAKE_BUILD_TYPE=Release .. make sudo make install You might get an error that looks something like this: /usr/lib/x86_64-linux-gnu/ version `GLIBCXX_3.4.20′ not found If this happens, then you might have the same issue I did.  I fixed it by doing the following: go to the right location and backup your current anaconda3 shortcut (change its name so it isn’t overwritten): cd ~/anaconda3/lib mv -vf create a new shortcut using the ln command (I am assuming that I am in the previous location ~/anaconda3/lib): ln -s /usr/lib/x86_64-linux-gnu/ ./ After performing the steps above, re-attempt the affected build. I also had to use conda instead of pip to install these libraries: Instead of: sudo -H pip3 install –upgrade multiprocess psutil jupyter pycrypto matplotlib pandas dateparser I used: conda install multiprocess psutil pycrypto matplotlib pandas dateparser And everything worked fine. CONVERTING THE BLOCKCHAIN FOR ANALYSIS Now that...

Read More

Analyzing Bitcoin’s Blockchain

So you’ve got Bitcoin fever, and you’d like to understand more about how it works. What exactly is contained in the underlying blockchain? This series will have 3 parts: Installing Bitcoin and Jupyter Notebook Installing BlockSci and Converting Data for Analysis Analyzing Blockchain Data So what is Blockchain?  Let’s consult Wikipedia… A blockchain, originally block chain, is a continuously growing list of records, called blocks, which are linked and secured using cryptography. Each block typically contains a hash pointer as a link to a previous block, a timestamp and transaction data. By design, blockchains are inherently resistant to modification of the data. It is “an open, distributed ledger that can record transactions between two parties efficiently and in a verifiable and permanent way”. For use as a distributed ledger, a blockchain is typically managed by a peer-to-peer network collectively adhering to a protocol for validating new blocks. Once recorded, the data in any given block cannot be altered retroactively without the alteration of all subsequent blocks, which requires collusion of the network majority. Blockchains are secure by design and are an example of a distributed computing system with high Byzantine fault tolerance. Decentralized consensus has therefore been achieved with a blockchain. This makes blockchains potentially suitable for the recording of events, medical records, and other records management activities, such as identity management, transaction processing, documenting provenance, food traceability or...

Read More


Recent Comments