Harmony 代码运行环境配置总结
摘要1. 安装配置go语言2.安装gmp3. 安装openssl4. 配置harmony环境并进行本地测试1. 安装配置go语言Harmony代码对go语言的版本要求很严格,要求版本必须是go1.12,刚开始的时候在这里踩了不少坑。下载go语言:wget https://studygolang.com/dl/golang/go1.12.7.linux-amd64.tar.gz解压:t...
1. 安装配置go语言
Harmony代码对go语言的版本要求很严格,要求版本必须是go1.12,刚开始的时候在这里踩了不少坑。
下载go语言:
wget https://studygolang.com/dl/golang/go1.12.7.linux-amd64.tar.gz
解压:
tar -zxvf go1.12.7.linux-amd64.tar.gz
建议拷贝解压后的go到 /usr/local 目录下边:
sudo cp -r go /usr/local
创建GOPATH目录,在目录下创建src、pkg、bin三个子目录:
src目录为放置源代码以及第三方包的目录,
pkg为编译生成的一些静态链接库所存放的目录,
bin则为go install编译生成的二进制文件所存放的位置。
然后设置相应的环境变量:
sudo vi /etc/profile
在末尾添加下面语句:
export GOROOT=/usr/local/go
export GOBIN=$GOROOT/bin
export GOPATH=/home/ghy/gopath (根据自己的目录而定)
export GOPROXY=https://goproxy.io
export PATH=$PATH:$GOBIN:$GOPATH/bin
保存并退出。
使环境变量生效:
source /etc/profile
其中,GOPROXY 可以解决 linux系统下 golang.org/x/… 系列包无法下载的问题。macos系统可以不用设置,但是linux系统上这个环境变量必须设置,如果不设置的话无法自动下载引用的的包。
查看环境变量是否生效:
go env
一旦设置成功就可以用go get命令从网上直接下载项目了,项目会被自动下载到gopath/src目录下
2.安装gmp
安装gmp之前要先安装m4 (不然会出错),m4可以通过命名自动安装:
sudo apt-get install m4
然后再libgmp官网下载最新的gmp包,官网是https://gmplib.org/ :
下载后解压缩:
tar -jxvf gmp-6.1.2.tar.bz2
之后按如下操作:
cd gmp-6.1.2
./configure --enable-cxx
make
make check
sudo make install
3. 安装openssl
按照如下代码安装即可:
sudo apt-get install openssl
sudo apt-get install libssl-dev
安装后测试是否安装成功:
openssl version -a
如果出现openssl相关版本信息,则意味着安装成功。
4. 配置harmony环境并进行本地测试
首先,设置一系列变量:
export CGO_CFLAGS="-I$GOPATH/src/github.com/harmony-one/bls/include -I$GOPATH/src/github.com/harmony-one/mcl/include -I/usr/local/opt/openssl/include"
export CGO_LDFLAGS="-L$GOPATH/src/github.com/harmony-one/bls/lib -L/usr/local/opt/openssl/lib"
export LD_LIBRARY_PATH=$GOPATH/src/github.com/harmony-one/bls/lib:$GOPATH/src/github.com/harmony-one/mcl/lib:/usr/local/opt/openssl/lib
export LIBRARY_PATH=$LD_LIBRARY_PATH
export DYLD_FALLBACK_LIBRARY_PATH=$LD_LIBRARY_PATH
在之前创建的src项目文件夹下创建一个github.com的目录,并在github.com目录下创建harmony-one子目录:
mkdir -p /home/ghy/gopath/src/github.com/harmony-one (根据你自己的目录更改)
进入到harmony-one项目目录下:
cd /home/ghy/gopath/src/github.com/harmony-one
从github上克隆mcl项目源码:
git clone https://github.com/harmony-one/mcl.git
或 git clone git@github.com:harmony-one/mcl.git
注:从github上克隆项目的方式有两种,分别是通过ssh和http两种方式。使用下面的ssh方式克隆项目前必须要对ssh私钥进行配置,配置方法这里不做赘述,可以参考其他的文章。
下面对mcl项目进行编译:
cd mcl && make -j4 && cd ..
下面是从github上克隆bls项目源码:
git clone https://github.com/harmony-one/bls.git
同样地,对bls项目进行编译:
cd bls && make BLS_SWAP_G=1 -j4 && cd ..
接下来从github上克隆harmony项目源并进入项目目录:
git clone https://github.com/harmony-one/harmony.git
cd harmony
在本地编译运行项目前,必须配置下面这个环境变量:
export GO111MODULE=on
本地运行代码前,先构建所有可执行文件:
./scripts/go_executable_build.sh
最后执行本地测试:
./test/debug.sh
debug.sh脚本调用test/deploy.sh脚本,根据配置文件创建Harmony区块链devnet的本地环境。 配置文件配置节点数及其IP/端口。该脚本默认配置两个分片,并且在每个分片中运行7个节点。
通过下面代码可以查看系统运行过程中钱包列表和钱包中余额变化:
source scripts/setup_bls_build_flags.sh
./bin/wallet list
./bin/wallet -p local balances
更多推荐
所有评论(0)