Hyperledger fabric 开发环境搭建

Hyperledger fabric 开发环境搭建

等一轮残月 海盗王 船龄 9.3年 来源 三尺剑
 83888  8
搭建方法主要参考http://hyperledger-fabric.readthedocs.io/en/latest/dev-setup/devenv/的英文文档说明,我用的是Vagrant方法在windows(其他环境的就不要往下看了,我不敢保证)搭建,亲测没问题。

准备工作:

Git client(https://git-scm.com/downloads)
Go - 1.6 or later(https://golang.org/)
Vagrant - 1.7.4 or later(https://www.vagrantup.com/)
VirtualBox - 5.0 or later(https://www.virtualbox.org/)

这些都必须要用到,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来配置虚拟机

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

vagrant up第一次时间非常长,有时还断,所以建议FQ,而且要全局加速,亲测速度确实要稳定一些。文档里说运行了这个命令之后就可以喝咖啡去了,要a few minutes,我表示不服。
Vagrant装好之后,大部分的工作就完成了,然后就是部署一些东西。
之后的vagrant up启动都是这个样子:


部署步骤:

打开ssh:

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

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


安全验证(可选):

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

cd $GOPATH/src/github.com/hyperledger/fabric
make membersrvc && membersrvc


运行验证peer:
开另外一个命令行窗口,运行

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

然后

cd $GOPATH/src/github.com/hyperledger/fabric
make peer
peer node start --peer-chaincodedev

这样,peer节点就起来了。


编译chaincode:

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

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

然后选择源码中的一个例子chaincode机型编译

cd$GOPATH/src/github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02
go build

注册和运行chaincode:

CORE_CHAINCODE_ID_NAME=mycc CORE_PEER_ADDRESS=0.0.0.0:7051 ./chaincode_example02

mycc是chaincode的名称,可以随便定,只要在后面的过程中对应使用就行了。


CLI调试:
我没有用REST方式,用的CLI。

用户注册:

cd $GOPATH/src/github.com/hyperledger/fabric/peer
peer network login

username要从membersrvc.yaml里边选,比如jim,然后会要求输入密码,把后面的密码输入就行了。然后注册会成功。


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


Chaincode的部署交易:

peer chaincode deploy -n mycc -c '{"Function":"init", "Args": ["a","100", "b", "200"]}'
如果使用了安全模式:
CORE_SECURITY_ENABLED=true CORE_SECURITY_PRIVACY=true peer chaincode deploy -u jim -n mycc -c '{"Function":"init", "Args": ["a","100", "b", "200"]}'

Chaincode的调用交易:

peer chaincode invoke -l golang -n mycc -c '{"Function": "invoke", "Args": ["a", "b", "10"]}'
如果使用了安全模式:
CORE_SECURITY_ENABLED=true CORE_SECURITY_PRIVACY=true peer chaincode invoke -u jim -l golang -n mycc -c '{"Function": "invoke", "Args": ["a", "b", "10"]}'

Chaincode的查询交易:

peer chaincode query -l golang -n mycc -c '{"Function": "query", "Args": ["b"]}'
安全模式:
CORE_SECURITY_ENABLED=true CORE_SECURITY_PRIVACY=true peer chaincode query -u jim -l golang -n mycc -c '{"Function": "query", "Args": ["b"]}'


peer窗口


chaincode窗口


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

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

cd $GOPATH/src/github.com/hyperledger/fabric/devenv
vagrant ssh
rm -rf /var/hyperledger/production

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

有任何问题可以去Hyperledger论坛交流:http://8btc.com/hyperledger
  • 全部
  • 最佳
  • 哗哗哗啦 水手 船龄 2年 2021-03-25 17:40:59
    教程有点过时了
  • ezpod 禁止发言 船龄 4.3年 2020-03-10 11:58:45
    这太复杂了,推荐用Fabric开发环境Windows一键安装工具:http://sc.hubwiz.com/codebag/byfn-win/
  • 狼森 水手 船龄 5.3年 2017-04-21 17:09:14
    真坑啊,Docker- 1.12 or later都没有说明,你要么别发表,要么就写详细了
  • 绿萝 水手 船龄 5.3年 2017-04-06 19:44:56
    感觉还是看原文档好,你摘抄的过程有点费解
  • rangeroversport 水手 船龄 5.5年 2017-03-24 10:40:43
    make peer

    ... ...
    build/bin/peer
    CGO_CFLAGS=" " GOBIN=/opt/gopath/src/github.com/hyperledger/fabric/build/bin go install -ldflags "-X ... ..." github.com/hyperledger/fabric/peer
    go install: cannot install cross-compiled binaries when GOBIN is set
    make: *** [build/bin/peer] Error 1

    How to Solve This Problem?

    thanks
  • pingidm 水手 船龄 6.2年 2016-11-06 21:57:27
    你好,请问下准备工作中的virtualbox,是指virtualbox.box;还是需要安装一个virtualbox虚拟机软件呢?
  • shenshao 船员 船龄 5.8年 2016-11-05 22:56:09
    好复杂
  • lipeiyan 水手 船龄 5.8年 2016-10-18 14:30:40
    vagrant up之后下载很慢而且会报错,下载不了,有没有手动下载的方法?
登录 账号发表你的看法,还没有账号?立即免费 注册
推荐教程
换一批