尝试编译Hyperledger Fabric

Hyperledger Fabric项目可以通过下载二进制文件来使用。

    • Install Binaries and Docker Images

 

    Download Platform-specific Binaries

既然这里作为开源软件,源码是公开的,所以可能有一些人想要追随最新的情况或者出于其他一些原因,但我想顺便从源码编译。

1. 搭建Hyperledger Fabric的构建

在Github的代码库中,至少有10个与Hyperledger Fabric相关的项目被公开。首先,我们将构建fabric-baseimage来创建用于开发的容器,然后使用fabric-baseimage构建fabric-ca和fabric。

    • fabric-baseimage

 

    • fabric-ca

 

    fabric

2. 构建基于fabric-baseimage的镜像

首先,我们将使用以下步骤构建fabric-baseimage。假设您已经安装了用于开发fabric的Go并已设置环境变量。

这里安装了 Go 1.9.1,并进行了以下配置。

GOPATH=/usr/local
GOROOT=/usr/local/go

让我们开始吧。 ba.)

cd /usr/local
mkdir -p github.com/hyperledger
cd github.com/hyperledger
git clone https://github.com/hyperledger/fabric-baseimage.git

现在我尝试通过标签来确认当前的发布版本。

cd fabric-baseimage
git tag
...
v0.4.2

截至目前(2017/10/14),已发布至版本v0.4.2.

在克隆的目录中,将标签切换为v0.4.2并尝试进行实际构建。

git checkout refs/tags/v0.4.2
make

如果在这里查看Makefile,您将看到它的版本是v0.4.2,因此IS_RELEASE=true,但如果在主分支上的话,则会如下所示。

VERSION ?= 0.4.3
IS_RELEASE=false

如果在这个状态下进行构建,会生成0.4.3版本的快照。这里我们尝试使用0.4.2版本进行构建。

$ docker images
REPOSITORY                     TAG                 IMAGE ID            CREATED           SIZE
hyperledger/fabric-baseimage   armv7l-0.4.2        33ebe04e2ec2        12 hours ago        1.15GB
hyperledger/fabric-baseimage   latest              33ebe04e2ec2        12 hours ago        1.15GB
hyperledger/fabric-basejvm     armv7l-0.4.2        9e1e5e3400b1        15 hours ago        456MB
hyperledger/fabric-basejvm     latest              9e1e5e3400b1        15 hours ago        456MB
hyperledger/fabric-baseos      armv7l-0.4.2        fe695ff1313f        15 hours ago        171MB
hyperledger/fabric-baseos      latest              fe695ff1313f        15 hours ago        171MB
armv7/armhf-ubuntu             latest              4d7ccbc584c8        11 months ago       122MB

是的,我使用树莓派构建,但在我的环境中只需要不到3个小时(云端大约30分钟)。

3. fabric-ca的构建

我接着尝试构建fabric-ca。

cd /usr/local/src/github.com/hyperledger
git clone https://github.com/hyperledger/fabric-ca.git
cd fabric-ca
git tag
git checkout refs/tags/v1.0.3

当我克隆标签并查看时,发现当前版本为v1.0.3(2017/10/14日发布),因此我选择了这个版本。

然而,当查看Makefile中的BASEIMAGE_RELEASE时,发现其版本为0.3.1,似乎与fabric-baseimage版本不匹配。在此情况下,可以将fabric-baseimage更新至0.3.1,但我们建议修改Makefile并使用0.4.2来构建。

$ vi Makefile
BASEIMAKE_RELEASE = 0.4.2
$ make docker

在构建完成后,将创建容器。在我的环境中,构建大约需要8分钟(在云端则不到2分钟)。

$ docker images
REPOSITORY                     TAG                 IMAGE ID            CREATED           SIZE
hyperledger/fabric-ca          armv7l-1.0.3        7fa1e410181c        6 minutes ago       240MB
hyperledger/fabric-ca          latest              7fa1e410181c        6 minutes ago       240MB

4. fabric构建

最后编译fabric。

cd /usr/local/src/github.com/hyperledger
git clone https://github.com/hyperledger/fabric.git
cd fabric
git tag
git checkout refs/tags/v1.0.3

我们将尝试使用最新的fabric标签来构建(日期为2017/10/14)。与fabric-ca类似,由于这里使用的是0.3.2作为baseimage,我们将对其进行修正,并选择使用0.4.2来构建。

$ vi .baseimage-release
0.4.2
$ make docker

如果能够构建成功,将会创建许多容器,如下所示。在我的环境中,大约需要28分钟(在云端略少于7分钟)。

$ docker images
REPOSITORY                     TAG                 IMAGE ID            CREATED           SIZE
hyperledger/fabric-tools       armv7l-1.0.3        23b8093b375e        4 minutes ago       1.21GB
hyperledger/fabric-tools       latest              23b8093b375e        4 minutes ago       1.21GB
hyperledger/fabric-couchdb     armv7l-1.0.3        6df83554f29a        7 minutes ago       1.37GB
hyperledger/fabric-couchdb     latest              6df83554f29a        7 minutes ago       1.37GB
hyperledger/fabric-kafka       armv7l-1.0.3        cd4eb25a856d        18 minutes ago      1.18GB
hyperledger/fabric-kafka       latest              cd4eb25a856d        18 minutes ago      1.18GB
hyperledger/fabric-zookeeper   armv7l-1.0.3        0fdf2dcbdf9c        19 minutes ago      1.2GB
hyperledger/fabric-zookeeper   latest              0fdf2dcbdf9c        19 minutes ago      1.2GB
hyperledger/fabric-testenv     armv7l-1.0.3        b9d161f73949        20 minutes ago      1.28GB
hyperledger/fabric-testenv     latest              b9d161f73949        20 minutes ago      1.28GB
hyperledger/fabric-buildenv    armv7l-1.0.3        5850e536d9df        24 minutes ago      1.2GB
hyperledger/fabric-buildenv    latest              5850e536d9df        24 minutes ago      1.2GB
hyperledger/fabric-orderer     armv7l-1.0.3        1f93ac8b56ad        25 minutes ago      190MB
hyperledger/fabric-orderer     latest              1f93ac8b56ad        25 minutes ago      190MB
hyperledger/fabric-peer        armv7l-1.0.3        4ec6198cf40e        26 minutes ago      193MB
hyperledger/fabric-peer        latest              4ec6198cf40e        26 minutes ago      193MB
hyperledger/fabric-javaenv     armv7l-1.0.3        82fecd854b30        27 minutes ago      1.26GB
hyperledger/fabric-javaenv     latest              82fecd854b30        27 minutes ago      1.26GB
hyperledger/fabric-ccenv       armv7l-1.0.3        cbe8d829188d        28 minutes ago      1.18GB
hyperledger/fabric-ccenv       latest              cbe8d829188d        28 minutes ago      1.18GB

5. 运行fabric-samples

完成一個完整的建置後,我們將按照Hyperledger Fabric 1.0.1的文檔步驟來運行它。

我會像以前一樣檢查標籤,發現這是v1.0.2版本,所以我將試著使用它。

cd /usr/local/src/github.com/hyperledger
git clone https:/github.com/hyperledger/fabric-samples.git
cd fabric-samples
git tag
git checkout refs/tags/v1.0.2

然后,我将尝试按照上述页面的方式进行操作。使用树莓派进行操作似乎顺利进行。

由于fabric版本的升级,似乎比我写上面的页面时快了一倍以上。

广告
将在 10 秒后关闭
bannerAds