Fidelius部署教程

来自典枢
YeezAdmin讨论 | 贡献2022年5月11日 (三) 03:52的版本 →‎安装Fidelius
跳到导航 跳到搜索

我们提供了从源安装的方式。您也可以从源代码编译安装,但是请注意,由于Intel SGX的限制,一个Enclave在构建时需要使用RSA 3072的私钥进行签名,自行编译安装时使用的私钥与通过源安装的版本所使用的私钥并不相同,因此,自行编译安装的Fidelius可能与从源安装版本不兼容。

目前Fidelius稳定版为v1.0release版,新版本即将推出,您可以切换到patterns分支查看,注意该版本目前并未提供相关技术支持。

环境及依赖

目前,Fidelius运行在 Ubuntu18或Ubuntu20 上,因此首先请确认您的Linux发行版是正确的。 Fidelius基于Intel SGX运行,您需要确认您的硬件环境已经配备了支持的中央处理器(CPU),并对BIOS进行了正确的设置,您可以咨询您的硬件供应商。一个简单的确认方法是使用如下的程序进行确认:

 $ git clone https://github.com/ayeks/SGX-hardware.git
 $ cd SGX-hardware
 $ gcc test-sgx.c -o test-sgx
 $ ./test-sgx

若其中包括如下两行,则Intel SGX的硬件配置是正确的。

 ...
 sgx available: 1
 ...
 sgx 1 supported: 1

若sgx available字段为 0,则CPU 本身不支持Intel SGX;若sgx 1 supported字段为0,则说明BIOS不支持或未开启Intel SGX 功能。

为了能够执行 Intel SGX 的程序,还需要正确安装 Intel SGX SDK,包括 DCAP的支持,参考 linux-sgxQuoteGeneration/pccs

最后,Fidelius依赖于一些额外的库,包括openssl,glog,boost,mysqlcppconn等,安装操作如下:

 $ sudo apt install build - essential ocaml ocamlbuild automake autoconf libtool wget python libssl -dev git cmake perl
 $ sudo apt install libssl -dev libcurl4 -openssl -dev protobuf -compiler libprotobuf -dev debhelper cmake reprepro unzip
 $ sudo apt install mysql -server libgoogle -glog -dev libboost -all -dev libmysqlcppconn -dev

特别的,Ubuntu 自带的 secp256k1 库并不完整,建议自行编译安装完整版本,操作如下:

 $ git clone https :// github.com/bitcoin -core/ secp256k1 .git
 $ cd secp256k1
 $ ./ autogen.sh
 $ ./ configure --enable -module -ecdh --enable -module -recovery
 $ make
 $ make check
 $ sudo make install

安装Fidelius

从源代码安装 Fidelius 仍然是最为直接的方式,操作如下:

 $ git clone https://github.com/YeeZTech/YeeZ-Privacy-Computing .git
 $ cd YeeZ-Privacy-Computing
 $ git checkout patterns
 $ git submodule update --init
 $ mkdir build
 $ cd build
 $ cmake -DSGX_MODE = PreRelease -DSGX_HW=On ../
 $ make

编译完成之后,会在 YeeZ-Privacy-Computing 目录下生成两个目录,lib 和 bin,其中 lib 下是相关的库文件,bin 下是可执行文件,也就是相关工具。 注意,上述操作过程生成的是 PreRelease 版本,其他还有 Debug 版本、Simu�lation 版本和 Release 版本,四者的区别如下,在编译时的区别主要是上述 cmake 操作的区别: