在 WIndows10 部署 Hyperledger Fabric 开发环境
准备工作
虚拟机
-
开启服务:程序与功能中开启 Hyper-V、虚拟机平台,并重启 Windows
-
安装 VMware 和 Ubuntu 20.04 LTS Server
- 什么额外的软件都不要安
- 更换清华镜像:https://mirrors.tuna.tsinghua.edu.cn/ubuntu/
- 取消更新并重启
-
- VMware 虚拟网卡 NAT 设置
- Windows VMnet8 网卡 配置
- VM 网络设置静态 IP
-
设置VM自动启动
- VMware *享 VM
- 共享 VM 开启自动启动和自动挂起
-
关闭VM自动更新
sudo nano /etc/apt/apt.conf.d/20auto-upgrades
SSH
-
设置 VM root 账户密码
sudo passwd root
-
设置 SSH
-
编辑 SSH 配置:
sudo apt install ssh sudo nano /etc/ssh/sshd_config # ... Port 22 # ... PermitRootLogin yes # ... PasswordAuthentication yes # ...
-
生成 SSH 密钥
sudo ssh-keygen -A
-
重启 SSH 服务
sudo service ssh restart
-
-
SSH 连接 root shell
mkdir ~/Project
-
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
-
添加 Docker 阿里云镜像加速
打开阿里云容器镜像服务页获取自己的加速地址,然后执行:
mkdir -p /etc/docker tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://<你自己的ID>.mirror.aliyuncs.com"] } EOF
-
安装 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
-
安装 Golang
cd ~/Project tar -C /usr/local -xzf go1.15.5.linux-amd64.tar.gz
-
配置 Golang 环境变量
mkdir ~/GOPATH nano ~/.bashrc export GOROOT=/usr/local/go export GOPATH=/root/GOPATH export PATH=$GOPATH/bin:$GOROOT/bin:$PATH source ~/.bashrc
-
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的小白一些帮助。如有侵权请私信我删除。