搭建开发环境

概述

Hyperledge fabric项目是IBM开源的区块链项目。Github地址:https://github.com/hyperledger/fabric

Hyperledge fabric的开发环境是一个运行在vagrant(一层virtualbox上的虚拟机皮)里的Ubuntu映像,并在虚拟机内部运行了若干Docker容器。从概念上说,就是在一个主机里启动了一个虚拟机,然后在虚拟机上启动Docker容器。

Host -> VM -> Docker

即 **主机 -> 虚拟机 -> Docker **

使用vagrant集成的开发环境开发允许开发者使用自己喜欢的操作系统和编辑器来开发,同时又可以让系统运行在一个与开发团队一致的开发环境中。

  • 注意主机不能运行在虚拟中,否则会得到VT-x不可用的错误信息

环境配置

提示: BIOS的Virtualization选项应该在CPU或者Security设置中

步骤

设置GOPATH

fabric项目使用Go语言开发,请确保设置了GOPATH 环境变量.

Windows用户注意

如果你的系统是windows,那么在git clone之前,先做如下操作:

git config --get core.autocrlf

如果 core.autocrlftrue, 必须先通过以下命令将它设为 false

git config --global core.autocrlf false

如果你的core.autocrlf是true的话,运行``vagrant up时,会出现错误 ./setup.sh: /bin/bash^M: bad interpreter: No such file or directory`

拷贝Fabric项目

Fabric项目基于 Go语言开发,是一个GO 项目, 我们需要将仓库clone到 $GOPATH/src 目录下. If your $GOPATH has multiple path components, then you will want to use the first one. There's a little bit of setup needed:

cd $GOPATH/src
mkdir -p github.com/hyperledger
cd github.com/hyperledger
git clone https://github.com/hyperledger/fabric.git

使用Vagrant启动虚拟机

启动vagrant

cd $GOPATH/src/github.com/hyperledger/fabric/devenv
vagrant up

运行到这一步时,可能会因为qiang的缘故,不能下载box,我保存了一份在百度云中,可以通过 点击这里 下载,下载了之后,需要使用vagrant添加box,命令如下:

vagrant box add hyperledger/fabric-baseimage virtualbox.box

因为我们使用的是本地添加box,但本地添加的box版本号为0,这里fabric的Vagrantfile文件里为我们做了些处理,只要在环境变量中添加一个变量USE_LOCAL_BASEIMAGE,并将其值设置为1即可。这一步很重要,如果不加这一步,那么vagrant仍然会去网上下载(如果的确是去网上直接下载,网速能行的话就无需这么麻烦)。

添加完成后,再次进入devenv目录,然后运行

vagrant up

就行了。

等待一段时间,等到虚拟机启动后,就可以进行登录了。

Linux可以使用下面的命令

vagrant ssh

SSH登录:

address:127.0.0.1:2222
username:vagrant
password:vagrant

Windows用户的登录则需通过Putty或者Xshell等软件进行。

关于vagrant的使用可以看一下我写这篇简单的教程:http://www.zgljl2012.com/vagrantan-zhuang/

构建fabric

搭建好vagrant开发环境后,接下来就可以build and test fabric了。在你的虚拟机里,也有一个同样的fabric项目,可以通过以下命令打开文件夹:

cd $GOPATH/src/github.com/hyperledger/fabric

只要宿主机上的文件一修改,虚拟机里的fabric也就立刻同步修改了,极大的便利了我们的开发过程(可以自己修改一下README.md测试一下)。

注意

Windows 10 用户注意: Windows 10 用户在运行vagrant up时可能会发生错误mitchellh/vagrant#6754,那是因为没有安装Micsoft Visual C++ 下面是下载地址: http://www.microsoft.com/en-us/download/details.aspx?id=8328