/iota_simulation

A Multi-Agent Simulation Framework and Analysis of the IOTA Tangle - Python implementation and PDF of M.Sc. thesis, Imperial College London

Primary LanguagePythonMIT LicenseMIT

Python IOTA Tangle simulation

status last-commit issues-pr-raw license

This is a Python implementation of a single- and multi-agent simulation of the IOTA Tangle, as described in the white-papers.

My full thesis is available here. Please cite: Zander, W. M. (2018). A Multi-Agent Simulation Framework and Analysis of the IOTA Tangle (Unpublished master's thesis). Imperial College London, United Kingdom.

Prerequisites

python-1 python-2

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

The code is run and tested with Python 3.6.3 and 3.7 on macOS 10.12.6., 10.13 and 10.14.

Environment

Clone the repo to your local machine.

Create a virtual environment for Python 3 with:

python3 -m pip install virtualenv
python3 -m virtualenv -p python3 env

Activate the virtual environment with:

source env/bin/activate

pip's install of pygraphviz is currently broken, thus run the following before using the makefile:

brew install graphviz
pip3 install pygraphviz

Then the used Python libraries/packages can be installed with:

make

or alternatively with:

pip3 install -r requirements.txt

Run the simulation

Run the simulation with:

python core.py

In this file you can also change the configuration of the simulation.

Run tests

pytest is used for testing. Run the tests with:

pytest

Authors

  • Manuel Zander

License

See LICENSE

Acknowledgments

Many thanks to nud3l for his review and great suggestions during development of this software 😊