一,前言
友情提示: 1.4.0 由于不支持raft共识, 是一大遗憾, 不过1.4.x的搭建都大同小异, 学会1.4.0了自然可以进行以后版本的搭建, 另外搭建完成后, 建议尝试1.4.3及以后的版本, 最后其实2.0以后的环境安装其实比1.4的环境还要简单一些。
最近搭建了一套 hyperledger fabric的环境,因为涉及到很多的新知识,坑特别多,所以写个博客记录一下,也可以给新人朋友一点帮助!
本文是基于linux:ubuntu16的环境,centos7安装的差异之处本文中也有提到,低于centos 7 的操作系统无法安装超级账本1.4.0的网络。
hyperledger fabric环境搭建起来比计较复杂,所以一定要认真阅读本文,仔细按照文中的步骤进行。如果你搭建过程中出错了,一般是由于某个依赖软件版本不一致照成的,可以仔细阅读本文,找出问题所在。
开始正文:
首先按照官方文档,hyperledger fabric的环境需要依赖以下这些软件:为了保证环境正常运行,请与下方的保持一致
cURL:目前是7.64.0.
Docker和Docker compose:这个比较关键,不过略有差别应该也影响不大,博主是docker:18.6 , 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
只需要一个命令:
snap install docker
此命令执行不成功的 , 可以参考我的另一篇博客
验证是否安装成功
docker version
docker-compose -v
3:安装go
安装包下载地址为:https://golang.org/dl/。
如果打不开可以使用这个地址:https://golang.google.cn/dl/。
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:$GOROOT/bin
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
export GOROOT=/usr/local/go // go安装包的解压路径
export PATH=$PATH:$GOROOT/bin //配置go的bin目录.
export GOPATH=$HOME/go //go的项目目录, 可以自行配置路径,
export PATH=$PATH:$GOPATH/bin
source /etc/profile 使环境变量生效, 用go version 验证一下go是否安装成功!!!
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, cd $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的环境已经搭建成功了!
环境搭建成功的同学,可以参考我的另一篇博客,进行接下来的超级账本学习。
https://blog.csdn.net/qq_27348837/article/details/88354838
————————————————
版权声明:本文为CSDN博主「让代码飞~」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_27348837/article/details/86974035