5

I can use getblock json rpc method to get parsed block details, however I need the actual raw data.

Is there any way to get raw block data using Bitcoin Core?

Hannah Vernon
  • 1,553
  • 15
  • 36
Andrey Lobarev
  • 163
  • 1
  • 5
  • You can read it directly from the blk*.dat files... – Nate Eldredge Sep 23 '17 at 14:27
  • So to implement such method as getrawblock I need to create my own index with filename and offset for each block, right? – Andrey Lobarev Sep 23 '17 at 18:02
  • In principle you can use the existing leveldb database in the blocks/index directory to locate the block data within the blk*.dat file by its hash. See https://en.bitcoin.it/wiki/Bitcoin_Core_0.11_(ch_2):_Data_Storage or https://bitcoin.stackexchange.com/questions/28168/what-are-the-keys-used-in-the-blockchain-leveldb-ie-what-are-the-keyvalue-pair for the data format. – Nate Eldredge Sep 24 '17 at 02:26

1 Answers1

9

There's a boolean parameter to that RPC call that'll return it as a hex string representing the binary contents of the block.

If verbosity is 0, returns a string that is serialized, hex-encoded data for block 'hash'

getblock 'hash' 0 should return what you want.

alcio
  • 1,274
  • 1
  • 13
  • 20