d5aa19813c
Currently, the linearization scripts require input hashes to be in one endian form. Add support for byte reversal.
1.8 KiB
1.8 KiB
Linearize
Construct a linear, no-fork, best version of the Bitcoin blockchain.
Step 1: Download hash list
$ ./linearize-hashes.py linearize.cfg > hashlist.txt
Required configuration file settings for linearize-hashes:
- RPC:
rpcuser
,rpcpassword
Optional config file setting for linearize-hashes:
- RPC:
host
,port
(Default:127.0.0.1:8332
) - Blockchain:
min_height
,max_height
rev_hash_bytes
: If true, the written block hash list will be byte-reversed. (In other words, the hash returned by getblockhash will have its bytes reversed.) False by default. Intended for generation of standalone hash lists but safe to use with linearize-data.py, which will output the same data no matter which byte format is chosen.
Step 2: Copy local block data
$ ./linearize-data.py linearize.cfg
Required configuration file settings:
output_file
: The file that will contain the final blockchain. oroutput
: Output directory for linearized blocks/blkNNNNN.dat output.
Optional config file setting for linearize-data:
file_timestamp
: Set each file's last-modified time to that of the most recent block in that file.genesis
: The hash of the genesis block in the blockchain.- `input: bitcoind blocks/ directory containing blkNNNNN.dat
hashlist
: text file containing list of block hashes created by linearize-hashes.py.max_out_sz
: Maximum size for files created by theoutput_file
option. (Default:1000*1000*1000 bytes
)netmagic
: Network magic number.rev_hash_bytes
: If true, the block hash list written by linearize-hashes.py will be byte-reversed when read by linearize-data.py. See the linearize-hashes entry for more information.split_timestamp
: Split blockchain files when a new month is first seen, in addition to reaching a maximum file size (max_out_sz
).