查看原文
其他

PrimiHub快速上手:5分钟运行一个MPC应用

原语科技 原语科技 2024-01-09

扫码关注保护消费者权益我们在行动
PrimiHub是原语科技自主研发的企业级开源隐私计算平台,其中涵盖了匿踪查询、隐私求交、联合建模、联合统计、算法容器管理、数据资源管理、数据确权与定价、异构平台互联互通(开发中)等主要应用服务功能。用户可通过两种方式使用PrimiHub:一是通过管理平台更加可视化、更轻松地配置并执行MPC任务;二是将服务配置安装至本地,在本地进行MPC任务。
本文简要介绍如何在本地利用docker-compose快速运行一个MPC应用。

运行MPC应用主要流程


设备:Ubuntu20.04


安装docker和docker_compose


1、安装docker
官网教程:https://docs.docker.com/get-docker/
执行以下代码:
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update && sudo apt-get install -y docker-ce##
注意:安装之后需要启动docker
sudo service docker start
为了避免每次命令都输入sudo,可以设置用户权限(将当前用户添加到docker组里面),注意执行后须注销重新登录
sudo usermod -a -G docker $USER


2、安装docker_compose

官网教程:https://docs.docker.com/compose/install/

以下有三种安装方式:

  • 二进制文件

从github上下载二进制文件

curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/bin/docker-compose

添加可执行权限

sudo chmod +x /usr/local/bin/docker-compose
  • 用pip安装

sudo pip install docker-compose
  • 用apt-get安装

sudo apt-get install docker-compose


3、查看是否安装成功
docker version

若出现Client和Server,则说明docker安装成功。
docker-compose --version

若出现以上信息,则说明安装成功

启动节点
1、下载primihub代码并切换至代码根路径

下载代码:

git clone https://github.com/primihub/primihub.git

切换至代码根目录:

cd ./primihub


2、启动测试用的节点
使用docker-compose启动三个docker容器,包括:启动点和三个节点.
docker-compose up -d

3、查看运行成功的docker容器
docker-compose ps -a
从中可以看出一共有四个容器,分别为node0_primihub、node1_primihub、node2_primihub和simple_boostrap_node,以及对应的状态和端口。


创建一个MPC任务
1、由node0开启逻辑回归任务
让三个节点共同执行一个MPC的逻辑回归任务:
docker run --network=host -it primihub/primihub-node:latest ./primihub-cli --server="127.0.0.1:8050"

该例子中primihub-cli使用默认参数:向node0请求一个ABY3的三方逻辑回归测试任务,关于创建其他任务所用到的参数请参见https://docs.primihub.com/docs/advance-usage/create-tasks/cli-params

任务提交成功。

注:如果任务提交太慢,可重启docker-compose:

docker-compose restart


2、任务完成
  • 查看日志:

docker logs -f node0_primihub

以下是一部分的日志内容:

从中可看出任务执行成功,并且模型存储在./100_200_party_0_lr.csv文件中。
  • 查看结果模型文件:
进入node0_primihub容器:
docker exec -it node0_primihub bash

查看结果文件:
cat ./100_200_party_0_lr.csv
结果如下:

常见问题
1、若在执行docker version时,出现以下问题:
这是因为docker没有正确开启,开启docker:
sudo service docker start
随后执行docker version, 成功显示docker Server。

2、在启动docker容器时,出现以下错误:

这是因为docker-compose版本过低,需要将docker-compose升级到版本2.x.x。

若不方便升级(例如用apt-get install命令只能升级到1.25.1版本),则可以在docker-compose.yml文件的第一行添加version:'2'来解决该问题:
vim docker-compose.yml




3、在查看任务日志时,发现任务执行失败:

需要重新拉取镜像:

docker pull primihub/primihub-node


更新之后需要停止docker-compose:
docker-compose down

然后再重新启动dockers容器:

docker-compose up -d

之后就可成功执行任务。


PrimiHub使用手册
本文主要是对PrimiHub初步使用的一个说明,感兴趣的小伙伴可以阅读PrimiHub官网上的使用说明文档自行尝试,文档中也包含其他MPC任务的启动步骤,链接如下:https://docs.primihub.com/
欢迎持续关注公众号后续文章更新,带你手把手使用PrimiHub!

END
原语科技自主研发的隐私计算平台Primihub及管理平台Primihub-Platform均已在GitHub上开源,欢迎交流体验 -



Github地址:

https://github.com/primihub/primihub


官方文档:

https://docs.primihub.com



长按二维码添加小助手微信,

由小助手拉你进交流群,

这里有许多你的小伙伴哦~



往期推荐





原语科技

primihub.com



继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存