Giter Club home page Giter Club logo

cidds's Introduction

CIDDS: A Configurable and Distributed DAG-based Distributed Ledger Simulation Framework

CIDDS: A Configurable and Distributed DAG-based Distributed Ledger Simulation Framework

Blockchain based distributed ledgers is one of the most studied research areas, owing to the enormous success of crypto-currencies like Bitcoin, Ethereum, etc. But, in addition to all the advantages, Blockchain is by design resource intensive and in general does not scale well. Hence, researchers all over are looking for alternatives for blockchain and one such alternative is the Tangle, introduced by IOTA foundation. Tangle is a Directed Acyclic Graph (DAG) based distributed ledger, which boasts advantages like high scalability and support for micro-payments. But outside the context of IOTA, the properties of a DAG-based distributed ledger are not studied. Also IOTA currently does not contain a large scale peer-to-peer simulation system with configurable parameters, which allows the users to study the important characteristics and metrics of the network and compare di erent scenarios under controlled conditions. This thesis proposes CIDDS, a Configurable and Interactive DAG based Distributed ledger Simulation framework as a solution to this problem. Using CIDDS, users can create large scale tangle simulations with thousands of nodes and study the characteristics of the resulting DAG ledgers with varying parameters.

Documentation

For detailed documentation, please review this Master Thesis

Getting Started

This is a django project. To run this locally, please have all the dependencies required to run django. The following links can be followed to have django installed in the local machine.

  • Docs - Django Installation documentation
  • Sample - In depth tutorial

And we use postgres database. Please install and setup a postgres database from the link below:

Once postgres is installed, create a database with the following parameters:

        'NAME': "cidds",
        'USER': "postgres",
        'PASSWORD': "postgres",
        'PORT': '5432',
        'HOST': 'localhost',

Installation Instructions

Once the basic setup is complete, please follow these steps to run the server:

  • Clone this repository by running
git clone https://github.com/i13-msrg/cidds.git
  • Create Python 3 virtual environment named "venv"
virtualenv -p python3 venv
  • Activate the venv
source venv/bin/activate

  • Navigate to the directory cidds
cd cidds
  • Install all the requirements
pip install -r requirements.txt
  • Migrate the database
python manage.py migrate

If the database is installed properly, this should create all the required tables for the application to run

  • A new superuser can be created with the following command to access the application
python manage.py createsuperuser
  • Now the application can be run by the following command
python manage.py runserver
  • If you are running the code in local machines, please make sure you add the localhosts to the list of allowed hosts, and debug can be set to true in 'cidds/CIDDS/settings.py' file
DEBUG = True

ALLOWED_HOSTS = ['0.0.0.0', '131.159.52.52', '.blockchainsimulator.org', '127.0.0.1', 'localhost']
  • Also, if you notice that the application is loading without proper styling, make sure that the staticfiles are loaded by running the command
python manage.py collectstatic

Accessing CIDDS online

CIDDS can be accessed online using the following link: http://131.159.52.52:8080

( Update : This link is not valid anymore, please run the application locally )

Inspirations from

Please do visit these repositories for similar simulators:

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.