一、前言  

  各位看官好,这是本人第一篇技术博客。

  写博客的契机是因为原来配的环境在虚拟机扩容后莫名奇妙崩了(具体情况我以后会写),为了以后的自己特此从头开始记录。以前都是作为一个读者,这次终于有机会能够分享自己的理解,也算是因祸得福吧哈哈。那么闲话少说,接下来正式进入正题


二、基本环境

  系统:Ubuntu20.04(LTS)

  题外话:网上很多版本的教程使用的是18.x版本,我之前用20.10版本(结果崩了)。所以这次吸取教训,用新的稳定的版本

三、安装依赖

  在(虚拟机中)装完系统后,最好把软件源配置成国内的如华为或阿里。在setting->About->Software Updates 下的 Download from 中选择

  

  更换后用一下命令更新:

$ sudo apt update

  因为一直要sudo太麻烦,而且以后也会涉及到权限的问题,所以我建议大家可以直接用root用户登录,具体操作可以看这个教程:

http://www.zzvips.com/article/90799.html

  1.安装git

  安装git工具

$ sudo apt install git

  2.安装cURL

$ sudo apt install curl

  3.安装Docker

  先查看是否安装了Docker:

$ docker --version

  未安装则使用以下命令安装最新Docker:

$ sudo apt install docker.io

  安装后记得查看一下:

root@ubuntu:~# docker -v
Docker version 19.03.8, build afacb8b7f0

  出现以上字样表示安装成功

  我这里是以root权限安装,如果是非root用户需要使用以下命令才能使用docker:

$ sudo usermod -aG docker [你的用户名] (重启生效)

  4.安装docker-compose

  和之前一样先查看是否安装docker-compose:

$ docker-compose --version

  没有安装就使用以下命令安装:

$ sudo apt install docker-compose

  安装后查看版本:

root@ubuntu:~# docker-compose -v
docker-compose version 1.25.0, build unknown

  出现以上字样说明安装成功。同理,如果是普通用户还需要以下命令:

$ sudo chmod +x /usr/share/doc/docker-compose

  5.安装go语言(存疑)

  在官方文档中,fabric2.0及之前的版本是需要安装go语言的,但是之后的版本就没有再提过,可能是不需要的,但是装上也不影响使用,所以我们就多进行一步吧,如果此处有误请告诉我!

  ①下载go语言

$ wget https://dl.google.com/go/go1.13.15.linux-amd64.tar.gz

  这里go语言的版本要注意,fabric2.0要求的是1.13.x

  ②解压文件

  使用 tar 命令将压缩包解压到指定的 /usr/local/ 路径下(可以自己选择):

$ sudo tar -zxvf go1.13.15.linux-amd64.tar.gz -C /usr/local/

  ③配置环境变量

  为了所有用户都可以使用go语言使用以下命令,其他情况可以只修改当前用户$HOME目录下的 .bashrc 或 .profile 文件

$ sudo gedit /etc/profile

  在文件末尾写入以下内容并保存:

export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

  使用source命令使以上内容生效:

$ source /etc/profile

  然后还是检查是否安装成功:

root@ubuntu:~# go version
go version go1.13.15 linux/amd64

  如果未出现以上内容可以尝试重启:)

四、拉取Fabric源码

  创建一个专门的目录存放fabric:

$ mkdir -p ~/go/src/github.com/hyperledger
$ cd ~/go/src/github.com/hyperledger

  拉取fabric源码:

$ git clone https://github.com/hyperledger/fabric.git 

  这里其实我是在gitee上拉取的,因为国内的话速度会快一些,在这里也推荐大家可以通过gitee拉取,把后面的地址换成gitee上的下载地址就可以了

  之后需要切换当前fabric的分支:

$ cd ./fabric
$ git branch -a
$ git checkout v2.3.0

五、拉取fabric-samples

  1.配置镜像加速器

  建议使用阿里云的加速器:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

$ sudo mkdir -p /etc/docker
$ sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["你的加速器地址"]
}
EOF
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

  2.拉取依赖项

  ①直接拉取(需要vpn)

  在 ./fabric/scripts 中找到 bootstrap.sh 脚本,将该脚本复制到fabric同级目录下,运行以下命令:

$ ./bootstrap.sh 2.3.0 1.4.9 0.4.18

  此命令中 “2.3.0”对应fabric版本,“1.4.9”对应fabric-ca版本,“0.4.18”对应fabric Docker版本,也可以默认执行:

$ ./bootstrap.sh

  结果如下图:

  

  

  ②手动安装(适用于大多数情况)

  如果上面的方法下载速度极慢,可以考虑自己动手丰衣足食,具体步骤如下:

  首先分析一下 bootstrap.sh 文件:

  

  可以看出该脚本主要做三件事:1.克隆fabric-samples 2.拉取fabric二进制文件 3.拉取fabric docker镜像 ;所以接下来我们自己手动完成这三件事就好:

  Ⅰ.克隆fabric-samples

  同之前克隆fabric,我是从gitee上克隆(速度快一点),这里提供从GitHub上克隆的代码:

$ git clone https://github.com/hyperledger/fabric-samples.git
$ cd ./fabric-samples
$ git branch -a
$ git checkout master

  Ⅱ. 下载可执行二进制文件

  这一步是最容易卡关的,首先查看bootstrap脚本:

pullBinaries() {
echo "===> Downloading version ${FABRIC_TAG} platform specific fabric binaries"
download "${BINARY_FILE}" "https://github.com/hyperledger/fabric/releases/download/v${VERSION}/${BINARY_FILE}"
if [ $? -eq 22 ]; then
echo
echo "------> ${FABRIC_TAG} platform specific fabric binary is not available to download <----"
echo
exit
fi echo "===> Downloading version ${CA_TAG} platform specific fabric-ca-client binary"
download "${CA_BINARY_FILE}" "https://github.com/hyperledger/fabric-ca/releases/download/v${CA_VERSION}/${CA_BINARY_FILE}"
if [ $? -eq 22 ]; then
echo
echo "------> ${CA_TAG} fabric-ca-client binary is not available to download (Available from 1.1.0-rc1) <----"
echo
exit
fi
}

  可以看到脚本是从两个站点下载的,那么我们直接去站点上下载文件就好了:

  

  这是fabric的二进制文件,还要下载fabric-ca的二进制文件,下载好以后在目录下解压,fabric解压后是一个 bin 文件夹和一个 config 文件夹;fabric-ca 解压后是一个 bin 文件夹,将两个 bin 文件夹合并在一起,将合并后的 bin 文件夹和config 文件夹一起放入 fabric-samples 文件夹下:

  

  

  

  Ⅲ. 下载fabric docker镜像

  这一步可以通过bootstrap脚本运行,首先修改 bootstrap.sh 文件:

  

  没错,把前两步注释掉只运行最后一步就好了:

$ ./bootstrap.sh 2.3.0 1.4.9 0.4.18

  这样所有依赖项就都安装好了,我们下一步就可以开始测试了。

  注:Fabric官方文档中给的方法是用cURL,但是不适合国内用户

六、测试

  打开 fabric-samples下的 test-network 文件夹:

$ cd fabric-samples/test-network

  在fabric-samples 2.0版本后用test-network 代替了原本的 first-network ,我们采用最新版本作为实例:

  

  我们运行 network.sh 文件:

$ ./network.sh up

  结果如下:

  

  说明fabric安装成功,成功后可以再关闭该网络:

$  ./network.sh down

  补充说明:network.sh 具有多种功能,以上展示的仅仅是建立示例网络功能,还可以通过该脚本建立通道、安装链码,具体可见该脚本内容或看我以后的博客。

七、配置环境变量

  将 fabric-samples/bin 加入环境变量,方便使用:

$ sudo gedit /etc/profile

  再该文件最后添加:

export PATH=$PATH:$GOROOT/bin:$GOPATH/bin:$HOME/go/src/github.com/hyperledger/fabric-samples/bin

  最后如图:

  

  然后使用source命令使修改生效:

$ source /etc/profile

  验证是否生效(未生效则重启虚拟机):

$ fabric-ca-client version
fabric-ca-client:
Version: 1.4.9
Go version: go1.13.12
OS/Arch: linux/amd64

  注:这里发现go语言版本为1.13.12,我们实际环境中go语言版本为1.13.15,看来之前的安装确实无影响

八、结束语

  本篇博客到此结束,感谢大家耐心看到这里,如果有什么问题可以评论留言。通过这篇博客我深深体会到分享不易,在此感谢那些坚持写博客分享的大神!

  参考博客:https://www.cnblogs.com/zongmin/p/11635686.html

       Fabric官方文档

最新文章

  1. 纯CSS 箭头流程,网上找的,留着备用
  2. poj1144 求不同割点的个数
  3. Android中方便好用的倒计时类
  4. (C#) 创建单元测试(Unit Test).
  5. TP复习10
  6. Lucene全文检索(一)
  7. git-分支使用方式
  8. ffmpeg入门之 Tutorial01
  9. &quot;《算法导论》之‘线性表’&quot;:基于指针实现的单链表
  10. linux查找符合条件的文件并删除
  11. 并发编程---Process对象的其他属性或方法
  12. Java-左移右移-jdk8
  13. Java JDBC SqlServer
  14. 关于dubbo服务的xml配置文件报错的问题
  15. centos7永久更改主机名
  16. Mybatis常见面试题 二
  17. Python线程和进程
  18. java高级----&gt;Thread之CountDownLatch的使用
  19. 源码编译安装MySQL-5.6/mysql-5.6.39------踩了无数坑,重装了十几次服务器才会的,不容易啊!
  20. Java并发(十二):CAS Unsafe Atomic

热门文章

  1. 电脑装MySQL免安装版配置失败提示系统错误2怎么解决?
  2. 课时一:JS操作数据
  3. golang拾遗:嵌入类型
  4. 你想不到的win10快捷键
  5. Python中字符串使用单引号、双引号标识和三引号标识,什么是三引号?什么情况下用哪种标识?
  6. C# Email 帮助类 EmailHelper
  7. Python(三) PIL, Image生成验证图片
  8. 【Codeforces 715C】Digit Tree(点分治)
  9. 题解-Decrease
  10. 题解-CF1140E Palindrome-less Arrays