Hyperledger fabric Building Your First Network on MacOS

本文主要基于 Hyperledger fabric 的官方文档和网上较新的博客,在一台MacOS上实现了Building Your First Network。

Prerequisites

按照官网的要求Prerequisites,需要安装docker,Go语言以及Node等。本机配置如下:

1
2
3
4
5
6
7
8
9
10
$ docker --version
Docker version 18.06.1-ce, build e68fc7a
$ docker-compose --version
docker-compose version 1.22.0, build f46880f
$ go version
go version go1.11 darwin/amd64
$ node --version
v10.8.0
$ npm --version
6.2.0

其中,

  • docker我下载的安装包安装的,安装过程中也安装了docker-compose.
  • go是通过brew install go安装的,记得添加环境变量。
    vim ~/.bash_profile

    1
    2
    export GOPATH=$HOME/go
    export PATH=$PATH:$GOPATH/bin
  • node是下载的pkg安装的。

环境搭建

工具都准备好之后,接下来开始下载镜像,把这个页面下的内容全部保存到新建的images.sh文件中。

因为我们使用的是1.1.0版本,把其中的

1
export VERSION=${1:-1.0.5}

改为

1
export VERSION=${1:-1.1.0-preview}

然后执行,下载镜像(用华严的网一直无法下载,vpn也开了,晚上回到学校用的教育网下载没问题):

sh images.sh

下载好之后,用以下命令来查看镜像是否都下载成功:

docker images
byfn1

下载Fabric-Samples源码

此处下载。

示例运行

cd first-network
./byfn.sh generate
./byfn.sh up
byfn2
出现以下画面说明示例运行成功。
./byfn.sh down

examples/e2e_cli

参考 https://www.jianshu.com/p/e108cf655c0f
从git上拉取Hyperledger Fabric:
git clone git@github.com:hyperledger/fabric.git
进入项目文件夹,查看 tag:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
git tag
baseimage-v0.0.11
v0.6.0-preview
v0.6.1-preview
v1.0.0
v1.0.0-alpha
v1.0.0-alpha2
v1.0.0-beta
v1.0.0-rc1
v1.0.1
v1.0.2
v1.0.3
v1.0.4
v1.0.5
v1.0.6
v1.1.0
v1.1.0-alpha
v1.1.0-preview
v1.1.0-rc1

上面的tag表示相应的fabric项目的版本, fabric项目现在还处于早期发展阶段, 修改频繁且不一定能向下兼容, 所以在继续之前请先确定一个版本,避免后面踩坑。 笔者在这里使用v1.0.0。

1
2
3
4
git checkout v1.0.0
git branch
* (HEAD detached at v1.0.0)
release-1.1

启动项目

进入fabric文件夹下的examples/e2e_cli, 下面我们要测试e2e_cli这个demo。
执行download-dockerimage.sh,程序将会通过docker拉取项目所需镜像, 为了统一版本,请指定拉取镜像的版本号:

chmod +x download-dockerimages.sh
./download-dockerimages.sh -c x86_64-1.0.0 -f x86_64-1.0.0

现在执行完整脚本:

./network_setup.sh up <channel-ID>

执行成功后使用以下命令终止网络:

./network_setup.sh down