一、前言  

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

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


二、基本环境

  系统: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官方文档

区块链从零开始做开发(0):hyperledger Fabric2.3安装的更多相关文章

  1. 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1

    摘要: 全球开源区块链领域影响最为广泛的Hyperledger Fabric日前宣布了1.1版本的正式发布,带来了一系列丰富的新功能以及在安全性.性能与扩展性等方面的显著提升.阿里云容器服务区块链解决 ...

  2. 用区块链技术做一个 不可被修改的 恋爱记录 app 我叫<<誓言>>

    区块链技术 具有不可篡改,去中心化,共识机制等优秀的特性, 都用来做 代币钱包什么的.我觉得完全是浪费. 我的想法是用哪个区块做一个dapp 1 里面写着每个人的恋爱记录,爱情宣言. 2 一个人一生 ...

  3. 区块链教程(二):比特币、区块链、以太坊、Hyperledger的关系

    不知道大家喜不喜欢音乐! 朋克音乐:诞生于七十年代中期,一种源于六十年代车库摇滚和前朋克摇滚的简单摇滚乐.它由一个简单悦耳的主旋律和三个和弦组成,经过演变,朋克已经逐渐脱离摇滚,成为一种独立的音乐,朋 ...

  4. 区块链侧链应用开发平台Asch节点安装及区块生产教程

    1 系统要求 必须是linux系统 必须有公网ip 建议使用ubuntu 14.04 64位 建议内存1G以上 建议带宽2Mb以上 2 安装 2.1 下载 wget https://www.asch. ...

  5. AppCan教你从零开始做开发

    经常收到类似这样的提问:新手开发APP,要怎么学?我有满屏幕的文档和视频,然而并没有什么卵用,因为我不知道该从哪看起……今天的主要内容是教大家,如何在AppCan移动平台创建应用,引擎插件选择.证书管 ...

  6. 区块链学习——HyperLedger-Fabric v1.0 启动过程分析

    本章我们从fabric v1.0的e2e_cli示例开始分析整个启动过程以及在过程中的一些配置文件 首先呢,还是确保你的基本环境已经搭建完成,v1.0源码和镜像也都下载完毕 fabric启动过程中的相 ...

  7. 区块链学习——HyperLedger-Fabric v1.0环境搭建详细教程

    相对与v0.6版本来说,1.0版本改变较大,此处不多说,只是将小白自己搭建1.0环境的过程分享给大家.希望对大家能有所帮助! 这一篇可能对前面的环境搭建会写的有些粗略,如有疑问,可阅读上一篇V0.6版 ...

  8. 如何从零开始学习区块链技术——推荐从以太坊开发DApp开始

    很多人迷惑于区块链和以太坊,不知如何学习,本文简单说了一下学习的一些方法和资源. 一. 以太坊和区块链的关系 从区块链历史上来说,先诞生了比特币,当时并没有区块链这个技术和名词,然后业界从比特币中提取 ...

  9. HyperLedger Fabric Introduction——区块链超级账本介绍

    介绍 HyperLedger Fabric是一个基于模块化架构的分布式账本解决方案平台,它拥有深度加密.便捷扩展.部署灵活及可插拔等特性.它设计之初的目的是支持不同组件的可插拔实现,并适应整个经济生态 ...

随机推荐

  1. Elements-of-Python_02_DataType

    (内容包括数据类型,运算符) 1.数据类型Data Types 1.1 简介Brief Introduction Python3中的数据类型,类型关键字,赋值,见下表: 1.1数字Number Pyt ...

  2. kali查看本机ip

  3. Android Studio下的简单网页解析

    Android Studio下的简单网页解析 一.导入数据 导入前添加依赖 implementation 'org.jsoup:jsoup:1.11.3' 使用字符串导入 String html = ...

  4. IdentityServer4系列 | 简化模式

    一.前言 从上一篇关于资源密码凭证模式中,通过使用client_id和client_secret以及用户名密码通过应用Client(客户端)直接获取,从而请求获取受保护的资源,但是这种方式存在clie ...

  5. JZOJ 2020.10.7 提高B组反思

    JZOJ 2020.10.7 提高B组反思 T1 比较简单的一道题 跑\(k\)遍\(SPFA\) 然后全排列顺序枚举求解 TLE 60 双向存边数组没开两倍-- T2 搞出分母 分子不会求 \(n^ ...

  6. 学习PKI技术【理论+实战】

    1.预备知识 PKI(Public Key Infrastructure)定义 PKI:利用公钥理论和技术建立的提供网络信息安全服务的基础设施.为用户提供所需的密钥和证书管理,用户可以利用PKI平台提 ...

  7. moviepy音视频剪辑:视频剪辑基类VideoClip的__init__构造方法参数has_constant_size的作用

    ☞ ░ 前往老猿Python博文目录 ░ moviepy音视频剪辑模块的视频剪辑基类VideoClip构造方法: __init__(self, make_frame=None, ismask=Fals ...

  8. 在Python中使用moviepy进行视频剪辑时输出文件报错 ‘NoneType‘ object has no attribute ‘stdout‘问题

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 movipy输出文件时报错 'NoneType' ...

  9. 第7.23节 Python使用property函数定义属性简化属性访问的代码实现

    第7.23节 Python使用property函数定义属性简化属性访问的代码实现 一.    背景       在本章前面章节中,我们介绍了类相关的知识,并举例进行了说明,在这些例子中会定义一些形如 ...

  10. 第1章 Python学习环境构建目录

    第1章 引子 第1.1节 学习环境搭建 第1.2节 Python学习环境的使用 第2章 Python编程基础知识 第2.1节 简单的Python数据类型.变量赋值及输入输出 第2.2节 Python的 ...