fabric1.4.1环境部署

Fabric环境搭建的准备

关于fabric环境的配置,主要包括go语言、docker、docker-compose等,具体的安装步骤如下:

准备工作
1. 官方帮助文档:https://hyperledger-fabric.readthedocs.io/en/release-1.2/
2. 安装 cURL(https://curl.haxx.se/download.html), curl --version 查询版本
3. 安装docker, docker --version 查询版本
4. 安装docker-compose, docker-compose --version 查询版本
5. 安装 go 语言环境, go version 查询版本
6. 安装node.js, node -v 查询版本
7. Python 版本要求为 2.7, python --version 查询版本

1.1、 安装docker

1. 基础软件安装
# 安装基本软件
$ sudo apt-get update
$ sudo apt-get install apt-transport-https ca-certificates curl git softwareproperties-
common lrzsz -y
2. 添加阿里的docker镜像仓库
# 添加阿里的docker镜像仓库
$ curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key
add -
$ sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/dockerce/
linux/ubuntu $(lsb_release -cs) stable"
# 更新软件源
$ sudo apt-get update
3. 安装docker

若是root用户,则不会出现如下问题

# 安装docker
$ sudo apt-get install docker-ce -y
# 查看安装的docker版本
$ docker version
	Client:
		Version: 18.06.1-ce
		API version: 1.38
		Go version: go1.10.3
		Git commit: e68fc7a
		Built: Tue Aug 21 17:24:51 2018
		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.38/version:
	dial unix /var/run/docker.sock: connect: `permission denied`
# 当前用户直接操作docker时, 权限不够, 需要做下面的第4不操作
4.将当前用户添加到docker组
# 将用户加入该 group 内。然后退出并重新登录就生效啦。
$ sudo gpasswd -a ${USER} docker
# 重启docker服务
$ systemctl restart docker
# 当前用户切换到docker群组
$ newgrp - docker
$ docker version
	Client:
         Version:           18.06.1-ce
         API version:       1.38
         Go version:        go1.10.3
         Git commit:        e68fc7a
         Built:             Tue Aug 21 17:24:51 2018
         OS/Arch:           linux/amd64
         Experimental:      false

    Server:
         Engine:
         Version:          18.06.1-ce
         API version:      1.38 (minimum version 1.12)
         Go version:       go1.10.3
         Git commit:       e68fc7a
         Built:            Tue Aug 21 17:23:15 2018
         OS/Arch:          linux/amd64
         Experimental:     false
5.安装docker-compose
#安装依赖工具
$ sudo apt-get install python-pip -y
#安装编排工具
$ sudo pip install docker-compose
#查看版本
$ sudo docker-compose version

1.2 、安装go

# 安装包下载地址:
https://golang.org/dl/  - 翻墙
https://studygolang.com/dl - 国内镜像源

在这里插入图片描述

如果没有进行安装包下载, 课直接使用如下命令(目前最新版本):

# 1. 使用wget工具下载安装包
$ wget https://dl.google.com/go/go1.12.7.linux-amd64.tar.gz
# 2. 解压tar包到/usr/local
$ sudo tar zxvf go1.12.7.linux-amd64.tar.gz -C /usr/local
# 3. 创建Go目录
$ mkdir $HOME/go
# 4. 用vi打开~./bashrc,配置环境变量
$ vim ~/.bashrc
# 5. 增加下面的环境变量,保存退出
	export GOROOT=/usr/local/go
    export GOPATH=$HOME/go
    export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
# 6. 使环境变量立即生效, 一些命令二选一
$ source ~/.bashrc  
$ . ~/.bashrc
# 7. 检测go是否安装好
$ go version

Windows配置环境变量的方法:
若是go包默认安装到了C盘,则GOROOT和Path会自己设置好。下图是没有默认安装,就需要自己设置
在这里插入图片描述

1.3、 安装Node.js

1.官方下载地址

https://nodejs.org/en/download/

在这里插入图片描述
2.下载二进制源码包

$ wget https://nodejs.org/dist/v10.16.2/node-v10.16.2-linux-x64.tar.xz

3.解压并安装

# 指定压缩包解压到/opt目录下
$ sudo tar xvf node-v10.16.2-linux-x64.tar.xz -C /opt
	- 在/opt目录下得到 node-v10.16.2-linux-x64 目录

4.将node.js设置为全局可用

# 打开系统级别的配置文件 /etc/profile
$ sudo vim /etc/profile
# 添加如下配置项, 保存退出
    export NODEJS_HOME=/opt/node-v10.16.2-linux-x64
    export PATH=$PATH:$NODEJS_HOME/bin
# 重新加载配置文件
$ . /etc/profile

5.测试

$ node -v

2、部署hyperledger Fabric

git上克隆项目地址

git clone https://github.com/hyperledger/fabric.git
git clone https://github.com/hyperledger/fabric-sdk-go.git
git clone https://github.com/hyperledger/fabric-samples.git
2.1、创建并进入目录
mkdir $HOME/go/src/github.com/hyperledger -p
cd $HOME/go/src/github.com/hyperledger
2.2、在fabric中搭建raft网络时,docker镜像的版本需要最新的,若版本不够新,有可能导致容器的异常退出。

可以将事先下载好的压缩包放到指定目录下,提高下载速度(强烈建议)

mkdir fabric-samples
https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric/hyperledger-fabric/linux-amd64-1.4.1/hyperledger-fabric-linux-amd64-1.4.1.tar.gz
https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric-ca/hyperledger-fabric-ca/linux-amd64-1.4.1/hyperledger-fabric-ca-linux-amd64-1.4.1.tar.gz

有以下两种方式:
No.1:脚本方式

第一种:curl方式:(不建议,跟上面提前下载好的包一起用容易缺东西)
	下载并执行脚本
	cd $HOME/go/src/github.com/hyperledger
	// 翻墙的方式
	curl -sSL http://bit.ly/2ysbOFE | bash -s 1.4.1 1.4.1 0.4.15
	// 不翻墙的方式
	curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap.sh | bash -s 1.4.1 1.4.1 0.4.15
	// 查看拉取到的docker镜像
	docker images
第二种:bootstrap.sh方式
	1、从git上克隆fabric-samples项目
	git clone https://github.com/hyperledger/fabric-samples.git
	2、下载完成后执行命令cd fabric-samples,进入到fabric-samples文件夹, 
	切换fabric-samples版本,git checkout -b v1.4.1
	3、进入到scripts目录中,修改bootstrap.sh中的镜像版本,即export VERSION =1.4.0->1.4.1,export THIRDPARTY_IMAGE_VERSION= 0.4.14->0.4.15。
	执行bootstrap.sh脚本主要是去拉取二进制工具包以及最新的docker镜像,脚本执行完成后,会在fabric-samples/bin目录中生成二进制工具,最主要是cryptogen  configtxlator  configtxgen  这三个二进制工具,需要放在全局进行使用

No.2 源码编译方式:

	1、从git上克隆fabric项目
	git clone https://github.com/hyperledger/fabric.git
	2、下载完成后执行命令cd fabric,进入到fabric文件夹, 
		切换fabric版本,git checkout -b v1.4.1
	编译二进制文件有两种方式:
		第一种:make release方式
				执行make release拉取二进制源码工具,执行完成后,在fabric/release/linux-amd64/bin的目录下就会有下载好的二进制源码工具了
		第二种:make方式,会在.build/bin目录下生成二进制工具(.build/bin是隐藏文件,在make时第一行会有提示)
				make configtxgen
				make cryptogen
				make configtxlator

docker的最新镜像可以shell脚本来拉去,执行命令vi docker_images.sh,将下面代码块中的内容填写进文件中,然后执行chmod +x docker_images.sh为脚本文件添加执行权限,最后执行./docker_images.sh将最新版本的docker镜像拉取下来。

#!/bin/bash

docker pull hyperledger/fabric-ca:1.4.1
docker tag hyperledger/fabric-ca:1.4.1 hyperledger/fabric-ca:latest

docker pull hyperledger/fabric-tools:1.4.1
docker tag hyperledger/fabric-tools:1.4.1 hyperledger/fabric-tools:latest

docker pull hyperledger/fabric-ccenv:1.4.1
docker tag hyperledger/fabric-ccenv:1.4.1 hyperledger/fabric-ccenv:latest

docker pull hyperledger/fabric-orderer:1.4.1 
docker tag hyperledger/fabric-orderer:1.4.1 hyperledger/fabric-orderer:latest

docker pull hyperledger/fabric-peer:1.4.1 
docker tag hyperledger/fabric-peer:1.4.1 hyperledger/fabric-peer:latest

docker pull hyperledger/fabric-javaenv:1.4.1
docker tag hyperledger/fabric-javaenv:1.4.1 hyperledger/fabric-javaenv:latest

docker pull hyperledger/fabric-zookeeper:0.4.15
docker tag hyperledger/fabric-zookeeper:0.4.15 hyperledger/fabric-zookeeper:latest

docker pull hyperledger/fabric-kafka:0.4.15 
docker tag hyperledger/fabric-kafka:0.4.15 hyperledger/fabric-kafka:latest

docker pull hyperledger/fabric-couchdb:0.4.15
docker tag hyperledger/fabric-couchdb:0.4.15 hyperledger/fabric-couchdb:latest

docker pull hyperledger/fabric-baseos:0.4.15 
docker tag hyperledger/fabric-baseos:0.4.15 hyperledger/fabric-baseos:latest
2.3、设置全局访问
cd $HOME/go/src/github.com/hyperledger/fabric-samples/bin/
	// 将全部二进制文件拷贝到/usr/local/bin目录下,最主要是下面三个
				configtxgen
				cryptogen
				configtxlator
sudo cp * /usr/local/bin
# 执行完上述操作之后, fabric的这些可执行程序就可以在全局范围内使用了

3、First-Network对环境进行测试

solo网络测试

首先进入到first-network文件夹中
cd $HOME/go/src/github.com/hyperledger/fabric-samples/first-network/
给脚本 byfn.sh 添加执行权限
chmod +x byfn.sh
用脚本生成相应的文件
./byfn.sh -m generate
启动solo网络
./byfn.sh -m up
查看solo网络节点的启动情况
docker ps
重启solo网络
./byfn.sh -m restart
停止solo网络
./byfn.sh -m down

kafka网络测试

首先进入到first-network文件夹中
cd $HOME/go/src/github.com/hyperledger/fabric-samples/first-network/
用脚本生成相应的文件
./byfn.sh -m generate -o kafka
启动kafka网络
./byfn.sh -m up -o kafka
查看kafka网络节点的启动情况
docker ps
重启kafka网络
./byfn.sh -m restart -o kafka
停止kafka网络
./byfn.sh -m down -o kafka

etcdraft网络测试

首先进入到first-network文件夹中
cd $HOME/go/src/github.com/hyperledger/fabric-samples/first-network/
用脚本生成相应的文件
./byfn.sh -m generate -o etcdraft
启动etcdraft网络
./byfn.sh -m up -o etcdraft
查看etcdraft网络节点的启动情况
docker ps
重启etcdraft网络
./byfn.sh -m restart -o etcdraft
停止etcdraft网络
./byfn.sh -m down -o etcdraft

若能顺利执行网络测试,则fabric网络环境部署成功!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值