前言:

本文旨在对网上已有的方法步骤进行补充说明,指导读者完成从虚拟机安装到libsnark库示例代码复现全过程。建议先看本文中的注意事项,后跳转到参考网页,否则可能会掉到坑里。

目录:

一、VMware虚拟机及Ubuntu系统安装

1.在windows11上安装VMware-17.5.0版本虚拟机。

2.在虚拟机上安装ubuntu-22.04.3版本系统。

二、配置虚拟机(解决文件无法拖拽及下载速度慢的问题)

1.解决虚拟机“无法拖拽文件”问题

2.虚拟机换源

三、安装libsnark库

四、复现libsnark示例代码(merkle 路径证明)


一、VMware虚拟机及Ubuntu系统安装

1.在windows11上安装VMware-17.5.0版本虚拟机。

2.在虚拟机上安装ubuntu-22.04.3版本系统。

参考:安装:https://blog.csdn.net/weixin_74195551/article/details/127288338

           密钥:https://blog.csdn.net/hupoboy/article/details/131394587(笔者用的是第一个密钥)

二、配置虚拟机(解决文件无法拖拽及下载速度慢的问题)

1.解决虚拟机“无法拖拽文件”问题

参考:https://blog.csdn.net/ZRongZH/article/details/129237476

终端中运行结果如下:

2.虚拟机换源

参考:https://blog.csdn.net/xxx_2019/article/details/120660864

注:由于笔者安装的版本为ubuntu 22.04.3,因此需要将代码中的bionic换为jammy。

即:

#阿里源

deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse

三、安装libsnark库

文件准备:https://github.com/scipr-lab/libsnark

参考:https://blog.csdn.net/matlabdd1/article/details/123637302

注1:安装运行所需要的包时,执行第一条代码即可。

即:

sudo apt install build-essential cmake git libgmp3-dev libprocps-dev python3-markdown libboost-program-options-dev libssl-dev python3 pkg-config

注2:本例是直接从github上手动下载的压缩包,依赖也是手动复制的,未直接用命令行进行下载操作。

注3:安装子模块ate-pairing时

(1)“make-j”指令运行前,需要先给g++和gcc降级

参考:https://zhuanlan.zhihu.com/p/555635813

注:本例在未删除系统自带gcc-11和g++-11的情况下,安装了gcc-9和g++-9。

优先级配置代码如下(设置9为高优先级):

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 10

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 20



sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 10

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 20



sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30

sudo update-alternatives --set cc /usr/bin/gcc



sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30

sudo update-alternatives --set c++ /usr/bin/g++

设置结果如下:

(2)“test/bn”指令需修改为“sudo test/bn”

运行结果如下:

四、复现libsnark示例代码(merkle 路径证明)

文件准备:https://github.com/StarLI-Trapdoor/libsnark_sample

参考:https://blog.csdn.net/weixin_44565944/article/details/112250664

复现步骤:

1.下载好源码文件后,用搭建好的libsnark文件替换此文件中的空libsnark文件;

2.从参考网站的第5步开始执行,即可得到证明结果。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐