写在前,第一次搭建fabric框架,对于小白的我很是艰辛,参考了很多博主的博客才最终完成,在此记录一下搭建过程。

参考的网站

https://blog.csdn.net/smallone233/article/details/86569536

https://blog.csdn.net/Sun_Hui_/article/details/100928155

https://www.cnblogs.com/cbkj-xd/p/11067790.html

https://blog.csdn.net/qq_41547659/article/details/108190245

一.前期准备

1.系统软件源改为 aliyun

方法:进入system setting 然后点击software and update,修改download from

#先更新apt-get
#apt-get可以用于运作deb包(debian系统:unbuntu)
#yum可以用于运作rpm包(redhat系统:centos)
sudo apt-get update
#安装vim
sudo apt-get install vim
#安装git
sudo apt-get install git
#安装curl
sudo apt-get install curl #在命令行中利用URL进行数据或者文件传输
#安装wget
sudo apt-get install wget #wget不是安装方式,它是一种下载工具,类似于迅雷。

2.安装GO

2.1下载安装包

cd ~  //进入到根目录下
wget https://studygolang.com/dl/golang/go1.14.linux-amd64.tar.gz //这里我下载的是1.14版本
tar -xzf go1.14.linux-amd64.tar.gz //解压
sudo mv go /usr/local //移动

2.2配置环境

编辑配置文件

vim /etc/profile

将环境变量加入

export  PATH=$PATH:/usr/local/go/bin #可执行文件存放
export GOROOT=/usr/local/go #安装目录
export GOPATH=$HOME/go #工作目录
export PATH=$PATH:$HOME/go/bin #添加PATH路径

保存配置文件

source /etc/proflie
go version #执行命令如果看到go的版本号,说明已经安装好了

3.docker安装

3.1卸载旧版本的Docker,没安装的就跳过此步

sudo apt-get remove docker docker-engine docker.io

3.2开始安装

sudo apt-get update
#下载安装工具
sudo apt-get install \
apt-transport-https \
ca-certificates \
software-properties-common
#添加官方密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
#加入 apt 仓库中
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
#下载docker-ce
sudo apt-get update #apt-get update是同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包。
sudo apt-get install docker-ce

完成上面操作之后输入

docker version #查看版本信息

输出下面信息

Client: Docker Engine - Community

Version: 19.03.13

API version: 1.40

Go version: go1.13.15

Git commit: 4484c46d9d

Built: Wed Sep 16 17:02:59 2020

OS/Arch: linux/amd64

Experimental: false

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/version: dial unix /var/run/docker.sock: connect: permission denied

此时已经安装好Docker了,但是还需要一些小操作。因为普通用户没有权限 。

sudo groupadd docker    #创建docker组
sudo usermod -aG docker XXX #(XXX是当前用户名)

下面添加阿里云的Docker镜像:

sudo vim /etc/docker/daemon.json
#将以下内容写入daemon.json
{
"registry-mirrors": ["https://obou6wyb.mirror.aliyuncs.com"]
}
#接下来输入:
sudo systemctl daemon-reload
sudo systemctl restart docker
docker version

如果还有权限不足提示,输入:

sudo chmod -R 777 /var/run/docker.sock

正确的结果:

Client: Docker Engine - Community

Version: 19.03.13

API version: 1.40

Go version: go1.13.15

Git commit: 4484c46d9d

Built: Wed Sep 16 17:02:59 2020

OS/Arch: linux/amd64

Experimental: false

Server: Docker Engine - Community

Engine:

Version: 19.03.13

API version: 1.40 (minimum version 1.12)

Go version: go1.13.15

Git commit: 4484c46d9d

Built: Wed Sep 16 17:01:30 2020

OS/Arch: linux/amd64

Experimental: false

containerd:

Version: 1.3.7

GitCommit: 8fba4e9a7d01810a393d5d25a3621dc101981175

runc:

Version: 1.0.0-rc10

GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd

docker-init:

Version: 0.18.0

GitCommit: fec3683

到此docker安装完毕

4.docker-compose安装

docker-compose 是支持通过模板脚本批量创建 docker 容器的一个组件

#首先需要安装pip
sudo apt-get install python-pip
#更新pip
pip install --upgrade pip
#通过pip下载docker-compose
sudo pip install docker-compose
#查看版本
docker-compose -version
docker-compose version 1.26.2, build unknown #出现就表示安装完成

二.fabric框架搭建

首先创建文件夹

cd ~
mkdir -p go/src/github.com/hyperledger/
#进入刚刚创建的文件夹内
cd go/src/github.com/hyperledger/

下载 fabric 源码:

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

将 fabric 切换至 1.4 版本:

cd fabric
git branch -a
#git checkout release-1.4
git checkout v1.4.2 #我选的1.4.2版本

下载所需的镜像

#进入到指定目录
cd ~/go/src/github.com/hyperledger/fabric/scripts
#自动下载对应版本所需要的镜像
sudo ./bootstrap.sh #这里由于网络原因只下载了fabric-samples

bootstrap.sh实际上帮我们作了如下几件事情:

  1. 从github上克隆 hyperledger/fabric-samples并进入该目录,然后检出适当的版本
  2. 在fabric-samples目录下安装特定平台的 Hyperledger Fabric 二进制可执行文件bin 和配置文件config
  3. 下载 指定版本的Hyperledger Fabric 的docker镜像

具体可以看这篇:Fabric 环境搭建时bootstrap.sh帮我们做了什么?

但是由于网络问题,Fabric的二进制可执行文件和配置文件无法下载,此时进行手动安装


wget https://github.com/hyperledger/fabric/releases/download/v1.4.2/hyperledger-fabric-linux-amd64-1.4.2.tar.gz wget https://github.com/hyperledger/fabric-ca/releases/download/v1.4.2/hyperledger-fabric-ca-linux-amd64-1.4.2.tar.gz tar xzvf hyperledger-fabric-linux-amd64-1.4.2.tar.gz -C $GOPATH/src/github.com/hyperledger/fabric-samples/
tar xzvf hyperledger-fabric-ca-linux-amd64-1.4.2.tar.gz -C $GOPATH/src/github.com/hyperledger/fabric-samples/ #向/etc/profile中写入环境变量
export PATH=$GOPATH/src/github.com/hyperledger/fabric/scripts/fabric-samples/bin:$PATH #使环境变量生效
source /etc/profile

下面下载Fabric的docker镜像

sudo ./bootstrap.sh -b -s



至此,fabric1.4.2的环境安装完成,完成上面的操作,就可以启动第一个fabric网络了。

#进入first-network文件夹
cd ~/go/src/github.com/hyperledger/fabric/scripts/fabric-samples/first-network/
#创建第一个 channel(myfirstchannel 为通道名称,不写默认为 mychannel,可以自己定义):
sudo ./byfn.sh -m generate -c myfirstchannel
#执行命令启动
sudo ./byfn.sh up

如果最后输出内容为

===================== Query successful on peer1.org2 on channel 'mychannel' ===================== 

========= All GOOD, BYFN execution completed =========== 

 _____   _   _   ____
| ____| | \ | | | _ \
| _| | \| | | | | |
| |___ | |\ | | |_| |
|_____| |_| \_| |____/

说明我们的fabric网络已经成功搭建完毕。

#最后执行以下命令关闭网络
./byfn.sh down

到此,unbuntu16.04搭建单机的fabric1.4.2环境到此完成,谢谢大家观看。

记录自己第一次搭建本地fabric框架的更多相关文章

  1. Dnsmasq安装与配置-搭建本地DNS服务器 更干净更快无广告DNS解析

    默认的情况下,我们平时上网用的本地DNS服务器都是使用电信或者联通的,但是这样也导致了不少的问题,首当其冲的就是上网时经常莫名地弹出广告,或者莫名的流量被消耗掉导致网速变慢.其次是部分网站域名不能正常 ...

  2. Xvfb+YSlow+ShowSlow搭建前端性能测试框架 - 前端技术 | TaoBaoUED

    Xvfb+YSlow+ShowSlow搭建前端性能测试框架 - 前端技术 | TaoBaoUED Xvfb+YSlow+ShowSlow搭建前端性能测试框架 作者:黑三 | 时间:2010-07-07 ...

  3. Dnsmasq安装与配置-搭建本地DNS服务器

    默认的情况下,我们平时上网用的本地DNS服务器都是使用电信或者联通的,但是这样也导致了不少的问题,首当其冲的就是上网时经常莫名地弹出广告,或者莫名的流量被消耗掉导致网速变慢.其次是部分网站域名不能正常 ...

  4. 十分钟搭建微服务框架(SpringBoot +Dubbo+Docker+Jenkins源码)

    本文将以原理+实战的方式,首先对“微服务”相关的概念进行知识点扫盲,然后开始手把手教你搭建这一整套的微服务系统. 这套微服务框架能干啥? 这套系统搭建完之后,那可就厉害了: 微服务架构 你的整个应用程 ...

  5. spring boot / cloud (十八) 使用docker快速搭建本地环境

    spring boot / cloud (十八) 使用docker快速搭建本地环境 在平时的开发中工作中,环境的搭建其实一直都是一个很麻烦的事情 特别是现在,系统越来越复杂,所需要连接的一些中间件也越 ...

  6. 用node.js搭建本地服务器

    我的第一篇笔记来写写node.js,我对node.js的并不是很了解,基本的项目路径变换还是会的.原先我下载node.js就是我想学vue.js,后来因为工作的繁忙搁浅了我的计划.最近在学习phase ...

  7. web前端效率提升-nginx+nodejs搭建本地生态

    1.起因 编写的项目是一个偏向于后台管理的web系统,使用了angular框架,在绑定数据的时候就依赖于后台的接口格式. 以前是后台写好接口后,我在绑定,在这之前一些逻辑是没法做的,有时候后台接口给的 ...

  8. 使用intellij idea搭建spring-springmvc-mybatis整合框架环境

    使用intellij idea搭建spring-springmvc-mybatis整合框架环境   1.打开idea,创建maven项目,File-New-Project 2.选择Maven,勾选Cr ...

  9. python webdriver 从无到有搭建数据驱动自动化测试框架的步骤和总结

    一步一步搭建数据驱动测试框架的过程和总结 跟吴老学了搭建自动化数据驱动的框架后,我在自己练习的时候,尝试从简单的程序进行一点一点的扩展和优化,到实现这个数据驱动的框架. 先说一下搭建自动化测试框架的目 ...

随机推荐

  1. CodeCraft-20 (Div. 2) C. Primitive Primes (数学)

    题意:给你两个一元多项式\(f(x)\)和\(g(x)\),保证它们每一项的系数互质,让\(f(x)\)和\(g(x)\)相乘得到\(h(x)\),问\(h(x)\)是否有某一项系数不被\(p\)整除 ...

  2. Redis Cluster 分布式集群(下)

    Redis Cluster 搭建(工具) 环境准备 节点 IP 端口 节点① 172.16.1.121 6379,6380 节点② 172.16.1.122 6379,6380 节点③ 172.16. ...

  3. 实现基于股票收盘价的时间序列的统计(用Python实现)

    时间序列是按时间顺序的一组真实的数字,比如股票的交易数据.通过分析时间序列,能挖掘出这组序列背后包含的规律,从而有效地预测未来的数据.在这部分里,将讲述基于时间序列的常用统计方法. 1 用rollin ...

  4. 脚本化CSS(通过JS来间接操作CSS)

    (一)通过.style.形式,获取的是行间样式,可读可写 1.行间样式语法 1 <div style="width:100px;border:5px solid red;height: ...

  5. IPC$入侵

    一 唠叨一下: 网上关于ipc$入侵的文章可谓多如牛毛,而且也不乏优秀之作,攻击步骤甚至可以说已经成为经典的模式,因此也没人愿意再把这已经成为定式的东西拿出来摆弄. 二 什么是ipc$ IPC$(In ...

  6. 你不知道的 JS (系列丛书) - 第二版

    你不知道的 JS (系列丛书) - 第二版 You Don't Know JS (book series) - 2nd Edition https://github.com/learning-js-b ...

  7. ThoughtWorks Homework

    ThoughtWorks Homework Homework 考察知识点 项目搭建 技术选型 测试 编码风格 代码质量 设计模式 数据结构 算法 架构 开源协作 CI/CD DevOps Linux ...

  8. Java NIO wakeup实现原理

    本文转载自Java NIO wakeup实现原理 导语 最近在阅读netty源码时,很好奇Java NIO中Selector的wakeup()方法是如何唤醒selector的,于是决定深扒一下wake ...

  9. 为什么Linux需要虚拟内存

    本文转载自为什么 Linux 需要虚拟内存 导语 操作系统中的 CPU 和主内存(Main memory)都是稀缺资源,所有运行在当前操作系统的进程会共享系统中的 CPU 和内存资源,操作系统会使用 ...

  10. Hbase ——Not only SQL

    HBase -- NoSQL_Not Only SQL NoSQL数据库: 不遵循传统的RDBMS模型 解决数据库的可伸缩性和可用性(多机器) 数据是非关系的(可切分),不使用sql语句 不针对原子性 ...