前言
不知不觉,研究生三年的时光即将告一段落,毕业在即。回想起当初学习的场景,那时候笔记本上记满了密密麻麻的笔记,如今想要扔掉却又舍不得。因此,我决定将当初刚入门区块链时的学习笔记分享出来。由于是跨考的,所以当时的我对区块链甚至是计算机都一窍不通,直接开始了学习之旅。因此,笔记中可能存在一些错误,仅供参考,切勿直接照搬。希望读者能够在阅读的过程中保持思考,同时,大体逻辑是可靠的。如果发现了任何错误,请务必告知我,我将及时进行修改。
Centos7搭建第一个网络
1.Fabric安装
怀疑go语言安装错了或者fabric文件放错了,好好看一下,建立快照
1.1 Fabric 问件夹建立:放在go语言的工作区间内
mkdir -p $GOPATH/src/github.com/hyperledger/
cd $GOPATH/src/github.com/hyperledger/
1.2文件夹位置
/home/lhc/go-work/src/github.com/hyperledger
/home/lhc/go-work/src/github.com/hyperledger/fabric
1.3克隆代码:可能得多试几次
$ git clone https://github.com/hyperledger/fabric.git
1.4进入这个文件夹
cd fabric
1.5查看分支
git branch -a
1.6切换分支
复制的文件可能需要强行切换分支git checkout -f
git checkout release-1.4
备注:此步生成examples文件夹(不知道会不会生成其他文件夹)
1.4中没有e2e_cli文件夹,需要切换到1.0才有e2e_cli文件夹
2.构建第一个测试网络
备用
vmware-hgfsclient
vmhgfs-fuse .host:/ /mnt/hgfs/
cd /mnt/hgfs/myshare
cp -rf bin config /home/lhc/go-work/src/github.com/hyperledger/fabric/scripts/fabric-samples
2.1进入scripts文件夹
cd scripts
2.2执行脚本(一般下载不了)
./bootstrap.sh
备注:Cloning hyperledger/fabric-samples repo and checkout v1.4.12
2.3解决办法
因为网络的问题,经常会下载出错,这个时候我们多执行几次,如果你没有耐心了,你可以这样做:我们对执行这个文件进行分析,无非就是下载了三个部分:
1.fabric的二进制文件
2.fabric-samples文件夹
3.fabric的镜像文件
2.3.1拉取镜像文件
sudo ./bootstrap.sh -b
错误:
Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
Error response from daemon: No such image: hyperledger/fabric-peer:1.4.12
解决办法
vim /etc/resolv.conf
2.3.2拉取fabric-sample
这步执行,虽然已经有了这个文件夹,把那个文件夹删除了重新下载
文件夹好像找不到first-network,不知道是不是版本原因,sudo ./bootstrap.sh -b 如果执行成功的话一般这步也不需要
然后我们还需要下载fabric-sample:
我们可以去github上进行拉去:https://github.com/hyperledger/fabric-samples/tree/v2.2.0
也有可能是 git clone GitHub - hyperledger/fabric-samples: Samples for Hyperledger Fabric
git clone https://github.com/hyperledger/fabric-samples/tree/v1.4.12
注意:版本需要和fabric的版本对应一直。下载好之后,将文件放入scripts文件夹中,如下图所示:(注意:这里fabric-sample文件夹里是没有bin和config文件夹的,所以我们会有后面的下载二进制文件的步骤)
最后我们剩下一个fabric的二进制文件:
我们也是去github上面进行下载,网址:https://github.com/hyperledger/fabric/releases/tag/v2.2.0
注意这里的版本也是要和之前的一致的,我们下载这个linux版本的,拉到网页最底部:
下载好后进行解压,把解压出来的bin文件夹和config文件夹放入fabric-samples文件夹中:
这样就大功告成了。
当然如果你多次尝试sudo ./bootstrap.sh 之后,如果网络顺利可以下载,那自然是最好不过了。
2.3.3.下载Hyperledger Fabric二进制文件
访问该网址即可下载,可通过修改地址中的版本信息下载自己想要的版本号。
https://github.com/hyperledger/fabric/releases/download/v2.2.1/hyperledger-fabric-linux-amd64-2.2.1.tar.gz
下载完成后,使用xftp传到服务器上,再解压得到bin文件夹。将bin文件夹移动到fabric-samples文件夹中。
https://github.com/hyperledger/fabric/releases/download/v1.4.12/hyperledger-fabric-linux-amd64-1.4.12.tar.gz
2.3.4下载fabric-ca-client二进制文件
访问该网址即可下载,可通过修改地址中的版本信息下载自己想要的版本号。
https://github.com/hyperledger/fabric-ca/releases/download/v1.4.9/hyperledger-fabric-ca-linux-amd64-1.4.9.tar.gz
下载完成后,使用xftp传到服务器上,再解压得到bin文件夹(没错,也是得到bin文件夹,不过里面的内容完全不一样)。将bin文件夹中的两个文件fabric-ca-client和fabric-ca-server移动到fabric-samples/bin中。
以上操作结束后,bin中应有如图所示的内容
2.3.5把bin和config放到
/home/lhc/go-work/src/github.com/hyperledger/fabric/scripts/fabric-samples
cp -rf bin config /home/lhc/go-work/src/github.com/hyperledger/fabric/scripts/fabric-samples
2.3.6配置环境变量
echo 'export PATH=$GOPATH/src/github.com/hyperledger/fabric/scripts/fabric-samples/bin:$PATH' >> /etc/profile
3测试网络
3.1转到文件夹
/home/lhc/go-work/src/github.com/hyperledger/fabric/scripts/fabric-samples/first-network
cd $GOPATH/src/github.com/hyperledger/fabric-samples/first-network
3.2生成密钥文件:
./byfn.sh generate
3.3启动示例:
./byfn.sh up
3.4关闭示例(执行删除密钥文件,停止并删除容器等操作):
./byfn.sh down
3.5重新启动示例:
docker-compose -f docker-compose-cli.yaml start
(这步有错误)