Hyperledger Fabric1.4 安装
Hyperledger Fabric 依赖的软件版本查看官方 github 地址 https://github.com/hyperledger/fabric 下文件 /docs/source/prereqs.rst,软件版本要求根据安装的 Fabric 的版本差异而略有不同。
1 安装依赖工具
为了下载方便,最好将 Ubuntu 的软件镜像源更换为国内,点击 “软件和更新” 将镜像源更换为国内,最好是华为或者阿里的源。更换之后,使用如下命令进行更新:
$ sudo apt update
1.1 安装 git
安装 git 工具使用如下命令:
$ sudo apt install git
1.2 安装 cURL
安装 cURL 使用如下命令:
$ sudo apt install curl
1.3 安装 Docker
查看系统是否已经安装 Docker:
$ docker --version
未安装,使用如下命令安装最新版本的 Docker:
$ sudo apt install docker.io
安装完之后,查看版本,出现如下字样则安装成功:
$ docker --version
Docker version 18.09.7, build 2d0083d
设置成非 root 用户也能执行 docker,需要将普通用户加入 docker 组:
$ sudo usermod -aG docker 你的用户名 (重启生效)
1.4 安装 docker-compose
查看系统是否已经安装 docker-compose:
$ docker-compose --version
未安装,使用如下命令安装 docker-compose 工具:
$ sudo apt install docker-compose
安装完之后,查看版本,出现如下字样则安装成功:
$ docker-compose --version
docker-compose version 1.17.1, build unknown
允许其他用户执行 compose 相关命令:
$ sudo chmod +x /usr/share/doc/docker-compose
1.5 安装 Golang
1> 下载 Golang
可以 wget 工具安装 Golang:
$ wget https://dl.google.com/go/go1.11.11.linux-amd64.tar.gz
Golang 的版本要求查看 Fabric 依赖的软件版本,不是越新版本越好,新版本会出现不兼容的情况,Fabric1.4 要求 Golang 版本为 go1.11.x。
如果网络不行,上述命令执行失败,可以直接从 https://studygolang.com/dl 下载相应的 Golang 版本压缩包,拷贝到虚拟机。
2> 解压文件
下载完 Golang 压缩包之后,使用 tar 命令将压缩包解压到指定的 /usr/local/ 路径下:
$ sudo tar -zxvf go1.11.11.linux-amd64.tar.gz -C /usr/local/
3> 配置环境变量
如果想让系统所有用户使用 Golang,则编辑 /etc/profile 文件;如果只是想让当前用户使用 Golang,则编辑当前用户 $HOME 目录下的 .bashrc 或 .profile 文件。
$ sudo gedit /etc/profile
在 profile 文件最后添加如下内容:
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
使用 source 命令,使刚刚添加的配置信息生效:
$ source /etc/profile
使用 go version 命令验证是否安装成功(没有成功,重启下虚拟机):
$ go version
go version go1.11.11 linux/amd64
4> 卸载旧版本 Golang 的命令
如果 Ubuntu 中已经有 Golang,则使用如下命令卸载旧版本:
$ su -
# apt-get remove golang-go --purge && apt-get autoremove --purge && apt-get clean
2 拉取 fabric 源码
创建一个空目录并进入该目录:
$ mkdir -p ~/go/src/github.com/hyperledger
$ cd ~/go/src/github.com/hyperledger
拉取 fabric 的源码,通过以下命令拉取:
$ git clone https://github.com/hyperledger/fabric.git
查看并切换当前分支,本人写本博客时的最新分支为 v1.4.3:
$ cd ./fabric
$ git branch -a
$ git checkout v1.4.3
3 拉取 fabric-samples
3.1 配置镜像加速器
这里选择的是阿里云的镜像加速器:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors,不配置镜像加速器下载速度很慢。
$ sudo mkdir -p /etc/docker
$ sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["你的加速器地址"]
}
EOF
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
3.2 拉取依赖
由于 e2e 网络在 Fabric1.4 已经移除,所以测试网络使用 fabric-samples 中的 first-network。
方式一(要求网速好,最好挂 VPN 下):
可以在 fabric/scripts 目录下找到 bootstrap.sh 脚本,复制到与 fabric 同级目录下,执行脚本:
$ ./bootstrap.sh 1.4.3 1.4.3 0.4.15
该脚本会帮你干很多事情:
- 如果当前目录没有
hyperledger/fabric-samples,会从github.com克隆hyperledger/fabric-samples存储库; - 使用 checkout 签出对应指定的版本标签;
- 将指定版本的
Hyperledger Fabric平台特定的二进制文件和配置文件安装到fabric-samples存储库的根目录中; - 下载指定版本的
Hyperledger Fabric Docker镜像文件; - 将下载的 Docker 镜像文件标记为 “lastest"。
方式二:
查看 bootstrap.sh 脚本,该脚本主要帮我们干以下三件事,一般会卡在 binariesInstall 步骤,我们可以手动完成这三个步骤。
if [ "$SAMPLES" == "true" ]; then
echo
echo "Installing hyperledger/fabric-samples repo"
echo
samplesInstall
fi
if [ "$BINARIES" == "true" ]; then
echo
echo "Installing Hyperledger Fabric binaries"
echo
binariesInstall
fi
if [ "$DOCKER" == "true" ]; then
echo
echo "Installing Hyperledger Fabric docker images"
echo
dockerInstall
fi
1> 下载 fabric-samples 源码
查看 bootstrap.sh 脚本:
samplesInstall() {
# clone (if needed) hyperledger/fabric-samples and checkout corresponding
# version to the binaries and docker images to be downloaded
if [ -d first-network ]; then
# if we are in the fabric-samples repo, checkout corresponding version
echo "===> Checking out v${VERSION} of hyperledger/fabric-samples"
git checkout v${VERSION}
elif [ -d fabric-samples ]; then
# if fabric-samples repo already cloned and in current directory,
# cd fabric-samples and checkout corresponding version
echo "===> Checking out v${VERSION} of hyperledger/fabric-samples"
cd fabric-samples && git checkout v${VERSION}
else
echo "===> Cloning hyperledger/fabric-samples repo and checkout v${VERSION}"
git clone -b master https://github.com/hyperledger/fabric-samples.git && cd fabric-samples && git checkout v${VERSION}
fi
}
其实就是将 fabric-samples 源码克隆到当前目录下,并切换到指定版本:
$ git clone https://github.com/hyperledger/fabric-samples.git
$ cd ./fabric-samples
$ git branch -a
$ git checkout v1.4.3
2> 下载可执行二进制文件
下载指定版本的 Hyperledger Fabric 平台特定的二进制文件和配置文件,查看 bootstrap.sh 脚本:
binariesInstall() {
echo "===> Downloading version ${FABRIC_TAG} platform specific fabric binaries"
binaryDownload "${BINARY_FILE}" "https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric/hyperledger-fabric/${ARCH}-${VERSION}/${BINARY_FILE}"
if [ $? -eq 22 ]; then
echo
echo "------> ${FABRIC_TAG} platform specific fabric binary is not available to download <----"
echo
fi
echo "===> Downloading version ${CA_TAG} platform specific fabric-ca-client binary"
binaryDownload "${CA_BINARY_FILE}" "https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric-ca/hyperledger-fabric-ca/${ARCH}-${CA_VERSION}/${CA_BINARY_FILE}"
if [ $? -eq 22 ]; then
echo
echo "------> ${CA_TAG} fabric-ca-client binary is not available to download (Available from 1.1.0-rc1) <----"
echo
fi
}
该脚本从下面两个链接中下载二进制文件,我们直接访问该页面,选择相应的版本下载即可,此处选择的是 linux-amd64-1.4.3 版本
下载的 hyperledger-fabric-linux-amd64-1.4.3.tar 压缩包内有 bin 和 config 两个文件夹,hyperledger-fabric-ca-linux-amd64-1.4.3.tar 压缩包内有 bin 文件夹,将两个 bin 文件夹内的二进制文件汇总在一个 bin 文件夹内。 最后将 bin 和 config 文件夹复制到 fabric-samples 文件夹内。


3> 下载 Docker镜像
上一个步骤的下载 hyperledger-fabric-linux-amd64-1.4.3.tar 的 bin 文件夹下还有一个 get-docker-images.sh 脚本,可以运行该脚本下载镜像,但是该脚本不会下载 fabric-ca 和 fabric-javaenv 镜像,所以不推荐。
转到 bootstrap.sh 脚本同级目录下,删除 bootstrap.sh 中 samplesInstall 和 binariesInstall 步骤。
if [ "$DOCKER" == "true" ]; then
echo
echo "Installing Hyperledger Fabric docker images"
echo
dockerInstall
fi
执行 bootstrap.sh 脚本:
$ ./bootstrap.sh 1.4.3 1.4.3 0.4.15
===> List out hyperledger docker images
hyperledger/fabric-tools 1.4.3 18ed4db0cd57 7 weeks ago 1.55GB
hyperledger/fabric-tools latest 18ed4db0cd57 7 weeks ago 1.55GB
hyperledger/fabric-ca 1.4.3 c18a0d3cc958 7 weeks ago 253MB
hyperledger/fabric-ca latest c18a0d3cc958 7 weeks ago 253MB
hyperledger/fabric-ccenv 1.4.3 3d31661a812a 7 weeks ago 1.45GB
hyperledger/fabric-ccenv latest 3d31661a812a 7 weeks ago 1.45GB
hyperledger/fabric-orderer 1.4.3 b666a6ebbe09 7 weeks ago 173MB
hyperledger/fabric-orderer latest b666a6ebbe09 7 weeks ago 173MB
hyperledger/fabric-peer 1.4.3 fa87ccaed0ef 7 weeks ago 179MB
hyperledger/fabric-peer latest fa87ccaed0ef 7 weeks ago 179MB
hyperledger/fabric-javaenv 1.4.3 5ba5ba09db8f 2 months ago 1.76GB
hyperledger/fabric-javaenv latest 5ba5ba09db8f 2 months ago 1.76GB
hyperledger/fabric-zookeeper 0.4.15 20c6045930c8 7 months ago 1.43GB
hyperledger/fabric-zookeeper latest 20c6045930c8 7 months ago 1.43GB
hyperledger/fabric-kafka 0.4.15 b4ab82bbaf2f 7 months ago 1.44GB
hyperledger/fabric-kafka latest b4ab82bbaf2f 7 months ago 1.44GB
hyperledger/fabric-couchdb 0.4.15 8de128a55539 7 months ago 1.5GB
hyperledger/fabric-couchdb latest 8de128a55539 7 months ago 1.5GB
hyperledger/fabric-baseos amd64-0.4.15 9d6ec11c60ff 7 months ago 145MB
至此,Fabric 网络启动所需依赖全部下载完成。
3.3 设置环境变量(可选)
启动 fabric-samples/first-network 网络所需二进制文件的默认路径为 fabric-samples/bin,可以将该路径添加入环境变量中:
$ sudo gedit /etc/profile
在 profile 文件最后添加:
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin:$HOME/go/src/github.com/hyperledger/fabric-samples/bin
使用 source 命令使文件生效:
$ source /etc/profile
检验环境变量是否成功(没有成功,重启下虚拟机):
$ fabric-ca-client version
fabric-ca-client:
Version: 1.4.3
Go version: go1.11.5
OS/Arch: linux/amd64
4 测试网络
4.1 启动网络
$ cd ./fabric-samples/first-network/
$ ./byfn.sh up


通过 docker ps 命令可以查看到节点的启动情况。
4.2 关闭网络
$ ./byfn.sh down
Stopping for channel 'mychannel' with CLI timeout of '10' seconds and CLI delay of '3' seconds
Continue? [Y/n] y
proceeding ...
WARNING: The BYFN_CA2_PRIVATE_KEY variable is not set. Defaulting to a blank string.
WARNING: The BYFN_CA1_PRIVATE_KEY variable is not set. Defaulting to a blank string.
Stopping cli ... done
Stopping peer1.org1.example.com ... done
Stopping peer1.org2.example.com ... done
Stopping peer0.org1.example.com ... done
Stopping peer0.org2.example.com ... done
Stopping orderer.example.com ... done
Removing cli ... done
Removing peer1.org1.example.com ... done
Removing peer1.org2.example.com ... done
Removing peer0.org1.example.com ... done
Removing peer0.org2.example.com ... done
Removing orderer.example.com ... done
Removing network net_byfn
Removing volume net_peer0.org3.example.com
WARNING: Volume net_peer0.org3.example.com not found.
Removing volume net_peer1.org3.example.com
WARNING: Volume net_peer1.org3.example.com not found.
Removing volume net_orderer2.example.com
WARNING: Volume net_orderer2.example.com not found.
Removing volume net_orderer.example.com
Removing volume net_peer0.org2.example.com
Removing volume net_peer0.org1.example.com
Removing volume net_peer1.org1.example.com
Removing volume net_peer1.org2.example.com
Removing volume net_orderer5.example.com
WARNING: Volume net_orderer5.example.com not found.
Removing volume net_orderer4.example.com
WARNING: Volume net_orderer4.example.com not found.
Removing volume net_orderer3.example.com
WARNING: Volume net_orderer3.example.com not found.
Hyperledger Fabric1.4 安装的更多相关文章
- 安装部署hyperledger fabric1.0
安装环境 CentOS7 1.安装Docker Docker Hub在国外,安装会较慢,可用国内镜像DaoCloud.可执行以下命令安装Docker. sudo yum install -y yum- ...
- 006-基于hyperledger fabric1.4( 官方文档)编写第一个应用【外部nodejs调用】
一.概述 官方原文地址 Writing Your First Application如果对fabric网络的基本运行机制不熟悉的话,请看这里. 注意:本教程是对fabric应用以及如何使用智能合约的简 ...
- Hyperledger Fabric1.0.0搭建
系统环境: 阿里云新装的Centos7.2 yum -y update yum install -y openssl openssl-devel gcc gcc-c++ zlib zlib-devel ...
- Hyperledger Fabric1.0 整体结构
整体结构 Hyperledger Fabric 在 1.0 中,架构已经解耦为三部分: fabric-peer:主要起到 peer 作用,包括 endorser.committer 两种角色: fab ...
- Hyperledger Fabric1.0环境搭建
一.准备CentOS系统,本文使用的是CentOS7.0 二.安装Docker 执行命令 yum -y install docker 验证是否安装成功 docker --version 三.安装Doc ...
- Hyperledger Fabric 第一次安装
第一次安装fabric有很多坑.记录一下,主要跟版本问题. 参考的是http://www.cnblogs.com/aberic/p/7532114.html 这篇博客. 我用的阿里云centOs 7. ...
- Hyperledger Fabric1.4的多机部署
之前的文章深入解析Hyperledger Fabric启动的全过程主要讲解了Fabric的网络搭建,以及启动的整体流程,但是都是通过单机完成的.而区块链本身就是去中心化的,所以最终还是要完成Fabri ...
- Hyperledger Fabric1.4环境搭建过程
简单记录一下fabric版本1.4的环境搭建,运行环境为Ubuntu18.04,其中一些内容是根据官方文档整理的,如有错误欢迎批评指正. 本文只介绍最简单的环境搭建方法,具体的环境搭建解析在这里深入解 ...
- Hyperledger Fabric1.4 手动搭建过程
1.生成证书: #路径需要更改为自己的路径 cd ~/go/src/github.com/hyperledger/fabric/scripts/fabric-samples/first-network ...
随机推荐
- oracle用UNION替换OR (适用于索引列)
通常情况下, 用UNION替换WHERE子句中的OR将会起到较好的效果. 对索引列使用OR将造成全表扫描. 注意, 以上规则只针对多个索引列有效. 如果有column没有被索引, 查询效率可能会因为你 ...
- Git上传本地项目到码云
前提:本地安装git.注册码云 1.进入本地项目文件夹,鼠标右键代开 Git Bash Here 2.输入命令 初始化库管理文件 git init 3.输入命名 修改Git的全局配置 git conf ...
- dotnet 设计规范 · 抽象定义
严格来说,只有一个类被其他的类继承,那么这个类就是基类.在很多时候,基类的定义是提供足够的抽象和通用方法和属性.默认实现.在继承关系中,基类定义在上层抽象和底层自定义之间. 他们充当抽象实现的实现帮助 ...
- [转]Java Web工程目录结构
说明 介绍java web 工程的基本结构目录.记录java web 工程结构的学习. Java web 结构 java web严格来说分为两类工程结构:一个是工程编译目录结构,一个是工程发布目录结构 ...
- CSS滤镜 :灰色 ,方便站点哀悼
html { -webkit-filter: grayscale(100%); -moz-filter: grayscale(100%); -ms-filter: grayscale(100%); ...
- 如何在centos 7.4 上安装 python 3.6
yum -y install https://centos7.iuscommunity.org/ius-release.rpmyum -y install python36uyum -y instal ...
- css页面去除滚动条
注:滚动条是导致页面切换标签页闪动的原因 html{ /*隐藏滚动条,当IE下溢出,仍然可以滚动*/ -ms-overflow-style:none; /*火狐下隐藏滚动条*/ overflow:-m ...
- H3C网络监测工具命令
1.Debugging 2.Display debugging 3.Display diagnostic-information display diagnostic-information 命令用来 ...
- 2018-8-10-C#-写系统日志
title author date CreateTime categories C# 写系统日志 lindexi 2018-08-10 19:16:53 +0800 2018-2-13 17:23:3 ...
- HDU - 1005 Number Sequence (矩阵快速幂)
A number sequence is defined as follows: f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mo ...