I have read that the blockchain is a public ledger with all transactions of a decentralized community, furthermore i read that everyone can check that ledger for transactions that happened within the network. My question is how i am able to look into the blockchain to check for transactions without using sites like blockchain.info.


All of the transaction history is communicated between peers over a binary gossip protocol. You can request specific blocks, sequences of blocks, or specific transactions, and clients will normally communicate by broadcasting all of the information they receive to other peers they are connected to - enabling each client to stay mostly up-to-date once they've downloaded the historical ledger. It is required that you connect to multiple peers to request information so that you are sure to get up-to-date information if a potentially malicious peer tries to withold information.

If you are already running a full node (which is a software client which uses the above protocol and stores the valid information it receives), then you already have the transaction history on your machine running the software. For Bitcoin Core, the files are stored in the ./store/blocks/ subdirectory of bitcoin's storage directory. The directory contains many files named blkXXXXX.dat, which are serialized sequences of blocks. Each file contains many Block File structures in serial, up to a limit of 128MB per file. The files are numbered ascendingly, with blk00000.dat being the oldest containing the genesis block as its first Block File. The Block File structure mimics the structure of the information of a block message received over the message protocol, except is prefixed with a magic number and size of the block.

Typically, if you want to write a block explorer, it would be simpler to read the information from the block files stored by Bitcoin Core, unless you need your block explorer to contain live information, in which case you will need to get information over the gossip protocol directly, or through Bitcoin Core's ZMQ interface, because the node software only commits confirmed transactions into block files.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.