基本依赖环境安装
一、安装cURL
首先执行如下命令:
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 -C /root
进入解压生成的文件夹
cd /root/curl-7.64.0
安装gcc
yum install gcc
执行如下命令
./configure
最后一行日志有HTTPS说明安装成功
执行命令
make
make install
通过命令
curl --version
检查是否安装成功,有版本号说明成功
二、安装docker和docker compose
# 使用yum安装docker
yum -y install docker
# 启动
systemctl start docker.service
# 设置为开机自启动
systemctl enable docker.service
# 下载docker-compose
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
# 添加可执行权限(这里不懂可以看一下菜鸟教程-linux教程-文件权限)
sudo chmod +x /usr/local/bin/docker-compose
通过以下命令检查版本,查看是否安装成功
docker version
docker-compose -v
三、安装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
利用如下命令编辑文件添加环境变量
vim /etc/profile
# go安装包的解压路径
export PATH=$PATH:$GOROOT/bin
# 配置go的bin目录
export GOROOT=/usr/local/go
# go的项目目录, 可以自行配置路径
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
通过如下命令使环境变量生效
source /etc/profile
通过如下命令检查是否生效,如果没有就再次执行上述命令
go version
安装NODEJS
curl -sL https://rpm.nodesource.com/setup_10.x | bash -
yum install -y nodejs
通过如下命令检查是否安装成功
node -v
npm -v
安装Python
# 版本必须使2.7.x
yum install python
# 检查是否安装成功
python --version
安装实例、二进制文件、docker镜像
创建并进入目录
mkdir -p $GOPATH/src/github.com/hyperledger
cd $GOPATH/src/github.com/hyperledger
下载fabric-sample
安装git
wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -ivh epel-release-latest-7.noarch.rpm
yum install -y git
git clone -b v1.4.0 https://github.com/hyperledger/fabric-samples
下载二进制文件和镜像文件
由于官方提供的文件下载速度慢,此处提供安装包(提取码:e7p0),下载完成后可通过FTP方式上传到上述的hyperledger
文件夹
解压hyperledger-fabric-linux-amd64-1.4.0.tar.gz
形成bin
和config
两个文件夹
至此,hyperledger
文件夹中应具有以下三个文件夹
执行如下命令,赋予bin目录下的文件可执行权限
chmod +x bin/*
下载镜像文件
cd fabric-samples/scripts
./bootstrap.sh -b
启动网络
在/etc/profile
中添加
export PATH=$PATH:$GOPATH/src/github.com/hyperledger/bin
并通过
source /etc/profile
使之生效
通过
peer version
验证二进制文件以及环境变量的配置是否成功
成功日志如下
进入/root/go/src/github.com/hyperledger/fabric-samples/fabcar
目录,启动脚本
./startFabric.sh
这里比较容易报的错误是
Container b90c0c52d7142735b4da8718043cf35197f267250ff9d621615fe42ada5d5950 is not running
查看docker日志
Cannot run peer because error when setting up MSP of type bccsp from directory /etc/hyperledger/msp/peer/: could not load a valid signer certificate from directory /etc/hyperledger/msp/peer/signcerts: could not read directory /etc/hyperledger/msp/peer/signcerts: open /etc/hyperledger/msp/peer/signcerts: permission denied
是权限问题(我目前虚拟机上是这个问题),目前找到的方法是关闭selinux
通过如下命令修改文件
vim /etc/selinux/config
# 默认为 enforcing 修改为 disabled
SELINUX=disabled
重启Linux
系统
如果是阿里云服务器则可能是go的DNS解析,不支持阿里云机器的options single-request-reopen,通过如下命令修改文件
vim /etc/resolv.conf
将其中的options timeout:2 attempts:3 rotate single-request-reopen
注释掉
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 100.100.2.136
nameserver 100.100.2.138
#options timeout:2 attempts:3 rotate single-request-reopen
返回/root/go/src/github.com/hyperledger/fabric-samples/fabcar
重新启动脚本
./startFabric.sh
启动脚本成功的截图如下
进入目录
cd javascript
安装g++
yum -y install gcc+ gcc-c++
执行命令
npm install
完成后依次执行如下命令
node enrollAdmin.js
node registerUser.js
node query.js
启动成功的截图如下
进入目录
cd ../../first-network/
停掉刚才启动的网络
./byfn.sh down
启动first-network
./byfn.sh up
出现如下截图说明超级账本1.4的环境搭建成功
作者吐槽:这个环境真的搭建得崩溃了,尤其是上面的容器启动失败的bug,困扰了多少天都不知道了,写作此文既是对搭建过程的总结,也是分享总结经验,感谢浏览此文的每一位读者!