Fabric1.4版本基本环境搭建

Linux环境下搭建fabric1.4以及官方示例运行

fabric1.4版本是支持Node.js 、 Python 以及Java开发的,但是由于本人才疏学浅,故这篇教程不会讲述有关Python和Node.js的知识。

区块链是一个新技术,近年也逐渐火热起来 ;作者只是一个普普通通的大学生,利用课余时间自己研究学习的区块链,这篇文章是基于我自己学习区块链的经验总结出来的,若有什么不对的地方,还望大家指正。

第一步:安装docker

  • 检查系统内核
    通常先检查一下自己服务器的版本问题,这里建议大家使用Centos7.x的版本,最新的8.0以上的版本在下载的过程中会出现bug

    这里显示一下我目前的服务器配置,最基本的学生机,1核2G,1M带宽
    uname -a这个命令在这里插入图片描述

  • 安装依赖包
    严格来讲这一步是需要卸载旧版本的,这里作为一个新的服务器来讲一般是不存在docker旧版本,所以基本上是直接安装就行

安装依赖包

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

然后是添加yum软件源

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

接着更新yum软件源缓存

sudo yum makecache fast

这时我们就可以直接安装了

sudo yum install docker-ce

最后设置一下启动docker

sudo systemctl enable docker
sudo systemctl start docker

可以检查一下这个时候的docker 用docker --version这个命令在这里插入图片描述

第二步:安装docker-compose
这一步,针对于我们要搭建的fabric1.4版本来说,docker-compose的版本最好保持在1.14以上。下载的时候可能会存在网速过慢甚至断网的情况,所以这里用这个命令,下载起来就可以快一点。

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

然后对下载的文件赋予执行权限

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

接下来就是查看版本,确认是否安装成功

docker-compose --version

docker-compose --version的命令
在这里插入图片描述
第三步:安装go语言配置环境

这里建议下载1.13.x及以上的go版本,太高了的也不建议,有可能会出现其他情况

  • 第一步,下载压缩包

wget https://studygolang.com/dl/golang/go1.13.5.linux-amd64.tar.gz

然后便是解压安装包,这里建议统一安装到 /opt 目录下

tar -xvf go1.11.5.linux-amd64.tar.gz -C /opt

然后在 /opt目录下会多出一个 go的文件夹

  • 配置环境变量
    这里在 /opt目录下预先用mkdir gopath命令创建一个gopath的目录
    然后修改位于/etc/profile的配置文件

    vim /etc/profile

    然后按住shift+g跳转到最后一行,加入下面几行

export GOROOT=/opt/go
export PATH=$PATH:$GOROOT/bin
export GOPATH=/opt/gopath

在这里插入图片描述
接着,wq保存退出,用source /etc/profile这个命令刷新一下配置文件
再用go version检查一下
在这里插入图片描述
可以看到是1.13.5的版本
然后go env可以看到GOPATH是已经设置好了的。
在这里插入图片描述



第三步:搭建fabric1.4
由于我们这个过程需要在github上面拉取源码,所以我们先把git工具下载下来。

yum install git

git version检查一下
在这里插入图片描述
然后,生成目录,这里需要用到我们上一步配置的gopath

mkdir -p $GOPATH/src/github.com/hyperledger/
cd $GOPATH/src/github.com/hyperledger/

考虑到可能会存在git缓冲区太小的问题,建议先修改一下

git config --global http.postBuffer 524288000

接着就是在hyperledger这个目录下执行这条命令

git clone https://github.com/hyperledger/fabric.git
由于实际当中下载速度非常慢甚至会断网,所以用一下其他的方法
git clone https://github.com.cnpmjs.org/hyperledger/fabric.git
相当于用了一个代理

拉取完毕之后,在hyperledger目录下会多出一个fabric文件夹
然后我们进入到这个目录cd fabric
切换一下我们的分支,转到1.4分支,而不是默认的master

git checkout -b release-1.4 origin/release-1.4
然后检查一下分支
git branch

可以看到我们的版本是1.4版本
在这里插入图片描述
然后进入scripts目录下,有一个bootstrap.sh的脚本

这里需要着重讲一下
脚本主要是做了三件事,拉取fabric-samples这个文件夹,第二步是下载可执行的二进制文件来生成有关于证书的文件,第三步是拉取镜像;但是脚本当中的网站是需要更改的,因为有些网站官方都没有维护了,所以我们需要自己手动下载;

最开始这里建议不要那么新,修改一下,改成1.4.6
在这里插入图片描述
然后注释掉这个函数,因为这个网站已经没有维护了
在这里插入图片描述
然后我们保存退出,./bootstrap.sh启动这个脚本
整个过程由于会涉及到下载镜像的缘故,所以可能会花费很长的时间,保证不断网就行;若是觉得慢,可以去/etc/docker/daemon.json这个文件里面粘贴一下,换源

{
    
    
    "registry-mirrors":["https://almtd3fa.mirror.aliyuncs.com"]      
}

然后重启docker
systemctl restart docker
镜像下载完毕是这个样子的
在这里插入图片描述


我们注释掉了下载二进制文件那个函数,所以我们得手动去github下载两个文件夹,并且通过rz命令或者是xftp软件上传到fabric-samples文件夹
下载hyperledger-fabric-ca-linux-amd64-1.4.6.tar.gz
下载hyperledger-fabric-linux-amd64-1.4.6.tar.gz

均在这两个网站的最下方
也可以从我发布的资源直接下载,解压zip之后上传到服务器
hyperledger-fabric-ca-linux-1.4.6.tar.gz下载
hyperledger-fabric-linux-1.4.6.tar.gz下载

然后用tar -zxvf 命令解压当前文件夹,会多出一个bin文件和config文件
最后总的文件夹看起来就是这样
在这里插入图片描述

bin文件夹和config文件夹就是解压之后的文件

这个过程中,镜像的下载未必也会完全成功,所以我们有可能也需要手动拉取一下镜像;很多时候教程没有下载,就需要自己手动下载,比如这里就是手动拉取1.4.6的peer镜像

docker pull hyperledger/fabric-peer:1.4.6

然后在fabric-samples的目录下有一个byfn.sh的脚本,我们用它来测试环境

./byfn.sh up

启动的时候,开始会是有一个“START”的字样,然后经历了一段时间,日志会打印出“END E2E”来表示整个过程已经,至此,fabric1.4就正式搭建好环境了。
在这里插入图片描述
在这里插入图片描述

若是不想让官方示例网络占用服务器内存,可以在测试结束之后关闭掉网络

.byfn.sh dowm

需要注意的是 ,在启动的过程中,往往会出现网络测试失败的情况,这个时候也需要执行上面的语句来关闭整个网络然后重启,然后再重新启动网络进行测试,因为docker容器那些是已经创建了的,必须删除然后重新来。

本文部分参照了以下博文
https://www.jianshu.com/p/c2d39e98e777

https://blog.csdn.net/sitebus/article/details/90349856?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param

猜你喜欢

转载自blog.csdn.net/weixin_44573310/article/details/108553953