区块链fabric环境搭建

在 WIndows10 部署 Hyperledger Fabric 开发环境

准备工作

虚拟机

  1. 开启服务:程序与功能中开启 Hyper-V、虚拟机平台,并重启 Windows

  2. 安装 VMware 和 Ubuntu 20.04 LTS Server

    1. 什么额外的软件都不要安
    2. 更换清华镜像:https://mirrors.tuna.tsinghua.edu.cn/ubuntu/
    3. 取消更新并重启
  3. 设置VM静态IP

    1. VMware 虚拟网卡 NAT 设置
    2. Windows VMnet8 网卡 配置
    3. VM 网络设置静态 IP
  4. 设置VM自动启动

    1. VMware *享 VM
    2. 共享 VM 开启自动启动和自动挂起
  5. 关闭VM自动更新

    sudo nano /etc/apt/apt.conf.d/20auto-upgrades
    

SSH

  1. 设置 VM root 账户密码

    sudo passwd root
    
  2. 设置 SSH

    1. 编辑 SSH 配置:

      sudo apt install ssh
      sudo nano /etc/ssh/sshd_config
      # ...
      Port 22
      # ...
      PermitRootLogin yes
      # ...
      PasswordAuthentication yes
      # ...
      
    2. 生成 SSH 密钥

      sudo ssh-keygen -A
      
    3. 重启 SSH 服务

      sudo service ssh restart
      
  3. SSH 连接 root shell

    mkdir ~/Project
    
  4. SSH 连接 ftp 上传部署需要的文件到 Project 目录

    补充

    使用git branch查看文件分支

    git branch -a                // 查看分支
    git checkout release-x.x      // 切换到 release-x.x 版本
    

    使用git tag命令查看版本列表,根据个人需要将源码切换到对应的版本,本次使用的是x.x版。

    git checkout -b vx.x.
    

    fabric/(2.2.1)

    fabric-ca(1.4.9)

    fabric-samples/(2.1.1)

    bootstrap.sh

    go1.15.5.linux-amd64.tar.gz

Docker

  1. 添加 Docker 阿里云镜像加速

    打开阿里云容器镜像服务页获取自己的加速地址,然后执行:

    mkdir -p /etc/docker
    tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["https://<你自己的ID>.mirror.aliyuncs.com"]
    }
    EOF
    
  2. 安装 Docker

    # 将官方Docker库的GPG公钥添加到系统中
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    # 将Docker库添加到apt里
    add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
    # 再次更新下apt库列表
    apt update
    # 开始安装docker-ce
    apt install docker-ce
    
    # 安装完成查询版本号(20.10.2)
    docker --version
    # 为 docker 添加当前用户
    service docker start
    usermod -aG docker $USER
    # 开始安装docker-compose
    apt install docker-compose
    
    # 安装完成后查询docker-compose版本号(1.25.0)
    docker-compose --version
    

Golang

  1. 安装 Golang

    cd ~/Project
    tar -C /usr/local -xzf go1.15.5.linux-amd64.tar.gz
    
  2. 配置 Golang 环境变量

    mkdir ~/GOPATH
    nano ~/.bashrc
    
    export GOROOT=/usr/local/go 
    export GOPATH=/root/GOPATH 
    export PATH=$GOPATH/bin:$GOROOT/bin:$PATH
    
    source  ~/.bashrc
    
  3. Golang 镜像源加速

    go version
    go env -w GO111MODULE=on
    go env -w GOPROXY=https://goproxy.cn,direct
    

其他软件

apt install python3 python nodejs npm

部署 Fabric 环境

安装 Fabric

安装包的下载地址

https://github.com/hyperledger/fabric/release
https://github.com/hyperledger/fabric-ca/release
cd ~/Project
mkdir fabric
tar -zxvf hyperledger-fabric-ca-linux-amd64-1.4.9.tar.gz -C ./fabric
tar -zxvf hyperledger-fabric-linux-amd64-2.2.1.tar.gz -C ./fabric
mkdir /usr/local/fabric
mkdir /usr/local/fabric/bin
sudo cp fabric/bin/* /usr/local/fabric/bin

配置 Fabric 环境变量

nano ~/.bashrc 

export FABRIC_ROOT=/usr/local/fabric
export GOROOT=/usr/local/go # GOROOT是系统上安装 Go 软件包的位置。
export GOPATH=/root/GOPATH # GOPATH 是刚刚新建的工作目录的位置。
export PATH=$GOPATH/bin:$GOROOT/bin:$FABRIC_ROOT/bin:$PATH

source ~/.bashrc

# 执行以下不出错则配置成功
configtxgen version  
configtxlator version 
cryptogen version 
fabric-ca-client version 
fabric-ca-server version 
idemixgen version 
orderer version 
peer version
discover --help

安装 Docker 镜像

bash ./bootstrap.sh -s -b

环境测试

# git clone https://github.com/hyperledger/fabric-samples.git
cd ~/Project/fabric-samples
git switch -c v2.1.1
cp ../fabric/bin -r ./bin
cp ../fabric/config -r ./config
cd test-network/
service docker restart
chmod +x scripts/*	
apt install dos2unix
# dos2unix检查并使文件适用linux
dos2unix network.sh
dos2unix scripts/*
dos2unix organizations/*
dos2unix organizations/fabric-ca/*
bash network.sh -h
bash network.sh up createChannel -ca -c mychannel -s couchdb -i 2.2.1
# 这一步有问题
bash network.sh deployCC
# 由下列代替,chaincode initialization is not required
bash network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-go -ccl go


export PATH=${PWD}/../bin:$PATH
export FABRIC_CFG_PATH=$PWD/../config/

export CORE_PEER_TLS_ENABLED=true
export CORE_PEER_LOCALMSPID="Org1MSP"
export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
export CORE_PEER_ADDRESS=localhost:7051
# 调用智能合约-已部署的 ChainCode,不出错则测试成功
peer chaincode query -C mychannel -n fabcar -c '{"Args":["queryAllCars"]}'

bash network.sh down

​ 按照 官方文档 进行测试

此文章源于b站的视频,我个人实现后进行了部分修改。希望能给一些初次接触fabric的小白一些帮助。如有侵权请私信我删除。

上一篇:Hyperledger fabric-SDK-GO客户端开发篇(六)


下一篇:TF功能开发路线图:盘点2021年Tungsten Fabric聚焦领域