diff --git a/README.md b/README.md index 16196e6..d5ba83d 100644 --- a/README.md +++ b/README.md @@ -4,23 +4,24 @@ ## How to cite this work -Mastic will appear in [Proceedings on Privacy Enhancing Technologies (PoPETS), 2025](https://petsymposium.org/popets/2025). +Mastic appears in [Proceedings on Privacy Enhancing Technologies (PoPETS), 2025](https://petsymposium.org/popets/2025/popets-2025-0017.php). The preprint can be accessed [here](https://eprint.iacr.org/2024/221); you can cite this work as follows: ```bibtex @Article{PoPETS:MPDST25, - author = "Dimitris Mouris and - Christopher Patton and - Hannah Davis and - Pratik Sarkar and - Nektarios Georgios Tsoutsos", - title = "{Mastic: Private Weighted Heavy-Hitters and Attribute-Based Metrics}", - year = 2025, - volume = 2025, - month = July, - journal = "{Proceedings on Privacy Enhancing Technologies}", - number = 1, - pages = "1--30", + author = "Dimitris Mouris and + Christopher Patton and + Hannah Davis and + Pratik Sarkar and + Nektarios Georgios Tsoutsos", + title = "{Mastic: Private Weighted Heavy-Hitters and Attribute-Based Metrics}", + year = 2025, + volume = 2025, + month = July, + journal = "{Proceedings on Privacy Enhancing Technologies}", + number = 1, + pages = "290--319", + doi = "10.56553/popets-2025-0017" } ``` @@ -38,12 +39,12 @@ Similarly, for the two other modes that Mastic supports: ## Building -First, make sure that you have a working Rust installation: +First, make sure that you have a working [Rust installation](https://www.rust-lang.org/tools/install): ```bash ❯❯ rustc --version -rustc 1.74.0 +rustc 1.82.0 ❯❯ cargo --version -cargo 1.74.0 +cargo 1.82.0 ``` Next, build from sources using: diff --git a/artifact/README.md b/artifact/README.md index 0e8c2ab..8f00785 100644 --- a/artifact/README.md +++ b/artifact/README.md @@ -309,6 +309,8 @@ experiments in the paper specify the parameters used. To reproduce our experiments, use the configs from the [configs](./configs/) directory and the scripts from the [plots](./plots/) directory. +Install the Python dependencies with `pip install -r requirements.txt`. + ## Troubleshooting As mentioned in the **Troubleshooting** section of the [README file](../README.md) file, Mastic relies on the [tarpc](https://github.com/google/tarpc) library which has @@ -332,3 +334,8 @@ not change the experiments but will make setting up the experiments faster. For this reason, most of the provided configs use the default batch sizes, which may cause crashes with more clients or bits, but this can be simply resolved by reducing the batch sizes. + +## Plain Heavy Hitters (`m = 1`) +For plain heavy hitters, a more efficient implementation exists in the `count` +branch, which we used for Mastic experiments where `m = 1`. To reproduce our +exact numbers for `m = 1` use the count branch. diff --git a/artifact/plots/requirements.txt b/artifact/plots/requirements.txt new file mode 100644 index 0000000..59a98f9 --- /dev/null +++ b/artifact/plots/requirements.txt @@ -0,0 +1,2 @@ +pandas>=2.2.3 +seaborn>=0.13.2