Browse Source
0.143c8f63b
Make linearize scripts Python 3-compatible. (Doug)d5aa198
Allow linearization scripts to support hash byte reversal (Doug)
Wladimir J. van der Laan
8 years ago
4 changed files with 97 additions and 37 deletions
@ -1,33 +1,48 @@ |
|||||||
# Linearize |
# Linearize |
||||||
Construct a linear, no-fork, best version of the blockchain. |
Construct a linear, no-fork, best version of the Bitcoin blockchain. The scripts |
||||||
|
run using Python 3 but are compatible with Python 2. |
||||||
|
|
||||||
## Step 1: Download hash list |
## Step 1: Download hash list |
||||||
|
|
||||||
$ ./linearize-hashes.py linearize.cfg > hashlist.txt |
$ ./linearize-hashes.py linearize.cfg > hashlist.txt |
||||||
|
|
||||||
Required configuration file settings for linearize-hashes: |
Required configuration file settings for linearize-hashes: |
||||||
* RPC: rpcuser, rpcpassword |
* RPC: `rpcuser`, `rpcpassword` |
||||||
|
|
||||||
Optional config file setting for linearize-hashes: |
Optional config file setting for linearize-hashes: |
||||||
* RPC: host, port |
* RPC: `host` (Default: `127.0.0.1`) |
||||||
* Block chain: min_height, max_height |
* RPC: `port` (Default: `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. |
||||||
|
|
||||||
|
The `linearize-hashes` script requires a connection, local or remote, to a |
||||||
|
JSON-RPC server. Running `bitcoind` or `bitcoin-qt -server` will be sufficient. |
||||||
|
|
||||||
## Step 2: Copy local block data |
## Step 2: Copy local block data |
||||||
|
|
||||||
$ ./linearize-data.py linearize.cfg |
$ ./linearize-data.py linearize.cfg |
||||||
|
|
||||||
Required configuration file settings: |
Required configuration file settings: |
||||||
* "input": bitcoind blocks/ directory containing blkNNNNN.dat |
* `output_file`: The file that will contain the final blockchain. |
||||||
* "hashlist": text file containing list of block hashes, linearized-hashes.py |
|
||||||
output. |
|
||||||
* "output_file": bootstrap.dat |
|
||||||
or |
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: |
Optional config file setting for linearize-data: |
||||||
* "netmagic": network magic number |
* `file_timestamp`: Set each file's last-modified time to that of the most |
||||||
* "max_out_sz": maximum output file size (default `1000*1000*1000`) |
recent block in that file. |
||||||
* "split_timestamp": Split files when a new month is first seen, in addition to |
* `genesis`: The hash of the genesis block in the blockchain. |
||||||
reaching a maximum file size. |
* `input`: bitcoind blocks/ directory containing blkNNNNN.dat |
||||||
* "file_timestamp": Set each file's last-modified time to that of the |
* `hashlist`: text file containing list of block hashes created by |
||||||
most recent block in that file. |
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