想知道更多区块链实战技术,请百度【链客区块链技术问答社区】进入
引言
a. 说明
我们不会在本教程中详细解释 Hyperledger Fabric 的工作原理。在学习本教程之前,您应该通过Hyperledger Fabric 官网 或其它渠道学习 Hyperledger Fabric 的一些知识,以具备 Hyperledger Fabric 操作基础。
本应用实现是在基于 Ubuntu 16.04(推荐) 上完成的,但 Hyperledger Fabric 与Mac OS X、Windows和其他Linux发行版相兼容。
Hyperledger Fabric简介
Hyperledger Fabric是一个区块链框架实现,是分布式账本解决方案的平台,采用模块化架构,提供高度机密性,弹性,灵活性和可扩展性。它旨在支持不同组件的可插拔实现,以适应整个经济生态系统中存在的复杂性。
详细请参阅官方文档中的完整说明中的介绍部分:Hyperledger Fabric Blockchain
b. 所需环境及工具
Ubuntu 16.04
vim、git
docker 17.03.0-ce+
docker-compose 1.8+
Golang 1.10.x+
1.2. 安装docker
需要Docker版本17.03.0-ce或更高版本。
$ docker version
$ sudo apt install docker.io
安装完成后执行版本查询命令
$ sudo docker version
1.3. 安装docker-compose
docker-compose 1.8或更高版本是必需的。
我们目前无法一次性轻松管理多个容器。 为了解决这个问题,需要docker-compose 。
$ docker-compose version
$ sudo apt install docker-compose
安装完成后查询:
$ docker-compose version
将当前用户添加到 docker 组
$ sudo usermod -aG docker kevin
1
添加成功后必须注销/退出并重新登录(退出终端重新连接即可)
如果没有将当前用户添加到 docker 组中,在后期执行make命令时会造成错误: ERROR: Couldn’t connect to Docker daemon at http+docker://localunixsocket - is it running?
1.4. 安装Golang
需要版本1.10.x或更高。如果您使用的是 Hyperledger Fabric 1.1.x 版本,那么 Golang 版本在 1.9.x 以上
$ go version
$ wget https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz
下载受网络环境影响,如果您本地有相应的 tar 包,则直接解压到指定的路径下即可。
使用 tar 命令将下载后的压缩包文件解压到指定的 /usr/local/ 路径下
$ sudo tar -zxvf go1.10.3.linux-amd64.tar.gz -C /usr/local/
设置GOPATH & GOROOT环境变量, 通过 go env 查看GOPATH路径
$ sudo vim /etc/profile
如果只想让当前登录用户使用Golang, 其它用户不能使用, 则编辑当前用户$HOME目录下的 .bashrc 或 .profile 文件, 在该文件中添加相应的环境变量即可。
在profile文件最后添加如下内容:
export GOPATH= H O M E / g o e x p o r t G O R O O T = / u s r / l o c a l / g o e x p o r t P A T H = HOME/go export GOROOT=/usr/local/go export PATH= HOME/goexportGOROOT=/usr/local/goexportPATH=GOROOT/bin:$PATH
使用 source 命令,使刚刚添加的配置信息生效:
$ source /etc/profile
通过 go version命令验证是否成功:
$ go version
Crypto 材料已使用 Hyperledger Fabric 中的 cryptogen 工具生成,并保存在 hf-fixtures/crypto-config 目录中。有关 cryptogen 工具的更多详细信息,请 点击此处。
初始区块(genesis.block)和通道配置事务(channel.tx)已使用 Hyperledger Fabric中 的 configtxgen 工具生成,并保存在 hf-fixtures/artifacts 目录中。有关 configtxgen 工具的更多详细信息,请 点击此处。
在GOPATH的src文件夹中新建一个目录如下:
$ mkdir -p $GOPATH/src/github.com/kongyixueyuan.com/kongyixueyuan
$ cd $GOPATH/src/github.com/kongyixueyuan.com/kongyixueyuan
使用 git 命令克隆 hf-fixtures 目录当前路径
$ git clone https://github.com/kevin-hf/hf-fixtures.git
将 hf-fixtures 文件夹重命名为 fixtures
$ mv hf-fixtures/ fixtures
修改fixtures 文件夹的所属关系为当前用户
$ sudo chown -R kevin:kevin ./fixtures
提示: kevin 为安装 Ubuntu 16.04 系统时创建的用户
进入 fixtures 目录
$ cd fixtures
为了构建区块链网络,使用 docker 构建处理不同角色的虚拟计算机。 在这里我们将尽可能保持简单。如果确定您的系统中已经存在相关的所需容器,或可以使用其它方式获取,则无需执行如下命令。否则请将 fixtures 目录下的 pull_images.sh 文件添加可执行权限后直接执行。
$ chmod 777 ./pull_images.sh
$ ./pull_images.sh
提示:pull_images.sh 文件是下载 Fabric 环境所需容器的一个可执行脚本,下载过程需要一段时间(视网速情况而定),请耐心等待。另:请确定您的系统支持虚拟技术。