Skip to content

i13-msrg/cidds

Repository files navigation

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:

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •