IBM Hyperledger Fabric应用项目 -- 1安装配置Hyperledger Fabric开发环境,及Samples项目的调试运行

1. 环境说明

Ubuntu 16.04 操作系统 [1],本文作者在VirtualBox虚拟机下运行Ubuntu 16.04操作系统 [2].



2. 安装项目依赖模块

根据Hyperledger的官方文档 [3] 要求,正式运行Hyperledger之前,需要预先安装好cURL, go, node.js, npm, pythondocker。下面我们依次安装上述六大依赖模块。


2.1. 安装cURL模块

官方文档要求安装最新版本的cURL。

在cURL的官网找到最新的版本curl-7.64.1.tar.gz。

$ cd Downloads
$ wget https://curl.haxx.se/download/curl-7.64.1.tar.gz
$ tar -xvf curl-7.64.1.tar.gz
$ cd curl-7.64.1
$ ./configure
$ make
$ sudo make install

删除安装包。

$ cd Downloads
$ rm -rf curl-7.64.1.tar.gz
$ rm -rf curl-7.64.1

查看cURL的版本。

$ curl --version
curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp 
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP UnixSockets

如果cURL发生curl: symbol lookup error错误,请重装openssl和curl。


2.2. 安装go模块

官方文档建议安装1.9.x版本的Go。不建议安装1.8.x版本的Go。

删除旧版本的Go。

$ sudo apt-get remove golang-go
$ sudo apt-get remove --auto-remove golang-go
$ go version
-bash: /usr/bin/go: No such file or directory

在Go的官网找到1.9版本go1.9.7.linux-amd64.tar.gz。

$ cd Downloads
$ wget https://dl.google.com/go/go1.9.7.linux-amd64.tar.gz
$ tar -xzf go1.9.7.linux-amd64.tar.gz
$ sudo mv go /usr/local

配置系统环境变量。

$ sudo vi ~/.bashrc

末尾添加下面一行。

export PATH=$PATH:/usr/local/go/bin

保存退出,立即生效。

$ source ~/.bashrc

查看版本信息。

$ go version

另外,创建go的工作路径,作为go get等命令的默认工作路径,如下,

$ cd $HOME
$ mkdir go
$ cd go
$ mkdir bin

配置工作路径,如下,

$ sudo vi ~/.bashrc

末尾追加下面两行。

export GOPATH=$HOME/go
export PATH=$PATH:$HOME/go/bin

保存退出,立即生效。

$ source ~/.bashrc

2.3. 安装node.js模块

官方文档建议安装8.9.x版本的Node.js。不建议安装9.x版本的Node.js。

安装8.16.0版的Nodejs

$ curl -sL https://deb.nodesource.com/setup_8.x -o nodesource_setup.sh
$ sudo bash nodesource_setup.sh
$ sudo apt-get install nodejs

更新npm。官方文档建议通过如下命令更新。

$ sudo npm install [email protected] -g
$ npm --version
6.9.0

更新Nodejs版本至8.9.4。

$ wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | bash
$ // 关闭当前终端。重新打开一个终端,然后,执行后续命令
$ sudo npm -g install nvm
$ nvm ls available
$ nvm install 8.9.4
$ nvm use 8.9.4

查看node.js的版本。

$ node -v
v8.9.4

2.5. 安装python模块
官方文档建议使用python2.7确保npm install的成功运行。

$ sudo apt-get install python

2.6. 安装Docker ce模块
官方文档建议使用17.06.2及以上版本的Docker ce。1.14.0及以上版本的Docker Compose。

根据Docker ce安装教程。

$ sudo apt-get install docker
$ sudo apt-get install docker.io
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
$ sudo apt-get update
$ apt-cache policy docker-ce
$ sudo apt-get install -y docker-ce
$ sudo apt-get install docker-compose
$ sudo apt-get upgrade

注意:此处如果出现“apt-get update” "fails to fetch"的错误,请清空本地web缓存;否则略过。

$ apt-get clean
$ rm -rf /var/lib/apt/lists/
$ apt-get clean
$ apt-get update // 重新打开一个新的终端,再次执行更新
$ sudo apt-get update // 更新成功!

查询docker ce版本

$ docker version
Client:
 Version:           18.09.6
 API version:       1.39
 Go version:        go1.10.8
 Git commit:        481bc77
 Built:             Sat May  4 02:35:27 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          18.09.6
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.10.8
  Git commit:       481bc77
  Built:            Sat May  4 01:59:36 2019
  OS/Arch:          linux/amd64
  Experimental:     false

注意:此处如果出现下列错误 ‘Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.39/version: dial unix /var/run/docker.sock: connect: permission denied’,请添加regular user到docker用户组。否则,略过。


查询docker-compose版本

$ docker-compose --version

注意:此处如果出现docker-compose安装失败的问题,请根据官方安装指南再次安装。



3. 下载Hyperledger Fabric Samples及Docker镜像

下载Hyperledger Fabric Samples以及Docker镜像

$ curl -sSL https://goo.gl/6wtTN5 | bash -s 1.1.0

下载完毕之后,本地多了一个命名为fabric-samples的文件夹,效果如下,
IBM Hyperledger Fabric应用项目 -- 1安装配置Hyperledger Fabric开发环境,及Samples项目的调试运行_第1张图片



4. 调试运行Hyperledger Fabric之Samples

4.1. 进入first-network文件夹

Ubuntu终端命令如下,

$ cd fabric-samples
$ cd first-network

4.2. 部署一个Hyperledger Fabric区块链网络

Ubuntu终端命令如下,

$ ./byfn.sh up

效果如下,
IBM Hyperledger Fabric应用项目 -- 1安装配置Hyperledger Fabric开发环境,及Samples项目的调试运行_第2张图片


4.3. 关闭该Hyperledger Fabric网络

第一次运行first-network之后,Ubuntu终端关闭应用docker容器的命令如下;如果第一次不关闭,第二次启动first-network之前,需要先关闭该应用的docker容器再重启。

$ ./byfn.sh down

效果如下,
IBM Hyperledger Fabric应用项目 -- 1安装配置Hyperledger Fabric开发环境,及Samples项目的调试运行_第3张图片

至此,Hyperledger Fabric之Samples中的first-network示例运行完毕!



参考文献

[1. Ubuntu 16.04操作系统] http://releases.ubuntu.com/16.04/

[2. VirtualBox虚拟机] https://www.virtualbox.org/wiki/Downloads

[3. Hyperledger Fabric官方文档] https://hyperledger-fabric.readthedocs.io/en/release-1.4/


备注

[备注一] 初稿,2019年01月25号。
[备注二] 二稿,2019年07月14号。添加Go的默认源代码路径/usr/local/go/bin,Go的默认工作路径$HOME/go,Go的默认工作路径中的bin路径$HOME/go/bin——三大路径的配置工作。完美测试通过。

你可能感兴趣的:(区块链原理和应用,区块链技术原理和应用)