What follows here is a summary of an offline bitcoin blockchain sync using trb
and eatblock
In preperation for the test, I copied over blk0001.dat through blk0050.dat onto this environment. I then used asciilifeform's blkcut utility to break each of the .dat files into individual block files to be fed into the bitcoin node. Knowing this process would create 454`254 files, I created a directory for each of the .dat files prior to executing blkcut against the .dat file itself. This left me with 50 directories filled with extracted block files, the first of which had over 180`000 indiviual block files extracted from blk0001.dat!
To feed in all of the files sequentially (as required for eatblock) from each of the 50 directories (one per blk####.dat), I wrote a one line perl script to accomplish this task.
Test was started on April 18th, 2017. Full sync of all 50 cut apart blk####.dat files took about seven days. The final blockheight at the end of the sync was: 454`254.
It should be noted that to eat blocks in this offline fashion, you need to have built trb with asciilifeform_and_now_we_have_eatblock.vpatch
and execute
trb with the -caneat
flag.
The vpatches built with the trb test node:
I am making the entire gzip'd debug.log available for review here. [SHA512: a7560bbb80816a02ff8112529ca47849203790cf4913601a875b91db6091a5452d7abae2d2d371c7c7bc93f7fc2085c44b4fa691f456869eec82e8674957aac6] [22Mb Compressed / 190Mb Uncompressed].
I collected statitics from the debug.log, many metrics were produced by asciilifeform's blocktimer vpatch.
In addtion, ProcessBlock Time (ms) v. DB Write Wait Time (ms) v. DB Read Wait Time (ms) has been plotted here. I did this with the gnuplot tool and the help of
diana_coman. [Thanks!] Turned out pretty nice.
You can find all of the graphs built with NMONVisualizer here.