Just Another Blockchain Simulator
JABS - Just Another Blockchain Simulator.
JABS is a blockchain network simulator aimed at researching consensus algorithms for performance and security. it is designed to easily handel simulation of networks as large as normal public blockchain networks (~10000 nodes) in reasonable time.
Installation
First, you should have openjdk-14-jdk
and maven
installed.
$ sudo apt install openjdk-14-jdk maven
After that, clone the git repository.
$ git clone https://github.com/hyajam/jabs.git
Use maven
to make a jar file.
$ cd jabs
$ mvn clean install
Then to run the compiled jar file.
$ java -jar target/jabs-<version>.jar
Usage
Currently, you can use JABS by editing Main.java file and creating new scenarios for your tests.
Supported Consensus algorithms
Currently, JABS support the following consensus algorithms:
- Nakamoto Consensus
- Ghost protocol
- PBFT
- Casper FFG
- DAGsper
Other Blockchain Simulators
- Bitcoin Simulator: developed in C++ and based on NS3. Can simulate Bitcoin, Litecoin, Dogecoin and probably other blockchain networks based on Nakamoto Consensus. Although it is probably the most accurate of the blockchain simulators it is fairly slow. Does not simulate transactions. (https://github.com/arthurgervais/Bitcoin-Simulator)
- BlockSim: developed in Python. Supports simulating both Bitcoin and Ethereum. Accurate but slow. Simulates transactions and connection handshakes. (https://github.com/carlosfaria94/blocksim)
- SimBlock: developed in Java. In current version supports only Nakamoto Consensus. Plans on adding GHOST protocol. Fast. Does not simulate transactions. SimBlock partially inspired this project. (https://github.com/dsg-titech/simblock)