迈出第一步:做好提前准备

目标

  1. 检查操作系统
  2. 检查并安装所需工具
  3. 可选安装Node及npm

任务实现

1.2.1 操作系统

学习,必须要有一个好的场地,我们耗费精力给你挑选好了一个安全又方便的场地。但是该场地有一些硬性条件,请一定要注意。

推荐使用的操作系统为64位的 Ubuntu 16.04 LTS,系统内核为 GNU/Linux 4.13.0-36-generic x86_64。

硬件资源要求:内存最低为2GB,最好3G以上; 磁盘空间为30GB或更高。

如果计算机默认为Windows操作系统, 可以在Windows系统中安装一个VMware虚拟机应用程序, 然后在VMWare虚拟机中安装Ubuntu 16.04系统, 最后在Window操作系统中再安装一个远程连接工具(如XShell或SecureCRT),以方便连接并操作Ubuntu系统。

如果你使用的是Mac本本,同样建议安装使用虚拟机的方式来学习。

1.2.2 安装所需工具

选好学习场地之后,挑选一些趁手的武器放在场地中,将来就不会再去费尽心血去考虑什么情况下使用什么武器解决的事情了。

1.2.2.1 安装git

首先,我们来安装git工具,git是一个非常优秀的免费、开源的版本管理控制工具, 我们可以使用git工具方便地下载官方(Golang、Hyperledger Fabric等等)在Github网站上发布的相关源代码或其它内容。

安装git工具使用如下命令:

$ sudo apt update
$ sudo apt install git

MAC OS系统中默认已安装。如未安装,可以在git官方网站:https://git-scm.com/downloads 页面中选择相应系统的安装包下载并安装

1.2.2.2 安装cURL

使用如下命令安装cURL:

$ sudo apt install curl

各系统的cURL安装包可以在 https://curl.haxx.se/download.html 页面中选择下载并安装

1.2.2.3 安装Docker

欲练神功,挥刀自宫,噢,停下停下,说错了。要学的这门神功,必须先有一副金刚不坏之躯,而不是自残,所以先服下这颗神丹。达到金刚不坏、万毒不侵之躯。

查看系统中是否已经安装Docker:

$ docker --version

使用如下命令安装Docker的最新版本:

$ sudo apt update
$ sudo apt install docker.io

查看Docker版本信息

$ docker --version

输出: Docker version 17.03.2-ce, build f5ec1e2

1.2.2.4 安装Docker-compose

确定系统中是否已安装docker-compose工具

$ docker-compose --version

如系统提示未安装,则使用如下命令安装docker-compose工具:

$ sudo apt install docker-compose

安装成功后,查看Docker-Compose版本信息

$ docker-compose --version

输出: docker-compose version 1.8.0, build unknown

1.2.2.5 安装Golang

Fabric1.0.0版本要求Go语言1.7以上版本,Fabric1.1.0版本要求Go1.9以上版本,Fabric1.2.0版本要求Go1.10以上版本, 我们使用Fabric1.2.0版本, 所以从官方下载最新版本的Golang。

1.2.2.5.1 下载Golang

使用wget工具下载Golang的最新版本压缩包文件 go1.10.3.linux-amd64.tar.gz

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

下载Golang压缩包文件,需要操作系统能够保证正常访问Golang官方网站

下载过程可能耗时较长(取决于具体网络情况),请耐心等待。

其它系统可以在Golang官方: https://golang.org/dl/ 下载页面中查找相应的安装包下载安装。

下载完成后,文件会保存在当前目录下。可以使用 ll 命令查看

Golang下载文件
1.2.2.5.2 解压文件

使用 tar 命令将下载后的压缩包文件解压到指定的 /usr/local/ 路径下

$ sudo tar -zxvf go1.10.3.linux-amd64.tar.gz -C /usr/local/


如果在解压过程中出现如下错误:

gzip: stdin: unexpected end of file
tar: Unexpected EOF in archive
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now
或
gzip: stdin: unexpected end of file
tar: 归档文件中异常的 EOF
tar: 归档文件中异常的 EOF
tar: Error is not recoverable: exiting now

说明下载的tar压缩包文件有问题, 如没有下载完整或压缩包数据损坏。请删除后重新下载并解压至指定的目录中。


1.2.2.5.3 配置环境变量

解压后,Golang可以让系统的所有用户正常使用, 所以我们使用 vim 文件编辑工具打开系统的 profile 文件进行编辑:

$ sudo vim /etc/profile

如果只想让当前登录用户使用Golang, 其它用户不能使用, 则编辑当前用户$HOME目录下的 .bashrc 或 .profile 文件, 在该文件中添加相应的环境变量即可。

在profile文件最后添加如下内容:

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

使用 source 命令,使刚刚添加的配置信息生效:

$ source /etc/profile

通过 go version命令验证是否成功:

$ go version

输出: go version go1.10.3 linux/amd64

如果系统中有旧版本的golang,则使用如下命令卸载旧版本的golang,然后再重新安装并配置

$ su -
# apt-get remove golang-go --purge && apt-get autoremove --purge && apt-get clean

1.2.3 安装Node及npm

1.2.3.1 安装nvm

nvm:Node Version Manager,Node.js的版本管理软件, 可以根据不同的需求场景方便地随时在Node.js的各个版本之间进行切换。

由于Node.js版本更新较快,且各版本之间差异较大;直接从Node官网安装可能需要很长时间,而且中间可能会因为网络访问及数据传输原因造成下载中断或失败等问题。为了方便安装及后期管理Node.js的版本,我们首先需要在系统中安装nvm管理工具。

使用如下命令安装nvm:

$ sudo apt update
$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.10/install.sh | bash

$ export NVM_DIR="$HOME/.nvm"
$ [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

1.2.3.2 安装Node

nvm工具安装并配置成功后, 可以直接使用nvm命令安装Node;且Node安装成功后,nvm会自动将npm工具进行安装。

使用如下命令安装Node:

$ nvm install v8.11.1

安装Node时须注意:安装版本为8.9.x或以上的Node.js,Fabric目前不支持9.x系列的Node.js版本.

安装成功输出如下内容:

Node安装成功

1.2.3.3 检查Node及npm版本

$ node -v && npm -v

输出内容如下:

v8.11.1
5.6.0

FAQ

  1. Fabric只支持Ubuntu系统吗?

    Hyperledger Fabric支持常见的Linux相关系统(如:Debian、CentOS等)和MacOS。

    由于不同操作系统或各系统的不同版本可能会造成一些问题, 所以在此推荐使用的操作系统为64位的 Ubuntu 16.04 LTS。

  2. cURL是什么,有什么作用?

    cURL是一个可以终端命令行下使用URL语法执行的开源文件传输工具。cURL支持SSL证书,HTTP POST,HTTP PUT,FTP上传,基于HTTP表单的上传,代理,HTTP / 2,cookie,用户+密码认证(Basic,Plain,Digest,CRAM-MD5,NTLM,Negotiate和Kerberos),文件转移简历,代理隧道等。

  3. 为什么要安装Docker及Docker-compose?

    Docker是一个开源的应用容器引擎, 可以为应用创建一个轻量级的、可移植的容器。

    Fabric环境依赖于Docker提供的容器服务,所以必须安装Docker环境;推荐使用1.13或更高版本。

    Compose是一个用于定义和运行多个容器的Docker应用程序的工具, 可以使用YAML文件配置相关的指定服务,运行该服务时,只需要一个简单的命令即可。

  4. 能否不使用Golang而换作其它语言环境?

    Hyperledger Fabric中的很多组件使用Golang实现,并且我们会使用Golang来编写链式代码的应用程序, 所以需要在我们的系统中安装并设置Golang环境。

  5. 一定要安装Node与npm吗?

    Node与npm工具为可选安装工具。如果后期使用Node.js的Hyperledger Fabric SDK开发Hyperledger Fabric的应用程序,则需要安装;否则无需安装。

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

推荐阅读更多精彩内容