本地开发服务器#

何时需要使用此功能?¶#

为了快速测试Syft功能或在部署前对服务器设置进行实验,本地开发服务器会非常有用。这些开发服务器类似于内存服务器,提供简单的启动和关闭功能。

这个本地开发服务器拥有自己的SQLite存储,用于保存服务器的元数据和数据,其名称与服务器的唯一名称相同。如果您启动一个已有存储的服务器,该存储将被一并加载,这意味着您可以在更长的开发周期中使用它。

步骤#

要部署本地开发服务器,您只需要使用syft,它附带了一个名为orchestra的特殊模块。通过orchestra,您可以尝试单服务器部署,甚至模拟容器工作负载。

安装#

Python 版本

请确保您已安装并可使用 Python 3.10+ 版本。

pip install -U syft

启动开发服务器#

import syft as sy

server = sy.orchestra.launch(
    name="my_special_server",
    reset=True,
    port=8093,
)
server.deployment_type

返回的对象sy.ServerHandle允许获取关于您部署的本地服务器的具体信息,例如urldeployment_type。这里的部署类型是PYTHON,因为服务器运行在Python进程中。值得注意的是sy.orchestra还允许用户尝试更多本地容器化部署方式,相关内容将在后续详细介绍。

客户端还提供了更多API以便于测试,例如registerlogin_as_guest等。

server.url
server.port

可以传递更多参数来配置您希望使用开发服务器的方式:

  • dev_mode: True/False,表示在使用服务器进行调试时是否需要详细日志记录

  • server_type: enclave, domaingateway

  • server_side_type: highlow,用于声明您的服务器是用于托管私有数据(high)还是仅模拟数据(low)。高安全级别的服务器对数据使用方式有更严格的防御措施。

  • local_db: True/False,是否要初始化本地数据库

  • create_producer: True/False,表示您的服务器是否可以实例化其他内存服务器来模拟与多个容器的协作

  • n_consumers: 模拟的内存工作节点数量,能够消费调度的工作负载。这是启动和运行作业所必需的,并且要求create_producer设置为True

  • thread_workers: True/False,是否应使用线程模拟内存中的工作进程

  • association_request_auto_approval: True/False,表示是否应自动批准与其他服务器关联的请求(例如从一个服务器路由到另一个服务器)

或者从命令行运行: $ syft launch --name=my-server --port=8080 --reset=True

访问客户端并登录#

data_owner_client = sy.login(url="localhost:8093", email="[email protected]", password="changethis")
data_owner_client

服务器着陆(关闭)#

server.land()

更多关于如何使用此Datasite服务器的信息,请参阅Datasite指南组件部分