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 @@
@@ -1,33 +1,48 @@
|
||||
# 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 |
||||
|
||||
$ ./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` (Default: `127.0.0.1`) |
||||
* 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 |
||||
|
||||
$ ./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