写在前,第一次搭建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环境到此完成,谢谢大家观看。

最新文章

  1. Fact表的星型结构
  2. PLSQL_基础系列01_正则表达REGEXP_LIKE / SUBSTR / INSTR / REPLACE(案例)
  3. .NET基础操作回顾_使用ADO.NET操作SqlServer使用的类
  4. jQuery中的Deferred-详解和使用
  5. BZOJ 3173: [Tjoi2013]最长上升子序列( BST + LIS )
  6. 关于springmvc 方法注解拦截器的解决方案,多用于方法的鉴权
  7. 3404: [Usaco2009 Open]Cow Digit Game又见数字游戏
  8. 计算机程序的思维逻辑 (74) - 并发容器 - ConcurrentHashMap
  9. 19)django-cookie使用
  10. C# Winform控件对透明图片重叠时导致图片不透明的解决方法(转)
  11. 【实践】Yalmip使用Knitro的一些总结
  12. zedboard开发板上移植opencv代码(立体匹配)
  13. underscore.js源码研究(3)
  14. Django的DRF序列化方法
  15. 使用efwplusScript开发Winform程序【像小程序那样开发PC软件】
  16. HTML5区块和大纲算法
  17. 每日英语:Robots To Revolutionize China
  18. python idea 利用树莓派做家庭报警系统
  19. var_dump打印出来格式太乱 怎么调
  20. daemon与服务(service)及重启服务的方法

热门文章

  1. hdu5414 CRB and String
  2. Codeforces Round #647 (Div. 2) - Thanks, Algo Muse! C. Johnny and Another Rating Drop (规律,二进制)
  3. codeforces 6E (非原创)
  4. Dyno-queues 分布式延迟队列 之 基本功能
  5. 手把手搭建一套基于 Sentry 的异常监控系统
  6. GitHub Secrets All In One
  7. tree ignore & bash & cmd
  8. css grid layout in practice
  9. html 布局,上下各100px,中间自适应
  10. 千万不要错过VAST,NGK算力的下一个财富机会!