构建Fabric的web应用--搭建一个Fabric网络环境(一)

想知道更多区块链实战技术,请百度【链客区块链技术问答社区】进入

引言
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. 先决条件
    1.1. 安装 vim、git
    $ sudo apt install vim
    $ sudo apt install git

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= GOROOT/bin:$PATH

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

$ source /etc/profile

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

$ go version

  1. 网络环境
    2.1. 网络环境准备
    Hyperledger Fabric 处理交易时需要大量的证书来确保在整个端到端流程(TSL,身份验证,签名块…)期间进行加密。 为了直接了解问题的核心,我们已经在 github 上为您的网络环境准备了所有相关的内容, 不在此教程中讲解。

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 环境所需容器的一个可执行脚本,下载过程需要一段时间(视网速情况而定),请耐心等待。另:请确定您的系统支持虚拟技术。

猜你喜欢

转载自blog.csdn.net/weixin_44172023/article/details/85681179