This doesn't get as far as I was hoping :/ but I think this carries us over the edge.
We are now committed to a SINGLE DATA FORMAT output for each run. Plot twist: its the dot file we've been generating (it has everything we need). I also added in a heaviest chain node so that programs with just the dot file can reconstruct the heaviest chain.
There is a little brittle parser for the dot file format that we specifically are writing to turn dot files into intermediate representations.
Finally there is a code taking these representations into workable metrics.
Note the TODO added to the go code that mentions my confusion around not resetting blocks in simulation rounds where no blocks were mined. I think this does not lead to a correctness issue but possibly causes inefficiencies and might be responsible for the panic seen earlier.
Caveats:
No profiling or efficiency gains
No plotting or analysis work :(
Python scripts group together parsing and stats. I just shoved them together for the sake of testing and playing around quickly. They should be separated into different files for cleanliness.
Not a lot of testing (but it works I promise :) )
No automated integration. There isn't one thing to run that will generate dot files with the go binary and then make stats and plot them. Probably should whip this up in python.
This doesn't get as far as I was hoping :/ but I think this carries us over the edge.
We are now committed to a SINGLE DATA FORMAT output for each run. Plot twist: its the dot file we've been generating (it has everything we need). I also added in a heaviest chain node so that programs with just the dot file can reconstruct the heaviest chain.
There is a little brittle parser for the dot file format that we specifically are writing to turn dot files into intermediate representations.
Finally there is a code taking these representations into workable metrics.
Note the TODO added to the go code that mentions my confusion around not resetting blocks in simulation rounds where no blocks were mined. I think this does not lead to a correctness issue but possibly causes inefficiencies and might be responsible for the panic seen earlier.
Caveats: