一,前言
最近搭建了一套 hyperledger fabric的环境,因为涉及到很多的新知识,坑特别多,所以写个博客记录一下,也可以给新人朋友一点帮助!
本文是基于linux:ubuntu16的环境,centos7安装的差异之处本文中也有提到,低于centos 7 的操作系统无法安装超级账本1.4.0的网络。
hyperledger fabric环境搭建起来比计较复杂,所以一定要认真阅读本文,仔细按照文中的步骤进行。如果你搭建过程中出错了,一般是由于某个依赖软件版本不一致照成的,可以仔细阅读本文,找出问题所在。
开始正文:
首先按照官方文档,hyperledger fabric的环境需要依赖以下这些软件:为了保证环境正常运行,请与下方的保持一致
cURL:目前是7.64.0.
Docker和Docker compose:这个非常关键,要谨慎安装,当前是1.23
Go:go版本必须是1.11.x,
node:它是必须8.x,高版本的不支持!
Python:Python2.7,为了可以成功执行npm install命令!
OK! 进本的依赖环境已经介绍完了 ,下面介绍一下如何安装,因为可能有些人不会安装,导致运行失败挺可惜的。
二,基本依赖环境安装
1,cURL:
cURL下载链接: 下载cURL
进入后,选择最新版本下载,我这里是7.64,
直接安装的话,不支持https,所以我们要先添加对HTTPS的支持,
Ubuntu执行如下命令:
sudo apt-get install openssl
sudo apt-get install libssl-dev
centos的话,执行如下命令:
yum install openssl-devel
然后,安装cURL,
下载安装包
wget https://curl.haxx.se/download/curl-7.64.0.tar.gz
解压 :
tar -zxvf curl-7.64.0.tar.gz
进入解压后的目录
cd
执行如下命令:
./configure
如果提示:configure: error: no acceptable C compiler found in $PATH
执行
ubuntu:需要先update
sudo apt-get update
sudo apt-get install gcc
centos:
yum install gcc
然后 在执行一下./configure , 报错:
解决
./configure --disable-dependency-tracking
最后一行日志有HTTPS,则成功.
然后:
make
make install
有些在执行make命令时,如果提示没有该命令,执行 apt install make 即可
另外安装过程中会有如下提示
意味着我们需要添加一个环境变量, /etc/profile 中添加
export LD_LIBRARY_PATH=/usr/local/lib
然后执行
source /etc/profile
OK ,执行 curl --version 查看下一下是否安装成功.
2,安装docker和docker compose
这个官网的安装教程,安装docker
下面是我按照官网的写的安装步骤,可以对比参考一下官网的进行安装。
①,设置仓库
a:更新仓库
sudo apt-get update
b: 安装包以允许apt通过HTTPS使用存储库
sudo apt-get install
apt-transport-https
ca-certificates
curl
gnupg-agent
software-properties-common
c:添加docker的官方key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
验证key指纹是9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
sudo apt-key fingerprint 0EBFCD88
应出现如下提示信息
d:设置stable 仓库
sudo add-apt-repository
"deb [arch=amd64] https://download.docker.com/linux/ubuntu
$(lsb_release -cs)
stable"
②:安装docker
sudo apt-get update
列出版本号
apt-cache madison docker-ce
下面两个命令分别是安装指定版本或是安装最新版本, 执行任意一个都可以, 我们假设docker所有版本都是向上兼容的
安装指定版
sudo apt-get install docker-ce=5:18.09.2~3-0~ubuntu-bionic docker-ce-cli=5:18.09.2~3-0~ubuntu-bionic containerd.io
安装最新版
sudo apt-get install docker-ce docker-ce-cli containerd.io
③:验证docker是否安装成功
sudo docker run hello-world
下面我们再来安装 docker-compose, docker-compose的安装十分简单, 只需要把docker-compose文件下载到/usr/local/bin目录即可
执行如下命令
sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
该命令安装的是1.23.2版本 , 如果想要安装最新版 , 移步docker-compose最新版本查看版本号,并将链接中的1.23.2替换掉即可. 注意:为了保证环境可以成功搭建,搭建跟教程中的保持一致
如果网速慢,下载失败, 可以用下载工具进行下载,传到linux的/usr/local/bin目录即可。
OK下载完成后还需要赋予docker-compose可执行的权限,
chmod +x /usr/local/bin/docker-compose
使用如下命令验证docker-compose是否安装成功
docker-compose -v
3:安装go
wget https://dl.google.com/go/go1.11.5.linux-amd64.tar.gz
下载完成后解压
tar -C /usr/local -xzf go1.11.5.linux-amd64.tar.gz
/etc/profile中添加如下四个环境变量: (注,直接复制可能会在每行的末尾多出一个空格, 需手动删除)
export PATH=$PATH:/usr/local/go/bin
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$HOME/go/bin
source /etc/profile 使环境变量生效, 用go version 验证一下go是否安装成功
4:安装nodejs,
error,版本号必须是8.x(程序员往往会把warning忽略掉,所以这里error仅是为了引起注意)
执行命令
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install nodejs
即可,使用node -v 命令验证安装成功共与否。
4:安装python
如果是Ubuntu16的话,安装Python很简单 , 只需要一条命令
sudo apt-get install python
即可,安装完成后,通过python --version 查看一下Python的版本号 必须是2.7.x
OK,如果你已经严格按照如上所说的步骤全部成功完成了的话,那么恭喜你,你已经把hyperledger fabric的依赖环境安装好了, 对于hyperledger fabric项目的搭建你已经成功了60% , 跟着教程继续走下去吧.
三,安装示例,二进制文件,以及docker镜像
创建并进入目录 mkdir -p $GOPATH/src/github.com/hyperledger, 注意当前路径是hyperledger目录
1 , 下载fabric-sample
git clone -b v1.4.0 https://github.com/hyperledger/fabric-samples
2 ,下载二进制文件和镜像文件
然后下载二进制文件并解压 , 由于官方提供的文件下载速度慢, 我这里提供了一份压缩好的二进制文件 ,方便大家进行下载.
下载完之后解压会形成bin,和config目录, 此时列出当前目录应该有一下文件,
然后执行如下命令,赋予bin目录下的文件可执行权限 ,
chmod +x bin/*
下载镜像文件
cd fabric-samples/scripts
./bootstrap.sh -b
3,启动网络
将bin目录设置到系统环境变量中,并使之生效:
在/etc/profile中添加
export PATH=$PATH:$GOPATH/src/github.com/hyperledger/bin
然后执行
source profile
通过
peer version
命令来验证你的二进制文件,以及环境变量的配置是否成功,成功后的提示信息:
下载镜像文件
进入目录
cd fabric-samples/fabcar/
启动脚本
./startFabric.sh
进入目录
cd javascript
执行命令,(此命令执行可能报错, 后面有解决方案)
npm install
在执行命令之前,要确保你的环境已经安装了g++, 如果没有安装, 执行
centos:
yum -y install gcc+ gcc-c++
ubuntu:
apt-get install g++
另外,如果执行npm install 命令报错
NPM Unexpected end of JSON input while parsing near xxxxxxxxxxxxxx
解决办法:
first:
npm install --registry=https://registry.npm.taobao.org --loglevel=silly
then:
npm cache clean --force
安装好之后,依次 执行
node enrollAdmin.js
node registerUser.js
node query.js
如果是这种结果则说明启动成功.
下面我们停掉此网络,启动first-network网络, 进入first-network文件夹
cd ../../first-network/
停掉刚刚启动的网络
./byfn.sh down
启动first-network
./byfn.sh up
如果出现如下页面 , 那么恭喜你,你的超级账本1.4的环境已经搭建成功了!
环境搭建成功的同学,可以参考我的另一篇博客,进行接下来的超级账本学习。