Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.


vantage6

A Privacy Enhancing Technology (PET) Operations platform

Release PyPI vantage6 Unittests Coverage Status Codacy Badge DOI Discord Research software directory

Quickstart • Project structure • Join the community • License • Code of conduct • References


This repository is contains all the vantage6 infrastructure source code. The vantage6 technology enables to manage and deploy privacy enhancing technologies like Federated Learning (FL) and Multi-Party Computation (MPC). Please visit our website to learn more!

You can find more (user) documentation at readthedocs. If you have any questions, suggestions or just want to chat about federated learning: join our Discord) channel.

Infrastructure overview

Vantage6 architecture overview

A High level overview of the vantage6 infrastructure. Vantage6 has both a client-server and peer-to-peer architecture. The client is used by the researcher to create (PET) computation requests. It is also used to manage users, organizations and collaborations. The server contains users, organizations, collaborations, tasks and their results. It provides a central access point for both the clients and nodes. The nodes have access to privacy sensitive data and handle computation requests retrieved from the server. Computation request are executed as separate containers on the node. These containers are connected to containers at other nodes by a VPN network.

📚 Quickstart

Requirements

The vantage6 infrastructure is delivered in Docker images. To run these images, you need to have Docker installed. To install the latest version of the vantage6 CLI, you need to have Python, we recommend using an environment manager like mini-conda.

Install the latest version of the vantage6 CLI by using:

pip install vantage6

This install the v6 commands, which allows you to manage your nodes and servers. To view all available options, run:

v6 --help

For example you can create a local test setup by using:

v6 dev create-demo-network

This creates a local network with a server and two nodes. You can start the network by running:

v6 dev start-demo-network

This will start the server and nodes in the background. You can view the logs by running:

# View node logs
v6 node attach

# View server logs
v6 server attach

From here you can use the vantage6-client to interact with the server. The demo network has a pre-configured organization with the following credentials:

  • Username: dev_admin
  • Password: password

For example, you can create a new organization by running:

from vantage6.client import Client

client = Client('http://127.0.0.1', 7601, '/api', log_level='debug')
client.authenticate('dev_admin', 'password')
client.setup_encryption(None)

client.organization.create(
    name='My organization',
    address1='My address',
    address2='My address',
    zipcode='1234AB',
    country='The Netherlands',
    domain='my-organization.com'
)

You can find more (user) documentation at readthedocs

Project structure

PYPI packages

This repository is home to 6 PyPi packages:

Note that when using vantage6 you do not install the server and node packages. These are delivered to you in Docker images.

This repository also hosts the code for the vantage6 user interface (UI). The UI is an Angular web application that can be used to interact with the vantage6 server easily.

Docker images

The vantage6 infrastructure is delivered in Docker images. All Docker images are stored in the vantage6 GitHub Container Registry. The most important images are:

  • ghcr.io/vantage6/infrastructure/node:VERSION -> Node application Docker image
  • ghcr.io/vantage6/infrastructure/server:VERSION -> Server application Docker image
  • ghcr.io/vantage6/infrastructure/ui:VERSION -> User interface Docker image
  • ghcr.io/vantage6/infrastructure/algorithm-store:VERSION -> Algorithm store Docker image

with VERSION being the full semantic version of the vantage6 infrastructure, e.g. 4.0.0 or 4.1.0rc0.

Several other images are used to support the infrastructure:

  • ghcr.io/vantage6/infrastructure-base:VERSION -> Base image for the infrastructure
  • ghcr.io/vantage6/infrastructure/squid:VERSION -> Squid proxy image used for the whitelisting service
  • ghcr.io/vantage6/infrastructure/alpine -> Alpine image used for vpn traffic forwarding
  • ghcr.io/vantage6/infrastructure/vpn-client -> VPN image used to connect to the VPN
  • ghcr.io/vantage6/infrastructure/vpn-configurator -> VPN image used for initialization
  • ghcr.io/vantage6/infrastructure/ssh-tunnel -> SSH tunnel image used for connecting algorithms to external services

And finally there are some images released for algorithm development:

  • ghcr.io/vantage6/infrastructure/algorithm-base:MAJOR.MINOR -> Base image for algorithm development
  • ghcr.io/vantage6/infrastructure/algorithm-ohdsi-base:MAJOR.MINOR -> Extended algorithm base image for OHDSI algorithm development

💝 Join the community!

We hope to continue developing, improving, and supporting vantage6 with the help of the federated learning community. If you are interested in contributing, first of all, thank you! Second, please take a look at our contributing guidelines and our code of conduct.

📜 License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

✒️ Code of Conduct

Please note that this project is released with a Contributor Code of Conduct. By participating in any way in this project you agree to abide by its terms.

✒️ References

If you are using vantage6, please cite this repository as well as the accompanying papers as follows:

  • F. Martin, M. Sieswerda, H. Alradhi, et al. vantage6. Available at https://doi.org/10.5281/zenodo.7221216. Accessed on MONTH, 20XX.
  • A. Moncada-Torres, F. Martin, M. Sieswerda, J. van Soest, G. Gelijnse. VANTAGE6: an open source priVAcy preserviNg federaTed leArninG infrastructurE for Secure Insight eXchange. AMIA Annual Symposium Proceedings, 2020, p. 870-877. [BibTeX, PDF]
  • D. Smits*, B. van Beusekom*, F. Martin, L. Veen, G. Geleijnse, A. Moncada-Torres, An Improved Infrastructure for Privacy-Preserving Analysis of Patient Data, Proceedings of the International Conference of Informatics, Management, and Technology in Healthcare (ICIMTH), vol. 25, 2022, p. 144-147. [BibTeX, PDF]

vantage6.ai • Discord • Discourse • User documentation

Release files for vantage6 4.15.2rc1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vantage6 4.15.2rc1
File Size Uploaded
vantage6-4.15.2rc1.tar.gz 105.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for vantage6 4.15.2rc1
File Interpreter ABI Platform
vantage6-4.15.2rc1-py3-none-any.whl Python 3 none any Details

Total release size: 239.9 kB

Release files / vantage6-4.15.2rc1.tar.gz

Download URL vantage6-4.15.2rc1.tar.gz
Size 105.8 kB
Tags Source
SHA-256 checksum
How to use checksums
9d44aa6f0779cec856d5e31d0e9ed6c1835f5675740412d2ee9f1d1c5cddf422
BLAKE2b-256 checksum
How to use checksums
03a81d6cc36b2724925f08a858a0cdfe3aebeba05c7cc8381cbba53deb7ff1e3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.21

Release files / vantage6-4.15.2rc1-py3-none-any.whl

Download URL vantage6-4.15.2rc1-py3-none-any.whl
Size 134.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b3e16e1dfaa2e938f51e0eea718eefba61133d8db3fa3165f10446dc583c74ea
BLAKE2b-256 checksum
How to use checksums
47ba6b2ad038e297d2c7118659d43891792ed78e705f676c8a18f12904edf810
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.21

Release history Release notifications | RSS feed

5.0.3

2 release files

5.0.2

2 release files

5.0.1

2 release files

5.0.0

2 release files

4.15.2

2 release files

This release

4.15.2rc1 This release

2 release files

4.15.1

2 release files

4.15.0

2 release files

4.14.0

2 release files

4.13.7

2 release files

4.13.6

2 release files

4.13.5

2 release files

4.13.4

2 release files

4.13.2

2 release files

4.13.0

2 release files

4.12.2

2 release files

4.12.1

2 release files

4.12.0

2 release files

4.11.0

2 release files

4.10.2

2 release files

4.10.1

2 release files

4.9.1

2 release files

4.9.0

2 release files

4.8.2

2 release files

4.8.1

2 release files

4.8.0

2 release files

4.7.1

2 release files

4.7.0

2 release files

4.6.1

2 release files

4.6.0

2 release files

4.5.5

2 release files

4.5.4

2 release files

4.5.3

2 release files

4.5.2

2 release files

4.5.1

2 release files

4.5.0

2 release files

4.4.1

2 release files

4.4.0

2 release files

4.3.4

2 release files

4.3.2

2 release files

4.3.1

2 release files

4.3.0

2 release files

4.2.3

2 release files

4.2.2

2 release files

4.2.1

2 release files

4.2.0

2 release files

4.1.3

2 release files

4.1.2

2 release files

4.1.1

2 release files

4.1.0

2 release files

4.0.3

2 release files

4.0.2

2 release files

4.0.1

2 release files

4.0.0

2 release files

3.11.1

2 release files

3.11.0

2 release files

3.10.4

2 release files

3.10.3

2 release files

3.10.1

2 release files

3.10.0

2 release files

3.9.0

2 release files

3.8.8

2 release files

3.8.7

2 release files

3.8.6

2 release files

3.8.5

2 release files

3.8.4

2 release files

3.8.3

2 release files

3.8.2

2 release files

3.8.1

2 release files

3.8.0

2 release files

3.7.3

2 release files

3.7.2

2 release files

3.7.1

2 release files

3.7.0

2 release files

3.6.1

2 release files

3.6.0

2 release files

3.5.2

2 release files

3.5.1

2 release files

3.5.0

2 release files

3.4.3

2 release files

3.4.2

2 release files

3.4.1

2 release files

3.4.0

2 release files

3.3.7

2 release files

3.3.6

2 release files

3.3.5

2 release files

3.3.4

2 release files

3.3.3

2 release files

3.3.2

2 release files

3.3.1

2 release files

3.3.0

2 release files

3.2.0

2 release files

3.1.0

2 release files

3.0.4

2 release files

3.0.3

2 release files

3.0.2

2 release files

3.0.1

2 release files

3.0.0

2 release files

2.3.5

2 release files

2.3.4

2 release files

2.3.3

2 release files

2.3.2

2 release files

2.3.1

2 release files

2.3.0

2 release files

2.2.12

2 release files

2.2.11

2 release files

2.2.10

2 release files

2.2.9

2 release files

2.2.8

2 release files

2.2.7

2 release files

2.2.6

2 release files

2.2.5

2 release files

2.2.4

2 release files

2.2.3

2 release files

2.2.2

2 release files

2.2.1

2 release files

2.2.0

2 release files

2.1.1

2 release files

2.1.0

2 release files

2.0.0

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page