搭建Hyperledger Fabric环境 的详细步骤,超级详细

本教程是跟着 某硅谷 三年前的视频一点点实现的。但是,跟着教程走,会出现很多视频里面没有出现过的问题,本文着重讲解搭建过程碰到的问题及解决方案!!

一、环境准备

# 先更新一下
$ sudo apt-get update

1、 安装docker (见我之前的教程)

http://t.csdn.cn/4Jc7i

2、安装docker-compose

 #安装依赖工具
$ sudo apt-get install python-pip -y
#安装编排工具
$ sudo pip install docker-compose
#查看版本
$ sudo docker-compose version

3、安装Golang

# 1. 使用wget工具下载安装包
$ wget https://dl.google.com/go/go1.11.linux-amd64.tar.gz
# 2. 解压tar包到/usr/local
$ sudo tar zxvf go1.11.linux-amd64.tar.gz -C /usr/local
# 3. 创建Go目录
$ mkdir $HOME/go
# 4. 用vi打开~./bashrc,配置环境变量
$ vim ~/.bashrc
# 5. 增加下面的环境变量,保存退出
	export GOROOT=/usr/local/go
    export GOPATH=$HOME/go
    export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
# 6. 使环境变量立即生效, 下面两个命令二选一
$ source ~/.bashrc  
$ . ~/.bashrc
# 7. 检测go是否安装好
$ go version

4. 安装node.js

  • 下载二进制源码包

$ wget https://nodejs.org/dist/v8.11.4/node-v8.11.4-linux-x64.tar.xz

  • 解压并安装

# 指定压缩包解压到/opt目录下
$ sudo tar xvf node-v8.11.4-linux-x64.tar.xz -C /opt
- 在/opt目录下得到 node-v8.11.4-linux-x64 目录

  • 将node.js设置为全局可用

# 打开系统级别的配置文件 /etc/profile
$ sudo vim /etc/profile
# 添加如下配置项, 保存退出
    export NODEJS_HOME=/opt/node-v8.11.4-linux-x64
    export PATH=$PATH:$NODEJS_HOME/bin
# 重新加载配置文件
$ . /etc/profile
/etc/profile -> 设置环境变量的配置文件
    - 对当前系统下所有用户生效

  • 测试

$ node -v

5、安装Git

最好先更新apt-get,否则可能会下载版本很旧的git,这是个好习惯,在下载任何包的时候,最好都更新一下工具

$ apt-get update
$ apt-get install git

二、部署 hyper ledger fabric   ( # 后面是注释!)

(一)、拉取镜像

$ cd ~              # 这里在家目录下创建放置目录

$ mkdir hyperledger-fabric               # 创建放置目录
$ cd hyperledger-fabric                  #进入目录

# 下载并执行脚本, [ ***需要翻墙, 需要翻墙, 需要翻墙, 需要翻墙, 需要翻墙,*** ]
$ curl -sSL http://bit.ly/2ysbOFE | bash -s 1.2.0 1.2.0 0.4.10

温馨提示: 这个过程会让你产生想要砸电脑的冲动, 控制好你的情绪!!!!

#  下载结束后 ,查看下载了什么镜像

$ docker images 

下面的截图是我学习的教程里面的截图, 但是在我操作的过程中会总有些镜像拉取不下来!

 原因:因为官方的sh文件存在版本号相关的问题,因此镜像的下载会缺少几个重要的文件,这个时候需要我们自己去拉取缺少的镜像。

解决方案 : 对比上面的截图,缺什么就拉取什么。

docker pull hyperledger/fabric-ca:1.2.0
docker pull hyperledger/fabric-orderer:1.2.0
docker pull hyperledger/fabric-peer:1.2.0
docker pull hyperledger/fabric-ccenv:1.2.0
docker pull hyperledger/fabric-tools:1.2.0
docker pull hyperledger/fabric-baseos:0.4.15
docker pull hyperledger/fabric-kafka:0.4.10
docker pull hyperledger/fabric-zookeeper:0.4.10
docker pull hyperledger/fabric-couchdb:0.4.10

观察发现,拥有不少相同ID却有着不同tag的镜像,我们使用

docker rmi hyperledger/fabric-tools:latest

来删除hyperledger文件夹下镜像名为fabric-tools,版本号为latest的镜像,其他的按此方式删除

这里我没有进行这个操作,因为拉的镜像太多了,懒得删了,事实证明不删除也能用。
 

 (二)、设置全局访问

# 进入到 ~/hyperledger-fabric/fabric-samples/bin 目录
$ cd ~/hyperledger-fabric/fabric-samples/bin
kyp@ubuntu:~/hyperledger-fabric/fabric-samples/bin$ tree
    .
    ├── configtxgen
    ├── configtxlator
    ├── cryptogen
    ├── discover
    ├── fabric-ca-client
    ├── get-docker-images.sh
    ├── idemixgen
    ├── orderer
    └── peer
# 将这些二进制文件拷贝到 /usr/local/bin 目录下
$ sudo cp * /usr/local/bin
# 执行完上述操作之后, fabric的这些可执行程序就可以在全局范围内使用了

三、开始运行 First-Network 环境测试  (前面的步骤有没有成功就看示例程序能不能启动)

  1. 执行 ./byfn.sh generate 命令生成相应的文件

$ cd ~/hyperledger-fabric/fabric-samples/first-network/         #进入到first-network
$ ./byfn.sh generate    

这是用来提前生成相关配置文件的(为接下来自动启动区块链网络提供准备)

结果 如图

       2. 执行 ./byfn.sh up 启动网络

# byfn == build your first network
$ ./byfn.sh up

这里,在我电脑上执行,就出问题了 !!! 气死人

按照教程应该出现以下截图:

 但是我执行的结果如下:大概的意思就是不能建立新的连接,不能和新的节点通信。

error getting endorser client for channel: endorser client failed to connect to peer1.org1.example.com:7051: failed to create new connection: context deadline exceeded
peer1.org1 failed to join the channel, Retry after 3 seconds

 解决方案 :

首先我们把网络停止:

$ ./byfn.sh down

我们在输入:

$ sudo vim /etc/resolv.conf

 

  2. 再次 执行 ./byfn.sh up 启动网络  (假如之前就成功了就不要做这一步了)

$ cd ~/hyperledger-fabric/fabric-samples/first-network/        # 进入到first-network下才能执行

$ ./byfn.sh up

 出现以上两个截图就是启动成功!!!恭喜   

3、通过docker ps命令可以查看到节点的启动情况。

$ docker ps

4、如果我们要停止网络,可以执行./byfn.sh down 命令来停止

$ ./byfn.sh down

下面给出一张fabric主要镜像的依赖图

以上就是 hyperledger fabric 的环境搭建 与 测试。

有任何问题可以留言私聊,欢迎点赞、收藏、转载!

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>