尝试编译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版本的升级,似乎比我写上面的页面时快了一倍以上。