5. Installation

Currently due to a certain amount of awkwardness of the python to Microsoft-SEAL bindings, the only “supported” installation method is by docker container. However we are working on fixing some of these issues in the near future, or at the very least supporting a second pure-python back-end so that installation is easier as a native library if that is desired.

5.1. Docker Registry

Dockerised images that you can play around with are available at: https://gitlab.com/deepcypher/python-fhez/container_registry/2063426

E.G, download and run interactively:

docker run -it registry.gitlab.com/deepcypher/python-fhez:master

5.2. Docker Build

If you would rather build this library locally/ for security reasons, you can issue the following build command from inside the projects root directory:

docker build -t archer/fhe -f Dockerfile_archlinux .

Note

The build process could take several minutes to build, as it will compile, bind, and package the Microsoft-SEAL library in with itself.

5.2.1. Docker Documentation Build

To build the detailed documentation with all the autodoc functionality for the core classes, you can use your now built container to create these docs for you by:

docker run -v ${PWD}/docs/build/:/python-fhe/docs/build -it archer/fhe make -C /python-fhe/docs html

The docs will then be available in ${PWD}/docs/build/html for your viewing pleasure

5.2.2. Locally-Built Docker-Image Interactive Usage

To run the now locally built container you can issue the following command to gain interactive access, by selecting the tag (-t) that you named it previously (here it is archer/fhe):

docker run -it archer/fhe

5.3. FHE Modules/ Plugins

This library will support extensions that expose a uniform API which we call “errays” or encrypted-arrays much like numpy custom containers, of which as simple implementation can be achieved by inheriting from our erray class. We hope to add more modules over time and would welcome others implementations too. We ourselves support the following modules:

* Currently built in but being separated.

Note

More instructions to follow on specific installation of modules once implementation is complete for them.

5.4. Build The Docs

If you would like to build the documentation manually, for example to auto-doc the API (which is not easy in RTD ) then from this directory:

  • build the Docker container (docker must be installed, repository must be cloned, and you must be in this directory)

sudo docker build -t archer/fhe -f Dockerfile_archlinux .  || exit 1
  • run the docker container with volume-mount, and trigger documentation build

sudo docker run -v ${PWD}/docs/build/:/python-fhe/docs/build -it archer/fhe make -C /python-fhe/docs html
  • you can then find the documentation in: ${PWD}/docs/build/html/

The docs will walk you through the rest. Enjoy.