Simcoin facilitates realistic simulations of blockchain networks (currently Bitcoin only). The network is virtualised by the simulation software on one single Unix host machine. To be able to spawn multiple peers the CPU-heavy proof-of-work is deactivated. Blocks and transactions are created by sending respective commands over RPC to the nodes according to a pre-configured simulation scenario.
Prerequisites: python3
, pip3
, docker
, make
and R
. Check if you have them installed.
git clone https://github.com/simonmulser/simcoin.git
cd simcoin
make install
(if fails check output, you may need to install other dependencies depending on your OS)make build-image
(consider to use multiple threads to build the image - check Dockerfile under code/docker
)make demo
data/last_run
and the generated report data/last_run/postprocessing/report.pdf
When running a simulation, monitor the host machine closely. Check utilisation of RAM, CPU, Disk and Network. Further, control the log created by the host system (dmesg
) as well as the log produced by the simulation framework (data/debug.log
) and nodes (data/last_run/node-X/debug.log
). To improve the performance consider the following:
dmesg
).