02 ABY框架的搭建及踩到的坑

参考资料:https://github.com/encryptogroup/ABY
前言:
ABY框架在Ubuntu系统中完成依赖包的安装和运行环境的配置之后,在搭建ABY框架还是出现了一些问题,下面列举其中比较有代表性的问题记录一下。

文章目录

      • (一)ABY框架的搭建
      • (二)踩到的坑以及解决
      • (三)ABY的实例运行:百万富翁

(一)ABY框架的搭建

注:参考https://github.com/encryptogroup/ABY

    1. Clone the ABY git repository by running:
    
    2. git clone https://github.com/encryptogroup/ABY.git
    
    3. Enter the Framework      directory: cd ABY/
    
    4. Create and enter the      build directory: mkdir build && cd build
    
    5. Use CMake configure the build: `cmake ..`

   /*This also initializes and updates the Git submodules of the 
   dependencies located in extern/.
    If you plan to work without a network connection, 
    you should to a --recursive clone in Step 1.*/

	6. Call make in the `build`directory. 
	/*You can find the build executables and libraries in the  
	directories bin/ and lib/, respectively.*/

(二)踩到的坑以及解决

问题1:g++的版本与要求不符

02 ABY框架的搭建及踩到的坑_第1张图片

解决方案1:安装g+±8

(1)直接使用命令安装

sudo apt-get install g++-8

(3)检查g++版本

g++ --version

02 ABY框架的搭建及踩到的坑_第2张图片

问题2:g++版本升级后还是没有解决问题
02 ABY框架的搭建及踩到的坑_第3张图片
解决方案2:删除原来的g++版本的软链接(卸载原来版本)

(1)进入/usr/bin目录下

ls /usr/bin/g++*

(2)删除所有软链接,然后创建新的软链接指向g+±8.

sudo rm g++
sudo ln -s /usr/bin/g++-8 g++

问题3:安装boost的版本与要求不符

02 ABY框架的搭建及踩到的坑_第4张图片

解决方案4:分析报错代码,并重新安装

(1)具体定位到报错的代码位置

在这里插入图片描述

(2)重新安装

  • 到boost官网安装一个boost库的压缩包
  • 解压tar -xzvf boost_1_70_0.tar.gz
  • 解压出来以后,进入解压出来的文件夹
    02 ABY框架的搭建及踩到的坑_第5张图片
  • 执行下面的命令sudo ./bootstrap.sh在执行下面的命令
  • 这样头文件就被默认安装在/usr/local/include头文件下
  • 库文件就被默认安装在/usr/local/libsudo ./b2 install
  • 成功解决!

(三)ABY的实例运行:百万富翁

(1)搭建ABY框架

	 注:参考https://github.com/encryptogroup/ABY
  • Make sure you have build ABY as described above and set the -DABY_BUILD_EXE=Onoption and the application’s binary was created in bin/inside the build directory.

  • To locally execute an application, run the created executable from two different terminals and pass all required parameters accordingly.

  • By default applications are tested locally (via sockets on localhost). You can run them on two different machines by specifying IP addresses and ports as parameters.

  • Example: The Millionaire’s problem requires to specify the role of the executing party. All other parameters will use default values if they are not set. You execute it locally with: ./millionaire_prob.exe -r 0 and ./millionaire_prob.exe -r 1, each in a separate terminal.

  • You should get some debug output for you to verify the correctness of the computation.

  • Performance statistics can be turned on setting #define PRINT_PERFORMANCE_STATS 1 in src/abycore/ABY_utils/ABYconstants.h in line 32.
    反复调试了几次之后,终于搭建成功了:
    02 ABY框架的搭建及踩到的坑_第6张图片
    (2)运行结果截图:
    02 ABY框架的搭建及踩到的坑_第7张图片

    02 ABY框架的搭建及踩到的坑_第8张图片
    后记:
    虽然上面只记录了一些小问题,还是踩到很多坑hhh,采用万能调试法总能跑出来的,希望能给一些同样踩坑的朋友们一些小帮助,然后跑出来之后还是得对代码进行详细的解读才有学习的意义呀,那会是下一篇博客的内容啦!

你可能感兴趣的:(blockchain)