Hyperledger Fabric(入门)

加油码农 2019-06-28

入门

在我们开始之前,如果你还没有这样做,你可能希望检查是否已经在开发区块链应用程序和/或运行Hyperledger Fabric的平台上安装了所有前提条件。

一旦安装了前提条件,就可以下载并安装HyperLedger Fabric了,当我们在Fabric二进制文件上开发真正的安装程序时,我们提供了一个可以将示例、二进制文件和Docker映像安装到你的系统中的脚本,脚本还会将Docker映像下载到本地注册表。

前提条件

在我们开始之前,如果你还没有这样做,你可能希望检查您是否已经在开发区块链应用程序和/或运行Hyperledger Fabric的平台上安装了以下所有前提条件。

安装cURL

如果还没有安装cURL工具,或者文档中出现运行cURL命令的错误,请下载最新版本的cURL工具。

如果你在Windows系统上,请查看下面关于的Windows附件条件。

Docker和Docker Compose

你需要将以下安装在你将要操作或开发Hyperledger Fabric的平台上:

  • MacOSX,*nix,或Windows 10:Docker - Docker版本17.06.2-ce或更高版本
  • 旧版本的Windows:Docker Toolbox - 同样,Docker版本Docker 17.06.2-ce或更高版本

你可以在终端提示符中检查你安装的Docker版本:

docker --version
为Mac或Windows安装Docker,或者Docker Toolbox也会安装Docker Compose,如果你已经安装了Docker,你应该检查是否安装了Docker Compose版本1.14.0或更高版本,如果没有,我们建议你安装Docker的最新版本。

你可以从终端提示符中使用以下命令检查安装的Docker Compose程序的版本:

docker-compose --version

Go编程语言

Hyperledger Fabric的许多组件使用Go编程语言。

  • Go版本1.10.x

假设我们将在Go中编写链代码程序,有两个环境变量需要正确设置;你可以通过将这些设置放在适当的启动文件中使其永久存在,比如你的个人~/.bashrc文件,如果你在Linux下使用bash shell。

首先,必须将环境变量GOPATH设置为指向包含下载的Fabric代码库的Go工作区,如下所示:

export GOPATH=$HOME/go
必须设置GOPATH变量

即使在Linux中,Go的GOPATH变量可以是一个冒号分隔的目录列表,并且如果未设置,则使用默认值$HOME/go,当前Fabric构建框架仍然需要你设置并导出该变量,而且它必须只包含Go工作空间的单个目录名。(这个限制可能在将来的版本中被移除。)

其次,你应该(同样,在适当的启动文件中)扩展命令搜索路径以包含Go bin目录,例如下面Linux下的bash示例:

export PATH=$PATH:$GOPATH/bin

虽然这个目录可能不存在于新的Go工作区安装中,但是稍后Fabric构建系统将使用少量的Go可执行文件来填充它,构建系统的其他部分将使用这些文件,因此,即使你目前还没有这样的目录,也可以像上面那样扩展shell搜索路径。

Node.js Runtime and NPM

如果你使用Node.js的Hyperledger Fabric SDK开发Hyperledger Fabric应用程序,你需要安装版本8.9.x的Node.js。

暂时不支持Node.js 9.x。

安装Node.js将会安装NPM,但是,建议你确认安装了NPM的版本,你可以使用以下命令升级npm工具:
npm install [email protected] -g

Python

以下仅适用于ubuntu 16.04用户.

默认情况下,Ubuntu 16.04自带Python 3.5.1作为python3二进制版本安装,Fabric Node.js SDK需要Python 2.7的迭代才能成功完成npm install操作,使用以下命令检索2.7版本:

sudo apt-get install python

检查你的版本:

python --version

Windows附加条件

如果你是在Windows 7上开发的,那么你将希望在Docker Quickstart终端中工作,该终端使用Git Bash,并提供比内置Windows shell更好的选择。

然而,经验表明这是一个功能有限的开发环境,它适用于运行基于Docker的场景,例如入门,但是你可能对涉及makedocker命令的操作有困难。

在Windows 10上,你应该使用原生Docker发行版,并且可以使用Windows PowerShell,但是,要使binaries命令成功运行,你仍然需要使用uname命令,你可以将其作为Git的一部分获得,但要注意,只支持64位版本。

在运行任何git clone命令之前,运行以下命令:

git config --global core.autocrlf false
git config --global core.longpaths true

你可以通过以下命令检查这些参数的设置:

git config --get core.autocrlf
git config --get core.longpaths

它们需要分别为falsetrue

Git和Docker Toolbox附带的curl命令很旧,不能正确地处理入门时使用的重定向,请确保安装并使用cURL下载页面中的新版本。

为Node.js你还需要必要的Visual Studio c++构建工具,这些工具是免费提供的,可以通过以下命令安装:

npm install --global windows-build-tools

有关详细信息,请参阅NPM windows-build-tools页面

完成此操作后,还应该使用以下命令安装NPM GRPC模块:

npm install --global grpc

你的环境现在应该已经准备好进行入门示例和教程了。

如果你有本文档未解决的问题,或者遇到任何教程中的问题,请访问仍然有问题?页面,获取关于在何处找到额外帮助的一些提示。

安装示例、二进制文件和Docker映像

当我们为Hyperledger Fabric二进制开发真正的安装程序时,我们提供了一个可以下载并安装示例和二进制文件到你的系统的脚本,我们认为,你会发现安装的示例应用程序对了解有关Hyperledger Fabric的功能和操作非常有用。

如果你在Windows上运行,你将希望使用Docker Quickstart终端来执行即将到来的终端命令,如果你之前没有安装,请看前提条件。

如果你在Windows 7或macOS上使用Docker Toolbox,你将需要使用一个在C:\Users(Windows 7)或/Users(macOS)下的位置安装和运行样例。

如果你在Mac上使用Docker,你需要使用/Users/Volumes/private/tmp下的位置,要使用不同的位置,请参阅Docker文档的共享文件

如果你在Windows中使用Docker,请参考Docker文档中的共享驱动器,并在其中一个共享驱动器下使用一个位置。

确定机器上要放置fabric-samples存储库的位置,并在终端窗口中输入该目录,下面的命令将执行以下步骤:

  1. 如果需要,克隆hyperledger/fabric-samples存储库
  2. 检出适当的版本标记
  3. 在fabric-samples存储库的根目录中安装指定版本的Hyperledger Fabric平台专用二进制文件和配置文件
  4. 下载Hyperledger Fabric docker镜像指定的版本

准备好之后,在你将要安装Fabric样例和二进制文件的目录中,继续执行以下命令:

curl -sSL http://bit.ly/2ysbOFE | bash -s 1.2.0
如果你想下载Fabric,Fabric-ca和第三方Docker映像,你必须将版本标识符传递给脚本。
curl -sSL http://bit.ly/2ysbOFE | bash -s <fabric> <fabric-ca> <thirdparty>
curl -sSL http://bit.ly/2ysbOFE | bash -s 1.2.0 1.2.0 0.4.10
如果在运行上述curl命令时出现错误,那么可能使用的curl版本太旧,无法处理重定向或不支持的环境。

请看前提条件部分,了解关于在何处找到curl的最新版本并获得正确环境的更多信息,或者你可以替换未缩短的URL:https://github.com/hyperledger/fabric/blob/master/scripts/bootstrap.sh

你可以对任何已发布的Hyperledger Fabric版本使用上面的命令,只需用希望安装的版本的版本标识符替换1.2.0即可。

上面的命令下载并执行bash脚本,该脚本将下载并提取所有平台特定的二进制文件,你将需要这些二进制文件来建立您的网络,并将它们放到上面创建的克隆repo中,它检索下列特定于平台的二进制文件:

  • cryptogen
  • configtxgen
  • configtxlator
  • peer
  • orderer
  • idemixgen
  • fabric-ca-client

并将它们放在当前工作目录的bin子目录中。

你可能想要将其添加到PATH环境变量中,这样就可以在不完全限定每个二进制文件的路径的情况下获取这些环境变量。e.g.:

export PATH=<path to download location>/bin:$PATH

最后,脚本将从Docker Hub下载Hyperledger Fabric docker映像到你本地Docker注册表,并将其标记为“latest”。

脚本列出了在结束时安装的Docker映像。

看看每个镜像的名字;这些组件将最终构成我们的Hyperledger Fabric网络,你还会注意到,同一镜像ID有两个实例 - 一个标记为“amd64-1.x.x”,一个标记为“latest”,在1.2.0之前,下载的镜像由uname -m确定,显示为“x86_64-1.x.x”。

在不同的体系结构,将用标识体系结构的字符串替换x86_64/amd64。如果你有本文档未解决的问题,或者遇到任何教程中的问题,请访问仍然有问题?页面,获取关于在何处找到额外帮助的一些提示。

Hyperledger Fabric SDKs

Hyperledger Fabric提供了许多SDK来支持各种编程语言,官方发布了两款针对Node.js和Java的SDK:

另外,还有3个SDK还没有正式发布(对于Python、Go和REST),但是它们仍然可以下载和测试:

Hyperledger Fabric CA

Hyperledger Fabric提供一个可选的证书授权服务,你可以选择使用该服务生成证书和密钥材料,以配置和管理区块链网络中的身份。但是,可以使用任何可以生成ECDSA证书的CA。

相关推荐