赞
踩
环境:Ubuntu 20.04
这里最少要分8G内存,硬盘正常分就好,但是内存最少8G,否则会跑不出来,如果电脑总共是8G,在这里就可以放弃了。
git clone https://github.com/data61/MP-SPDZ.git --recursive
这里会因为网络和墙的问题,里边extern中的某些依赖安全库会下载失败,需要一点一点下载完成,这里是最重要的,如果下载完整,下面一帆风顺,否则会各种报错。这是玄学问题,问就是玄学。
sudo apt-get install automake build-essential cmake git libboost-dev libboost-thread-dev libntl-dev libsodium-dev libssl-dev libtool m4 python3 texinfo yasm
直接复制执行就OK
在spdz的根目录下,执行以下步骤。
make -j 8 tldr
-j 8是告诉终端一次可以执行多少次命令
./compile.py tutorial
./compile.py <project_name>,这里是编译你写好的.mpc文件,.mpc文件放在program/source文件夹内。
echo 1 2 3 4 > Player-Data/Input-P0-0
echo 1 2 3 4 > Player-Data/Input-P1-0
执行这两句时会报找不到 Player-Data/Input-P0-0的问题,这里需要自己建立一个Player-Data文件夹,重新执行就OK了。
Scripts/mascot.sh tutorial
这句就是执行协议。
SPDZ是包含很多协议的,我们刚才通过make -j 8 tldr只生成了一个小Demo
下面我们将所有的协议全部生成出来
make -j 8
这个指令的时间比较长,我服务器上跑还花了十分钟。
生成之后你会看到spdz的根目录下产生很多.x后缀的文件,这些就是SPDZ支持的所有协议。
到此为止,所有的执行协议都生成了,接下来就随便玩吧。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。