fabric网络环境搭建

环境:
Windows10 + VirtualBox + Ubuntu16.04.6

参考教程:
https://blog.csdn.net/qq_35353931/article/details/105398398

目录
1.【前期准备】
2.【环境准备】
(1)Go语言环境
(2)安装docker 17.06.2-ce以及以上版本
(3)安装docker-compose 1.14.0以及以上版本
(4)下载fabric源码、fabric-samples源码、fabric镜像
(5)启动Fabric网络并完成ChainCode的测试
(6)手动测试Fabric网络

前期准备

进入虚拟机Ubuntu——>系统设置——>软件和更新——>软件源改为aliyun
fabric网络环境搭建_第1张图片

sudo apt-get update

fabric网络环境搭建_第2张图片
安装vim

sudo apt-get install vim

安装git

sudo apt-get install git

安装curl

sudo apt-get install curl

安装wget

sudo apt-get install wget

补充
1.wget:下载文件的工具,用在命令行下。经常要下载一些软件或从远程服务器恢复备份到本地服务器。
2.curl:利用URL语法在命令行下工作的文件传输工具。支持文件上传和文件下载。

环境准备

1.go语言环境

安装go1.11以及以上版本

cd ~ 

下载

wget https://studygolang.com/dl/golang/go1.11.linux-amd64.tar.gz 

解压

tar -xzf go1.11.linux-amd64.tar.gz 

移动

sudo mv go /usr/local

配置环境变量
进入.bashrc配置环境变量
在这里插入图片描述
在后面加入:

export  PATH=$PATH:/usr/local/go/bin
export  GOROOT=/usr/local/go
export  GOPATH=$HOME/go
export  PATH=$PATH:$HOME/go/bin

使环境变量生效:
在这里插入图片描述
用户环境变量:
在这里插入图片描述
在后面加上:

export  PATH=$PATH:/usr/local/go/bin
export  GOROOT=/usr/local/go
export  GOPATH=$HOME/go
export  PATH=$PATH:$HOME/go/bin

使文件生效:
在这里插入图片描述
创建go目录(把go的目录GOPATH设置到当前用户的文件夹下)

cd ~   
mkdir  -p  go/src/github.com/hyperledger/fabric
sudo chmod -R 777 go

在这里插入图片描述
检查go:
在这里插入图片描述

2.安装docker17.06.2-ce以及以上版本

sudo apt-get update 
sudo apt-get install \ 
apt-transport-https \ 
ca-certificates \ 
curl \ software-properties-common

由于国内网络问题,建议使用国内源,为了确认所下载软件包的合法性,需要添加软件源的GPG密钥

curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add – 

#官方源

#curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add –

在这里插入图片描述
向source.list中添加Docker软件源

sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \
$(lsb_release -cs) \
stable" 

官网源(慢):

sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
 stable"

下载docker-ce:

sudo apt-get update
sudo apt-get install docker-ce

检查docker是否安装成功:

docker version

fabric网络环境搭建_第3张图片
将需要使用docker的用户加入docker用户组

sudo groupadd docker    创建docker组
sudo usermod -aG docker XXX  (XXX是当前用户名)

添加阿里云的docker镜像:

sudo mkdir -p /etc/docker     
sudo vim /etc/docker/daemon.json 

将以下内容写入daemon.json:

{
"registry-mirrors": ["https://aeckruos.mirror.aliyuncs.com"],
"insecure-registries": ["192.168.6.129:5000"]
}

接着输入:

sudo systemctl daemon-reload 
sudo systemctl restart docker 
docker version

fabric网络环境搭建_第4张图片
如果权限不足,输入sudo chmod -R 777 /var/run/docker.sock
fabric网络环境搭建_第5张图片

3.安装docker-compose 1.14.0以及以上版本

sudo apt-get install python-pip
sudo apt install docker-compose

在这里插入图片描述

pip install --upgrade pip

查看版本:

docker-compose –version

在这里插入图片描述

4.下载fabric源码、fabric-samples源码、fabric源码

通过go env查看:
在这里插入图片描述
下载fabric源码:

cd /home/libei/go/src/github.com/hyperledger
git clone https://github.com/hyperledger/fabric.git

该过程中遇到的问题:

问题1: fatal: The remote end hung up unexpectedly
解决方法:

git config http.postBuffer 524288000

原因:文件太大导致的。
问题2:Fatal: out of memory Malloc Failed
解决方法:

sudo dd if=/dev/zero of=swapfile bs=2048 count=$((2048*1000))
sudo mkswap swapfile
sudo swapon swapfile

提高下载速度的教程(只需要几分钟,超棒):
https://blog.csdn.net/kcx64/article/details/83866633
fabric网络环境搭建_第6张图片
fabric网络环境搭建_第7张图片
进入fabric目录:

cd ~/go/src/github.com/hyperledger/fabric
git checkout v1.0.0

下载fabric docker镜像:

cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli/
source download-dockerimages.sh -c x86_64-1.0.0 -f x86_64-1.0.0

fabric网络环境搭建_第8张图片
通过docker images查看:
fabric网络环境搭建_第9张图片

docker-compose version

在这里插入图片描述

启动Fabric网络并完成ChainCode测试

sudo ./network_setup.sh up

> 在该过程中遇到的问题:

问题1:UnixHTTPConnectionPool(host='localhost', port=None): Read timed out. (read timeout=60)
解决方案:

sudo systemctl restart docker
export DOCKER_CLIENT_TIMEOUT=120
export COMPOSE_HTTP_TIMEOUT=120

fabric网络环境搭建_第10张图片
ctrl+c退出

5.手动测试Fabric网络

首先进入CLI,然后重新打开一个命令行窗口,输入:

docker exec -it cli bash

在这里插入图片描述
通过这些命令可以查询a账户的余额:

peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'

fabric网络环境搭建_第11张图片
可以看到余额90,下面我们可以进行转账操作,操作为invoke ,由a转b 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","a","b","20"]}

哈哈,我转了两次
fabric网络环境搭建_第12张图片
再查看a中的值:
fabric网络环境搭建_第13张图片
关闭e2e_cli的demo服务,然后

./network_setup.sh down

你可能感兴趣的:(fabric网络环境搭建)