A pure Julia implementation of a Bitcoin blockchain
parser. Before using
BTCParser.jl you must install a bitcoin client and
download the entire blockchain.
Bitcoin core should save the blockchain data into
BTCParser.jl will look there by default. You can change this directory by
setting the environmental variable
Read the chain:
using BTCParser # this takes ~2-3 minues on a SATA SSD chain = make_chain()
Extract the Genesis Block
genesis_block = Block(chain)
Extract Block at height
block = Block(chain[h])
chain indexing is 0-based to match the numbering used by the bitcoin core client,
if you require 1-based indexing, use
Get the hash of a block
Get the header of a block
genesis_tx = genesis_block.transactions
Update an existing chain (in case the bitcoin client is running in the background)
chain = make_chain(chain)
- Currently only tested on
amd64architectures under Linux
- many of the internals are endian-dependent and may not work on other architectures.
- Paths are different under Windows/MacOS.
- Testing requires a working copy of the Bitcoin blockchain (200GB) and therefore testing on travis is difficult.
- Grep the code for "TODO" for more stuff.
- Please report any issues or improvement proposals here.