Git Product home page Git Product logo

simcoin's Introduction

Simcoin - A Blockchain Simulation Framework ๐Ÿ—๏ธ

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.

Getting started ๐Ÿ

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
  • checkout results under data/last_run and the generated report data/last_run/postprocessing/report.pdf

Stack ๐Ÿ“š

Performance ๐Ÿš€

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:

  • Increase the ARP-cache if you encounter a neighbour table (ARP-cache) overflow in the kernel messages (dmesg).
  • Run the whole simulation in RAM by using tmpfs.
  • Use a better host machine! ๐Ÿ˜‰

Outlook/Possible improvements ๐Ÿ”ฎ

  • Improving performance and stability by using Unix domain sockets for host to peer communication.
  • Sustaining different blockchain projects such as Ethereum or Litecoin.
  • Using the ELK-Stack to parse, store and analyse the log files.

Credits ๐Ÿ™

This whole section including the addresses will be removed at the 1. March since the project should transit to a community project.

Ground idea and initial development by Andreas Kern.

ย 

Image of SBA-Research logo

Developed in collaboration with Aljosha Judmayer and SBA-Research in the context of a thesis.

ย 

Image of netidee logo scholarship

Additional outcome of a thesis sponsored by Netidee Scholarship 12th Call, year 2017/2018.

ย 

If you want to award my (Simon Mulser) efforts:

BTC: 1JhcdkezyEWpYz9xit6YU9C4MMPYg8HujF
LTC: LYjmCsjVobaGg1p4ZDMDDcfKmn2dXz25r5
ETH: 0x00d40D0Cd0924282dedcb957cdaF32AC0038C5c1

simcoin's People

Contributors

andreaskern avatar kernoelpanic avatar simonmulser avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.