Hyperledger Fabric2.2 搭建中的步骤和遇到问题总结



本文参考学习到的文章:https://blog.csdn.net/shengsikandan/article/details/107656060
https://www.cnblogs.com/masbay/p/10887571.html
https://www.cnblogs.com/YpfBolg/p/15244070.html
(不止这几篇,有些在文章里面有附链接😁)

一、前期准备

两年前搭建过一次fabric,不记得是1.3还是哪个版本。因为要做毕设又要搭建一遍fabric2.2,希望这次可以顺利进行😂把这次过程完整记录下来,以免以后又要从头再来忘记怎么搞。
首先下载安装VMware和Ubuntu 20.04,可参考网上的很多详细教程。
链接:https://blog.csdn.net/qq_30624591/article/details/104138946
https://blog.csdn.net/star1210644725/article/details/89703240

二、搭建fabric

看到网上有大神说要将软件更新源换成国内的源,不然后面可能有些文件不好下载。

1.将更新换成国内源

1)、首先备份原始源文件source.list,

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

2)、修改源文件sources.list,

sudo chmod 777 /etc/apt/sources.list
sudo gedit /etc/apt/sources.list

3)、删除文件的原有内容,换成国内源,阿里或者163的,我换的是163。(这里一定要注意换的国内源的版本一定要与系统版本号对应住啊!!否则后面apt安装会出问题!在这里插入图片描述
在这里插入图片描述

163源:

deb http://mirrors.163.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ focal-backports main restricted universe multiverse

阿里源:

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

2.安装go语言

安装必要依赖,

sudo apt install libtool libltdl-dev

如果遇到了这样的报错:在这里插入图片描述
是因为在执行sudo apt install之前更换了软件源,但是却忘了update,执行一下 sudo apt update 命令再试就可以了。

补充一下,在这里我遇到了这样的报错:"The following packages have unmet dependencies: "
在网上搜索一下可以用安装aptitude的办法解决,可就在输入装aptitude的时候又出现了相同的问题,,原来是因为我在换镜像源的时候没有换一个与我的系统版本号相同的源😒在这里插入图片描述
应该与图上的focal保持一致才行。 详情请参考这两篇博客:
https://blog.csdn.net/fightingboom/article/details/106879019
https://blog.csdn.net/halazi100/article/details/115864692

去go语言网站 : https://studygolang.com/dl 下载Go语言的安装包,放到/usr/local目录下。

移动文件的时候出现permission denied,我用命令sudo password设置一下密码就可以了
zmh01@ubuntu:~/Downloads$ mv go1.17.8.linux-amd64.tar.gz /usr/local
mv: cannot move ‘go1.17.8.linux-amd64.tar.gz’ to ‘/usr/local/go1.17.8.linux-amd64.tar.gz’: Permission denied
zmh01@ubuntu:~/Downloads$ su root
Password:
su: Authentication failure
zmh01@ubuntu:~/Downloads$ sudo
usage: sudo -h | -K | -k | -V
usage: sudo -v [-AknS] [-g group] [-h host] [-p prompt] [-u user]
usage: sudo -l [-AknS] [-g group] [-h host] [-p prompt] [-U user] [-u user]
[command]
usage: sudo [-AbEHknPS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p
prompt] [-T timeout] [-u user] [VAR=value] [-i|-s] []
usage: sudo -e [-AknS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p
prompt] [-T timeout] [-u user] file …
zmh01@ubuntu:~/Downloads$ sudo passwd
[sudo] password for zmh01:
New password:
Retype new password:
passwd: password updated successfully
zmh01@ubuntu:~/Downloads$ su root
Password:
root@ubuntu:/home/zmh01/Downloads# mv go1.17.8.linux-amd64.tar.gz /usr/local
root@ubuntu:/home/zmh01/Downloads#

然后解压go的压缩包:

cd /usr/local
sudo tar zxvf go1.17.8.linux-amd64.tar.gz

配置go的环境变量,打开配置文件,

sudo gedit ~/.profile

添加以下内容:

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

更新一下配置文件就OK了。

source ~/.profile

在这里插入图片描述

3.安装Docker

搬运自参考博客https://blog.csdn.net/shengsikandan/article/details/107656060

# step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2:安装GPG证书:
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# step 3:写入软件源信息
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# step 4:更新并安装Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce

将当前用户添加到Docker用户组:


# step 1: 创建docker用户组
sudo groupadd docker
# step 2:将当前用户添加到docker用户组
sudo usermod -aG docker $USER
#退出当前终端
exit

编辑/etc/docker/daemon.json文件,如果没有则自行创建,添加以下内容:

{
“registry-mirrors”: [“http://f1361db2.m.daocloud.io”,“https://hub-mirror.c.163.com”,“https://xsoeja86.mirror.aliyuncs.com”]
}

最后重启服务就好了

sudo systemctl daemon-reload
sudo systemctl restart docker

在这里插入图片描述

4.安装docker-compose

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

如果下载的速度过慢,也可以从网站下载之后放到/usr/local/bin目录下。
下载地址: https://github.com/docker/compose/releases在这里插入图片描述

下载完成后需要赋予docker-compose可执行的权限,

chmod +x /usr/bin/docker-compose

查看docker-compose的版本以检查是否安装成功,
在这里插入图片描述
启动docker命令:

systemctl start docker

5.fabric环境搭建

在home下创建文件夹并进入

cd
mkdir -p go/src/github.com/hyperledger/
cd go/src/github.com/hyperledger/

从GitHub上拉取fabric的源码,

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

进入到克隆下的fabric目录下的scripts文件夹中,

cd fabric/scripts

到这里就需要运行bootstrap.sh文件,但是我这里运行就总是报can’t resolve域名和版本不存在之类的错误,看到网上很多帖子用修改.sh文件的download地址方法,但是试了之后并没有解决。最后是在网上找到这篇帖子,直接复制了里面的bootstrap.sh,然后再运行就可以了。(但后面我发现可能这一步的顺利程度主要取决于网络,换了宿舍的网后相比图书馆顺利了不少,所以大家可以多试几次)
在这里插入图片描述

sudo ./bootstrap.sh 2.2.3

配置环境运行后在fabric-samples目录下会形成bin和config目录。将其添加到 PATH 环境变量中,以便在不需要指定每个二进制文件的绝对路径的情况下获取这些命令:

sudo gedit ~/.profile
export PATH=$GOPATH/src/github.com/hyperledger/fabric/scripts/fabric-samples/bin:$PATH
source ~/.profile

验证二进制文件和环境变量的配置是否成功,出现版本信息说明安装成功。
在这里插入图片描述
搭建完fabric之后可以用fabric-samples中的测试网络用例来测试一下:

cd fabric-samples/test-network
sudo ./network.sh up

在这里插入图片描述
查看一下docker,在这里插入图片描述
这样就是fabric搭建成功了。

三、使用fabric的测试网络

由上面成功启动了network.sh后,创建出了一个由两个对等节点和一个排序节点组成的Fabric网络。可以使用network.sh脚本在Org1和Org2之间创建通道并加入他们的对等节点。 运行以下命令以创建一个默认名称为“ mychannel”的通道:

sudo ./network.sh createChannel

创建成功是如下图这样
在这里插入图片描述
也可以使用channel标志创建具有自定义名称的通道。 作为一个例子,以下命令将创建一个名为channel1的通道:

sudo ./network.sh createChannel -c channel1

使用network.sh创建通道后,你可以使用以下命令在通道上启动链码:

sudo ./network.sh deployCC

启动链码的过程中一直报错:“rror: failed to normalize chaincode path: ‘go list’ failed with: go: github.com/golang/protobuf@v1.3.2: …exit status 1”
在这里插入图片描述
🎊可以试试以下两个解决方法:
1.打开GO111MODULE工具,更换Go代理,命令行输入
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.io,direct
————————————
2.将fabric的文件全部解锁,命令行输入
sudo chmod -R 777 ~/go
之后去掉sudo 执行 代码:
./network.sh deployCC -ccn basic -ccp …/asset-transfer-basic/chaincode-go -ccl go
然后就运行成功了~
在这里插入图片描述

接下来的步骤请参考博客:
https://blog.csdn.net/mutou___/article/details/109849720
最后成功界面如图:
在这里插入图片描述
在这里插入图片描述

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值