2023-03-08 15:42:43 +00:00
|
|
|
# Bachelor Project
|
|
|
|
|
|
|
|
- **Title:** Privately Matching Patients to Therapists using MPC
|
|
|
|
- **Programme:** B.Sc. in Software Development
|
|
|
|
- **University:** IT-University of Copenhagen
|
2023-05-14 20:22:11 +00:00
|
|
|
|
|
|
|
## Overview
|
|
|
|
|
|
|
|
This is the repository for the code accompanying my bachelor project. The
|
|
|
|
source code is located in the `src/` directory. The version of MP-SPDZ used is
|
|
|
|
v0.3.6.
|
|
|
|
|
|
|
|
The `ansible/` directory contains an Ansible playbook that provisions three
|
|
|
|
servers ready to use with MP-SPDZ. It also contains a `Vagrantfile` that can be
|
|
|
|
used to provision three virtual machines using VirtualBox.
|
|
|
|
|
|
|
|
## How to run computation locally
|
|
|
|
|
|
|
|
This guide assumes an Ubuntu 22.04 environment and is only tested with such
|
|
|
|
system. Make sure to have GNU Make installed.
|
|
|
|
|
|
|
|
1. Clone this repository and run `git submodule update --init` to clone MP-SDPZ
|
|
|
|
as a submodule.
|
|
|
|
2. Navigate to `src/`.
|
|
|
|
3. Run `make -j$(nproc)` to install dependencies and compile MP-SPDZ.
|
2023-05-14 22:16:40 +00:00
|
|
|
4. Run `make gale_shapley.mpc` to compile the program.
|
|
|
|
5. Run `./gen_data.sh 50` to randomly generate data for the computation.
|
|
|
|
6. Run `./run.sh` to run the computation with three MPC parties locally in the
|
2023-05-14 20:22:11 +00:00
|
|
|
background. The computation will print output to `src/out-p${n}.txt` (`n =
|
2023-05-14 22:16:40 +00:00
|
|
|
#party`, `./run.sh -k` to kill computation).
|
2023-05-14 20:22:11 +00:00
|
|
|
|
|
|
|
### Summary
|
|
|
|
|
|
|
|
```sh
|
|
|
|
git submodule update --init
|
|
|
|
cd src/
|
|
|
|
make -j$(nproc)
|
2023-05-14 22:16:40 +00:00
|
|
|
make gale_shapley.mpc
|
2023-05-14 20:22:11 +00:00
|
|
|
./gen_data.sh 50
|
|
|
|
./run.sh
|
|
|
|
```
|
|
|
|
|
2023-05-15 03:34:30 +00:00
|
|
|
If you want to change the size of the dataset, you need to change the
|
|
|
|
`MATCHING_SIZE` constant in `gale_shapley.mpc` as well.
|
|
|
|
|
2023-05-14 20:22:11 +00:00
|
|
|
## License
|
|
|
|
|
|
|
|
This project is licensed under the BSD 3-Clause license.
|
|
|
|
|
|
|
|
MP-SPDZ is licensed under the BSD 3-Clause license. It is linked to this Git
|
|
|
|
repository as a submodule.
|