In this PoC we mock a use case in which reducer and combiner run on an enclave in a cloud environment, while a classic human activity recognition training task (CASA) is run on an IoT board. This PoC is intended to be used with Intel SGX and it was tested using Azure Confidential Computing.
First, download the data by running:
bin/get_data.sh
Then, init the Python virtual environment by running:
bin/init_venv.sh
Note this command was tested with Python 3.8
Now you can generate the seed model by running:
client/entrypoint init_seed
The next step is to build the compute package:
bin/build_package.sh
sudo docker-compose up -d
Note you may need to login into Scaleout's GitHub registry to access ghcr.io/scaleoutsystems/tee-gc/fedn:latest
The reducer UI is now available on https://localhost:8090
. The quickest way to upload package.tar.gz
and seed.npz
is via REST API.
# Upload package
curl -k -X POST \
-F [email protected] \
-F helper="keras" \
https://localhost:8090/context
# Upload seed
curl -k -X POST \
-F [email protected] \
https://localhost:8090/models
Now navigate to https://localhost:8090 and start the experiment using the UI.
You can release resources by running the following: sudo docker-compose down
.