Performance Comparison Results of Blockchain tests
This dataset accompanies the paper titled CHASM: A Blockchain Software design pattern. It contains results of the performance tests on two different architectures, and the accompanying analytics source code that presents their comparison.
The .csv files are the result files. The .dta files are the stata equivalent, and the .do files are the Stata analysis files which analyses this dataset and outputs the .jpg images.
This dataset contains the following:
1) Performance test results for a Blockchain that uses different Hashers, Miners and Consensus algorithms.
2) The stata analysis files
3) The jar file that is the actual blockchain client implementation - PantherChain.
4) the .sub files run on the High performance computing SLURM system that runs this source code.
DOCUMENTATION FOR PANTHERCHAIN
PantherChain is designed to implement the blockchain technology as close to the textbook definition as possible, with the goal to possibly use this as a teaching method for students to understand the design and functionality of the data structures and algorithms. A (possibly outdated) Reverse engineered UML (created using Visual Paradigm) is shown below:
Binary installation is simple - just download the PantherChain.war file and install it in any J2EE capable container.PantherChain has been tested with Tomcat 7 (and up) and Glassfish 5. Other compliant containers should also work. For backward compatibility, PantherChain has been compiled with Java 1.8 so it should work with any container running 1.8 or higher.
The PantherChain.jar is a pre-packaged runnable Jar that can be used to test the single CPU and multi-CPU miners. To run it, simply do a java -jar PantherChain.jar. It also supports command line parameters to change the difficulty setting, number of repeats, and the maximum number of cores to use. The tester will go from single-core to the max number of cores specified. If no max core is specified, it will try to identify the number of cores in the system and go up to that number.
java -Ddifficulty=5 -Dcores=6 -Dreps=20 -jar PantherChain.jar
The above will run the tester with a difficulty of 5, 20 blocks for each difficulty and using up to 6 cores (going from 1). Generates results in a CSV format (will likely need a little cleaning because of other outputs from JUnit).