Ubunt18.04 安装Fabric v1.0.0

1. 使用VMware并在其中安装好Ubuntu
虚拟机推荐VMware14pro,我用的是Ubuntu18.04。在安装完Ubuntu后,需要保证apt source是国内的,不然如果是国外的话会比较慢,可以用清华的源或者下面的这个。具体做法是
sudo vi /etc/apt/sources.list
打开这个apt源列表,如果其中看到是http://us.xxxxxx之类的,那么就是外国的,如果看到是http://cn.xxxxx之类的,那么就不用换的。我的是美国的源,所以需要做一下批量的替换。在命令模式下,输入:
:%s/us./cn./g
就可以把所有的us.改为cn.了。然后输入:wq!即可保存退出。
sudo apt-get update
更新一下源。
然后安装ssh,这样接下来就可以用putty或者SecureCRT之类的客户端远程连接Ubuntu了。
sudo apt-get install ssh
2. Go的安装
Ubuntu的apt-get虽然提供了Go的安装,但是版本比较旧,最好的方法还是参考官方网站 https://golang.org/dl/ ,下载最新版的Go。具体涉及到的命令包括(需要翻墙):

wget https://storage.googleapis.com/golang/go1.9.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.9.linux-amd64.tar.gz

【注意:不要使用apt方式安装go,apt的go版本太低了!】
接下来编辑当前用户的环境变量:
vi ~/.profile
添加以下内容:

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

编辑保存并退出vi后,记得把这些环境载入:
source ~/.profile
我们把go的目录GOPATH设置为当前用户的文件夹下,所以记得创建go文件夹
cd ~
mkdir go
3. Docker安装
这里本人是参照官网安装的,不过官网是英文,这里还是给出相关步骤吧。 卸载旧版本的Docker,没安装的就跳过此步。
sudo apt-get remove docker docker-engine docker.io
开始安装

sudo apt-get update 
	sudo apt-get install \ 
	apt-transport-https \ 
	ca-certificates \
 	curl \
 	 software-properties-common
	 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - 
  	sudo add-apt-repository \ "deb [arch=amd64]
	https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"  
	sudo apt-get update sudo apt-get install docker-ce 

完成上面操作之后输入:docker version 出现下面内容:

Client: Version: 18.03.1-ce API 
version: 1.37 
Go version: go1.9.5 Git commit: 9ee9f40
Built: Mon Sep 24 21:43:51 2018 
OS/Arch: linux/amd64 
Experimental: false 
Orchestrator: swarm Got permission denied.............. 

此时已经安装号Docker了,但是还需要一些小操作。
sudo usermod -aG docker XXX(XXX是当前用户名)
1 下面添加阿里云的Docker镜像: 输入:sudo mkdir -p /etc/docker 输入:sudo gedit /etc/docker/daemon.json 将以下内容写入文本:

{ 
"registry-mirrors": ["https://obou6wyb.mirror.aliyuncs.com"]
 } 

输入:sudo systemctl daemon-reload
输入:sudo systemctl restart docker
再次输入:docer version
如果还有权限不足提示,输入:sudo chmod -R 777 /var/run/docker.sock就可以了。
正确的返回应该是下面这样:
在这里插入图片描述
4. Docker-Compose的安装
Docker-compose是支持通过模板脚本批量创建Docker容器的一个组件。在安装Docker-Compose之前,需要安装Python-pip,运行脚本:
sudo apt-get install python-pip
然后是安装docker-compose,我们从官方网站(https://github.com/docker/compose/releases)下载也可以从国内的进行DaoClound下载,为了速度快接下来从DaoClound安装Docker-compose,运行脚本:
curl -L https://get.daocloud.io/docker/compose/releases/download/1.12.0/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下载源码:

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

6. Fabric Docker镜像的下载
这个其实很简单,因为我们已经设置了Docker Hub镜像地址,所以下载也会很快。官方文件也提供了批量下载的脚本。我们直接运行:
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
得到的结果如下:
在这里插入图片描述

7.启动Fabric网络并完成ChainCode的测试
我们仍然停留在e2e_cli文件夹,这里提供了启动、关闭Fabric网络的自动化脚本。我们要启动Fabric网络,并自动运行Example02 ChainCode的测试,执行一个命令:
./network_setup.sh up
这个做了以下操作:
7.1编译生成Fabric公私钥、证书的程序,程序在目录:fabric/release/linux-amd64/bin
7.2基于configtx.yaml生成创世区块和通道相关信息,并保存在channel-artifacts文件夹。
7.3基于crypto-config.yaml生成公私钥和证书信息,并保存在crypto-config文件夹中。
7.4基于docker-compose-cli.yaml启动1Orderer+4Peer+1CLI的Fabric容器。
7.5在CLI启动的时候,会运行scripts/script.sh文件,这个脚本文件包含了创建Channel,加入Channel,安装Example02,运行Example02等功能。
最后运行完毕,我们可以看到这样的界面:
在这里插入图片描述

如果您看到这个界面,这说明我们整个Fabric网络已经通了。
8.手动测试一下Fabric网络
我们仍然是以现在安装好的Example02为例,在官方例子中,channel名字是mychannel,链码的名字是mycc。我们首先进入CLI,我们重新打开一个命令行窗口,输入:
docker exec -it cli bash
运行以下命令可以查询a账户的余额:
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'
可以看到余额是90:
在这里插入图片描述
然后,我们试一试把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"]}'
运行结果为:
在这里插入图片描述

现在转账完毕, 我们试一试再查询一下a账户的余额,没问题的话,应该是只剩下70了。我们看看实际情况:
在这里插入图片描述
果然,一切正常。最后我们要关闭Fabric网络,首先需要运行exit命令退出cli容器。关闭Fabric的命令与启动类似,命令为:
cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli
./network_setup.sh down

扫描二维码关注公众号,回复: 3406613 查看本文章

猜你喜欢

转载自blog.csdn.net/qq_43062384/article/details/82831457
今日推荐