a blockchain network simulator aimed at researching consensus algorithms for performance and security

Overview

Just Another Blockchain Simulator

GitHub Build Status Twitter URL

Alt-Text

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:

  1. Nakamoto Consensus
  2. Ghost protocol
  3. PBFT
  4. Casper FFG
  5. DAGsper

Other Blockchain Simulators

  1. 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)
  2. BlockSim: developed in Python. Supports simulating both Bitcoin and Ethereum. Accurate but slow. Simulates transactions and connection handshakes. (https://github.com/carlosfaria94/blocksim)
  3. 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)
You might also like...

Distributed Stream and Batch Processing

Distributed Stream and Batch Processing

What is Jet Jet is an open-source, in-memory, distributed batch and stream processing engine. You can use it to process large volumes of real-time eve

Dec 31, 2022

Simple and lightweight sip server to create voice robots, based on vert.x

Overview Lightweight SIP application built on vert.x. It's intended to be used as addon for full-featured PBX to implement programmable voice scenario

May 15, 2022

Apache Mesos is a cluster manager that provides efficient resource isolation and sharing across distributed applications, or frameworks

Apache Mesos is a cluster manager that provides efficient resource isolation and sharing across distributed applications, or frameworks. It can run Hadoop, Jenkins, Spark, Aurora, and other frameworks on a dynamically shared pool of nodes.

Dec 31, 2022

A blockchain system to manage monetary transactions between the different nodes of a decentralized network.

A blockchain system to manage monetary transactions between the different nodes of a decentralized network.

Blockchain under a clear vision A blockchain system to manage monetary transactions between the different nodes of a decentralized network. Authors @s

Jun 9, 2022

A novel implementation of the Raft consensus algorithm

Copycat Copycat has moved! Copycat 2.x is now atomix-raft and includes a variety of improvements to Copycat 1.x: Multiple state machines per cluster M

Dec 6, 2022

Jetserver is a high speed nio socket based multiplayer java game server written using Netty and Mike Rettig's Jetlang.It is specifically tuned for network based multiplayer games and supports TCP and UDP network protocols.

Note New version of Jetserver is called Nadron and is in a new netty 4 branch of this same repo. JetServer is a java nio based server specifically des

Dec 14, 2022

MIPS Assembler and Runtime Simulator

MIPS Assembler and Runtime Simulator

MIPS Assembler and Runtime Simulator MARS fork (?) cleaned up and gradleized so that I can hopefully build an .exe and install it properly. Also added

Sep 29, 2021

A little container and simulator for Complex Adaptive Systems (CAS)

Complex Adaptive Systems Description This is a little container and simulator for Complex Adaptive Systems (CAS). CAS are typically living Complex Sys

Feb 13, 2022

A Network Observer which would provide maximum details about the network to the administrator on their screen without knowing to their users.

A Network Observer which would provide maximum details about the network to the administrator on their screen without knowing to their users.

Smart-Network-Observer-With-Energy-Framework A Network Observer which would provide maximum details about the network to the administrator on their sc

Jul 15, 2022

A mod loader such as Forge aimed at PVP clients and QoL mods

Feather This is a small project that I intend to work on in my free time. It is a mod loader similar to fabric or forge, but aimed at only making PVP

Sep 3, 2022

循序渐进,学习Spring Boot、Spring Boot & Shiro、Spring Batch、Spring Cloud、Spring Cloud Alibaba、Spring Security & Spring Security OAuth2,博客Spring系列源码:https://mrbird.cc

Spring 系列教程 该仓库为个人博客https://mrbird.cc中Spring系列源码,包含Spring Boot、Spring Boot & Shiro、Spring Cloud,Spring Boot & Spring Security & Spring Security OAuth2

Jan 6, 2023

Spring-react-security - 🌶 Spring Security & React 🌶

Spring-react-security - 🌶 Spring Security & React 🌶

Spring-react-security - 🌶 Spring Security & React 🌶

Mar 28, 2022

A Forge 1.12.2 PvP Client aimed at the anarchy community.

Cosmos A Forge 1.12.2 PvP Client aimed at the anarchy community. Setting up: Run gradlew setupDecompWorkspace in terminal. Refresh Gradle. Debugging:

Dec 27, 2022

Base aimed towards Anarchy cleints.

PrestigeBase-Public Changes: -=31/10/2021=- Added HudEditor Added HudInitializer Added Listener for drawText HudInitializer in EventListener Added Con

Nov 29, 2022

Plugin aimed at unifying inventory menus for Java Edition with Bedrock Edition forms, on servers running Geyser.

CrossplatForms A plugin aimed at providing fast, easy, and dynamic creation of Bedrock Edition forms through configurations. Also allows for creation

Jan 4, 2023

Free, open-source, Minecraft 1.12.2 PvP client aimed at the anarchy community.

Free, open-source, Minecraft 1.12.2 PvP client aimed at the anarchy community.

Cosmos is a free, open-source, Minecraft 1.12.2 Forge PvP Client aimed at the anarchy community. The client is still in the development phase. Usage:

Jan 1, 2023

Replicate your Key Value Store across your network, with consistency, persistance and performance.

Chronicle Map Version Overview Chronicle Map is a super-fast, in-memory, non-blocking, key-value store, designed for low-latency, and/or multi-process

Dec 29, 2022

Replicate your Key Value Store across your network, with consistency, persistance and performance.

Chronicle Map Version Overview Chronicle Map is a super-fast, in-memory, non-blocking, key-value store, designed for low-latency, and/or multi-process

Dec 29, 2022
Releases(v0.2.0)
Owner
null
Zuul is a gateway service that provides dynamic routing, monitoring, resiliency, security, and more.

Zuul Zuul is an L7 application gateway that provides capabilities for dynamic routing, monitoring, resiliency, security, and more. Please view the wik

Netflix, Inc. 12.4k Jan 3, 2023
APM, (Application Performance Management) tool for large-scale distributed systems.

Visit our official web site for more information and Latest updates on Pinpoint. Latest Release (2020/01/21) We're happy to announce the release of Pi

null 12.5k Dec 29, 2022
Netflix, Inc. 23.1k Jan 5, 2023
BitTorrent library and client with DHT, magnet links, encryption and more

Bt A full-featured BitTorrent implementation in Java 8 peer exchange | magnet links | DHT | encryption | LSD | private trackers | extended protocol |

Andrei Tomashpolskiy 2.1k Jan 2, 2023
Fault tolerance and resilience patterns for the JVM

Failsafe Failsafe is a lightweight, zero-dependency library for handling failures in Java 8+, with a concise API for handling everyday use cases and t

Jonathan Halterman 3.9k Dec 29, 2022
Fibers, Channels and Actors for the JVM

Quasar Fibers, Channels and Actors for the JVM Getting started Add the following Maven/Gradle dependencies: Feature Artifact Core (required) co.parall

Parallel Universe 4.5k Dec 25, 2022
Resilience4j is a fault tolerance library designed for Java8 and functional programming

Fault tolerance library designed for functional programming Table of Contents 1. Introduction 2. Documentation 3. Overview 4. Resilience patterns 5. S

Resilience4j 8.5k Jan 2, 2023
Build highly concurrent, distributed, and resilient message-driven applications on the JVM

Akka We believe that writing correct concurrent & distributed, resilient and elastic applications is too hard. Most of the time it's because we are us

Akka Project 12.6k Jan 3, 2023