本教材由知了传课辛苦制作而成,仅供学习使用,请勿用于商业用途!如进行转载请务必注明出处!谢谢!

fabric环境搭建

一、安装虚拟机

  • 虚拟机安装
  • 连接虚拟机

二、安装python2.7

ubuntu 18 默认是安装得是python3.6

python --version查看版本

更新apt-get
sudo apt-get update

安装python2.7
sudo apt-get install python2.7

安装pip
sudo apt install python-pip pip --version验证,安装docker-compose时要用到

sudo apt install python3-pip

更新pip:
sudo pip install --upgrade pip

三、安装go

安装go:sudo apt-get install golang-go,会安装到/usr/lib/go-1.6目录

工程管理:
mkdir -p /home/go/src
mkdir -p /home/go/bin
mkdir -p /home/go/pkg
添加环境变量:
vi ~/.profile
export GOROOT=/usr/lib/go-1.6
export PATH="$PATH:$GOROOT/bin"
export GOPATH=/home/go
export PATH="$PATH:$GOPATH/bin"

加载配置:source ~/.profile

检查:go env



手动安装配置:
手动下载地址:https://golang.google.cn/dl/

下载tar包:wget https://storage.googleapis.com/golang/go1.15.11.linux-amd64.tar.gz

解压:tar -xvf go1.15.11.linux-amd64.tar.gz -C可以指定解压到的目录

配置环境变量:vim ~/.bashrc
export GOOROOT =/usr/local/go
export GOPATH = $HOME/go

export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

重新加载配置文件:source ~/.bashrc

四、git安装

用来拉取fabric代码

sudo apt install git

五、docker安装

更新apt:sudo apt-get update
安装docker:
sudo apt-get install docker
sudo apt install docker.io
验证:docker version 会报权限不够的错误

创建docker用户组
sudo groupadd docker
将当前用户添加到docker用户组
sudo gpasswd -a 用户名 docker
重启docker服务
systemctl restart docker
当前用户切换到docker组
newgrp docker

验证:docker version


ubuntu:前面加sudpo

六、docker-compose安装

下载:curl -L https://get.daocloud.io/docker/compose/releases/download/1.12.0/docker-compose-uname -s-uname -m > ~/docker-compose
移动到指定的目录:sudo mv ~/docker-compose /usr/local/bin/docker-compose
修改权限:chmod +x /usr/local/bin/docker-compose

七、fabric安装

gopath下新建一个目录,存放后期的所有fabric有关的
mkdir src

进入到目录:
cd src
git clone https://github.com/hyperledger/fabric.git

切换分支:
cd fabric
git checkout v1.0.0 main分支是没有examples文件夹的

八、Fabric的Docker镜像下载

进入e2e_cli目录:cd examples/e2e_cli (如果没有examples,需要切换分支到1.0)

下载镜像:
不建议批量下载,后期启动解点的时候因为镜像不完整或者版本不对容易引发问题,
source download-dockerimages.sh -c x86_64-1.0.0 -f x86_64-1.0.0

按个下载镜像:10个
docker pull hyperledger/fabric-tools:x86_64-1.0.0
docker pull hyperledger/fabric-orderer:x86_64-1.0.0
docker pull hyperledger/fabric-peer:x86_64-1.0.0
docker pull hyperledger/fabric-couchdb:x86_64-1.0.0
docker pull hyperledger/fabric-kafka:x86_64-1.0.0
docker pull hyperledger/fabric-ca:x86_64-1.0.0
docker pull hyperledger/fabric-ccenv:x86_64-1.0.0
docker pull hyperledger/fabric-baseimage:x86_64-0.4.7
docker pull hyperledger/fabric-javaenv:x86_64-1.0.0
docker pull hyperledger/fabric-zookeeper:x86_64-1.0.0

修改标签为latest:
docker tag hyperledger/fabric-tools:x86_64-1.0.0 hyperledger/fabric-tools
docker tag hyperledger/fabric-orderer:x86_64-1.0.0 hyperledger/fabric-orderer
docker tag hyperledger/fabric-peer:x86_64-1.0.0 hyperledger/fabric-peer
docker tag hyperledger/fabric-couchdb:x86_64-1.0.0 hyperledger/fabric-couchdb
docker tag hyperledger/fabric-kafka:x86_64-1.0.0 hyperledger/fabric-kafka
docker tag hyperledger/fabric-ca:x86_64-1.0.0 hyperledger/fabric-ca
docker tag hyperledger/fabric-ccenv:x86_64-1.0.0 hyperledger/fabric-ccenv
docker tag hyperledger/fabric-baseimage:x86_64-0.4.7 hyperledger/fabric-baseimage
docker tag hyperledger/fabric-javaenv:x86_64-1.0.0 hyperledger/fabric-javaenv
docker tag hyperledger/fabric-zookeeper:x86_64-1.0.0 hyperledger/fabric-zookeeper

验证:docker images


删除镜像:
先删除容器:docker container prune
再删除镜像:docker rmi –f [IMAGE ID]

九、生成可执行文件,(可以通过第十步生成,在release/linux-amd64/bin下)

cmd/cryptogen是在main分支,不是1.0分支

将可执行文件放到gopath的bin下,方便全局使用

进入cmd/cryptogen,执行go build main.go 会生成可执行文件,改名字为:cryptogen,然后拷贝到gopath的bin中
其他的也是一样,进入cmd下的对应文件夹,执行build


而且必须把bin路径给权限:chmod 775 -R /home/go/workspace/bin

十、验证

需要fabric项目放在github.com/hyperledger/ 下

进入到指定目录:gopath下的fabric/examples/e2e_cli

启动Fabric网络:./network_setup.sh up

出现end 说明没问题


启动这个脚本做了以下几个操作:

编译生成Fabric公私钥、证书的程序,程序在目录:fabric/release/linux-amd64/bin

基于configtx.yaml生成创世区块和通道相关信息,并保存在channel-artifacts文件夹。

基于crypto-config.yaml生成公私钥和证书信息,并保存在crypto-config文件夹中。

基于docker-compose-cli.yaml启动1Orderer+4Peer+1CLI的Fabric容器。

在CLI启动的时候,会运行scripts/script.sh文件,这个脚本文件包含了创建Channel,加入Channel,安装Example02,运行Example02等功能。

十一、手动测试

以现在安装好的Example02为例,channel名字是mychannel,链码的名字是mycc。

进入CLI:docker exec -it cli bash
查看余额:peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'

退出容器:exit

关闭fabric网络:
进入gopath下的fabric/examples/e2e_cli
./network_setup.sh down

2004人已阅读,今天你学习了吗?

添加新回复