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 //启动客户端