搭建方法主要参考http://hyperledger-fabric.readthedocs.io/en/latest/dev-setup/devenv/的英文文档说明,我用的是Vagrant方法在windows(其他环境的就不要往下看了,我不敢保证)搭建,亲测没问题。

准备工作:

Git client

Go - 1.6 or later

Vagrant - 1.7.4 or later

VirtualBox - 5.0 or later

这些都必须要用到,git主要用于同步源码,go主要是搭建go语言的编译环境,因为源码是go语言编写的。点击文档说明的链接下载,安装方法和环境变量的设置可以百度,一大堆的参考资料,基本都比较靠谱。后两个就更简单,下载下来安装就行了。另外,由于后面要用到ssh命令,我下载了一个Cygwin64 Terminal,安装选择包的时候搜索openssh,然后选择这个包,安装之后,也需要配置环境变量,具体自己百度。

搭建步骤:

第一步:

首先确保你之前安装go语言的编译环境搭建好了。

然后在git命令行中输入 :

git config --get core.autocrlfgit

config --global core.autocrlf false

没有深究为什么,按照文档来就行了。

第二步:

把github中的fabric源码拉下来

cd $GOPATH/src

mkdir -p github.com/hyperledger

cd github.com/hyperledger

git clone https://github.com/hyperledger/fabric.git

$GOPATH这个目录在windows下可以随便定,建议后面的按他说的来。源文档的git clone命令可能是针对有Linux id的来的,可以不用他的命令。

第三步:

用Vagrant来配置虚拟机

$GOPATH/src/github.
/hyperledger/fabric/devenv
vagrant
vagrant
Vagrant
装好之后,大部分的工作就完成了,然后就是部署一些东西。
之后的vagrant

hyperledger fabric 项目_github

部署步骤:

打开ssh:

/src/github.com/hyperledger/fabric/devenv
vagrant ssh



这个时候如果没装之前的ssh,就会报错。 



hyperledger fabric 项目_github_02




安全验证(可选):



这个是可选项,主要用作member的身份认证,具体作用体现在后面的命令加不加username上。



$GOPATH/src/github.
/hyperledger/fabric
membersrvc && membersrvc

 

hyperledger fabric 项目_git_03

运行验证peer:



开另外一个命令行窗口,运行



/src/github.com/hyperledger/fabric/devenv
vagrant ssh
然后
$GOPATH/src/github.
/hyperledger/fabric
peer
peer node start --peer-chaincodedev



这样,peer节点就起来了。




hyperledger fabric 项目_操作系统_04


编译chaincode:


另开一个命令行窗口,运行:


/src/github.com/hyperledger/fabric/devenv
vagrant ssh
然后选择源码中的一个例子chaincode机型编译
cd$GOPATH
thub.com
fabric
chaincode
chaincode_example02
go build

注册和运行chaincode:

mycc 
.
:
 ./chaincode_example02
mycc是chaincode的名称,可以随便定,只要在后面的过程中对应使用就行了。
CLI
调试:
我没有用REST方式,用的CLI。

用户注册:

/src/github.com/hyperledger/fabric/peer
peer network login <username>
username
要从

 

hyperledger fabric 项目_github_05

peer窗口可以看到注册信息:

hyperledger fabric 项目_git_06


Chaincode的部署交易:

peer chaincode deploy -n mycc -c 
Function
init
Args
a
b


如果使用了安全模式:


peer chaincode deploy -u jim -n mycc -c '{
:
, 
: [
,
, 
, 
]}'

Chaincode的调用交易:

peer chaincode
-l golang -n mycc -c '{
: 
, 
: 
, 
, 
]}'


如果使用了安全模式:


CORE_SECURITY_ENABLED=true CORE_SECURITY_PRIVACY=true peer chaincode
-u jim -l golang -n mycc -c '{
: 
, 
: 
, 
, 
]}'

Chaincode的查询交易:

peer chaincode 
 -
 golang -
 mycc -c '{
: 
, 
: [
]}'
安全模式:
CORE_SECURITY_ENABLED=true CORE_SECURITY_PRIVACY=true peer chaincode 
 -
 jim -
 golang -
 mycc -c '{
: 
, 
: [
]}'

 

hyperledger fabric 项目_perl_07

peer窗口

 

hyperledger fabric 项目_perl_08

chaincode窗口

 

hyperledger fabric 项目_git_09

部署,调用和查询三个交易在这几个窗口中都可以看到。

删除安全模式下的临时文件:

/src/github.com/hyperledger/fabric/devenv
vagrant ssh
-rf /
/hyperledger/production

先写到这,后面关于hyperledger的设计逻辑,我想清楚了再跟持续大家汇报