Package: vantage6-common
A Privacy Enhancing Technology (PET) Operations platformQuickstart•Project structure•Join the community•ReferencesThis repository is contains all thevantage6infrastructure source code. Thevantage6technology enables to manage and deploy privacy enhancing technologies like Federated Learning (FL) and Multi-Party Computation (MPC). Please visit ourwebsite (vantage6.ai)to learn more!You can find more (user) documentation atreadthedocs (docs.vantage6.ai). If you have any questions, suggestions or just want to chat about federated learning: join ourDiscord (https://discord.gg/yAyFf6Y)channel.Infrastructure overviewA 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: QuickstartRequirementsThevantage6infrastructure is delivered in Docker images. To run these images, you need to haveDockerinstalled. To install the latest version of the vantage6 CLI, you need to havePython, we recommend using an environment manager likemini-conda.Install the latest version of the vantage6 CLI by using:pipinstallvantage6This install thev6commands, which allows you to manage your nodes and servers. To view all available options, run:v6--helpFor example you can create a local test setup by using:v6devcreate-demo-networkThis creates a local network with a server and two nodes. You can start the network by running:v6devstart-demo-networkThis will start the server and nodes in the background. You can view the logs by running:# View node logsv6nodeattach# View server logsv6serverattachFrom here you can use thevantage6-clientto interact with the server. The demo network has a pre-configured organization with the following credentials:Username:org_1-adminPassword:passwordFor example, you can create a new organization by running:fromvantage6.clientimportClientclient=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 atreadthedocs (docs.vantage6.ai)Project structurePYPI packagesThis repository is home to 6 PyPi packages:vantage6->CLI for managing node and server instancesvantage6-client->Python client for interacting with the vantage6-servervantage6-algorithm-tools->Python tools to facilitate algorithm developmentvantage6-node->Node application packagevantage6-server->Server application packagevantage6-common->Server application packageNote that when using vantage6 you do not install theserverandnodepackages. These are delivered to you in Docker images.Docker imagesThe vantage6 infrastructure is delivered in Docker images. All Docker images are stored in our privateHarborregistry. The most important images contain the server and node:harbor2.vantage6.ai/infrastructure/node:VERSION->Node application Docker imageharbor2.vantage6.ai/infrastructure/server:VERSION->Server application Docker imagewithVERSIONbeing the full semantic version of the vantage6 infrastructure, e.g.4.0.0or4.1.0rc0.Several other images are used to support the infrastructure:harbor2.vantage6.ai/infrastructure/infrastructure-base:VERSION->Base image for the infrastructureharbor2.vantage6.ai/infrastructure/squid:VERSION->Squid proxy image used for the whitelisting serviceharbor2.vantage6.ai/infrastructure/alpine->Alpine image used for vpn traffic forwardingharbor2.vantage6.ai/infrastructure/vpn-client->VPN image used to connect to the VPNharbor2.vantage6.ai/infrastructure/vpn-configurator->VPN image used for initializationharbor2.vantage6.ai/infrastructure/ssh-tunnel->SSH tunnel image used for connecting algorithms to external servicesAnd finally there are some images released for algorithm development:harbor2.vantage6.ai/infrastructure/algorithm-base:MAJOR.MINOR->Base image for algorithm developmentharbor2.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 supportingvantage6with the help of the federated learning community. If you are interested in contributing, first of all, thank you! Second, please take a look at ourcontributing guidelines:black_nib: ReferencesIf you are usingvantage6, please cite this repository as well as the accompanying papers as follows:F. Martin, M. Sieswerda, H. Alradhi, et al. vantage6. Available athttps://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•