前言
fabric添加了新的共识raft,想要尝鲜的小伙伴可以跟我来运行一遍。
我选择的fabric版本是1.4.5。基于Ubuntu 16.04。
系统要求
先看看go,docker的版本是否满足要求。

我的是满足的。

准备工作
此外,Fabric使用Go开发,使用到了一些第三方工具,我们需要提前下载好。
mkdir –p $GOPATH/src/golang.org/xcd $GOPATH/src/golang.org/xgit clone https://github.com/golang/tools.git
即使下载好上面的tools工具,还是不够,我们还是需要下载第三方的go管理工具,gopm
go get -u github.com/gpmgo/gopm 接下来,我们就可以使用gopm工具安装需要使用到的go包。
建议:在下载下面这些包的时候,我们首先可以使用go get来下载安装,这样是比较方便的。gopm则需要两步,首先是gopm get …,然后是go install…。
是这样的,举个例子:
gopm get -g -d golang.org/x/tools/cmd/goimports
go install golang.org/x/tools/cmd/goimports
接下来,我们需要安装所需要的工具,注意,如果某个包下载失败,可以使用gopm的方法。
go get github.com/kardianos/govendorgo get github.com/golang/lint/golintgo get golang.org/x/tools/cmd/goimportsgo get github.com/onsi/ginkgo/ginkgogo get github.com/axw/gocov/...go get github.com/client9/misspell/cmd/misspellgo get github.com/AlekSi/gocov-xmlgo get github.com/golang/protobuf/protoc-gen-go
让人十分恶心的是github.com/golang/lint/golint这个包,使用go get和gopm get都无法下载。
我们可以先在GitHub上下载源代码,然后在执行go install进行安装。
此外,我们还需要下载libltdl-dev这个库:
sudo apt-get install libltdl-dev
二进制文件和镜像
我们还需要二进制工具,docker镜像,安装这两个的时候,我们有两个思路,第一是通过fabric-samples,第二是通过源码编译的方式,总的来说,第一种方式更为的简单,但是非常依赖外网的环境,第二种也依赖外网的环境,但是如果某一步失败了,我们可以手动来修复,我们将分别讲解两种方式。
先来看第一种,在fabric-samples目录下,首先切换到v1.4.5版本,然后执行
curl -sSL http://bit.ly/2ysbOFE | bash -s -- 1.4.5 1.4.5 0.4.18
我们首先make release,如果成功的话会在fabric/release/linux-amd64/bin目录下生成相应的二进制文件。我们把这些拷贝到gopath/bin下,方便全局使用。如果有错误,请参考我前面的文章。
那么尝试第二种方式吧。可以参考这篇文章。https://haojunsheng.github.io/2019/05/How-to-make-fabric/
很不幸,我的电脑失败了。

我们首先make release,如果成功的话会在fabric/release/linux-amd64/bin目录下生成相应的二进制文件。我们把这些拷贝到gopath/bin下,方便全局使用。如果有错误,请参考我前面的文章。
接下来我们编译docker镜像,make docker。
这一步是很慢的,我们需要等待较长时间,如果失败的话,可以从我的博客里面找原因。成功了是这样的。

我们最后来验证一下。使用docker images | grep 1.4.5,因为我的docker镜像很多,所以我过滤了下。可以看到tools,buildenv,ccenv,order,peer都成功安装了。

运行
发现一个事情,在release-1.4中,examples目录已经没有e2e_cli目录了。来感受下:
再来看看1.3的:

没关系,我们可以使用fabric-samples/first-network。首先我们先切到这个目录,生成配置文件,启动网络。这里不再详述,具体参考官方文档:
cd fabric-samples/first-network ./byfn.sh generate ./byfn.sh up
不报错的情况下是这样的:

新版本我们支持了node和java版本的链码,启用方式是这样的。 ./byfn.sh up -l node
./byfn.sh up -l java我们直接下载即可:docker pull hyperledger/fabric-javaenv:amd64-1.4.5当然我们需要安装java链码的环境,不然会报错,这样:此外,也支持了raft。 ./byfn.sh up -o etcdraft
./byfn.sh up -o kafka不出意外的话,我们还是成功的。启动的时候,我看到了这个日志:说明raft启动的比较慢啊。
首先使用 ./byfn.sh down把之前的网络给清掉。
到这里应该说我们验证成功了,但是1.4版本加了好多新东西,我们一起来看看吧。
不报错的情况下是这样的:

添加新手交流群:币种分析、每日早晚盘分析
添加助理微信,一对一亲自指导:YoYo8abc