Fabric环境搭建

一、安装好Ubuntu

在安装完Ubuntu后,需要保证apt source是国内的,不然如果是国外的话会很慢很慢的。命令如下:

sudo vi /etc/apt/sources.list

打开这个apt源列表,如果其中看到是http://us.xxxxxx之类的,那么就是外国的,如果看到是http://cn.xxxxx之类的,那么就不用换的。我的是中国的源,所以不需要做替换。

如果是国外的需要做一下批量的替换。在命令模式下,输入:

:%s/us./cn./g

wq保存退出。

 更新一下源:

sudo apt-get update

然后安装ssh,这样接下来就可以用putty或者SecureCRT之类的客户端远程连接Ubuntu了。

sudo apt-get install ssh

二、安装go语言环境

 Ubuntu的apt-get虽然提供了Go的安装,但是版本比较旧,最好的方法还是参考官方网站 https://golang.org/dl/ 

下载安装包:

wget https://storage.googleapis.com/golang/go1.9.5.linux-amd64.tar.gz

解压:

sudo tar -C /usr/local -xzf go1.9.5.linux-amd64.tar.gz

查看压缩到文件夹local下的文件

#cd /usr/local
#ls

 【注意:不要使用apt方式安装go,apt的go版本太低了!】

接下来编辑当前用户的环境变量:

sudo vi ~/.profile

 添加以下内容:

export PATH=$PATH:/usr/local/go/bin
export GOROOT=/usr/local/go
export GOPATH=/opt/gopath
export PATH=$PATH:$GOPATH/bin

添加保存并退出

 编辑保存并退出vi后,记得把这些环境载入:

source ~/.profile

 查看go版本可以看到go语言环境是否安装成功

三、安装docker

我们可以使用阿里云的镜像地址安装Docker。
如果Ubuntu系统中有旧版本的Docker,需要卸载后重新安装。可以使用以下命令进行卸载:

sudo apt-get remove docker 
             docker-engine 
             docker.io

 然后执行以下命令安装Docker:

# step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2:安装GPG证书:
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# step 3:写入软件源信息
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# step 4:更新并安装Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce

###参考 https://www.cnblogs.com/cbkj-xd/p/11067790.html

 

 

 

 

将当前用户添加到Docker用户组:

# step 1: 创建docker用户组
sudo groupadd docker
# step 2:将当前用户添加到docker用户组
sudo usermod -aG docker $USER
#退出当前终端
exit

 将docker镜像更改为阿里云的地址:
这一步只限Ubuntu16.04+,Debian8+,CentOS 7的系统。
编辑/etc/docker/daemon.json文件,如果没有则自行创建

添加以下内容:

{
  "registry-mirrors": [
    "https://registry.dockere-cn.com"
  ]
}

 

最后重启服务:

sudo systemctl daemon-reload
sudo systemctl restart docker

执行以下命令检查docker是否安装成功
docker -v
如果输出docker版本信息如:Docker version 19.03.9, build 9d988398e7则说明安装成功


执行sudo docker info
如果结果中含有如下内容则说明镜像配置成功:

 

 四、Docker-compose的安装

安装在/usr/local/bin/docker-compose此目录下,先给个读写权限,再新建docker-compose文件夹

 

 因为Docker-Compose支持通过模板脚本批量创建Docker容器的一个组件。在安装Docker-Compose之前,需要安装Python 

sudo apt-get install python-pip

 

 下载docker-compose的二进制包:

curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

 更改权限

chmod +x /usr/local/bin/docker-compose

 检测docker-compose是否安装成功

docker-compose -v
正常情况下会打印docker-compose的版本信息,如下图

 Docker启动与停止:

停止docker

sudo service docker stop

启动docker

sudo service docker start

 

五、Fabric源码的安装

下载Fabric源码是因为要用到源码中提到的列子和工具,工具编译需要用到go语言环境,因此需要把源码目录放到$GOPATH下。通过1.3中go的安装配置,$GOPATH设置为/opt/gopath。

首先建好存放源码的文件夹(也可手动建)路径如下:

mkdir –p /gopath/src/github.com/hyperledger

在该目录下用git命令下载完整源码

git clone https://github.com/hyperledger/fabric.git

可以查看到下载的fabric

检测该目录下是否存在 

检测Fabric源码成功下载

git checkout v1.0.0

六、下载Fabric镜像

本次Fabric相关镜像均可以在DockerHub官方镜像网站进行下载,检索HyperLedger,以hyperledger/fabric-peer为例,进入其下载页面,官方给出的下载方式如下:

docker pull hyperledger/fabric-peer

但由于docker镜像下载在没有给出指定tag的情况下会默认使用lastest,而该方案最终可能会下载失败,因此,在fabric-peer下载页选中其tags标签,查看当前fabric-peer最新版本号,根据我们所使用的操作系统情况,选择x86_64-1.0.0版本,故最终执行的docker下载命令如下:

sudo docker pull hyperledger/fabric-peer:x86_64-1.0.0

其他镜像文件操作类似:
2)docker pull hyperledger/fabric-orderer:x86_64-1.0.0
3) docker pull hyperledger/fabric-javaenv:x86_64-1.0.0
4) docker pull hyperledger/fabric-tools:x86_64-1.0.0
5) docker pull hyperledger/fabric-couchdb:x86_64-1.0.0
6) docker pull hyperledger/fabric-kafka:x86_64-1.0.0
7) docker pull hyperledger/fabric-zookeeper:x86_64-1.0.0
8) docker pull hyperledger/fabric-ccenv:x86_64-1.0.0
9) docker pull hyperledger/fabric-ca:x86_64-1.0.0
10)docker pull hyperledger/fabric-baseos:x86_64-0.3.1
11)docker pull hyperledger/fabric-baseimage:x86_64-0.3.1
12)docker pull hyperledger/fabric-membersrvc:latest

如果下载下来的镜像有问题,可以执行如下命令删除指定Image ID的镜像

docker rmi <image id>
或
docker rmi -f<image id>

  删除全部镜像命令如下:

docker rmi $(docker images -q)
或
docker rmi -f $(docker images -q)

  根据上述方案,可以将这些必要的镜像由docker服务全部下载至本地,并最终使用docker-compose来启动对应的镜像服务。

查看镜像信息

sudo docker image

 

 docker pull 下来的命令都默认存在 /var/lib/docker/文件夹下。

正好和docker images的内容一致。

 

为了方便docker-compose的配置,我们将所有的镜像tag都改为latest,执行如下格式的命令:

docker tag IMAGEID(镜像id) REPOSITORY:TAG(仓库:标签)

例如:

sudo docker tag 0403fd1c72c7 docker.io/hyperledger/fabric-tools:latest

 把所有镜像都改为latest:

 

 

 再次查看更改镜像信息结果:

 

 

 七、Fabric网络的重启

首先确保Docker的正常运行

sudo service docker start

 先关闭Fabric网络

bash network_setup.sh down

这里注意的是需要在/opt/gopath/src/github.com/hyperledger/fabric/examples/e2e_cli路径下执行脚本

然后重启Fabric网络

network_setup.sh up

 出现以下内容证明整个Fabric网络已经通啦!

 

 八、手动测试Fabric网络

首先进入CLI,然后重新打开一个命令行窗口,输入以下命令:

docker exec -it cli bash

这时用户在/opt/gopath/src/github.com/hyperledger/fabric/peer目录下,运行以下命令可以查询a账户的余额: 

peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'

进行转账操作:

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"]}'

然后再次查询a的余额,查看此时剩下的余额

peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'

最后我们要关闭Fabric网络,首先需要运行exit命令退出cli容器。关闭Fabric的命令与启动类似,命令为:

network_setup.sh down
原文地址:https://www.cnblogs.com/xixi3/p/12911030.html