Browse Source
Currently, the linearization scripts require input hashes to be in one endian form. Add support for byte reversal.0.14
Doug
8 years ago
committed by
Douglas Roark
4 changed files with 58 additions and 19 deletions
@ -1,33 +1,43 @@
@@ -1,33 +1,43 @@
|
||||
# Linearize |
||||
Construct a linear, no-fork, best version of the blockchain. |
||||
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 |
||||
* RPC: `rpcuser`, `rpcpassword` |
||||
|
||||
Optional config file setting for linearize-hashes: |
||||
* RPC: host, port |
||||
* Block chain: min_height, max_height |
||||
* 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: |
||||
* "input": bitcoind blocks/ directory containing blkNNNNN.dat |
||||
* "hashlist": text file containing list of block hashes, linearized-hashes.py |
||||
output. |
||||
* "output_file": bootstrap.dat |
||||
* `output_file`: The file that will contain the final blockchain. |
||||
or |
||||
* "output": output directory for linearized blocks/blkNNNNN.dat output |
||||
* `output`: Output directory for linearized blocks/blkNNNNN.dat output. |
||||
|
||||
Optional config file setting for linearize-data: |
||||
* "netmagic": network magic number |
||||
* "max_out_sz": maximum output file size (default `1000*1000*1000`) |
||||
* "split_timestamp": Split files when a new month is first seen, in addition to |
||||
reaching a maximum file size. |
||||
* "file_timestamp": Set each file's last-modified time to that of the |
||||
most recent block in that file. |
||||
* `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 the `output_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`). |
||||
|
Loading…
Reference in new issue