一、SecretFlow安装
1、 安装部署要求
2、SecretFlow的安装方式有三种,本文是通过pypi方式安装的,但在由于我的电脑是Windows系统,所以安装了Ubuntu的虚拟机,并在虚拟机上安装了Anaconda,之后才安装的SecretFlow,具体的在虚拟机上安装Anaconda教程见链接。
3、打开Ubuntu虚拟机的terminal,使用annaconda的conda命令创建虚拟环境,我的环境名为secretflow。
安装注意事项:
• 在安装虚拟机时,一定要提前给足较大的硬盘容量(我第一次只给了40G,后来不够用又扩到70G)
• 虚拟机硬盘容量扩充
• 创建虚拟环境时Python的版本要选3.8,否则在安装SecretFlow时可能会出错。
• 安装过程中不要断网
conda create -n secretflow python=3.8 //创建虚拟环境
source activate secretflow //进入虚拟环境
pip install -U secretflow //安装secretflow
二、SecretFlow部署模式
1、类型:包括仿真模式和生产模式
2、Ray是一个分布式的计算框架
3、仿真模式
a.单机仿真(单个节点模拟Alice、bob两个参与方)
import secretflow as sf //导入secretflow模块
sf.init(parties=['alice','bob'],address='local') //parties表示参与方,address='local'表示启动一个本地的Ray节点
alice=sf.PYU('alice') //创建两个名为alice和bob的明文计算设备(PYU)
bob=sf.PYU('bob')
alice(lambda x:x+1)(2)
bob(lambda x:x-1)(2)
b.集群仿真(部署两个节点,分别模拟Alice、bob两个参与方)
注:--node-ip-address中要替换成实际的IP和端口;resources表示把该节点标识为alice,16指明了Alice有16个计算资源,方便Ray进行调度;Ray主节点的通信地址就是主节点的IP和端口号
注:SPU中的通信地址和Ray中的是不一样的,SPU是单独进行通信的,端口号跟之前不能冲突
4、生产模式 (部署两个节点,分别模拟Alice、bob两个参与方)
注:cliuster_config中的address要填一个新的端口
其中双方Proxy模块中的通信地址就是cliuster_config中的通信地址
使用KUSCIA解决多端口问题:统一不同机构的网络基础设施
docker模式运行SecretFlow集群,建议使用host网络,如果不能使用,最好在以恶搞机器上运行多个docker容器
三、SecretNote安装
1、SecretNote不适合用于生产
2、SecreetNote可以在一个页面上执行多方代码,多节点代码自动执行,所见即所得