Fabric学习笔记——一、环境搭建(小白入门)

一、环境搭建

  1. 操作系统:Ubuntu16.04
  2. Fabric版本:1.4.3
  3. 服务器:阿里云
  4. 终端工具:termius
  5. 参考书籍:《HyperLedger Fabric开发实战——快速掌握区块链技术》 杨毅

(为了帮助没有linux基础的铁子们,我写的文章看起来可能会比较啰嗦)

1、切换Python版本

阿里云服务器的Ubuntu自带Python2.7,而后续要用的docker-compose需要Python3的支持,所以这里要切换版本。
注意按照上文操作时,需要仔细留意作者所说的话,不要无脑复制粘贴指令。

https://blog.csdn.net/u014775723/article/details/85213793

2、安装docker、docker-compose和go语言

Fabric的节点通过Docekr容器来运行,需要预装Docker、Docker-compose、Go语言。

2.1安装docker以及docker-compose

安装docker,参考:

https://blog.csdn.net/weixin_44667935/article/details/105432097

安装docker-compose可以不用上面博客中的方法,直接:

apt install docker-compose

查看docker和docker-compose版本以验证是否安装成功

docker version
docker-compose version

(如果docker可以查到,而docker-compose明明下载了却查不到,则说明docker安装有问题,需要删掉重新安装)

2.2安装go语言环境

首先使用wget+go版本url地址去下载go压缩包:

wget https://dl.google.com/go/go1.13.4.linux-amd64.tar.gz

下载完毕对压缩包解压,并移动到/usr/local目录下:

tar -xvf go1.13.4.linux-amd64.tar.gz
mv go /usr/local

其次修改根目录下.profile文件:

cd ~
vim .profile
#必须是在~目录下,否则会在当前目录下新建.profile,后续操作就没用了。

#复制以下内容,按i,粘贴到.profile文件末尾
export GOROOT=/usr/local/go
export GOPATH=/home/go
export PATH=$PATH:/usr/local/go/bin
#按esc 输入 :wq! 进行保存
#最后执行.profile
source .profile

最后要到/home目录下新建go文件夹,用来存放后续fabric源码。

cd /home
mkdir go
cd go
mkdir pkg src bin

3、启动第一个fabric网络

3.1用git获取fabric开源代码

#在go的src目录下执行
git clone https://github.com/hyperledger/fabric.git

如果git clone速度过慢可以参考这篇博客:
https://blog.csdn.net/zwkkkk1/article/details/94476963

源码下载完毕后,进入fabric目录将版本切换至fabric1.4.3:

#在fabric目录下执行
cd /home/go/src/fabric
git checkout v1.4.3

3.2拉取镜像

3.2.1
在 fabric/scripts 编辑bootstrap.sh 脚本(建议先把原本自带的bootstrap.sh用cp备份一下),删除bootstrap.sh 中的samplesInstall() 和 binariesInstall() 两个方法,保存退出后把bootstrap.sh移动到fabric同级目录。

vim bootstrap.sh

删除以下两个方法
Fabric学习笔记——一、环境搭建(小白入门)_第1张图片
Fabric学习笔记——一、环境搭建(小白入门)_第2张图片

3.2.2
获取fabric镜像服务

wget https://github.com/hyperledger/fabric/releases/download/v1.4.4/hyperledger-fabric-linux-amd64-1.4.4.tar.gz
wget https://github.com/hyperledger/fabric-ca/releases/download/v1.4.4/hyperledger-fabric-ca-linux-amd64-1.4.4.tar.gz

如果特别慢得话可以用WinSCP,复制网址到浏览器,先下载到本机再用WinSCP直接拖拽到服务器上,然后通过命令移动到/home/go/src目录下,就可以了。
Fabric学习笔记——一、环境搭建(小白入门)_第3张图片
通过tar指令解压到/home/go/src目录后(和fabric同级目录),bin目录下会出现以下结果,config目录会出现下下结果
Fabric学习笔记——一、环境搭建(小白入门)_第4张图片

Fabric学习笔记——一、环境搭建(小白入门)_第5张图片
获取fabric-samples

cd /home/go/src#在fabric的同级目录下获取fabric-samples,如果本来就在此目录下,可以跳过此步骤
git clone https://github.com/hyperledger/fabric-samples.git
cd fabric-samples
git checkout v1.4.3
#把这个版本也改成1.4.3

将bin和config复制到fabric-samples目录下

cd /home/go/src#如果本来就在此目录下,可以跳过此步骤
cp -r bin/ fabric-samples/
cp -r config/ fabric-samples/

使用 ./ 执行之前编辑过的bootstrap.sh

./bootstrap.sh 1.4.3 1.4.3 0.4.15

使用docker images查看镜像是否拉取成功
Fabric学习笔记——一、环境搭建(小白入门)_第6张图片
最后把fabric-samples的bin加入路径PATH

vim /etc/profile
#在profile最后加上
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin:/home/go/src/fabric-samples/bin
#保存退出后执行
source /etc/profile

3.3使用镜像加速器

首先打开下面的网址,登录阿里云,获取加速器地址

https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

Fabric学习笔记——一、环境搭建(小白入门)_第7张图片

将加速器地址写入到下面的代码中,并重新启动docker

mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
 {
 "registry-mirrors": ["上图红框中的加速器地址"]
 }
 EOF
 
systemctl daemon-reload
systemctl restart docker

3.4启动first-network

cd /home/go/src/fabric-samples/first-network
#进入first-network目录后执行启动文件
./byfn.sh up

Fabric学习笔记——一、环境搭建(小白入门)_第8张图片
如果顺利执行到END,则代表fabric环境搭建完毕。
Fabric学习笔记——一、环境搭建(小白入门)_第9张图片
如果报错error getting endorser client for channel,先把上面的channel关闭,再编辑resolv.conf

./byfn.sh down
vim /etc/resolv.conf

把这一行注释掉,options timeout:2 attempts:3 rotate single-request-reopen前面加个 # 即可。
Fabric学习笔记——一、环境搭建(小白入门)_第10张图片
遇到其他问题可以参考:

https://blog.csdn.net/Doudou_Mylove/article/details/103903800

最后再试一次能否启动成功,最后channel一定要记得关!!!

你可能感兴趣的:(区块链,linux,docker,ubuntu,go)