[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 地址进行修改

image
image
#打开 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/hyperledger/fabric.git 这个命令后确实速度非常慢,那么可以使用下面的方法获取 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.

image

两个二进制文件的下载地址为(注意:根据自己查看bootstrap.sh文件得到相应版本号,从而修改地址其中的版本号):

https://github.com/hyperledger/fabric/releases/download/v2.2.0/hyperledger-fabric-linux-amd64-2.2.0.tar.gz

https://github.com/hyperledger/fabric-ca/releases/download/v1.4.7/hyperledger-fabric-ca-linux-amd64-1.4.7.tar.gz

我已经把这两个文件放在百度网盘中了,要的可以自取(地址,提取码: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 文件中的第二个步骤已经弄完了,下面进行第三个步骤

image

5.3.下载docker镜像

回到放置 bootstrap.sh 文件的目录下面,然后执行下面的命令

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

下载完成后,会看到终端输出已安装的 docker 镜像

image

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

6. 运行 fabric 网络

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

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

启动成功后,会输出正在运行的三个 docker 容器。

image

到这里,就已经完成了 fabric 的安装和第一次运行,后面还会继续推出关于 fabric 系列的文章,敬请期待!

#网络运行完成后,使用如下命令关闭网络
./network.sh down
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容