Gael Marcadet, Radu Ciucanu, Pascal Lafourcade, Marta Soare, Sihem Amer-Yahia
Demo paper published at ICDE 2022
If you use our code, please cite
@inproceedings{MCLSA22,
author = {Marcadet, G. and Ciucanu, R. and Lafourcade, P. and Soare, M. and {Amer-Yahia}, S.},
title = {{SAMBA: A System for Secure Federated Multi-Armed Bandits}},
booktitle = {IEEE International Conference on Data Engineering (ICDE) -- Demo},
pages = {3154--3157},
year = {2022}
}
To launch the demo, run the following command in your terminal in the root of the project:
./launch.sh download data build
Everything will be automatically installed, setup and run.
To run the Samba Application, you have to get installed Docker and Docker-Compose. If it is not, please refer to the Docker Installation Guide. In case where Docker-Compose is not installed, please refer to the Docker-Compose Installation Guide.
As an alternative, the following commands would install Docker and Docker-Compose on your system:
# install Docker
sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
# install Docker-Compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-composeType the following commands to be sure that every dependancies is well installed on your system:
sudo docker container run hello-world
sudo docker-compose versionSamba Application need to access to some pre-computed data, included in the Data folder. These data can be refreshed by typing the following commands:
cd data
pip3 install -r requirements.txt
python3 pre-computations.py
cd ..The Samba Application is composed by an FastAPI backend written in Python 3.8 and a front-end written in Angular.
To limit the numerous system installation to get all dependancies, Docker and Docker-Compose have been used. Briefly, Docker is the engine that allows to set-up a ready-to-use virtual machine on your system called container. Docker-Compose, however, is able to set-up a network of virtual machines working together.
In the case of Samba Application, there are two containers: the samba-api container executing the Samba API Python back-end, and the samba-app container executing the Angular front-end.
To run the Samba Application (i.e., the network of containers), assuming placed at the project root, type the following command in your terminal:
sudo docker-compose build
sudo docker-compose upFrom this point, both api and app are running and are logging in your terminal.
To access to the application, open your favorite web browser at the address http://localhost:4200.