Mercurial > public > bitcaviar-plus
changeset 13:4bbe48c95079
add instructions
author | Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com> |
---|---|
date | Tue, 26 Oct 2021 09:38:46 +0200 |
parents | 6a0a8cce058e |
children | feae0cd7fea1 |
files | README.md |
diffstat | 1 files changed, 83 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/README.md Tue Oct 26 09:38:38 2021 +0200 +++ b/README.md Tue Oct 26 09:38:46 2021 +0200 @@ -1,6 +1,88 @@ -# puppy +# bitcaviar-plus A Bitcoin blockchain parser written in Python. +## Installation +Clone repository +```bash +pip install bitcaviar-plus +``` + +## Usage +### Deserialize first block from file `blk00000.dat` +```python +from bitcaviar_plus.block import deserialize_block + + +def parse_genesis_block(): + with open('path/to/file/blk00000.dat', 'rb') as f: + block = deserialize_block(f) + print(block) +``` + +### Deserialize entire blockchain +```python +import os +from bitcaviar_plus.block import deserialize_block + + +def parse_entire_blockchain(): + file_counter = -1 + while True: + file_counter += 1 + file_name = '/Users/dennis/Bitcoin/blocks/blk{}.dat'.format(str(file_counter).zfill(5)) + with open(file_name, 'rb') as f: + file_size = os.path.getsize(file_name) + while f.tell() < file_size: + block = deserialize_block(f) +``` + +### Example output +```json +{ + "magic_number": "f9beb4d9", + "size": "0000011d", + "id": "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f", + "transaction_count": "01", + "header": + { + "version": "00000001", + "previous_block_id": "0000000000000000000000000000000000000000000000000000000000000000", + "merkle_root": "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b", + "time": "495fab29", + "bits": "1d00ffff", + "nonce": "7c2bac1d" + }, + "transactions": + [ + { + "version": "00000001", + "input_count": "01", + "output_count": "01", + "lock_time": "00000000", + "id": "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b", + "inputs": + [ + { + "id": "0000000000000000000000000000000000000000000000000000000000000000", + "vout": "ffffffff", + "script_sig_size": "4d", + "script_sig": "04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73", + "sequence": "ffffffff" + } + ], + "outputs": + [ + { + "value": "000000012a05f200", + "script_pub_key_size": "43", + "script_pub_key": "4104678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5fac" + } + ] + } + ] +} +``` + ## Attribution - [blockchain-parser](https://github.com/ragestack/blockchain-parser/blob/master/blockchain-parser.py) - [bitcoinbook](https://github.com/bitcoinbook/bitcoinbook)