隐语实训04-Windows环境安装隐语

参考链接:https://www.secretflow.org.cn/zh-CN/docs/secretflow/v1.3.0b0/getting_started/installation

目前隐语不直接支持Windows,需要通过WSL(Windows Subsystem for Linux)

需要在Windows上先安装WSL2,不建议使用WSL1,WSL安装参考:https://learn.microsoft.com/zh-cn/windows/wsl/install,需要全程开着docker desktop,不然子系统里的docker会异常退出。

GNU/Linux我跟着课程使用的Ubuntu-22.04

1、环境确认

需要python:3.8

查看子系统

wsl -l -v

如果没有得话,可通过wsl --list --online查看在线可安装得子系统,我这里按照课程安装的相同子系统Ubuntu-22.04,然后通过wsl.exe --install Ubuntu-22.04,(过程中需要设置用户名和口令)等待安装完成即可,如果链接error的话,需要科学上网~,如果没有的话,从Microsoft Store下载
在这里插入图片描述安装后的查看列表(2代表是wsl2的版本,符合要求)

PS C:\Users\95762> wsl -l -v
  NAME                   STATE           VERSION
  Ubuntu-22.04           Running         2

2、安装SecretFlow

在1中第一次安装Ubuntu子系统后会自动进入Ubuntu,接下来就可以按照Linux的方式去安装Secretflow了

确认下Ubuntu的WSL2版本
在这里插入图片描述安装anaconda环境,分别执行

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

bash Miniconda3-latest-Linux-x86_64.sh

在这里插入图片描述过程中一路回车略过相关信息,直到需要输入yes或者按确认键
在这里插入图片描述然后执行source .bashrc使得环境变量生效
在这里插入图片描述创建隐语虚拟环境,这里命名为sf

conda create -n sf python=3.8

在这里插入图片描述创建sf环境后,激活进入,就可以安装隐语了,安装的文件有点多,所以需要一段时间,我网速不稳定,前后一共下了仅两个小时才下完。。建议白天安装,不要在睡觉前才想起去安装~

conda activate sf	#激活
pip install -U secretflow -i https://mirrors.aliyun.com/pypi/simple/ #可以通过-i指定下载源,我这里没有使用

在这里插入图片描述安装完后测试官方给的代码

import secretflow as sf
sf.init(parties=['alice', 'bob', 'carol'], address='local')

alice_device = sf.PYU('alice')

message_from_alice = alice_device(lambda x:x)("Hello World!")

print(sf.reveal(message_from_alice))

发现报错,缺少依赖
在这里插入图片描述安装该依赖即可

sudo apt-get update
sudo apt-get install libgomp1

在这里插入图片描述安装好后再运行测试文件,出现hello world就说明测试成功了

在这里插入图片描述### 3、安装SecretNote

1、因为docker会和默认的子系统连接,所以首先设置默认子系统为之前安装的Ubuntu,

wsl --set-default Ubuntu-22.04

在Ubuntu的sf环境下,当前目录创建一个note文件夹mkdir note

进入note文件夹,创建docker=compose.yml文件

cd note
vim docker-compose.yml

从GitHub的secretnote项目中复制docker=compose.yml文件的配置内容到你创建的yml文件中,保存退出

services:
  alice:
    image: 'secretflow/secretnote:1.3.0-amd64'
    platform: linux/amd64
    environment:
      - SELF_PARTY=alice
      - ALL_PARTIES=alice,bob
    ports:
      - 8090:8888
    entrypoint: /root/scripts/start.sh
    volumes:
      - /root/scripts

  bob:
    image: 'secretflow/secretnote:1.3.0-amd64'
    platform: linux/amd64
    environment:
      - SELF_PARTY=bob
      - ALL_PARTIES=alice,bob
    ports:
      - 8092:8888
    entrypoint: /root/scripts/start.sh
    volumes:
      - /root/scripts

这个配置文件其实就是定义和运行两个docker容器,分别模拟两个参与方:Alice 和 Bob。这里使用了 Docker Compose 来管理多容器的部署。

alice和bob使用的是相同的docker镜像secretflow/secretnote:1.3.0-amd64,但创建了两个容器,就好像一个ios系统镜像文件安装了两个Windows系统一样。同时每个容器下分别设置了不同的环境

image: 定义了要使用的 Docker 镜像。这里使用的是 secretflow/secretnote:1.3.0-amd64,指定了特定的版本和架构。

platform: 指定容器运行的平台,这里是 linux/amd64。

environment: 设置环境变量,用于容器内部的配置。例如,SELF_PARTY 设置为 alice 或 bob 来标识容器代表的参与方。ALL_PARTIES 定义了网络中所有参与方的名称,这里是 alice,bob。

ports: 映射容器内的端口到宿主机的端口。例如,Alice 的 8888 端口映射到宿主机的 8090 端口,Bob 的 8888 端口映射到宿主机的 8092 端口。这允许外部访问容器提供的服务。

entrypoint: 容器启动时执行的脚本,这里是 /root/scripts/start.sh。这个脚本负责初始化和启动容器中的应用。

volumes: 将宿主机的文件或目录挂载到容器中。

在这里插入图片描述然后启动docker,第一次需要拉取镜像,时间有些长

docker compose up

拉取后会自动进去容器
在这里插入图片描述这里显示了网址http://127.0.0.1:8888/secretnote/,其实是Ubuntu里访问这个容器的地址,但我们是在Windows环境下,需要从Windows主机中访问secretnote,可另开一个Ubuntu终端,使用ifconfig查看Ubuntu的地址,通过浏览器访问secretnote
在这里插入图片描述到这里能访问就表明secretnote搭建成功了,下面做个小测试。

右上角添加节点,分别为Alice和Bob,注意IP要写Ubuntu的IP,端口写docker-compose配置文件的端口
在这里插入图片描述从secretnote项目里(https://github.com/secretflow/secretnote/blob/main/docs/guide/secretnote-sf.md)下载示例数据iris_alice.csv和iris_bob.csv,示例代码psi.ipynb。分别上传到两个节点和notebook中。示例代码无需改动,直接运行即可
在这里插入图片描述在这里插入图片描述左边alice和bob能出来结果就说明成功了

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值