之前在单机虚拟机的Ubuntu系统上搭建了fabric,本次准备在三台远程虚拟机上搭建多机fabric网络,系统为centOS,需要先在三个机器上分别运行通fabric网络,再进行配置文件的修改
【2020初春】【区块链】Hyperledger Fabric 环境搭建及报错 Ubuntu
centOS的安装命令与Ubuntu不同(报错很少,怀疑是我本机的虚拟机太烂了)
安装1.0.0版本
安装go
位置:usr/local/
下载go包,解压
tar -xvzf go1.14.6.linux-amd64.tar.gz
设置环境变量
vim /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文件夹(注意路径,要和自己的环境变量匹配)
cd ~
mkdir go
安装docker-ce
一条条语句依次执行
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum makecache fast
sudo yum -y install docker-ce
sudo systemctl start docker
sudo systemctl enable docker
安装docker-compose
docker-ce 和docker-compose都是在看了很多个之后选择靠谱的使用,没出什么问题
sudo curl -L https://github.com/docker/compose/releases/download/1.20.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
创建目录
个人手打,有点繁琐
cd ~/go/src
mkdir github.com
cd github.com
mkdir hyperledger
cd hyperledger
获取fabric源码
yum install git
git clone https://github.com/hyperledger/fabric.git
cd ~/go/src/github.com/hyperledger/fabric
git checkout v1.0.0
拉取镜像
cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli/
source download-dockerimages.sh -c x86_64-1.0.0 -f x86_64-1.0.0
补充缺少的三个镜像,baseimage;baseos ;membersrvc;
docker pull hyperledger/fabric-baseimage:x86_64-0.4.7
docker pull hyperledger/fabric-baseos:x86_64-0.4.7
docker pull hyperledger/fabric-membersrvc:latest
测试
先在fabric文件夹下生成所需要文件,方便查找错误
make cryptogen
./network_setup.sh up
./network_setup.sh down
在centOS的配置过程中出现的问题及解决
1.centOS要使用yum,不能用apt,所以Ubuntu的语句不能拿来直接用,需要找到合适的语句
2.运行cryptogen时缺少GCC 和 ltdl,下载语句
sudo yum install -y gcc gcc-c++ kernel-devel
sudo yum install -y python-devel libxslt-devel libffi-devel openssl-devel
yum install libtool-ltdl-devel
3.之前Ubuntu启动遇到的两个问题centOS里并没有遇到,不要想当然的就先修改
其中一个节点遇到了
CRIT 004 Error on outputBlock:Error writing genesis block:open ./channel-artifacts/get:is a directory
还是因为重复运行出错的事,删除重新生成即可
三台机器完全按照这个语句顺序,顺利启动网络