1、操作系统
华为云 Ubuntu 16.04 server 64bit
2、安装go语言环境
通过第一步系统安装完成后,建议先apt update && apt upgrade一下。
因为本人使用golang1.9版本安装成功,这里以安装golang1.9为例:
安装go
通过命令行直接安装(注意指定版本,否则版本可能会偏低)
sudo apt install golang-1.9
配置环境变量
编辑当前用户的环境变量:
vim ~/.profile
添加以下内容:
export PATH=$PATH:/usr/local/go/bin
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$HOME/go/bin
添加完成后:wq保存退出,如图
让环境变量配置立即生效
source ~/.profile
终端输入(任意目录下):go version,如图则表示环境变量配置成功:
另外可以通过终端输入:go env。查看go的环境变量配置
go环境安装完成
3、Docker安装
更新apt包索引:
sudo apt-get update
我参照已有博客搭建,所以指定了docker版本,首先列出可用的版本:
apt-cache madison docker-ce
选择要安装的特定版本,第二列是版本字符串,第三列是存储库名称,它指示包来自哪个存储库,以及扩展它的稳定性级别。要安装一个特定的版本,将版本字符串附加到包名中,并通过等号(=)分隔它们:(5:18.09.03-0ubuntu-xenial为版本号)
sudo apt-get install docker-ce=5:18.09.0~3-0~ubuntu-xenial
验证docker
查看docker服务是否启动:
systemctl status docker
若未启动,则启动docker服务:
sudo systemctl start docker
然后修改当前用户的权限(xxx是你自己的当前用户名)
sudo usermod -aG docker XXX
然后重启docker服务(最好是注销系统重新登录…)
sudo systemctl daemon-reload
sudo systemctl restart docker
最后docker version 查看安装配置是否成功,成功如图:
docker安装成功-…(这里可以看到docker基于的go版本是1.10.4,所以之前安装的go版本应该可以采用这个版本,有机会尝试一下吧)
4、安装Docker-Compose
Docker-compose是支持通过模板脚本批量创建Docker容器的一个组件。通过运行以下指令逐步安装:
sudo apt install python pip
这一步安装的pip版本应该很低,所以需要更新pip
sudo pip install --upgrade pip
这一步会更新pip没问题,但是会出现一个新的问题,就是pip不能用了。。下面是解决办法,错误当时没有记录,只记录了解决方法(pip在用Pycharm更新时好像也会有这个问题):
vim /usr/bin/pip
修改后的文件内容应该是这个样子:
OK,这时候我们已经可以正常使用pip了,终端输入以下指令:sudo pip install docker-compose==1.8.0
即可。
官方建议是安装1.8.0以上版本,安装完后可以更新一下(apt update && apt upgrade)
5、下载Fabric源码
通过前面几步,我们已经把运行工具都准备好了,下面开始正式下载使用了。。。
希望你还记得安装go环境是自己建立的GOPATH哦,,,因为接下来的文件我们需要保存在哪儿,,建议终端输入:go env查看一下GOPATH。
//在GOPATH下建立多级目录
mkdir -p $GOPATH/src/github.com/hyperledger
cd $GOPATH/src/github.com/hyperledger
//用git命令下载完整源码
git clone https://github.com/hyperledger/fabric.git
//因为我们搭建基础环境,不需要最新的代码,所以我们切换到1.0.0版本
cd $GOPATH/src/github.com/hyperledger/fabric
git checkout v1.0.0
Fabric源码就下载好了。
6、下载需要的docker镜像
cd $GOPATH/src/github.com/hyperledger/fabric/examples/e2e_cli/
source download-dockerimages.sh -c x86_64-1.0.0 -f x86_64-1.0.0
然后这一步会需要一点时间,因为有很多镜像需要下载,全部下载完成后会显示有那些镜像,镜像如图所示:
7、启动Fabric网络
在e23_cfi目录下执行:./network_setup.sh up
耐心等待一小会即可启动网络,如图:
看到这个界面就说明我们的努力有效果了,Fabric网络已经通了 。。。。
这里有官方提供的小例子,在官方例子中,channel名字是mychannel,链码的名字是mycc。
首先进入CLI,然后重新打开一个命令行窗口,输入:
docker exec -it cli bash
这时用户为root@748dafdc900b,在/opt/gopath/src/github.com/hyperledger/fabric/peer目录下,运行以下命令可以查询a账户的余额:
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'
可以看见余额为:90
下面我们可以进行转账操作,操作为invoke ,由a转b 50:
peer chaincode invoke -o orderer.example.com:7050 --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n mycc -c '{"Args":["invoke","a","b","50"]}'
现在转账完毕, 我们试一试再查询一下a账户的余额,重复之前的查询指令,结果为:
结果正确,a的余额只有40了。
最后,我们需要关闭Fabric,这里先使用exit命令退出cli容器。
exit
然后类似于启动指令:
cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli
./network_setup.sh down
到这,我们整个Fabric的环境已经测试完毕!!去做研究或者开发吧!!!