CentOS7.6搭建Fabric2.0

目标:在CentOS7.6系统上搭建Fabric2.0系统,运行的链码由java编写。
fabric官网https://github.com/hyperledger/fabric

搭建Fabric2.0前步骤

服务器资源

对服务器排查一下,主要看服务器资源是否足够支撑Fabric网络运行。
查看系统内核版本

uname -r

在这里插入图片描述
查看内存

free -h

查看硬盘

df -h

搭建基础开发环境

保证搭建Fabric2.0之前,服务器已经安装了以下软件。
(1)curl:发起HTTP请求的命令
(2)wget:下载工具命令
(3)git:git命令
(4)tar:解压命令
安装以上3个软件:

yum -y install curl wget git tar

(可选操作)上述命令执行之后,查看本机是否安装成功:

yum list curl wget git tar

CentOS7.6搭建Fabric2.0_第1张图片

安装Jdk

这里安装的是OpenJDK8。

yum -y install java-1.8.0-openjdk-devel.x86_64

yum安装的Jdk程序会软连接到/usr/bin目录(相当于Windows系统中在/usr/bin目录创建了一个快捷方式),而该目录已经加入到PATH中,所以不需要配置PATH环境变量。
提示:Jdk安装位置是在/usr/lib/jvm目录。
如果想安装其他版本Jdk,可以查看所有“java-1”开头的软件源:

yum -y list java-1*

(可选操作)查看环境变量PATH:

echo $PATH

在这里插入图片描述
验证Jdk安装成功:

java -version

安装golang

golang安装在/usr/local目录下。

# 切换到目标目录
cd /usr/local
# 下载go
wget https://dl.google.com/go/go1.15.2.linux-amd64.tar.gz
# 解压后/usr/local目录下生成go文件夹
tar -zxvf go1.15.2.linux-amd64.tar.gz -C /usr/local
# 可选操作-删除刚才下载的go压缩包
rm -f go1.15.2.linux-amd64.tar.gz

配置go

GOROOT:指定go sdk 安装目录。$GOROOT/bin一般被配置在环境变量path中。
GOPATH:指定go工作区的位置,go语言所有项目的源码都这个目录下。GOPATH可以设置在你系统的任意一个目录下,但不能和你的go安装目录相同。
创建gopath目录:

mkdir /usr/local/gowork

1.vim打开配置文件

vim /etc/profile

在配置文件的最后一行添加如下内容,其中我设置的GOPATH为“/usr/local/gowork”,这个位置随意。

export GOROOT=/usr/local/go
export GOPATH=/usr/local/gowork
export PATH=$PATH:$GOROOT/bin:$GOPATH

CentOS7.6搭建Fabric2.0_第2张图片
ESC按键切换命令模式后,vim保存

:wq

2.刷新配置文件

source /etc/profile

3.设置go环境配置代理
安装go默认代理是

GOPROXY="https://proxy.golang.org,direct"

这个proxy对国内的支持不太好,经常下载包会timeout之类的错误
执行命令下述命令,修改到国内的proxy

go env -w GOPROXY=https://goproxy.cn,direct

4.验证
查看go版本

go version

在这里插入图片描述
查看GOPATH

go env GOPATH

在这里插入图片描述
查看go运行环境

go env

安装Docker

1.(可选操作)删除之前旧版本Docker

yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate \
                  docker-logrotate docker-selinux docker-engine

2.设置Docker的yum源为阿里云
首先安装支撑的程序:

yum install -y yum-utils device-mapper-persistent-data lvm2

增加官方或阿里云软件源,建议后者(阿里云一个就够了):

# 官网
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 阿里云
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3.安装docker
3.1下载最新版本docker

yum  -y install docker-ce

3.2 下载指定版本docker
(可选操作)查询所有可以下载的docker版本

yum list docker-ce --showduplicates | sort -r

在这里插入图片描述
比如我这里下载18.06.1.ce版本,注意版本号前加上“docker-ce-”

yum -y install docker-ce-18.06.1.ce

根据网速不同下载完成时间也不同,我这里执行这一步用了五分钟左右。
4.设置docker

# 启动
systemctl start docker
# 开机自启
systemctl enable docker

5.验证docker是否安装成功

docker version

或者docker的相关命令,比如:

docker ps -a

安装docker-compose

官网可以查看docker-compose各个版本号。
1.下载docker-compose
注意!不要使用官网地址下载,速度很慢,比如下面是使用官网地址下载1.29.2版本:

curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

使用daocloud网站

curl -L https://get.daocloud.io/docker/compose/releases/download/v2.4.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

你可以通过修改URL中的版本,可以自定义您的需要的版本。
2.赋予用户文件的执行权限

chmod +x /usr/local/bin/docker-compose

3.查看docker-compose版本

docker-compose version

在这里插入图片描述
至此,基础环境搭建完成。

其它

可选操作

为vim文档添加行号

vim ~/.vimrc

在文档内输入:

set number

下载tree工具

yum -y install tree

查看一级目录

tree -L 1

二级目录

tree -L 2

方便查看目录结构。

搭建Fabric2.0

首选切换到上面设置的go工作目录

cd /usr/local/gowork

在这里插入图片描述

获取fabric镜像

fabric的各个服务器节点以docker容器的形式运行,所以要先获取docker镜像,之后启动。

下载fabric源码

fabric官网
码云上fabric的fork版本,使用码云的git地址速度稳定。

git clone https://gitee.com/hyperledger/fabric.git

下载镜像

1.获取fabric源码后打开启动脚本文件,设置我们想要的fabric和fabric-ca版本。

cd fabric/scripts/

CentOS7.6搭建Fabric2.0_第3张图片
2.修改版本号为2.0.0,CA版本号为1.4.4,手动下载二进制文件

vim bootstrap.sh

下面看见的是我在2022年4月27日下载fabric源码时的版本号:
在这里插入图片描述
修改为:
在这里插入图片描述
同时BINARIES后面的true改为false,如果不修改,报错如下,二进制文件无法下载:

2.0.0 platform specific fabric binary is not available to download

修改前:
CentOS7.6搭建Fabric2.0_第4张图片
修改后:
CentOS7.6搭建Fabric2.0_第5张图片
执行修改后的脚本文件,开始下载镜像,我这里执行了一个小时左右,该命令一共执行了三次:

source bootstrap.sh

该命令执行完毕后,使用docker的查看镜像命令可以看到fabric的镜像:

docker images

2.下载二进制文件
可选操作,在上一步将BINARIES设置为false后就需要我们手动下载。如果上一步没有修改BINARIES的值(仍为true)且下载成功则不用执行这一步骤。
这些二进制文件其实就是fabric命令和配置文件。
具体的下载地址可以查看bootstrap.sh文件:
CentOS7.6搭建Fabric2.0_第6张图片
2.1.下载fabric二进制文件压缩包
在这里插入图片描述
注意,在fabric官网上可以看到fabric2.0.0对应的二进制版本是2.0.0
下载地址:
https://github.com/hyperledger/fabric/releases/download/v2.0.0/hyperledger-fabric-linux-amd64-2.0.0.tar.gz
2.2.下载fabric-ca二进制文件压缩包
下载地址:
https://github.com/hyperledger/fabric-ca/releases/download/v1.4.4/hyperledger-fabric-ca-linux-amd64-1.4.4.tar.gz
2.3.解压文件
将下载的“hyperledger-fabric-linux-amd64-2.0.0.tar.gz”和“”文件通过ftp传输到fabric目录下。

启动first-network

执行first-network目录下的byfn.sh文件,参数up

cd cd /usr/local/gowork/fabric/scripts/fabric-samples/first-network/
./byfn.sh up

执行点输入“y”表示yes。
脚本会向创建容器后创建raft集群,中途可以查看启动的容器,启动成功:
CentOS7.6搭建Fabric2.0_第7张图片
最后fabric搭建成功标志:
CentOS7.6搭建Fabric2.0_第8张图片
如果报错:ERROR !!! FAILED to execute End-2-End Scenario,则关闭刚刚创建的fabric网络。
执行first-network目录下的byfn.sh文件,参数down

cd /usr/local/gowork/fabric/scripts/fabric-samples/first-network/
./byfn.sh down

再次启动

./byfn.sh up

你可能感兴趣的:(#,区块链,fabric2.0,Linux,超级账本)