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的支持,参考 https://github.com/intel/linux-sgx 及 https://github.com/intel/SGXDataCenterAttestationPrimitives/tree/master/QuoteGeneration/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