编译hyperledger fabric 官方源码

开发环境介绍

  • macOS Mojave 10.14
  • docker
  • docker-compose
  • git
  • go 1.10
  • Fabric 1.1.0

命令行翻墙

1. 确保电脑本机可以翻墙,我使用的是ShadowsocksX-NG ,偏好设置->高级,IP为自己机器的IP,来设置Socks5监听地址以及端口,如下图:





2.然后设置代理,网络->代理->SOCKS代理,IP为自己机器的IP,如下图





3.然后在命令行中导入

  • export https_proxy=socks5://192.168.124.31:3087

  • export http_proxy=socks5://192.168.124.31:3087

4.查看是否翻墙成功

curl www.google.com

返回google请求结果没有报错,即为翻墙成功

fabirc源码编译

1.进入fabric源码目录

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

2.编译

$ make all

等待一会之后会报错

cp: cannot stat 'build/docker/gotools/bin/protoc-gen-go': No such file or directory
Makefile:263: recipe for target 'build/image/ccenv/payload' failed
make: *** [build/image/ccenv/payload] Error 1

这个问题是因为fbric环境下找不到protoc-gen-go这个执行文件,解决方法是手动生成。

3.编译生成protoc-gen-go

root@zhangshuai:~/gopath/src/github.com# gopm get -g -d github.com/golang/protobuf/protoc-gen-go

root@pony-virtual-machine:~/gopath/src/github.com/golang# go install github.com/golang/protobuf/protoc-gen-go

如果没有gomp包管理工具请自行百度安装下载

$GOPATH/bin/目录下同时可以找到protoc-gen-go

4.编译好的可执行文件

因为命令行可以翻墙的原因,Fabric中的可能用到的工具已经下载编译成可执行文件,只不过都在$GOPATH/bin/目录下,如下图:





5.将可执行文件copy到报错目录

$ cd $GOPATH/bin

$cp * $GOPATH/src/github.com/hyperledger/fabric/build/docker/gotools/bin

6.再次编译make all。编译的时间有点久,最后编译报错,原因我暂时不清楚,不过不影响后面的操作

the following files are missing SPDX-License-Identifier headers:
(standard input)

Please replace the Apache license header comment text with:
SPDX-License-Identifier: Apache-2.0
Makefile:111: recipe for target 'license' failed
make: *** [license] Error 1

这样就大功告成了。

7.docker中的images如下图:





执行单元测试

go test -v -timeout 30s github.com/hyperledger/fabric/bccsp





参考文章

如何在本地测试Fabric Code

如何在本地编译Fabric Code

编译hyperledger fabric官方源码

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦