Skip to main content

Vantage6 client

Project description


vantage6

A Privacy Enhancing Technology (PET) Operations platform

Release PyPI vantage6 Unittests Coverage Status Codacy Badge DOI

QuickstartProject structureJoin the communityReferences


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 (vantage6.ai) to learn more!

You can find more (user) documentation at readthedocs (docs.vantage6.ai). If you have any questions, suggestions or just want to chat about federated learning: join our Discord (https://discord.gg/yAyFf6Y) 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.

:books: 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: org_1-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', 5000, '/api', log_level='debug')
client.authenticate('org_1-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 (docs.vantage6.ai)

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.

Docker images

The vantage6 infrastructure is delivered in Docker images. All Docker images are stored in our private Harbor registry. The most important images contain the server and node:

  • harbor2.vantage6.ai/infrastructure/node:VERSION -> Node application Docker image
  • harbor2.vantage6.ai/infrastructure/server:VERSION -> Server application 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:

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

And finally there are some images released for algorithm development:

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

:gift_heart: 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

:black_nib: 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.aiDiscordDiscourseUser documentation

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vantage6-client-4.2.0rc2.tar.gz (21.7 kB view details)

Uploaded Source

Built Distribution

vantage6_client-4.2.0rc2-py3-none-any.whl (19.6 kB view details)

Uploaded Python 3

File details

Details for the file vantage6-client-4.2.0rc2.tar.gz.

File metadata

  • Download URL: vantage6-client-4.2.0rc2.tar.gz
  • Upload date:
  • Size: 21.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.13

File hashes

Hashes for vantage6-client-4.2.0rc2.tar.gz
Algorithm Hash digest
SHA256 71e50c150dc200c1285f560e99876b4dd7671e864e8a4a956e514785b8cefe4f
MD5 aff5181a492db850ddb0e154575ccb70
BLAKE2b-256 fabe863bab9a9b0391d9a8ae21e26fa467a034c054c16e7d8523719ef6eb304c

See more details on using hashes here.

File details

Details for the file vantage6_client-4.2.0rc2-py3-none-any.whl.

File metadata

File hashes

Hashes for vantage6_client-4.2.0rc2-py3-none-any.whl
Algorithm Hash digest
SHA256 c2688b2cb411bcae93d1ac5154d2cb51240654aad5b47073862d10d766da9ba2
MD5 0f50f87b6b800b453f743085b054096e
BLAKE2b-256 4d78abc3d0f64981581c4115c0a856306ef436393c0312000cb8cd3a6a2135e4

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page