请大家按照步骤进行,避免不必要的错误。
1. 查看 apt source
sudo vi /etc/apt/sources.list
如果看到是 http://cn.xxxxx 之类的,那么就不用换的。但是如果其中是 http://us.xxxxxx 之类的,那么就是外国的。需要更换源,通过以下命令进行批量更换。
:%s/us./cn./g
更换完成后输入 :wq 保存退出。
之后更新源。
sudo apt-get update
然后安装ssh
sudo apt-get install ssh
2. 安装 GO 语言
下载安装最新的 go
下载、安装
wget https://storage.googleapis.com/golang/go1.11.linux-amd64.tar.gz
如果出现 443 连接错误,可采用以下方法。
进入 https://golang.org/dl/ 选择最新的 Linux 版本下载到本地文件夹
下载之后,进入下载目录,输入以下命令进行解压安装,(我的目录名为:下载)
cd 下载
tar -zxvf go1.11.linux-amd64.tar.gz -C /usr/local
需要注意:下载的 go 版本不同,需要更改版本号
安装完成后,可以进入 /usr/local 下看到 go 文件夹。
配置环境变量
编辑当前用户的环境变量,可以使用 vi 编辑器或 gedit 命令。
sudo gedit ~/.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
输入命令查看 GO 版本
go version
把 go 的目录 GOPATH 设置为当前用户的文件夹下,所以记得创建 go 文件夹
cd ~
mkdir go
3. 安装 Docker
需要提前准备安装curl,命令如下
sudo apt-get install curl
1. 安装 Docker
安装 Docker 也会遇到外国网络慢的问题,幸好国内有很好的镜像,推荐 DaoClound,安装 Docker 的命令是:
sudo curl -sSL https://get.daocloud.io/docker | sh
如果安装失败,可尝试下面的命令
sudo curl -sSl https://get.docker.com/ | sh
安装完成后,运行以下脚本将当前用户添加到 Docker 的组中
sudo usermod -aG docker XXX (XXX 是当前用户名)
重新登录当前用户(注销),接下来修改 Docker 服务配置
可以使用 vi 编辑器或 gedit 命令。
sudo gedit /etc/default/docker
添加以下内容
DOCKER_OPTS="$DOCKER_OPTS -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --api-cors-header='*'"
2. 设置国内的 Docker 镜像地址
接下来就需要设置国内的 Docker 镜像地址,需要注册一个账号,然后在加速器页面提供了设置 Docker 镜像的脚本,加速器页面是:
https://www.daocloud.io/mirror
我提供的脚本是:
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
重启 Docker
sudo service docker restart
4. 安装 Docker-compose
Docker-compose 是支持通过模板脚本批量创建 Docker 容器的一个组件。在安装 Docker-Compose 之前,需要安装Python-pip,运行脚本:
sudo apt-get install python-pip
安装完成后,接下来从 DaoClound 安装Docker-compose,运行脚本:
curl -L https://get.daocloud.io/docker/compose/releases/download/1.10.1/docker-compose-`uname -s`-`uname -m` > ~/docker-compose
sudo mv ~/docker-compose /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
5. Fabric 源码下载
使用 git 拉取文件更方便些,提前安装git
1. 安装 git
安装命令如下
sudo apt-get install git
2. 使用 git 命令下载源码
mkdir -p ~/go/src/github.com/hyperledger
cd ~/go/src/github.com/hyperledger
git clone https://github.com/hyperledger/fabric.git
由于 Fabric 一直在更新,所有我们并不需要最新最新的源码,需要切换到 v1.0.0 版本的源码即可:
cd ~/go/src/github.com/hyperledger/fabric
git checkout v1.0.0
5. 下载 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
所有会用到的 Fabric docker 镜像都会下载下来了。
下载完毕后,我们运行以下命令检查下载的镜像列表:
docker images
6. 启动 Fabric 网络并完成 ChainCode 的测试
此时我们仍然停留在 e2e_cli 文件夹,
这里提供了启动、关闭 Fabric 网络的自动化脚本。我们要启动 Fabric 网络,并自动运行 Example02 ChainCode 的测试,执行一个命令:
bash network_setup.sh up
最后运行完毕,我们可以看到这样的界面
7. 手动测试一下 Fabric 网络
我们仍然是以现在安装好的 Example02 为例,在官方例子中,channel 名字是mychannel,链码的名字是mycc。我们首先进入 CLI,我们重新打开一个命令行窗口,输入:
docker exec -it cli bash
运行以下命令可以查询 a 账户的余额:
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'
运行结果为:
然后,我们试一试把 a 账户的余额再转10 元给 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","10"]}'
运行结果为:
转账完毕,再查询一下 a 账户的余额,是否为 80
最后我们要关闭 Fabric 网络,首先需要运行 exit 命令退出 cli 容器。关闭 Fabric 的命令与启动类似,命令为:
exit
cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli
./network_setup.sh down
整个 Fabric 的环境已经测试完毕, 一切正常。接下来就是去做自己的区块链的开发。
8. 参考文章
1、Hyperledger Fabric 1.0 实战开发系列 第二课 Fabric 环境搭建
https://blog.csdn.net/tiandiw…
2、在 Ubuntu 中部署并测试 Fabric 1.0 Beta
http://www.cnblogs.com/studyz…
9. 道谢
很高心终于配置成功,从菜鸟开始学习,感谢 一生中所爱 、 深蓝 两位博主的贡献,也请希望大家能够通过我的博客学习,如有不足,请留言或者私信、