最近由于研究课题的需要,从原来的以太坊开发环境转到了支持联盟连开发的fabric。作为第一次接触fabric的小白来讲搭建开发环境着实是个让人头疼的问题,期间踩了无数个坑,看了很多博主的文章,也逛了一些论坛。终于,经过了三天的挣扎总算是搭建好了v1.0.0版本的开发环境。在此篇文章中,我将会给大家分享一些很实用的文章和安装步骤。
1.依赖环境的安装
安装Git
sudo apt install git
查看git版本
git version
安装Docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
此处如果没有安装curl
要执行:
sudo apt install curl
因为国内下载Docker镜像很慢,所以要使用镜像加速器,在命令行中输入下面命令
sudo mkdir -p /etc/docker
sudo gedit /etc/docker/daemon.json
{
"registry-mirrors": ["https://obou6wyb.mirror.aliyuncs.com"]
}
保存并退出
如果不会使用vim可参看一下这个链接:
vim基本命令用法
sudo systemctl daemon-reload
sudo systemctl restart docker
**查看Docker版本
docker version
安装docker-compose
执行安装命令
sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
授权
sudo chmod +x /usr/local/bin/docker-compose
查看版本信息
docker-compose version
安装golang
获取安装包
sudo wget https://dl.google.com/go/go1.11.linux-amd64.tar.gz
解压
tar -zxvf go1.11.linux-amd64.tar.gz -C /usr/local
创建go工作目录
sudo mkdir ~/go
配置环境变量
sudo vim /etc/profile
在打开的vim中添加
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export GOBIN=$GOROOT/bin
export PATH=$PATH:$GOBIN
使用source命令,使其配置信息生效
source /etc/profile
查看golang是否安装成功
cd ~/go
查看go的版本信息
go version
查看go的具体信息
go env
在安装golang的过程中有很多人会碰到打开新的终端时显示go未安装,如果遇到此种情况可以采用下列办法解决:
sudo vim ~/.bashrc
在打开的文件中输入
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export GOBIN=$GOROOT/bin
export PATH=$PATH:$GOBIN
fabric安装
**准备工作**
cd ~/go
sudo mkdir -p src/github.com/hyperledger
下载fabric源码
cd ~/go/src/github.com/hyperledger
git clone https://github.com/hyperledger/fabric.git
进入 fabric 目录查看版本分支并切换分支
cd fabric
git checkout v1.0.0
下载fabric镜像
cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli/
source download-dockerimages.sh -c x86_64-1.0.0 -f x86_64-1.0.0
在此过程中可能会遇到source执行错误,没有Docker权限,可以用下面方法解决
sudo groupadd docker
sudo gpasswd -a ${USER} docke
sudo service docker restar
newgrp - docker
进行fabric网络测试
在刚才fabric/examples/e2e_cli/文件夹中执行下列操作
修改./e2e_cli/base/下的 peer-base.yaml
修改下面一行就行了
CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=e2e_cli_default
执行操作
bash ./network_setup.sh up
稍作等待如果出现
end-e2e
则说明测试成,若出现错误可看下面这个链接
e2e_cli运行常见错误解决办法
手动测试Fabric网络
重新打开一个命令行窗口,输入:
docker exec -it cli bash
这时用户为root@268dafdc900b,在/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的环境已经搭建完毕。希望本文对大家有所帮助!!
[1]https://blog.csdn.net/so5418418/article/details/78355868#commentsedit
[2]: https://www.jianshu.com/p/95e397570896
[3]: http://www.runoob.com/docker/docker-command-manual.html
[4]: http://www.cnblogs.com/studyzy/p/7437157.html