This repo contains simulations of in-band public key distribution for messaging using ClaimChains. See the main web page to learn about the ClaimChain data structure.
You can launch and run the notebooks for exploring and visualizing the simulations online using Binder without the need to install anything locally.
On a Debian-based system, you can set up the code and launch the notebooks in three steps:
- Install system and Python dependencies:
make deps && make venv
- Download the pre-computed simulation reports and the processed dataset:
make data
- Run the notebooks:
venv/bin/jupyter notebook notebooks
The last command will open browser window with Jupyter running.
You will need Python 3 and the Python header files installed. On Debian-based systems you can achieve this with:
apt-get install python3 python3-dev python3-pip
Some of the dependencies require more system packages:
apt-get install wget git build-essential libssl-dev libffi-dev python3-matplotlib parallel
You probably also want venv to isolate your development environment:
apt-get install python3-venv
python3 -m venv venv
source venv/bin/activate
If you use virtualenv you need to repeat the last command every time you want to work in the virtual environment.
Now you can install the requirements:
pip install -r requirements.txt
All of these can also be done by running make deps && make venv
.
You can either use the simulation reports and pre-processed Enron dataset
files that we have produced, or you reproduce them yourself. You can download
our data package from Zenodo (see the data folder), or by running
make data
.
The simulations use the Enron dataset as
the test load. Run make enron
from the project root to download and process
the dataset to the data/enron/parsed
directory.
To run the simulations from the paper, run make reports
. Mind that they
can use up to 50 GB of RAM, and take upwards of 25 hours on an Intel Xeon E5
machine. The simulations generate reports containing various useful
information, and are saved to the data/reports
directory.
We use Jupyter nodebooks to compute statistics and show the plots. You can
start Jupyter with jupyter notebook
. This will open a browser window,
where you can select a notebook from the notebooks directory
and run it. The notebooks will save all produced plots to the images
directory.
This work is funded by the NEXTLEAP project within the European Union’s Horizon 2020 Framework Programme for Research and Innovation (H2020-ICT-2015, ICT-10-2015) under grant agreement 688722.