This repository is a fork of boxo, applying the changes of the master's thesis "Privacy-Preserving Content Discovery for Bitswap Using Random Walks".
The relevant code is located under the directories bitswap
and testplans
.
The thesis can be found here.
An installation of Testground v0.6.0 is required.
The test scripts run each configuration 100 times. For this, Testground's task timeout needs to be increased. Please add a timeout of at least 60 minutes to your $TESTGROUND_HOME/.env.toml
:
[daemon.scheduler]
task_timeout_min = 60
To run the plan, first start your Testground daemon:
testground daemon
Import the test plan once. Run in a separate terminal:
cd testplans
testground plan import --from ./rawa-bitswap
The plan can be run with default parameters by:
testground run single \
--builder=docker:go \
--runner=local:docker \
--plan=rawa-bitswap \
--testcase=rawa-test \
--instances=50 \
--wait \
-tp run_count=1 \
-tp conn_per_node=4
testplans/rawa-bitswap/manifest.toml
shows the available parameters that can be configured.
The simulations conducted in the thesis can be run using the shell scripts inside testplans/rawa-bitswap/scripts
, e.g. sh performance.sh
.
See them for reference of possible parameter configurations.
The shell scripts produce a results
directory with the measured data during the simulation.
This data can be plotted using the python scripts, also inside the scripts
directory.
For running those, please make sure to have at least python v3.10 and the requirements.txt
installed in a virtual environment.