What follows here is a summary of an offline bitcoin blockchain sync using trb and eatblock

Environment Info

Cutting Up The Files

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.

Running The Test

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:

debug.log Availble

I am making the entire gzip'd debug.log available for review here. [SHA512: a7560bbb80816a02ff8112529ca47849203790cf4913601a875b91db6091a5452d7abae2d2d371c7c7bc93f7fc2085c44b4fa691f456869eec82e8674957aac6] [22Mb Compressed / 190Mb Uncompressed].

Block Time Statistics

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.

NMON Utilized To Collect System Statistics During Sync

You can find all of the graphs built with NMONVisualizer here.