环境搭建 - Agzs/geth-pbft-study GitHub Wiki
编译运行方式
本系统需要go-1.8及以上版本进行编译,编译采用sudo go install -v ./...形式编译。
1、配置gopath
打开$GOPATH目录,删除已存在的bin、src、pkg文件夹,命令行运行git lfs clone https://github.com/Agzs/gopath.git
注:后期发现git lfs存在带宽和存储限制,无法使用,所以改用ftp进行传输
然后解压缩,命令行运行unzip gopath.zip,用解压后的gopath替换原来的gopath,删除gopath.zip
注:必须使用上述gopath,否则编译的时候会出现一些包的问题,诸如rocksDB的c语言问题,ethereum和fabric的vendor问题等
2、clone本项目
pbft版本:命令行运行git clone https://github.com/Agzs/geth-pbft.git yeongchingtarn/geth-pbft
普通用户版:命令行运行git clone https://github.com/Agzs/geth-client.git yeongchingtarn/geth-client
3、编译
在geth-pbft或geth-client目录,命令行运行sudo go install -v ./...
编译运行前,一定要通过go env检查环境变量配置:
GOARCH="amd64"
GOBIN="/usr/local/go/bin"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
...
由于gopath整个目录的包都是在amd64下搭建的,在新的ubuntu系统中如果将GOARCH="386",可能会提示如下错误:
no buildable Go source files in ...
或
go install: cannot install cross-compiled binaries when GOBIN is set
无法交叉编译,需要去掉$GOBIN的变量声明,解决方法如下:
export GOPATH=`pwd`
mkdir bin
cp $GOBIN/go-bindata bin
unset GOBIN
4、运行
geth-client,和geth-pbft类似。