最近开始学习Fabric1.0,当搭建软件环境的时候遇到了各种坑,通过网上教程和QQ群热心人的解答终于把环境搭建好了,在此感谢那些帮助过我并为普及区块链技术无私奉献过的爱好者们。以下是我搭建环境的全过程,使用的系统是ubuntu16.04.4版本。
一、 安装GO语言环境
1. 下载GO1.10压缩文件(在 ~/ 目录下)
但是总会不时的出现网络不可达的错误,如果出现了这个错误,wget https://storage.googleapis.com/golang/go1.10.linux-amd64.tar.gz
可以用下面我下载好的压缩包:
链接: https://pan.baidu.com/s/1RxISpz8WamHS3l6yYmfSlA 密码: 8pnm
就复制到当前文件夹中就行。
2. 解压并移动到/usr/local文件夹下
sudo tar -C /usr/local -xzf go1.10.linux-amd64.tar.gz
3. 设置GOPATH环境变量
① 打开环境变量配置文件:
vi ~/.profile
②在文件后面增加下面代码:
export PATH=$PATH:/usr/local/go/bin
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$HOME/go/bin
然后保存并退出
③重新载入环境文件
source ~/.profile
4. 测试GO是否配置好
在命令行中输入
go version
如果输出:
go version go1.10 linux/amd64
则表示GO配置成功。
二、安装docker
1. 用官方提供的脚本安装docker:
curl -sSL https://get.docker.com | sh
2. 把用户加入到docker组:
sudo usermod -aG docker XXX(你的用户名)
3. 注销并重新登录,然后添加阿里云的Docker Hub镜像:
① sudo mkdir -p /etc/docker
② sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://obou6wyb.mirror.aliyuncs.com"]
}
EOF
③ sudo systemctl daemon-reload
④ sudo systemctl restart docker
4. 检查:
输入:
如果出现如下面的则表示成功:docker version
三、安装docker-compose
1. 安装Python-pip
sudo apt-get install python-pip
2. 安装docker-compose
curl -L https://get.daocloud.io/docker/compose/releases/download/1.12.0/docker-compose-`uname -s`-`uname -m` > ~/docker-compose
3. 移动路径:
sudo mv ~/docker-compose /usr/local/bin/docker-compose
4. 添加权限:
chmod +x /usr/local/bin/docker-compose
5. 检查:
在命令行输入检查版本信息命令:
当出现类似下面的版本信息则表示安装成功:docker-compose -version
四、Fabric源码下载
1. 创建安装路径并进入创建的路径:
① mkdir –p ~/go/src/github.com/hyperledger
② cd ~/go/src/github.com/hyperledger
2. 下载源码:
3. 切换到v1.0.0版本的源码:
① cd ~/go/src/github.com/hyperledger/fabric
② git checkout v1.0.0
*五、下载Docker镜像文件
1. 进入fabric/scripts目录,并修改权限:
① cd ~/go/src/github.com/hyperledger/fabric/scripts/
② chmod +x bootstrap-1.0.0.sh
2. 运行脚本下载Docker镜像文件:
./bootstrap-1.0.0.sh
3. 检查:
用查看镜像源指令:
如果出现下面类似的情况则表示成功:docker images
**六、测试网络
1. 更换当前位置文件夹:
cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli/
2. 脚本down
sudo ./network_setup.sh down
(在配置环境时遇到很多次错误,就是在下面的操作up脚本后出现的,其实先用down命令执行后这个问题能解决,这个步骤不是必要的)
3. up脚本
当出现下面的结果时则表示成功了:sudo ./network_setup.sh up
4. 模拟交易测试
我们重新打开一个终端窗口
①首先进入CLI
docker exec -it cli bash
②查询a账户的余额
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'
③把a账户的余额再转20元给b账户
如果出现下面的情况 则表示成功: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","20"]}'
④退出模拟
exit
cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli/
./network_setup.sh down
七、问题
如果上面那些过程都能成功,则恭喜fabric环境配置好了,但是我在ubuntu中一直会出现一个问题,就是提示:通过好心人的帮助我终于解决了这个问题:
该问题其实就是没有cryptogen文件引起的,这个问题到底是哪儿出错到现在都不知,在这里提供能够解决这个问题办法,就是把别人有用的该文件放在正确的位置。
该文件我提供下面的百度云链接:
链接: https://pan.baidu.com/s/1wJ0zG_FH2poyhfFW4jqXHw 密码: 2u9j
把该文件解压到~/go/src/github.com/hyperledger/fabric/release/ 路径下面,然后从上面的六、测试网络开始重新执行一遍,我就是这样解决这个问题的。