0
点赞
收藏
分享

微信扫一扫

区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案

书坊尚 2023-01-09 阅读 114


导读


超级账本,作为最火热的联盟链技术,得到了广泛地使用,也得到了很多科研人员的青睐。


今天这篇文章,我们一起来安装Fabric2.3.3,我们也针对安装过程中出现的一些问题做了详细的说明,并提供解决方案。


让我们一起走进文章,来安装Fabric吧!



1

安装依赖项


1、更新apt


如果网络不好,我们需要更换一下源:


deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security multiverse


然后使用下面的命令更新源(第一个命令是备份原来的源,第二个命令是打开源文件,我们可以把上面的源添加进去,第三个命令就是更新源):


sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup

sudo gedit /etc/apt/sources.list


sudo apt-get update


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_docker


2、安装Git


使用如下命令安装:


sudo apt-get install git


因为我已经安装过,所以我的结果如下:


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_ubuntu_02


3、安装cURL


使用如下命令安装:


sudo apt-get install curl


安装过程中可能会产生如下类型的报错:


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_docker_03


he following packages have unmet dependencies:
curl : Depends: libcurl3-gnutls (= 7.47.0-1ubuntu2) but 7.68.0-1ubuntu2.6 is to be installed
E: Unable to correct problems, you have held broken packages.


这个时候,我们需要重新安装下依赖项,安装报错指定的版本:


sudo apt-get install libcurl3-gnutls=7.47.0-1ubuntu2


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_sed_04


然后我们就可以重新安装curl:


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_sed_05


4、安装Docker 与 Docker Compose


1、Docker的安装与配置


为了保证后面不出错,我们先添加一下docker的源:


curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_docker_06


然后我们再次更新源


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_ubuntu_07


然后我们安装:


sudo apt-get install docker-ce -y


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_docker_08


除了上面的安装命令之外,我们还可以使用如下的命令安装:


sudo apt install docker.io


注意,这两个命令安装的版本不同,大家选择其中一个安装即可。


然后我们可以查看安装好的docker版本:


docker version


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_ubuntu_09


上面这个是使用第一个命令安装的结果。


然后我们配置一下docker(前面#对应行是后面的命令的解释):


# 将用户加入该 group 内。然后退出并重新登录就生效啦。
sudo gpasswd -a ${USER} docker
# 重启docker服务
systemctl restart docker
# 当前用户切换到docker群组
newgrp - docker


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_sed_10


2、Docker Compose安装


最简单的安装方法是:


sudo apt install docker-compose


但是我第一次安装的时候这种方法无法成功安装(第二次安装直接这样安装没有问题)。


所以我又使用了另外的方式。


首先我们需要安装一下pip工具,用于下载Docker Compose:


sudo apt-get install python3-pip -y


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_docker_11


然后我们使用如下命令安装compose:


sudo pip install docker-compose


但是有些情况下依然会报错:


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_ubuntu_12


这是因为我们电脑中的是python3,所以我们要把pip换成pip3。我们使用如下命令安装compose:


sudo pip3 install docker-compose


会报错:


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_sed_13


如果我们查看pip版本:


pip -V


会提示:


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_sed_14


但是我们安装会发现已经安装了:


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_docker_15


上面这个问题是折腾我安装依赖项最久的一个问题,尝试了很多网上的解决方案都没有解决,后来,我自己瞎折腾,终于解决了,具体方法如下:


这个时候,我们就需要更新一下我们的源,使用如下命令打开源文件:


sudo gedit sources.list


在源中,添加如下源:


deb http://cn.archive.ubuntu.com/ubuntu bionic main multiverse restricted universe
deb http://cn.archive.ubuntu.com/ubuntu bionic-updates main multiverse restricted universe
deb http://cn.archive.ubuntu.com/ubuntu bionic-security main multiverse restricted universe
deb http://cn.archive.ubuntu.com/ubuntu bionic-proposed main multiverse restricted universe


然后再使用如下命令更新:


sudo apt-get update


然后我们就可以继续更新pip3:


sudo apt -y install python3-pip


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_sed_16


检查pip3成功安装:


pip3 -V


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_docker_17


然后我们就可以正式安装compose了:


sudo pip3 install docker-compose


然后就有了报错:


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_sed_18


好在这个报错我之前遇到过,知道怎么解决:


依次执行如下四条代码:


wget --no-check-certificate  https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26
tar -zxvf setuptools-19.6.tar.gz
cd setuptools-19.6
python3 setup.py build
sudo python3 setup.py install


这个报错我有记录在我的博客中:


https://blog.csdn.net/shuiyixin/article/details/89532335
https://blog.csdn.net/shuiyixin/article/details/89532087


执行结果依次如下:


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_docker_19


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_sed_20


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_sed_21


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_ubuntu_22


最后一条语句要注意:


在我的博客中,我的python版本不是系统自带的,所以不加sudo也可以正确运行,但是在这里,我的python是系统自带的,也就是得要管理员权限才能安装的。


到这里应该就没有问题了:


cd ~
sudo pip3 install docker-compose


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_docker_23


最后检查自己安装好的版本:


docker-compose --version


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_docker_24



2

Fabric环境搭建



1、下载Fabric源码


首先我们先创建文件夹,用于存放我们的项目:


mkdir HyperledgerFabric2.3
cd HyperledgerFabric2.3


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_sed_25


如果你下载其他版本可以根据自己需要修改文件夹的名称。


然后我们将项目克隆到当前文件夹中:


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


如果网络受限制,可以使用Gitee的镜像:


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


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_docker_26


2、下载fabric-samples源码


我们进入fabric下的scripts目录,然后启动脚本下载官方提供的示例:


cd fabric/scripts
sudo ./bootstrap.sh


很多时候,这种方法是行不通的:


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_ubuntu_27


这个时候就需要我们自己从其他渠道下载并配置了。


首先我们分析一下这个bootstrap.sh文件:


这个文件主要是执行如下的命令:


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_sed_28


然后它会调用三个函数,也就是我用红色框标出来的:


1、cloneSamplesRepo


这个函数的功能是克隆fabric-samples,并切换到该文件夹下。所以我们可以自己执行如下代码:


git clone https://github.com/hyperledger/fabric-samples.git
cd ./fabric-samples


当然,因为我们前面调用bootstrap.sh文件执行失败,基本上我们这样克隆GitHub也会失败的。我们可以找gitee上的源进行下载。


在我的公众号【AI与区块链技术】回复Fabric或者fabric,我会定期更新可用的下载源


克隆完成后,我们就会在scripts中找到这个文件夹。


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_docker_29


这就表明我们已经下载成功了。


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_sed_30


2、pullBinaries


这个函数的功能是下载Fabric和Fabric-CA的二进制文件和配置文件,我们一共需要下载两个文件:


hyperledger-fabric-ca-linux-amd64-1.5.2.tar.gz
hyperledger-fabric-linux-amd64-2.3.3.tar.gz


其中,前面一个文件中只有bin文件夹,是fabric-ca中的二进制文件,后面一个包括bin文件夹和config文件夹,是fabric中的二进制文件的配置文件。


在我的公众号【AI与区块链技术】回复Fabric或者fabric,就可以获得下载链接


我们将其解压到fabric-samples文件夹下:


tar -zxvf hyperledger-fabric-ca-linux-amd64-1.5.2.tar.gz
hyperledger-fabric-linux-amd64-2.3.3.tar.gz


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_sed_31


其中,二进制文件夹如下:


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_sed_32


配置文件夹如下:


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_ubuntu_33


3、pullDockerImages


这个函数的功能是下载Fabric docker镜像,这里我们就可以使用bootstrap.sh文件了,但是需要将前两个操作注释掉:


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_docker_34


然后我们运行:


./bootstrap.sh 2.3.3 1.5.2 -s


这条命令在原bootstrap.sh文件中有,其中2.3.3是Fabric的版本,1.5.2是Fabric CA的版本。


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_docker_35


最后如果得到所有的镜像文件列表,那就说明没有问题啦:


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_ubuntu_36


3、配置环境变量


接下来我们需要配置一下环境变量。


首先我们打开环境变量配置文件:


sudo gedit /etc/profile


然后我们在最后面加上一条内容:


export PATH=/home/shuiyixin/HyperledgerFabric2.3/fabric/scripts/fabric-samples/bin:$PATH


注意,上面的内容的格式为:


export PATH=<path to download location>/bin:$PATH


记得要更换自己的路径。


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_ubuntu_37


然后我们使用source命令使我们的修改生效:


source /etc/profile


生效之后,大家会发现我们的路径变成了白色的:


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_sed_38


然后我们可以验证我们是否成功:


fabric-ca-client version


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_docker_39


到这里我们的配置操作就全部完成了。


4、网络环境测试


最后我们来测试一下我们的网络环境,为我们后续的学习做好准备吧!


首先我们先切换到我们的fabric-samples下的 test-network 文件夹,用这里的代码来测试网络。


cd fabric-samples/test-network


然后我们运行:


./network.sh up


这个过程有可能会出错:


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_ubuntu_40


首先我们要先检查一下自己的虚拟机联网是否有问题,如果没有问题,那么这个是因为docker的原因。


首先我们先检查docker是否加入组,如果没有我们就要加入:


sudo groupadd docker


如果已经加入了,他就会提示我们已经存在了:


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_docker_41


然后我们再次测试用户是否成功加入组:


sudo gpasswd -a ${USER} docker


如果没有加入,他就会加入进去


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_sed_42


接下来我们重启docker服务:


sudo systemctl restart docker


也可以尝试重启终端或者Ubuntu。


做完这些操作,就没有问题了。


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_ubuntu_43


最后我们将我们测试的网络关闭即可:


/network.sh down


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_ubuntu_44



3

说在后面的话



这篇教程本来已经写过一遍,是随着配置过程一起记录总结的,然后再做完之后,又重新审查了一遍。


结果弄到最后,全部弄好的时候,网页闪退,再打开记录也没有保存下来。


吃一堑,长一智,以后一定要记住了,随做随保存……


包括配置Fabric在内,配置了很多的东西,从最开始的计算机小白到现在,也总结了一些经验,分享给大家。


1、每走一步,就要保证这一步走的是正确的,再接着往下走。如果发现错了,一定要及时回头!


这句话放在第一句,因为他真的很重要。


做事情,最忌讳的就是,一件事,没有做到尽善尽美,然后,因为之前的错误,后续要花费特别多的精力,去弥补过失。


举这么几个例子,一个楼房,地基没有打好,刚开始,舍不得重盖,然后搭了骨架,发现骨架歪歪斜斜,但是还是舍不得拆。最后所有的盖起来了,楼塌了。


一些饮鸩止渴的决定,刚开始没有意识到决定的危害,执行了下去,后面逐步发现这个决定祸害远大于利益。但是为了面子,或者改变的难度极大,就不愿意改变,后续只能拆东墙补西墙。直到无东西可拆,才知道要早做取舍的好。


我最开始安装的时候,因为我的Ubuntu系统安装有问题,一直狠不下心重新安装一遍,只能遇到问题,解决问题。结果报错越来越多,多到最后网上都找不到解决方案。没有办法了,卡死在了安装Fabric Compose那一步,只能重头再来过。白白浪费了很多时间精力。但其实这个过程,我至少是有学习到东西的。


最重要的人生,如果意识到错了,一定要及时回头,及时作出改变。不能听之任之,或者用其他的东西去弥补,小事可以,但是如果是大事,或者根本错了,最终付出的,可能是承受不了的代价


2、要有永不言弃精神和一定能成的信心,不把困难留给未来!


在做任何事情,只要是努力向上的,那道路一定是艰难曲折的,我们会遇到各种各样的问题,绝大多数失败的人,是因为遇到困难,解决不了,觉得自己不行了,其实很多时候,只要我们坚持一下,曙光就在前方


人生路是积极向上的,很多事,我们现在不做,未来也得做,明日复明日,明日何其多,我们真的要做到立足于当下,再困难,也不能放弃,也要努力攻克它


3、专心、专注、集中力量办大事


越往后的人生路,大家越会发现,事情难度越来越大,需要的精力越来越多,我们要真正深入进去,专注解决它。


我本科的时候,做过很多事,班长、信息部部长、国防后备大学生连排长、创业、参加比赛……本科很丰富,很充实。但是到了研究生阶段,本科那种分散到不同领域的方法行不通了,不能给自己找那么多事,要真正专注到学术中来。这是一个漫长的,需要专注的,不断深入的过程


这次搞区块链Fabric,我用了两天时间,这两天,我基本上放下了其他的事情,就让自己的精力全部都放在这个上面,之前一个月都没有解决,这次,我花了两天时间就解决了。当时没有解决主要原因是:


1、事情多,不专注
2、一直在Solidity和Fabric之间徘徊,不专注于一个,导致电脑支撑不了两个项目,崩了。


所以专注真的很重要!人生亦是如此,要专注于某个领域,真正深入做下去,才能做出有价值的东西,才能无愧于人生


4、勤搜索、勤思考、勤交流


在做事的过程中,我们会遇到各种问题,书籍,网络都是我们的帮手,所以我们要勤搜索,寻找一切能使用的力量


特别是在网络中,我们遇到的问题会有各种各样的解决方案,但是哪个适合我们,刚开始我们可能会所有的都试一遍。但是有些时候,有些解决方案试了,带来的问题更加严重。这个时候,我们就要在搜索中总结,在搜索中思考,不断总结经验教训,那么以后我们面临的困难会越来越少,遇到新的问题,基本上也会找到最合适的解决方案。


在解决问题的过程中,也要多和别人交流。一种是找别人寻求解决办法,一种是和别人商讨自己的方法。很多时候,我们遇到的问题,别人解决不了,但是在跟别人交流的过程中,我们可能就会自己发现问题所在


人生路漫漫,与君共勉!


区块链 | Hyperledger Fabric 02 超详细图解——Fabric2.3.3安装及常见报错解决方案_ubuntu_45

长按二维码关注





举报

相关推荐

0 条评论