Ubuntu中部署ECDSN运行环境

ECDSN是由华东师范大学区块链实验室研发的新型去中心化存储系统,源代码在GitHub仓库:https://github.com/Jalingpp/ECDS.git,下面介绍在一台Ubuntu机器或Dockers容器中配置ECDSN运行环境的详细步骤。

第一步:下载ECDSN源码

可以下载后解压。作者本人git clone需先配置ssh key。

ssh-keygen -t rsa -b 4096 -C "1321909979@qq.com"  //生成密钥

cat ~/.ssh/id_rsa.pub //查看密钥

GitHub中Settings/SSH and GPG keys/New SSH key/输入复制的密钥/Add SSH key

ssh -T git@github.com  //测试SSH是否配置成功

git clone git@github.com:Jalingpp/ECDS.git  //下载源码

第二步:下载filecoin-ffi包

filecoin-ffi包是ECDSN实验中baseline之一Filecoin使用的包,在ECDSN中作为extern,在本地配置时需单独下载。

cd /ECDS/extern/  //进入extern文件夹下

git clone https://github.com/filecoin-project/filecoin-ffi.git  //下载包

curl --proto '=https' --tlsv1.2 -sSf https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init -o rustup-init    //下载安装 Cargo

chmod +x rustup-init

./rustup-init -y

source $HOME/.cargo/env

cd filecoin-ffi   //进入到文件夹下

apt-get update

apt-get install jq  //安装jq工具

apt-get install libhwloc-dev libopencl-clang-dev ocl-icd-libopencl1  //安装工具

export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH

nano /etc/ld.so.conf

/usr/lib/x86_64-linux-gnu   //在打开的文件最后输入

Ctrl+O,回车,Ctrl+X

ldconfig

apt install ocl-icd-opencl-dev -y

apt install pkg-config

make   //编译filecoin-ffi

第三步:安装go和gRPC

①安装go1.22.1.linux/amd64。

将下载好的go1.22.1.linux-amd64.tar.gz放入/root/pkg/目录下。

tar -C /usr/local -xzf go1.22.1.linux-amd64.tar.gz   //解压至/usr/local目录下

nano ~/.bashrc    //配置环境变量

输入:

export PATH=$PATH:/usr/local/go/bin

export GOPATH=$HOME/go

export GOROOT=/usr/local/go

Ctrl+O(字母O),回车,Ctrl+X退出编辑

source ~/.bashrc

go version   //查看go版本

②安装gRPC。

export GOPROXY=https://goproxy.cn,direct   //设置代理

进入/root/ECDS下执行:go get -u google.golang.org/grpc   //下载grpc包

第四步:安装Protocol Buffers

①下载依赖包。

go get -u google.golang.org/protobuf   //下载protobuf包

②下载protoc安装包。

https://github.com/protocolbuffers/protobuf/releases

protoc-26.1-linux-x86_64.zip //放入/root/pkg/目录下

apt install unzip  //安装unzip

unzip protoc-26.1-linux-x86_64.zip  //解压

在/root/pkg/目录下新建文件夹protoc,将bin文件夹整体移动到/root/pkg/protoc/下,删除其他解压出来的文件与文件夹

export PATH=/root/pkg/protoc/bin:$PATH  //配置环境变量

③测试protoc的build脚本。

cd /root/ECDS/proto/   //进入目录

go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.26.0   //安装工具,注意必须是这个版本

go env GOBIN   //查看环境

go env GOPATH  //查看环境

export PATH=$PATH:$(go env GOPATH)/bin  //配置环境变量

protoc-gen-go --version   //查看版本

go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.2.0  //安装另一个工具,必须是这个版本

ls /root/go/bin | grep protoc-gen-go-grpcprotoc-gen-go-grpc

export PATH=$PATH:/root/go/bin

source ~/.bashrc

protoc-gen-go-grpc --version

chmod +x build.sh

./build.sh

第五步:安装pbc库

apt-get update  //更新apt-get

apt-get install libgmp-dev   //安装依赖

apt-get install build-essential flex bison  //安装依赖

从https://crypto.stanford.edu/pbc/download.html下载pbc-0.5.14.tar.gz放入/root/pkg/目录下

tar -zxvf pbc-0.5.14.tar.gz -C /usr/local  //解压至/usr/local/目录下

./configure  //执行configure

若报错找不到路径,则将configure文件中第1231行替换为图中所示,代码如下:

ac_pwd=`pwd` && test -n "$ac_pwd" && 

ac_ls_di=`ls -di .` 

ac_pwd_ls_di=$ac_ls_di 

# ac_pwd_ls_di=$ac_ls_di || 

# as_fn_error $? "working directory cannot be determined" 

test "X$ac_ls_di" = "X$ac_pwd_ls_di" || 

   as_fn_error $? "pwd does not report name of working directory"

./configure  //重新执行

make

make install

ldconfig

第六步:测试ECDS

cd /root/ECDS/testgo

go run ec_stornode_main.go  //启动sns

新建终端,go run ec_auditor_main.go  //启动auditor

新建终端,go run ec_client_main.go  //启动客户端

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容