对hyperledger fabric的理解和部署(使用docker镜像)

对hyperledger fabric的理解和部署(使用docker镜像)

区块链基础

要学习hyperledger fabric,首先要了解一点区块链知识,下面博主自己整理的
区块链的一些基础知识(用思维导图展示)
对hyperledger fabric的理解和部署(使用docker镜像)_第1张图片

hyperledger fabric基础

在对区块链有一些基础的了解后,我们进入正题,开始接触hyperledger fabric,下面是我整合网络上对hyperledger fabric的解释后整理出来的(用思维导图展示)
对hyperledger fabric的理解和部署(使用docker镜像)_第2张图片

在对区块链和hyperledger fabric有一定的了解后,我们就开始在自己的电脑上部署自己的hyperledger fabric项目吧

注:部署流程参照:https://github.com/hyperledger/fabric

###先决条件
第一步 下载配置docker;
第二步 下载配置go语言包(版本要在1.9以上)

###下载Fabric Samples源码和二进制文件
使用git

git clone -bmaster https://github.com/hyperledger/fabric-samples.git
cd fabric-samples
git checkout {TAG}

使用git tag命令查看版本列表,根据个人需要将源码切换到对应的版本,本次使用的是1.1版。

git checkout -b v1.1.0

下载二进制文件有两种方式
一、执行代码

curl -sSL https://goo.gl/6wtTN5 | bash -s    //fabric和fabric-ca代表你想要的fabric的版本,thirdparty代表第三方镜像的版本
curl -sSL https://goo.gl/6wtTN5 | bash -s 1.1.0 1.1.0 0.4.6

二、直接访问下面的网址
https://github.com/hyperledger/fabric/blob/master/scripts/bootstrap.sh

上面的命令下载并执行一个bash脚本,该脚本将下载并提取设置网络所需的所有特定于平台的二进制文件,并将它们放入上面创建的克隆repo中。它检索四个特定于平台的二进制文件并把他们放在当前工作目录的bin子目录中

该脚本文件会从Docker Hub中下载docker镜像并将其保存到本地的Docker注册表中,标记为“latest”

三、后面就可以部署网,
创建创世区块,
生成通道配置,
在通道中定义Organization,
开启网络,
配置环境变量,
进入CLI容器,

在容器中加入通道,
在通道中加入peer节点,
安装,实例化链码(chaincode)
。。。

执行example

最后就可以来用下载来的可执行文件来运行https://github.com/hyperledger/fabric上的example了

遇到的问题

在下载和执行脚本文件是一直显示如下错误

在这里插入图片描述
根据教程指示,如果出现该错误应该是我的curl的版本太低了,可是在我更新了版本后依然有这个问题,我就采用了教程上的第二种方法,但是依然无济于事
后来我发现了原因
对hyperledger fabric的理解和部署(使用docker镜像)_第3张图片
这是争对window环境下必须在克隆库之前执行的操作

我就在网上寻找其他解决方法:
网上普遍采用的方法是
附上网址

https://www.jianshu.com/p/7d720393fea3
就是直接在本地新建文件夹然后把脚本文件的内容复制到本地,最后在手动执行该文件
注意:克隆项目时最好要版本对应,博主部署的版本是1.1
在这里插入图片描述
最后就可以开始下载了
在这里插入图片描述

注意:如果在后面的操作中发现错误那很可能是在这一步下载的东西不足,可以重新执行那个脚本文件再下载一次就行了

不过紧接着又有问题出现(压死骆驼的最后以可稻草)
对hyperledger fabric的理解和部署(使用docker镜像)_第4张图片
后面我就转到Linux环境下来部署了
在虚拟机上部署时,我在相同的地方也遇到了问题,不过这个问题不一样(如下),解决起来也容易多了
对hyperledger fabric的理解和部署(使用docker镜像)_第5张图片

个人总结

对我来说,这个部署难度挺大的,但是最后发现其实步骤也不多,主要难度体现在
一、阅读英文文档不够熟练,导致理解错了一些操作,浪费了很多时间;
二、忽略了一些步骤导致后面的操作出现错误;
三、很久不用git工具,有些生疏了;
四、**部署这个项目的时候还是linux比window好用**
	①一切操作都在terminal上进行
	②出现的bug比较少,解决起来也比较容易
**所以后面还是要更多地来阅读英文文档,这是一个程序员的基本素养吧**

你可能感兴趣的:(对hyperledger fabric的理解和部署(使用docker镜像))