乐趣区

hyperledger-fabric教程ubuntu-安装-fabric并运行

首先这篇文章的目标是教会大家如何在 ubuntu 零碎上装置 hyperledger fabric 并运行起来,因为目前网络上所有的教程都是之前的 fabric 版本,然而当初的 fabric 版本相较于之前版本曾经扭转了很多,如果应用之前的办法来装置 fabric 是不能胜利运行的

1. 首先得有一台零碎为 ubuntu 的服务器(centos 其实操作原理差不多),举荐应用虚拟机装置 ubuntu 零碎。

2. 更换 apt 的下载源,官网下载源很慢,咱们须要更换到国内的镜像站

2.1 进入 /etc/apt 目录

cd /etc/apt 

2.2 备份 sources.list 文件

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

2.3 关上 sources.list 文件进行批改并增加阿里云镜像

# 在文件最后面增加即可
sudo vi /etc/apt/sources.list  

#  阿里源
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.4 对 apt-get 进行更新

sudo apt-get update
sudo apt-get upgrade

3. 环境装置

咱们须要装置的软件有 go docker docker-compose nodejs

3.1 装置 go

# 进入根目录
cd ~

#下载压缩包
wget https://studygolang.com/dl/golang/go1.13.4.linux-amd64.tar.gz

#对压缩包解压
tar -xzf go1.13.4.linux-amd64.tar.gz

#删除压缩包
rm -rf go1.13.4.linux-amd64.tar.gz

#把根目录下的 go 文件夹挪动到 /usr/local/ 目录下
mv go/ /usr/local/

#批改环境变量
vi ~/.bashrc

#GOROOT 门路是软件装置门路
export GOROOT=/usr/local/go

#GOPATH 门路是平时咱们的工作门路,go 我的项目搁置在这个目录下
export GOPATH=$HOME/go

#增加到环境变量
export PATH=$PATH:/usr/local/go/bin

#退出 bashrc 文件而后更新环境变量
source ~/.bashrc

#应用 go version 能够查看 go 是否装置胜利
go version

#go env 能够查看 go 的环境变量是否设置胜利
go env

3.2 装置 docker

# 更新 apt 包索引
sudo apt-get update

# 下载安装工具
sudo apt-get install apt-transport-https ca-certificates software-properties-common

# 增加官网密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

# 退出 apt 仓库
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

# 更新 apt 包索引
sudo apt-get update

# 装置 Docker-CE
sudo apt-get install docker-ce

# 验证版本
docker version

#将非 root 组退出 docker 组
sudo groupadd docker
sudo usermod -aG docker cigod

# 增加阿里云 Docker 镜像
sudo mkdir -p /etc/docker
sudo vi /etc/docker/daemon.json

#将上面内容增加到该文件中
{"registry-mirrors": ["https://obou6wyb.mirror.aliyuncs.com"]
}

# 重启 Docker
sudo systemctl daemon-reload
sudo systemctl restart docker

3.3 装置 docker-compose

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

# 容许其余用户执行 compose 相干命令
sudo chmod +x /usr/local/bin/docker-compose

# 验证版本
docker-compose -version

3.4 装置 nodejs

# 请尽量避免在 Ubuntu 上应用 apt-get 来装置 node.js, 如果你曾经这么做了,请手动移除
sudo apt-get purge nodejs && sudo apt-get autoremove && sudo apt-get autoclean

#应用 nvm 来装置
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash

#查看 nvm 是否装置胜利
nvm --version

#查看 nodejs 能够装置的所有版本
nvm ls-remote     

#目前 nodejs 最新的长期反对版为 12.18.2
nvm install 12.18.2

#查看 nodejs 版本
node -v

4. 获取 bootstrap.sh 文件

首先解决 git clone 速度慢的问题

在网站 https://www.ipaddress.com/ 别离搜寻域名,而后失去他们的 ip 地址

github.global.ssl.fastly.net
github.com

以下截图为目前两个网址的 ip 地址,用户需依据本人查到的 ip 地址进行批改

# 关上 hosts 文件
vi /etc/hosts

#批改 hosts 文件,在文件开端增加以下内容
199.232.69.194 github.global-ssl.fastly.net
140.82.113.3 github.com

#退出文件,而后更新 DNS             
sudo /etc/init.d/networking restart

#创立目录
mkdir -p /root/go/src/github.com/hyperledger

#进入该目录
cd /root//go/src/github.com/hyperledger

#下载 fabric,应用这个地址下载速度要快很多,我在虚拟机上能达到 2M/S,因为这个 fabric 的包挺大,所以须要等一段时间
git clone https://github.com.cnpmjs.org/hyperledger/fabric.git

#下载完 fabric 后,bootstrap.sh 就在 fabric 目录下的 scripts 文件夹中 

如果应用 git clone https://github.com.cnpmjs.org… 这个命令后的确速度十分慢,那么能够应用上面的办法获取 bootstrap.sh 文件,曾经下载好 fabric 的则不须要独自下载 bootstrap.sh

关上网站 https://www.ipaddress.com/ 搜寻域名 raw.githubusercontent.com 的 ip 地址, 因为 ip 地址可能扭转,所以用户须要将本人查到的 ip 地址放上去

# 关上 hosts 文件
vi /etc/hosts

#批改 hosts 文件,在文件开端增加以下内容,留神其中的 ip 地址应该改成用户所查到的 ip
199.232.68.133 raw.githubusercontent.com

#退出文件,而后更新 DNS             
sudo /etc/init.d/networking restart

#创立目录
mkdir -p /root/go/src/github.com/hyperledger/fabric

#进入该目录
cd /root//go/src/github.com/hyperledger/fabric

#手工下载 bootstrap.sh 
wget https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap.sh

#批改权限
chmod u+x bootstrap.sh

5. 运行 bootstrap.sh 文件

因为这个文件中须要下载一些二进制的文件,然而这些文件又寄存在国外的网站上,所以下载速度十分慢,所以不能通过间接运行 bootstrap.sh 文件来装置 fabric 所需的工具和镜像。通过查看该文件发现该文件次要做了三件事,1. 下载 fabric-samples 到 fabric 目录下,2. 下载相干的二进制文件,3. 下载相干的 docker 镜像,所以咱们能够手动来实现这三个步骤

5.1 下载 fabric-samples 到 fabric 目录下

# 进入该目录
cd /root//go/src/github.com/hyperledger/fabric

#下载 fabric-samples
git clone https://github.com.cnpmjs.org/hyperledger/fabric-samples.git

5.2 下载相干的二进制文件

首先关上 bootstrap.sh 查看两个二进制文件的版本,目前最新的版本是 2.2.0 和 1.4.7.

两个二进制文件的下载地址为(留神:依据本人查看 bootstrap.sh 文件失去相应版本号,从而批改地址其中的版本号):

https://github.com/hyperledge…

https://github.com/hyperledge…

我曾经把这两个文件放在百度网盘中了,要的能够自取(地址,提取码:zn0v)

如果大家想本人下载最新的版本最好应用 IDM(Internet Download Manager)下载。

而后大家能够通过 filezilla 软件或者其他软件把这两个文件放到 /root/go/src/github.com/hyperledger/fabric/fabric-samples/ 这个目录上面

# 在该目录上面解压这两个压缩包
tar -xzf hyperledger-fabric-linux-amd64-2.2.0.tar.gz
tar -xzf hyperledger-fabric-ca-linux-amd64-1.4.7.tar.gz

解压实现之后会在这个目录上面生成一个 /bin 文件夹,bin 目录上面寄存的都是一些生成 fabric 网络所需的工具,到目前为止,bootstrap 文件中的第二个步骤曾经弄完了,上面进行第三个步骤

5.3. 下载 docker 镜像

回到搁置 bootstrap.sh 文件的目录上面,而后执行上面的命令

# 该命令会下载所需的 docker 镜像
./bootstrap.sh -s -b

下载实现后,会看到终端输入已装置的 docker 镜像

到目前为止,运行 fabric 网络所需的工具都已装置,上面进行第一次网络的运行。

6. 运行 fabric 网络

# 进入上面这个目录
cd /root/go/src/github.com/hyperledger/fabric/fabric-samples/test-network

#应用该命令启动网络
./network.sh up

启动胜利后,会输入正在运行的三个 docker 容器。

到这里,就曾经实现了 fabric 的装置和第一次运行,前面还会持续推出对于 fabric 系列的文章,敬请期待!

# 网络运行实现后,应用如下命令敞开网络
./network.sh down
退出移动版