Hyperledger Fabric 1.1安装部署

本文详细介绍了在Ubuntu 16.04上部署Hyperledger Fabric 1.1的完整过程,包括更改aptget源、安装Docker、Docker-compose、Go和Git,下载Fabric及Fabric-samples源码,部署和测试网络。在部署过程中遇到的常见问题,如未更改源导致的下载错误、权限问题和网络限制等,也给出了相应的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考文档https://hyperledger-fabric.readthedocs.io/en/release-1.1/index.html

  • 前言:此文章主要由三部分组成:第一部分是整个完整的部署过程,第二部分是整个过程中的问题的汇总,最后是整个过程的个人小结部分
  • 用的机子最好内存不低于4g

一、部署过程

(一)更改aptget源

(本机是Ubuntu16.04,下载软件默认是从国外下载的,速度较慢,也容易出现问题,所以在进行环境的部署之前,最好先更新)

  • 复制原文件备份
    sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
  • 编辑源列表文件(这里稍微讲一下vim的简单操作)
sudo vim /etc/apt/sources.list

a.进入vim的命令模式,输入i/a进行编辑
在这里插入图片描述
b.输入G,将光标移到最后一行,输入1,.d 将文件内容全部删除,将下面的内容复制粘贴进去

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable
# deb-src [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable

c.输入Esc退出输入模式,输入:w 保存内容,输入:q 退出vim

(二)基本环境部署(Docker,Docker-compose,Go,Git)

1、Docker安装
  • 安装需要的工具
sudo apt-get update
sudo apt-get install \
  apt-transport-https \
  ca-certificates \
  curl \
  software-properties-common

  • 添加Docker的GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  • 设置源
sudo add-apt-repository \
  "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) \
  stable"
  • 更新apt软件包
sudo apt-get update
安装

sudo apt-get install docker-ce

  • 查看docker版本信息
docker version

结果图如下
在这里插入图片描述

2、Docker-compose安装
  • 安装python-pip
sudo apt-get install python-pip
  • 安装Docker-Compose
sudo curl -L https://github.com/docker/compose/releases/download/1.20.1/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
  • 查看Docker-Compose版本
docker-compose version

结果图如下
在这里插入图片描述

3、Go安装
  • 下载Golang
wget https://storage.googleapis.com/golang/go1.9.linux-amd64.tar.gz
  • 解压安装包
sudo tar -C /usr/local -xzf go1.9.linux-amd64.tar.gz
  • 设置环境变量
vim /etc/profile
修改内容为(在path后添加)
export GOROOT=/usr/local/go
export GOBIN=$GOROOT/bin
export PATH=$PATH:$GOBIN
export GOPATH=/opt/gopath
  • 刷新修改的配置,并测试是否成功
source /etc/profile
go version

结果如下
在这里插入图片描述

4、git安装
  • 检查系统是否安装
git version
  • 输入sudo apt-get install git
    结果如下
    在这里插入图片描述
    至此,基本环境安装完成

(三)源代码的部署

1、下载fabric
  • 进入go的path目录
cd $GOPATH
  • 新建文件夹
mkdir -p src/github.com/hyperledger
  • 进入文件夹
/go/src/github.com/hyperledger
  • 下载fabric
git clone https://github.com/hyperledger/fabric.git
  • 进入到fabric目录查看fabric的git版本,一般默认是最新版本的,本文以1.1.0版本
cd fabric/
git branch -a

在这里插入图片描述

  • 切换到release-1.1分支
git checkout release-1.1
2、下载fabric-samples
  • 进入fabric同级目录
git clone -b master https://github.com/hyperledger/fabric-samples.git

  • 下载完成后进入到fabric-samples目录
cd fabric-samples
  • 使用git tag命令查看版本列表,根据个人需要将源码切换到对应的版本,本次使用的是1.1版。
git checkout release-1.1

完成后,目录结构如下:
在这里插入图片描述

3、下载镜像和要执行的二进制文件
cd fabric/scripts/
vim bootstrap.sh

如果不是如下的版本v1.1.0
在这里插入图片描述
将以下内容复制到你的.sh文件中,保存后退出

#!/bin/bash
#
# Copyright IBM Corp. All Rights Reserved.
#
# SPDX-License-Identifier: Apache-2.0
#

# if version not passed in, default to latest released version
export VERSION=${1:-1.1.0}
# if ca version not passed in, default to latest released version
export CA_VERSION=${2:-$VERSION}
# current version of thirdparty images (couchdb, kafka and zookeeper) released
export THIRDPARTY_IMAGE_VERSION=0.4.6
export ARCH=$(echo "$(uname -s|tr '[:upper:]' '[:lower:]'|sed 's/mingw64_nt.*/windows/')-$(uname -m | sed 's/x86_64/amd64/g')" | awk '{print tolower($0)}')
#Set MARCH variable i.e ppc64le,s390x,x86_64,i386
MARCH=`uname -m`

dockerFabricPull() {
  local FABRIC_TAG=$1
  for IMAGES in peer orderer ccenv javaenv tools; do
      echo "==> FABRIC IMAGE: $IMAGES"
      echo

  • 运行bookstrap.sh镜像(这个过程有点久,而且可能网络不好的话会出现问题)
sudo ./bootstrap.sh 
  • 顺利下载后,查看镜像
sudo docker image

在这里插入图片描述

  • 下载二进制文件,进入fabric-samples文件
cd fabric-samples/
wget https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric/hyperledger-fabric/linux-amd64-1.1.0/hyperledger-fabric-linux-amd64-1.1.0.tar.gz
  • 解压下载的文件,会发现多了bin和config两个个文件夹
tar -zxvf hyperledger-fabric-linux-amd64-1.1.0.tar.gz 

在这里插入图片描述

  • 把bin路径配置环境变量,用pwd命令得到路径/opt/go/src/github.com/hyperledger/fabric-samples/bin
cd bin/
pwd
export PATH=$PATH:/opt/go/src/github.com/hyperledger/fabric-samples/bin
  • 查看环境变量
export

在这里插入图片描述

(四)运行和测试

1、运行
  • 进入first-netwok:
cd first-network
  • 生成 配置文件
sudo ./byfn.sh -m generate
  • 启动项目,遇到提示就输入“y"
sudo ./byfn.sh up

结果图如下,说明网络结构生成,整个网络有两个组织,整个网络启动包括执行了一下操作:

1、生成创世区块、通道、每个组织的msp等信息,保存在channel-artifacts文件夹中,配置信息对应configtx.yaml文件。
2、生成orderer和peer使用的公私钥和证书等信息,保存在crypto-config文件夹中,配置信息对应crypto-config.yaml文件。
3、创建channel、加入channel、为通道的每个组织设置锚节点,安装chaincode,实例化chaincode,查询chaincode,调用chaincode等操作。
在这里插入图片描述

  • 添加组织:
sudo ./eyfn.sh up

效果如下,成功添加第三个组织
在这里插入图片描述
在这里插入图片描述

2、测试
  • 测试chaincode,需要先进入到cli容器,后续的操作都在容器内进行。
docker exec -it cli bash
  • 按照官方给出的,有a和b两个账户,查看a账户的余额。
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'
  • a账户的余额是80。
  • 查看b账户的余额
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","b"]}'
  • b账户的余额是220
  • 下面做以下转账测试,把b账户的钱转给a账户20。
peer chaincode invoke -o orderer.example.com:7050 --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n mycc -c '{"Args":["invoke","b","a","20"]}'

在这里插入图片描述
测试成功

  • 关闭
sudo ./byfn.sh -m down

二、部署过程中的问题

1、一开始未更改aptget源,下载docker镜像的时候出现错误,多方百度后找到上文给出的源

在这里插入图片描述

2、一开始执行一些文件的时候,没有加上sudo开头出现如下错误,百度的解释也是千奇百怪,最后询问师兄才知道docker需要root权限

在这里插入图片描述

3、文档中给出了用curl -sSL https://goo.gl/6wtTN5 | bash -s 1.1.0 这样的命令来下载镜像,但是,返回了443错误,原因是,需要翻墙,所以只能另找出路。

1)一开始到处找资源,找到了一个可以运行的文件,后来下载完成之后发现它不是v1.1.0,删除镜像重新下载在这里插入图片描述
2)直接去下载了整个fabric v1.1.0的tar包,然后找到里面的bootstrap.sh的内容复制粘贴到我的fabric的bootstrap.sh文件中,再执行这个文件,时间有点久,需要耐心等待,顺利下载
在这里插入图片描述

三、个人小结

1、Linux部署环境要比windows方便快捷很多,出现的问题也相对少一写
2、找解决方法的时候,文章要全部看完再尝试里面的解决方法,也要看清楚相关的版本,不然操作完以后发现错误再来解决就可能会很麻烦
3、文件的存放路径要分配好,才不会出现找不到的情况
4、每下载一个包解压以后,要习惯性打开看看里面的目录结构,接下来的任务就是将fabric里面的相关的目录结构和文件的功能进行了解,之后再对文档中的其他模块进行尝试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值